|
|
|
|
@@ -6,26 +6,20 @@ import org.bukkit.block.BlockState;
|
|
|
|
|
import org.bukkit.block.Sign;
|
|
|
|
|
import org.bukkit.block.sign.Side;
|
|
|
|
|
import org.bukkit.block.sign.SignSide;
|
|
|
|
|
import org.bukkit.entity.HumanEntity;
|
|
|
|
|
import org.bukkit.entity.Item;
|
|
|
|
|
import org.bukkit.entity.Player;
|
|
|
|
|
import org.bukkit.event.EventHandler;
|
|
|
|
|
import org.bukkit.event.Listener;
|
|
|
|
|
import org.bukkit.event.block.Action;
|
|
|
|
|
import org.bukkit.event.block.BlockBreakEvent;
|
|
|
|
|
import org.bukkit.event.block.SignChangeEvent;
|
|
|
|
|
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
|
|
|
|
import org.bukkit.event.entity.ProjectileHitEvent;
|
|
|
|
|
import org.bukkit.event.entity.PlayerDeathEvent;
|
|
|
|
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
|
|
|
import org.bukkit.event.inventory.InventoryCloseEvent;
|
|
|
|
|
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
|
|
|
|
import org.bukkit.event.player.PlayerEggThrowEvent;
|
|
|
|
|
import org.bukkit.event.player.PlayerInteractEntityEvent;
|
|
|
|
|
import org.bukkit.event.player.PlayerInteractEvent;
|
|
|
|
|
import org.bukkit.event.player.PlayerQuitEvent;
|
|
|
|
|
import org.bukkit.inventory.EquipmentSlot;
|
|
|
|
|
import org.bukkit.inventory.Inventory;
|
|
|
|
|
import org.bukkit.inventory.ItemStack;
|
|
|
|
|
import org.bukkit.inventory.MainHand;
|
|
|
|
|
import org.bukkit.inventory.meta.ItemMeta;
|
|
|
|
|
import org.bukkit.plugin.java.JavaPlugin;
|
|
|
|
|
|
|
|
|
|
@@ -34,9 +28,7 @@ import java.sql.PreparedStatement;
|
|
|
|
|
import java.sql.ResultSet;
|
|
|
|
|
import java.sql.SQLException;
|
|
|
|
|
import java.text.MessageFormat;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
import java.util.Random;
|
|
|
|
|
|
|
|
|
|
public final class CubeTP extends JavaPlugin implements Listener {
|
|
|
|
|
|
|
|
|
|
@@ -47,10 +39,10 @@ public final class CubeTP extends JavaPlugin implements Listener {
|
|
|
|
|
public static String password;
|
|
|
|
|
public static Material cubeTP;
|
|
|
|
|
public static Material tomePortalReagent;
|
|
|
|
|
Inventory inv = null;
|
|
|
|
|
Location clickedCubeLoc;
|
|
|
|
|
Block clickedBlock;
|
|
|
|
|
String curCubeName = "";
|
|
|
|
|
public static Inventory inv = null;
|
|
|
|
|
public static Location clickedCubeLoc;
|
|
|
|
|
public static Block clickedBlock;
|
|
|
|
|
public static String curCubeName = "";
|
|
|
|
|
boolean curCubePrivate = false;
|
|
|
|
|
boolean inCubeTPInventory = false;
|
|
|
|
|
double curCubeX = 0;
|
|
|
|
|
@@ -81,6 +73,24 @@ public final class CubeTP extends JavaPlugin implements Listener {
|
|
|
|
|
getLogger().info("Enabled!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@EventHandler
|
|
|
|
|
public void PlayerQuitEvent(PlayerQuitEvent event) throws SQLException {
|
|
|
|
|
Player player = event.getPlayer();
|
|
|
|
|
if(SQL.CheckDeathExists(player)){
|
|
|
|
|
SQL.DeleteDeathByUUID(player);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@EventHandler
|
|
|
|
|
public void PlayerDeathEvent(PlayerDeathEvent event) throws SQLException {
|
|
|
|
|
Player player = event.getEntity().getPlayer();
|
|
|
|
|
Location dLoc = player.getLocation();
|
|
|
|
|
if(SQL.CheckDeathExists(player)){
|
|
|
|
|
SQL.DeleteDeathByUUID(player);
|
|
|
|
|
SQL.AddDeath(player, dLoc);
|
|
|
|
|
} else {
|
|
|
|
|
SQL.AddDeath(player, dLoc);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@EventHandler
|
|
|
|
|
public void PlayerInteractEvent(PlayerInteractEvent event) throws SQLException {
|
|
|
|
|
clickedBlock = event.getClickedBlock();
|
|
|
|
|
@@ -174,7 +184,7 @@ public final class CubeTP extends JavaPlugin implements Listener {
|
|
|
|
|
// tp to a remote cube
|
|
|
|
|
if (e.getRawSlot() >= 9){
|
|
|
|
|
String name = e.getCurrentItem().getItemMeta().getDisplayName();
|
|
|
|
|
CubeTP(p,name);
|
|
|
|
|
TeleportPlayer(p,name);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@@ -256,44 +266,7 @@ public final class CubeTP extends JavaPlugin implements Listener {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void ShowUI(Player player) throws SQLException {
|
|
|
|
|
inv = Bukkit.createInventory(null, 45, "CubeTP");
|
|
|
|
|
World world = getServer().getWorld("world");
|
|
|
|
|
Block block = world.getBlockAt(clickedBlock.getLocation().getBlockX(), clickedBlock.getLocation().getBlockY()+1, clickedBlock.getLocation().getBlockZ());
|
|
|
|
|
BlockState state = block.getState();
|
|
|
|
|
Sign sign = (Sign) state;
|
|
|
|
|
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_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_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 {
|
|
|
|
|
public static void AddAllCubes(Player player) throws SQLException {
|
|
|
|
|
int slot = 9;
|
|
|
|
|
String uuid = player.getUniqueId().toString();
|
|
|
|
|
if(player.getBedSpawnLocation() != null){
|
|
|
|
|
@@ -302,6 +275,11 @@ public final class CubeTP extends JavaPlugin implements Listener {
|
|
|
|
|
inv.setItem(slot,createGuiItem(Material.WHITE_WOOL, "Spawn", loreSp));
|
|
|
|
|
slot++;
|
|
|
|
|
}
|
|
|
|
|
if(SQL.CheckDeathExists(player)){
|
|
|
|
|
String loreDe = SQL.GenDeathLore(player);
|
|
|
|
|
inv.setItem(slot,createGuiItem(Material.GRAY_WOOL, "Death", loreDe));
|
|
|
|
|
slot++;
|
|
|
|
|
}
|
|
|
|
|
SQL.connect();
|
|
|
|
|
PreparedStatement ps = SQL.getConnection().prepareStatement("SELECT * FROM cubetp WHERE uuid IS NULL");
|
|
|
|
|
ResultSet rs = ps.executeQuery();
|
|
|
|
|
@@ -320,24 +298,66 @@ public final class CubeTP extends JavaPlugin implements Listener {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void CubeTP(Player player, String name) throws SQLException {
|
|
|
|
|
public void TeleportPlayer(Player player, String name) throws SQLException {
|
|
|
|
|
if(name.equals("Spawn")){
|
|
|
|
|
Location pSpawn = player.getBedSpawnLocation();
|
|
|
|
|
player.teleport(pSpawn);
|
|
|
|
|
} else {
|
|
|
|
|
SQL.connect();
|
|
|
|
|
PreparedStatement ps = SQL.getConnection().prepareStatement("SELECT * FROM cubetp WHERE name = ?");
|
|
|
|
|
ps.setString(1, name);
|
|
|
|
|
ResultSet rs = ps.executeQuery();
|
|
|
|
|
int slot = 9;
|
|
|
|
|
if(rs.next()) {
|
|
|
|
|
Location loc = new Location(player.getWorld(), rs.getDouble("x"),rs.getDouble("y"),rs.getDouble("z"), 0, 0);
|
|
|
|
|
player.teleport(loc);
|
|
|
|
|
}
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if(name.equals("Death")){
|
|
|
|
|
Location dSpawn = SQL.GenDeathLoc(player);
|
|
|
|
|
player.teleport(dSpawn);
|
|
|
|
|
SQL.DeleteDeathByUUID(player);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
SQL.connect();
|
|
|
|
|
PreparedStatement ps = SQL.getConnection().prepareStatement("SELECT * FROM cubetp WHERE name = ?");
|
|
|
|
|
ps.setString(1, name);
|
|
|
|
|
ResultSet rs = ps.executeQuery();
|
|
|
|
|
int slot = 9;
|
|
|
|
|
if(rs.next()) {
|
|
|
|
|
Location loc = new Location(player.getWorld(), rs.getDouble("x"),rs.getDouble("y"),rs.getDouble("z"), 0, 0);
|
|
|
|
|
player.teleport(loc);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected ItemStack createGuiItem(final Material material, final String name, final String... lore) {
|
|
|
|
|
public void ShowUI(Player player) throws SQLException {
|
|
|
|
|
inv = Bukkit.createInventory(null, 45, "CubeTP");
|
|
|
|
|
World world = getServer().getWorld("world");
|
|
|
|
|
Block block = world.getBlockAt(CubeTP.clickedBlock.getLocation().getBlockX(), CubeTP.clickedBlock.getLocation().getBlockY()+1, CubeTP.clickedBlock.getLocation().getBlockZ());
|
|
|
|
|
BlockState state = block.getState();
|
|
|
|
|
Sign sign = (Sign) state;
|
|
|
|
|
SignSide sside = sign.getSide(Side.FRONT);
|
|
|
|
|
String lore01 = MessageFormat.format("{0}", sside.getLine(0));
|
|
|
|
|
String lore02 = MessageFormat.format("x{0} y{1} z{2}", CubeTP.clickedBlock.getLocation().getBlockX(), CubeTP.clickedBlock.getLocation().getBlockY(), CubeTP.clickedBlock.getLocation().getBlockZ());
|
|
|
|
|
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, " "));
|
|
|
|
|
CubeTP.AddAllCubes(player);
|
|
|
|
|
player.openInventory(inv);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void ShowUIPortal(Player player) throws SQLException {
|
|
|
|
|
inv = Bukkit.createInventory(null, 45, "CubeTP");
|
|
|
|
|
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, " "));
|
|
|
|
|
CubeTP.AddAllCubes(player);
|
|
|
|
|
player.openInventory(inv);
|
|
|
|
|
}
|
|
|
|
|
public static ItemStack createGuiItem(final Material material, final String name, final String... lore) {
|
|
|
|
|
final ItemStack item = new ItemStack(material, 1);
|
|
|
|
|
final ItemMeta meta = item.getItemMeta();
|
|
|
|
|
|
|
|
|
|
|