diff --git a/src/main/java/ovh/mxg/cubetp/CubeTP.java b/src/main/java/ovh/mxg/cubetp/CubeTP.java index 2bfe1fc..9e23500 100644 --- a/src/main/java/ovh/mxg/cubetp/CubeTP.java +++ b/src/main/java/ovh/mxg/cubetp/CubeTP.java @@ -50,6 +50,7 @@ public final class CubeTP extends JavaPlugin implements Listener { Location clickedCubeLoc; Block clickedBlock; String curCubeName = ""; + boolean curCubePrivate = false; double curCubeX = 0; double curCubeY = 0; double curCubeZ = 0; @@ -93,6 +94,11 @@ public final class CubeTP extends JavaPlugin implements Listener { Sign sign = (Sign) state; SignSide sside = sign.getSide(Side.FRONT); curCubeName = sside.getLine(0); + if(!sside.getLine(1).isEmpty()){ + curCubePrivate = true; + } else { + curCubePrivate = false; + } curCubeX = clickedBlock.getLocation().getBlockX(); curCubeY = clickedBlock.getLocation().getBlockY(); curCubeZ = clickedBlock.getLocation().getBlockZ(); @@ -113,9 +119,8 @@ public final class CubeTP extends JavaPlugin implements Listener { @EventHandler public void onInventoryClick(final InventoryClickEvent e) throws SQLException { - if (!e.getInventory().equals(inv)) return; - e.setCancelled(true); + if (!e.isLeftClick()) return; final ItemStack clickedItem = e.getCurrentItem(); @@ -129,7 +134,11 @@ public final class CubeTP extends JavaPlugin implements Listener { if(SQL.CheckCubeNameExists(curCubeName)){ p.sendMessage(MessageFormat.format("§bLe cube {0} existe déjà. Changez le nom.", curCubeName)); } else { - SQL.AddCube(curCubeName, curCubeX, curCubeY, curCubeZ); + if(curCubePrivate){ + SQL.AddCube(curCubeName, curCubeX, curCubeY, curCubeZ, p.getUniqueId().toString()); + } else { + SQL.AddCube(curCubeName, curCubeX, curCubeY, curCubeZ, null); + } p.sendMessage(MessageFormat.format("§bLe cube {0} a été ajouté.", curCubeName)); ShowUI(p); } @@ -246,42 +255,51 @@ public final class CubeTP extends JavaPlugin implements Listener { SignSide sside = sign.getSide(Side.FRONT); String lore01 = MessageFormat.format("{0}", sside.getLine(0)); String lore02 = MessageFormat.format("x{0} y{1} z{2}", clickedBlock.getLocation().getBlockX(), clickedBlock.getLocation().getBlockY(), clickedBlock.getLocation().getBlockZ()); - inv.setItem(0,createGuiItem(Material.BLACK_STAINED_GLASS_PANE, " ")); - inv.setItem(1,createGuiItem(Material.BLACK_STAINED_GLASS_PANE, " ")); - inv.setItem(2,createGuiItem(Material.BLACK_STAINED_GLASS_PANE, " ")); - inv.setItem(3,createGuiItem(Material.BOOK, "§bEnregistrer", lore01, lore02)); - inv.setItem(4,createGuiItem(Material.ENCHANTED_BOOK, "Tome de portail")); - inv.setItem(5,createGuiItem(Material.TNT, "§bRetirer", "§aRetirer de la liste de TP.")); - inv.setItem(6,createGuiItem(Material.BLACK_STAINED_GLASS_PANE, " ")); - inv.setItem(7,createGuiItem(Material.BLACK_STAINED_GLASS_PANE, " ")); - inv.setItem(8,createGuiItem(Material.BLACK_STAINED_GLASS_PANE, " ")); + inv.setItem(0,createGuiItem(Material.BLACK_WOOL, " ")); + inv.setItem(1,createGuiItem(Material.BLACK_WOOL, " ")); + inv.setItem(2,createGuiItem(Material.BLACK_WOOL, " ")); + inv.setItem(3,createGuiItem(Material.CYAN_WOOL, "§bEnregistrer", lore01, lore02)); + inv.setItem(4,createGuiItem(Material.CYAN_WOOL, "§bTome de portail")); + inv.setItem(5,createGuiItem(Material.CYAN_WOOL, "§bRetirer")); + inv.setItem(6,createGuiItem(Material.BLACK_WOOL, " ")); + inv.setItem(7,createGuiItem(Material.BLACK_WOOL, " ")); + inv.setItem(8,createGuiItem(Material.BLACK_WOOL, " ")); AddAllCubes(player); player.openInventory(inv); } public void ShowUIPortal(Player player) throws SQLException { inv = Bukkit.createInventory(null, 45, "CubeTP"); - inv.setItem(0,createGuiItem(Material.BLACK_STAINED_GLASS_PANE, " ")); - inv.setItem(1,createGuiItem(Material.BLACK_STAINED_GLASS_PANE, " ")); - inv.setItem(2,createGuiItem(Material.BLACK_STAINED_GLASS_PANE, " ")); - inv.setItem(3,createGuiItem(Material.BLACK_STAINED_GLASS_PANE, " ")); - inv.setItem(4,createGuiItem(Material.BLACK_STAINED_GLASS_PANE, " ")); - inv.setItem(5,createGuiItem(Material.BLACK_STAINED_GLASS_PANE, " ")); - inv.setItem(6,createGuiItem(Material.BLACK_STAINED_GLASS_PANE, " ")); - inv.setItem(7,createGuiItem(Material.BLACK_STAINED_GLASS_PANE, " ")); - inv.setItem(8,createGuiItem(Material.BLACK_STAINED_GLASS_PANE, " ")); + inv.setItem(0,createGuiItem(Material.BLACK_WOOL, " ")); + inv.setItem(1,createGuiItem(Material.BLACK_WOOL, " ")); + inv.setItem(2,createGuiItem(Material.BLACK_WOOL, " ")); + inv.setItem(3,createGuiItem(Material.BLACK_WOOL, " ")); + inv.setItem(4,createGuiItem(Material.BLACK_WOOL, " ")); + inv.setItem(5,createGuiItem(Material.BLACK_WOOL, " ")); + inv.setItem(6,createGuiItem(Material.BLACK_WOOL, " ")); + inv.setItem(7,createGuiItem(Material.BLACK_WOOL, " ")); + inv.setItem(8,createGuiItem(Material.BLACK_WOOL, " ")); AddAllCubes(player); player.openInventory(inv); } public void AddAllCubes(Player player) throws SQLException { + String uuid = player.getUniqueId().toString(); SQL.connect(); - PreparedStatement ps = SQL.getConnection().prepareStatement("SELECT * FROM cubetp"); + PreparedStatement ps = SQL.getConnection().prepareStatement("SELECT * FROM cubetp WHERE uuid IS NULL"); ResultSet rs = ps.executeQuery(); int slot = 9; while(rs != null && rs.next()) { String lore01 = MessageFormat.format("x{0} y{1} z{2}", rs.getDouble("x"), rs.getDouble("y"), rs.getDouble("z")); - inv.setItem(slot,createGuiItem(Material.SPYGLASS, rs.getString("name"), lore01)); + inv.setItem(slot,createGuiItem(Material.GREEN_WOOL, rs.getString("name"), lore01)); + slot++; + } + PreparedStatement psp = SQL.getConnection().prepareStatement("SELECT * FROM cubetp WHERE uuid IS NOT NULL AND uuid = ?"); + psp.setString(1, uuid); + ResultSet rsp = psp.executeQuery(); + while(rsp != null && rsp.next()) { + String lore01 = MessageFormat.format("x{0} y{1} z{2}", rsp.getDouble("x"), rsp.getDouble("y"), rsp.getDouble("z")); + inv.setItem(slot,createGuiItem(Material.ORANGE_WOOL, rsp.getString("name"), lore01)); slot++; } } diff --git a/src/main/java/ovh/mxg/cubetp/SQL.java b/src/main/java/ovh/mxg/cubetp/SQL.java index 22b6e13..4a15931 100644 --- a/src/main/java/ovh/mxg/cubetp/SQL.java +++ b/src/main/java/ovh/mxg/cubetp/SQL.java @@ -47,13 +47,18 @@ public class SQL { return con; } - public static void AddCube(String name, double x, double y, double z) throws SQLException { + public static void AddCube(String name, double x, double y, double z, String uuid) throws SQLException { connect(); - PreparedStatement ps = getConnection().prepareStatement("INSERT IGNORE INTO cubetp (name,x,y,z) VALUES (?,?,?,?)"); + PreparedStatement ps = getConnection().prepareStatement("INSERT IGNORE INTO cubetp (name,x,y,z,uuid) VALUES (?,?,?,?,?)"); ps.setString(1, name); ps.setDouble(2, x); ps.setDouble(3, y); ps.setDouble(4, z); + if(uuid != null){ + ps.setString(5, uuid); + } else { + ps.setString(5, null); + } ps.executeUpdate(); } diff --git a/target/classes/plugin.yml b/target/classes/plugin.yml index 0aca871..002f433 100644 --- a/target/classes/plugin.yml +++ b/target/classes/plugin.yml @@ -1,4 +1,4 @@ name: CubeTP -version: '1.0-SNAPSHOT' +version: '1.1.0' main: ovh.mxg.cubetp.CubeTP api-version: '1.20'