diff --git a/MultiArena-TheBridge/src/cx/sfy/TheBridge/controllers/WorldController.java b/MultiArena-TheBridge/src/cx/sfy/TheBridge/controllers/WorldController.java index 5c14985..debe9eb 100644 --- a/MultiArena-TheBridge/src/cx/sfy/TheBridge/controllers/WorldController.java +++ b/MultiArena-TheBridge/src/cx/sfy/TheBridge/controllers/WorldController.java @@ -121,7 +121,7 @@ public class WorldController { world.setAnimalSpawnLimit(0); world.setAmbientSpawnLimit(0); world.setGameRuleValue("doDaylightCycle", "false"); - Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.GREEN + "Se ha reiniciado el mapa " + ChatColor.YELLOW + newWorldName + ChatColor.GREEN + "."); + Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.GREEN + "Map " + ChatColor.YELLOW + newWorldName + ChatColor.GREEN + " has been restarted."); } protected void copyFileStructure(File source, File target) { diff --git a/MultiArena-TheBridge/src/cx/sfy/TheBridge/database/Database.java b/MultiArena-TheBridge/src/cx/sfy/TheBridge/database/Database.java index c32d516..4771264 100644 --- a/MultiArena-TheBridge/src/cx/sfy/TheBridge/database/Database.java +++ b/MultiArena-TheBridge/src/cx/sfy/TheBridge/database/Database.java @@ -23,425 +23,377 @@ public class Database { public Main plugin; private Connection connection; - - public Database(Main plugin) { - this.plugin = plugin; - conectar(); - } - + + public Database(Main plugin) { + this.plugin = plugin; + conectar(); + } + public void conectar() { - if (plugin.getConfig().getBoolean("MySQL.enabled")){ - try { - Class.forName("com.mysql.jdbc.Driver"); - connection = DriverManager.getConnection("jdbc:mysql://" + (plugin.getConfig().getString("MySQL.host") +":"+ plugin.getConfig().getString("MySQL.port")) + "/" + plugin.getConfig().getString("MySQL.database") + "?serverTimezone=" + TimeZone.getDefault().getID() + "&autoReconnect=true&wait_timeout=31536000&interactive_timeout=31536000", plugin.getConfig().getString("MySQL.username"), plugin.getConfig().getString("MySQL.password")); - Bukkit.getConsoleSender().sendMessage(ChatColor.GREEN + "[TheBridge] MySQL conectada."); - newTables(); - } catch (Exception e) { - e.printStackTrace(); - } - } else { - File DataFile = new File(plugin.getDataFolder(), "/TheBridge.db"); - if (!DataFile.exists()) { - try { - DataFile.createNewFile(); - } catch (IOException ex) { - ex.printStackTrace(); - Bukkit.getPluginManager().disablePlugin(plugin); - } - } - try { - Class.forName("org.sqlite.JDBC"); - try { - connection = DriverManager.getConnection("jdbc:sqlite:" + DataFile); - Bukkit.getConsoleSender().sendMessage(ChatColor.GREEN + "[TheBridge] SQLLite conectado."); - newTables(); - } catch (SQLException ex2) { - ex2.printStackTrace(); - Bukkit.getPluginManager().disablePlugin(plugin); - } - } catch (ClassNotFoundException ex3) { - ex3.printStackTrace(); - Bukkit.getPluginManager().disablePlugin(plugin); - } - } + if (plugin.getConfig().getBoolean("MySQL.enabled")) + try { + Class.forName("com.mysql.jdbc.Driver"); + connection = DriverManager.getConnection("jdbc:mysql://" + (plugin.getConfig().getString("MySQL.host") +":"+ plugin.getConfig().getString("MySQL.port")) + "/" + plugin.getConfig().getString("MySQL.database") + "?serverTimezone=" + TimeZone.getDefault().getID() + "&autoReconnect=true&wait_timeout=31536000&interactive_timeout=31536000", plugin.getConfig().getString("MySQL.username"), plugin.getConfig().getString("MySQL.password")); + Bukkit.getConsoleSender().sendMessage(ChatColor.GREEN + "[TheBridge] MySQL connected."); + newTables(); + } catch (final Exception e) { + e.printStackTrace(); + } + else { + final File DataFile = new File(plugin.getDataFolder(), "/TheBridge.db"); + if (!DataFile.exists()) + try { + DataFile.createNewFile(); + } catch (final IOException ex) { + ex.printStackTrace(); + Bukkit.getPluginManager().disablePlugin(plugin); + } + try { + Class.forName("org.sqlite.JDBC"); + try { + connection = DriverManager.getConnection("jdbc:sqlite:" + DataFile); + Bukkit.getConsoleSender().sendMessage(ChatColor.GREEN + "[TheBridge] SQLite connected."); + newTables(); + } catch (final SQLException ex2) { + ex2.printStackTrace(); + Bukkit.getPluginManager().disablePlugin(plugin); + } + } catch (final ClassNotFoundException ex3) { + ex3.printStackTrace(); + Bukkit.getPluginManager().disablePlugin(plugin); + } + } } - + public void checkConnection() { - try { - if (connection.isClosed() || connection == null){ + try { + if (connection.isClosed() || connection == null) conectar(); - } - } catch (SQLException e) { + } catch (final SQLException e) { e.printStackTrace(); } } - + public void loadNormalKills() { new BukkitRunnable() { - @Override - public void run() { - Connection connection = getConnection(); - PreparedStatement preparedStatement = null; - ResultSet resultSet = null; - try { - StringBuilder queryBuilder = new StringBuilder(); - queryBuilder.append("SELECT `UUID`, `Name`, `NKills` "); - queryBuilder.append("FROM `BG_Data` "); - queryBuilder.append("GROUP BY `UUID` "); - queryBuilder.append("ORDER BY `NKills` DESC LIMIT 10;"); - preparedStatement = connection.prepareStatement(queryBuilder.toString()); - resultSet = preparedStatement.executeQuery(); - while (resultSet.next()) { - new Top(resultSet.getString(2), resultSet.getInt(3), BoardType.NORMAL_KILLS); - } - } catch (SQLException sqlException) { - sqlException.printStackTrace(); - } finally { - if (resultSet != null) { - try { - resultSet.close(); - } catch (SQLException ignored) { - } - } - if (preparedStatement != null) { - try { - preparedStatement.close(); - } catch (SQLException ignored) { - } - } - } - Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() { - @Override - public void run() { - if (plugin.getLM().getNormalKills() != null) { - plugin.getTOP().createTop(plugin.getLM().getNormalKills(), BoardType.NORMAL_KILLS); - } - } - }, 0); - - } - }.runTaskAsynchronously(plugin); + @Override + public void run() { + final Connection connection = getConnection(); + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + try { + final StringBuilder queryBuilder = new StringBuilder(); + queryBuilder.append("SELECT `UUID`, `Name`, `NKills` "); + queryBuilder.append("FROM `BG_Data` "); + queryBuilder.append("GROUP BY `UUID` "); + queryBuilder.append("ORDER BY `NKills` DESC LIMIT 10;"); + preparedStatement = connection.prepareStatement(queryBuilder.toString()); + resultSet = preparedStatement.executeQuery(); + while (resultSet.next()) + new Top(resultSet.getString(2), resultSet.getInt(3), BoardType.NORMAL_KILLS); + } catch (final SQLException sqlException) { + sqlException.printStackTrace(); + } finally { + if (resultSet != null) + try { + resultSet.close(); + } catch (final SQLException ignored) { + } + if (preparedStatement != null) + try { + preparedStatement.close(); + } catch (final SQLException ignored) { + } + } + Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> { + if (plugin.getLM().getNormalKills() != null) + plugin.getTOP().createTop(plugin.getLM().getNormalKills(), BoardType.NORMAL_KILLS); + }, 0); + + } + }.runTaskAsynchronously(plugin); } - + public void loadNormalWins() { new BukkitRunnable() { - @Override - public void run() { - Connection connection = getConnection(); - PreparedStatement preparedStatement = null; - ResultSet resultSet = null; - try { - StringBuilder queryBuilder = new StringBuilder(); - queryBuilder.append("SELECT `UUID`, `Name`, `NWins` "); - queryBuilder.append("FROM `BG_Data` "); - queryBuilder.append("GROUP BY `UUID` "); - queryBuilder.append("ORDER BY `NWins` DESC LIMIT 10;"); - preparedStatement = connection.prepareStatement(queryBuilder.toString()); - resultSet = preparedStatement.executeQuery(); - while (resultSet.next()) { - new Top(resultSet.getString(2), resultSet.getInt(3), BoardType.NORMAL_WINS); - } - } catch (SQLException sqlException) { - sqlException.printStackTrace(); - } finally { - if (resultSet != null) { - try { - resultSet.close(); - } catch (SQLException ignored) { - } - } - if (preparedStatement != null) { - try { - preparedStatement.close(); - } catch (SQLException ignored) { - } - } - } - Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() { - @Override - public void run() { - if (plugin.getLM().getNormalWins() != null) { - plugin.getTOP().createTop(plugin.getLM().getNormalWins(), BoardType.NORMAL_WINS); - } - } - }, 0); - } - }.runTaskAsynchronously(plugin); + @Override + public void run() { + final Connection connection = getConnection(); + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + try { + final StringBuilder queryBuilder = new StringBuilder(); + queryBuilder.append("SELECT `UUID`, `Name`, `NWins` "); + queryBuilder.append("FROM `BG_Data` "); + queryBuilder.append("GROUP BY `UUID` "); + queryBuilder.append("ORDER BY `NWins` DESC LIMIT 10;"); + preparedStatement = connection.prepareStatement(queryBuilder.toString()); + resultSet = preparedStatement.executeQuery(); + while (resultSet.next()) + new Top(resultSet.getString(2), resultSet.getInt(3), BoardType.NORMAL_WINS); + } catch (final SQLException sqlException) { + sqlException.printStackTrace(); + } finally { + if (resultSet != null) + try { + resultSet.close(); + } catch (final SQLException ignored) { + } + if (preparedStatement != null) + try { + preparedStatement.close(); + } catch (final SQLException ignored) { + } + } + Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> { + if (plugin.getLM().getNormalWins() != null) + plugin.getTOP().createTop(plugin.getLM().getNormalWins(), BoardType.NORMAL_WINS); + }, 0); + } + }.runTaskAsynchronously(plugin); } - + public void loadNormalGoals() { new BukkitRunnable() { - @Override - public void run() { - Connection connection = getConnection(); - PreparedStatement preparedStatement = null; - ResultSet resultSet = null; - try { - StringBuilder queryBuilder = new StringBuilder(); - queryBuilder.append("SELECT `UUID`, `Name`, `NGoals` "); - queryBuilder.append("FROM `BG_Data` "); - queryBuilder.append("GROUP BY `UUID` "); - queryBuilder.append("ORDER BY `NGoals` DESC LIMIT 10;"); - preparedStatement = connection.prepareStatement(queryBuilder.toString()); - resultSet = preparedStatement.executeQuery(); - while (resultSet.next()) { - new Top(resultSet.getString(2), resultSet.getInt(3), BoardType.NORMAL_GOALS); - } - } catch (SQLException sqlException) { - sqlException.printStackTrace(); - } finally { - if (resultSet != null) { - try { - resultSet.close(); - } catch (SQLException ignored) { - } - } - if (preparedStatement != null) { - try { - preparedStatement.close(); - } catch (SQLException ignored) { - } - } - } - Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() { - @Override - public void run() { - if (plugin.getLM().getNormalGoals() != null) { - plugin.getTOP().createTop(plugin.getLM().getNormalGoals(), BoardType.NORMAL_GOALS); - } - } - }, 0); - } - }.runTaskAsynchronously(plugin); + @Override + public void run() { + final Connection connection = getConnection(); + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + try { + final StringBuilder queryBuilder = new StringBuilder(); + queryBuilder.append("SELECT `UUID`, `Name`, `NGoals` "); + queryBuilder.append("FROM `BG_Data` "); + queryBuilder.append("GROUP BY `UUID` "); + queryBuilder.append("ORDER BY `NGoals` DESC LIMIT 10;"); + preparedStatement = connection.prepareStatement(queryBuilder.toString()); + resultSet = preparedStatement.executeQuery(); + while (resultSet.next()) + new Top(resultSet.getString(2), resultSet.getInt(3), BoardType.NORMAL_GOALS); + } catch (final SQLException sqlException) { + sqlException.printStackTrace(); + } finally { + if (resultSet != null) + try { + resultSet.close(); + } catch (final SQLException ignored) { + } + if (preparedStatement != null) + try { + preparedStatement.close(); + } catch (final SQLException ignored) { + } + } + Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> { + if (plugin.getLM().getNormalGoals() != null) + plugin.getTOP().createTop(plugin.getLM().getNormalGoals(), BoardType.NORMAL_GOALS); + }, 0); + } + }.runTaskAsynchronously(plugin); } - + public void loadFourKills() { new BukkitRunnable() { - @Override - public void run() { - Connection connection = getConnection(); - PreparedStatement preparedStatement = null; - ResultSet resultSet = null; - try { - StringBuilder queryBuilder = new StringBuilder(); - queryBuilder.append("SELECT `UUID`, `Name`, `FKills` "); - queryBuilder.append("FROM `BG_Data` "); - queryBuilder.append("GROUP BY `UUID` "); - queryBuilder.append("ORDER BY `FKills` DESC LIMIT 10;"); - preparedStatement = connection.prepareStatement(queryBuilder.toString()); - resultSet = preparedStatement.executeQuery(); - while (resultSet.next()) { - new Top(resultSet.getString(2), resultSet.getInt(3), BoardType.FOUR_KILLS); - } - } catch (SQLException sqlException) { - sqlException.printStackTrace(); - } finally { - if (resultSet != null) { - try { - resultSet.close(); - } catch (SQLException ignored) { - } - } - if (preparedStatement != null) { - try { - preparedStatement.close(); - } catch (SQLException ignored) { - } - } - } - Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() { - @Override - public void run() { - if (plugin.getLM().getFourKills() != null) { - plugin.getTOP().createTop(plugin.getLM().getFourKills(), BoardType.FOUR_KILLS); - } - } - }, 0); - } - }.runTaskAsynchronously(plugin); + @Override + public void run() { + final Connection connection = getConnection(); + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + try { + final StringBuilder queryBuilder = new StringBuilder(); + queryBuilder.append("SELECT `UUID`, `Name`, `FKills` "); + queryBuilder.append("FROM `BG_Data` "); + queryBuilder.append("GROUP BY `UUID` "); + queryBuilder.append("ORDER BY `FKills` DESC LIMIT 10;"); + preparedStatement = connection.prepareStatement(queryBuilder.toString()); + resultSet = preparedStatement.executeQuery(); + while (resultSet.next()) + new Top(resultSet.getString(2), resultSet.getInt(3), BoardType.FOUR_KILLS); + } catch (final SQLException sqlException) { + sqlException.printStackTrace(); + } finally { + if (resultSet != null) + try { + resultSet.close(); + } catch (final SQLException ignored) { + } + if (preparedStatement != null) + try { + preparedStatement.close(); + } catch (final SQLException ignored) { + } + } + Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> { + if (plugin.getLM().getFourKills() != null) + plugin.getTOP().createTop(plugin.getLM().getFourKills(), BoardType.FOUR_KILLS); + }, 0); + } + }.runTaskAsynchronously(plugin); } - + public void loadFourWins() { new BukkitRunnable() { - @Override - public void run() { - Connection connection = getConnection(); - PreparedStatement preparedStatement = null; - ResultSet resultSet = null; - try { - StringBuilder queryBuilder = new StringBuilder(); - queryBuilder.append("SELECT `UUID`, `Name`, `FWins` "); - queryBuilder.append("FROM `BG_Data` "); - queryBuilder.append("GROUP BY `UUID` "); - queryBuilder.append("ORDER BY `FWins` DESC LIMIT 10;"); - preparedStatement = connection.prepareStatement(queryBuilder.toString()); - resultSet = preparedStatement.executeQuery(); - while (resultSet.next()) { - new Top(resultSet.getString(2), resultSet.getInt(3), BoardType.FOUR_WINS); - } - } catch (SQLException sqlException) { - sqlException.printStackTrace(); - } finally { - if (resultSet != null) { - try { - resultSet.close(); - } catch (SQLException ignored) { - } - } - if (preparedStatement != null) { - try { - preparedStatement.close(); - } catch (SQLException ignored) { - } - } - } - Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() { - @Override - public void run() { - if (plugin.getLM().getFourWins() != null) { - plugin.getTOP().createTop(plugin.getLM().getFourWins(), BoardType.FOUR_WINS); - } - } - }, 0); - } - }.runTaskAsynchronously(plugin); + @Override + public void run() { + final Connection connection = getConnection(); + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + try { + final StringBuilder queryBuilder = new StringBuilder(); + queryBuilder.append("SELECT `UUID`, `Name`, `FWins` "); + queryBuilder.append("FROM `BG_Data` "); + queryBuilder.append("GROUP BY `UUID` "); + queryBuilder.append("ORDER BY `FWins` DESC LIMIT 10;"); + preparedStatement = connection.prepareStatement(queryBuilder.toString()); + resultSet = preparedStatement.executeQuery(); + while (resultSet.next()) + new Top(resultSet.getString(2), resultSet.getInt(3), BoardType.FOUR_WINS); + } catch (final SQLException sqlException) { + sqlException.printStackTrace(); + } finally { + if (resultSet != null) + try { + resultSet.close(); + } catch (final SQLException ignored) { + } + if (preparedStatement != null) + try { + preparedStatement.close(); + } catch (final SQLException ignored) { + } + } + Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> { + if (plugin.getLM().getFourWins() != null) + plugin.getTOP().createTop(plugin.getLM().getFourWins(), BoardType.FOUR_WINS); + }, 0); + } + }.runTaskAsynchronously(plugin); } - + public void loadFourGoals() { new BukkitRunnable() { - @Override - public void run() { - Connection connection = getConnection(); - PreparedStatement preparedStatement = null; - ResultSet resultSet = null; - try { - StringBuilder queryBuilder = new StringBuilder(); - queryBuilder.append("SELECT `UUID`, `Name`, `FGoals` "); - queryBuilder.append("FROM `BG_Data` "); - queryBuilder.append("GROUP BY `UUID` "); - queryBuilder.append("ORDER BY `FGoals` DESC LIMIT 10;"); - preparedStatement = connection.prepareStatement(queryBuilder.toString()); - resultSet = preparedStatement.executeQuery(); - while (resultSet.next()) { - new Top(resultSet.getString(2), resultSet.getInt(3), BoardType.FOUR_GOALS); - } - } catch (SQLException sqlException) { - sqlException.printStackTrace(); - } finally { - if (resultSet != null) { - try { - resultSet.close(); - } catch (SQLException ignored) { - } - } - if (preparedStatement != null) { - try { - preparedStatement.close(); - } catch (SQLException ignored) { - } - } - } - Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() { - @Override - public void run() { - if (plugin.getLM().getFourGoals() != null) { - plugin.getTOP().createTop(plugin.getLM().getFourGoals(), BoardType.FOUR_GOALS); - } - } - }, 0); - } - }.runTaskAsynchronously(plugin); + @Override + public void run() { + final Connection connection = getConnection(); + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + try { + final StringBuilder queryBuilder = new StringBuilder(); + queryBuilder.append("SELECT `UUID`, `Name`, `FGoals` "); + queryBuilder.append("FROM `BG_Data` "); + queryBuilder.append("GROUP BY `UUID` "); + queryBuilder.append("ORDER BY `FGoals` DESC LIMIT 10;"); + preparedStatement = connection.prepareStatement(queryBuilder.toString()); + resultSet = preparedStatement.executeQuery(); + while (resultSet.next()) + new Top(resultSet.getString(2), resultSet.getInt(3), BoardType.FOUR_GOALS); + } catch (final SQLException sqlException) { + sqlException.printStackTrace(); + } finally { + if (resultSet != null) + try { + resultSet.close(); + } catch (final SQLException ignored) { + } + if (preparedStatement != null) + try { + preparedStatement.close(); + } catch (final SQLException ignored) { + } + } + Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> { + if (plugin.getLM().getFourGoals() != null) + plugin.getTOP().createTop(plugin.getLM().getFourGoals(), BoardType.FOUR_GOALS); + }, 0); + } + }.runTaskAsynchronously(plugin); } - - public void createNewPlayer(String fId, String name) { - PreparedStatement preparedStatement = null; - try { - StringBuilder queryBuilder = new StringBuilder(); - queryBuilder.append("INSERT INTO `BG_Data` "); - queryBuilder.append("(`UUID`, `Name`, `Coins`, `NKills`, `NWins`, `NGoals`, `FKills`, `FWins`, `FGoals`, `Inventory`, `XP`, `Placed`, `Broken`) "); - queryBuilder.append("VALUES "); - queryBuilder.append("(?, ?, 0, 0, 0, 0, 0, 0, 0, ?, 0, 0, 0);"); - preparedStatement = connection.prepareStatement(queryBuilder.toString()); - preparedStatement.setString(1, fId); - preparedStatement.setString(2, name); - preparedStatement.setString(3, "none"); - preparedStatement.executeUpdate(); - } catch (final SQLException sqlException) { - sqlException.printStackTrace(); - } finally { - if (preparedStatement != null) { - try { - preparedStatement.close(); - } catch (final SQLException ignored) { - } - } - } - } + public void createNewPlayer(String fId, String name) { + PreparedStatement preparedStatement = null; + try { + final StringBuilder queryBuilder = new StringBuilder(); + queryBuilder.append("INSERT INTO `BG_Data` "); + queryBuilder.append("(`UUID`, `Name`, `Coins`, `NKills`, `NWins`, `NGoals`, `FKills`, `FWins`, `FGoals`, `Inventory`, `XP`, `Placed`, `Broken`) "); + queryBuilder.append("VALUES "); + queryBuilder.append("(?, ?, 0, 0, 0, 0, 0, 0, 0, ?, 0, 0, 0);"); + preparedStatement = connection.prepareStatement(queryBuilder.toString()); + preparedStatement.setString(1, fId); + preparedStatement.setString(2, name); + preparedStatement.setString(3, "none"); + preparedStatement.executeUpdate(); + } catch (final SQLException sqlException) { + sqlException.printStackTrace(); + + } finally { + if (preparedStatement != null) + try { + preparedStatement.close(); + } catch (final SQLException ignored) { + } + } + } public boolean hasPlayer(Player p, String uuid) { - PreparedStatement statement = null; - try { - statement = this.connection.prepareStatement("SELECT UUID FROM BG_Data WHERE UUID ='" + uuid + "'"); - ResultSet result = statement.executeQuery(); - if (result.next()) { - return true; - } - } catch (SQLException e) { - e.printStackTrace(); - if (statement != null) { - try { - statement.close(); - } - catch (SQLException e2) { - e2.printStackTrace(); - } - return false; - } - return false; - } finally { - if (statement != null) { - try { - statement.close(); - } - catch (SQLException e2) { - e2.printStackTrace(); - } - } - } - if (statement != null) { - try { - statement.close(); - } - catch (SQLException e2) { - e2.printStackTrace(); - } - } - return false; - } - - public void loadData(PlayerStat stat) { - new BukkitRunnable() { + PreparedStatement statement = null; + try { + statement = this.connection.prepareStatement("SELECT UUID FROM BG_Data WHERE UUID ='" + uuid + "'"); + final ResultSet result = statement.executeQuery(); + if (result.next()) + return true; + } catch (final SQLException e) { + e.printStackTrace(); + if (statement != null) { + try { + statement.close(); + } + catch (final SQLException e2) { + e2.printStackTrace(); + } + return false; + } + return false; + } finally { + if (statement != null) + try { + statement.close(); + } + catch (final SQLException e2) { + e2.printStackTrace(); + } + } + if (statement != null) + try { + statement.close(); + } + catch (final SQLException e2) { + e2.printStackTrace(); + } + return false; + } + + public void loadData(PlayerStat stat) { + new BukkitRunnable() { @Override - public void run() { - Connection connection = getConnection(); - if (!hasPlayer(stat.getPlayer(), stat.getUUID())) { - createNewPlayer(stat.getUUID(), stat.getPlayer().getName()); - loadData(stat); - return; - } - PreparedStatement preparedStatement = null; - ResultSet resultSet = null; - try { - StringBuilder queryBuilder = new StringBuilder(); - queryBuilder.append("SELECT `NKills`, `NWins`, `NGoals`, `FKills`, `FWins`, `FGoals`, `Coins`, `Inventory`, `XP`, `Placed`, `Broken` "); - queryBuilder.append("FROM `BG_Data` "); - queryBuilder.append("WHERE `UUID` = ? "); - queryBuilder.append("LIMIT 1;"); - preparedStatement = connection.prepareStatement(queryBuilder.toString()); - preparedStatement.setString(1, stat.getUUID().toString()); - resultSet = preparedStatement.executeQuery(); - if (resultSet != null && resultSet.next()) { + public void run() { + final Connection connection = getConnection(); + if (!hasPlayer(stat.getPlayer(), stat.getUUID())) { + createNewPlayer(stat.getUUID(), stat.getPlayer().getName()); + loadData(stat); + return; + } + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + try { + final StringBuilder queryBuilder = new StringBuilder(); + queryBuilder.append("SELECT `NKills`, `NWins`, `NGoals`, `FKills`, `FWins`, `FGoals`, `Coins`, `Inventory`, `XP`, `Placed`, `Broken` "); + queryBuilder.append("FROM `BG_Data` "); + queryBuilder.append("WHERE `UUID` = ? "); + queryBuilder.append("LIMIT 1;"); + preparedStatement = connection.prepareStatement(queryBuilder.toString()); + preparedStatement.setString(1, stat.getUUID().toString()); + resultSet = preparedStatement.executeQuery(); + if (resultSet != null && resultSet.next()) { stat.setNormalKills(resultSet.getInt("NKills")); stat.setNormalWins(resultSet.getInt("NWins")); stat.setNormalGoals(resultSet.getInt("NGoals")); @@ -449,122 +401,110 @@ public class Database { stat.setFourWins(resultSet.getInt("FWins")); stat.setFourGoals(resultSet.getInt("FGoals")); stat.setCoins(resultSet.getInt("Coins")); - if (!resultSet.getString("Inventory").equals("none")) { + if (!resultSet.getString("Inventory").equals("none")) try { stat.setHotbar(plugin.getKit().fromBase64(resultSet.getString("Inventory")).getContents()); - } catch (IOException e) { + } catch (final IOException e) { e.printStackTrace(); } - } else { + else stat.setHotbar(null); - } stat.setXP(resultSet.getInt("XP")); stat.setPlaced(resultSet.getInt("Placed")); stat.setBroken(resultSet.getInt("Broken")); - Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() { - @Override - public void run() { - plugin.getTOP().createInfo(stat.getPlayer()); - plugin.getSB().createLobbyBoard(stat.getPlayer()); - for (Player on : plugin.getSB().getSB().keySet()) { - plugin.getSB().update(on); - } - } + Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> { + plugin.getTOP().createInfo(stat.getPlayer()); + plugin.getSB().createLobbyBoard(stat.getPlayer()); + for (final Player on : plugin.getSB().getSB().keySet()) + plugin.getSB().update(on); }, 0); - } - } catch (SQLException sqlException) { - sqlException.printStackTrace(); - } finally { - if (resultSet != null) { - try { - resultSet.close(); - } catch (SQLException ignored) { - } - } - if (preparedStatement != null) { - try { - preparedStatement.close(); - } catch (SQLException ignored) { - } - } - } - } - }.runTaskAsynchronously(plugin); - } - - public void saveData(PlayerStat stat) { - checkConnection(); - Connection connection = getConnection(); - PreparedStatement preparedStatement = null; - try { - StringBuilder queryBuilder = new StringBuilder(); - queryBuilder.append("UPDATE `BG_Data` SET "); - queryBuilder.append("`NKills` = ?, `NWins` = ?, `NGoals` = ?, `FKills` = ?, `FWins` = ?, `FGoals` = ?, `Coins` = ?, `Inventory` = ?, `XP` = ?, `Placed` = ?, `Broken` = ? "); - queryBuilder.append("WHERE `UUID` = ?;"); - preparedStatement = connection.prepareStatement(queryBuilder.toString()); - preparedStatement.setInt(1, stat.getNormalKills()); - preparedStatement.setInt(2, stat.getNormalWins()); - preparedStatement.setInt(3, stat.getNormalGoals()); - preparedStatement.setInt(4, stat.getFourKills()); - preparedStatement.setInt(5, stat.getFourWins()); - preparedStatement.setInt(6, stat.getFourGoals()); - preparedStatement.setInt(7, stat.getCoins()); - if (stat.getHotbar() != null) { - preparedStatement.setString(8, plugin.getKit().itemStackArrayToBase64(stat.getHotbar())); - } else { - preparedStatement.setString(8, "none"); - } - preparedStatement.setInt(9, stat.getXP()); - preparedStatement.setInt(10, stat.getPlaced()); - preparedStatement.setInt(11, stat.getBroken()); - preparedStatement.setString(12, stat.getUUID()); - preparedStatement.executeUpdate(); - } catch (SQLException sqlException) { - sqlException.printStackTrace(); + } + } catch (final SQLException sqlException) { + sqlException.printStackTrace(); + } finally { + if (resultSet != null) + try { + resultSet.close(); + } catch (final SQLException ignored) { + } + if (preparedStatement != null) + try { + preparedStatement.close(); + } catch (final SQLException ignored) { + } + } + } + }.runTaskAsynchronously(plugin); + } + + public void saveData(PlayerStat stat) { + checkConnection(); + final Connection connection = getConnection(); + PreparedStatement preparedStatement = null; + try { + final StringBuilder queryBuilder = new StringBuilder(); + queryBuilder.append("UPDATE `BG_Data` SET "); + queryBuilder.append("`NKills` = ?, `NWins` = ?, `NGoals` = ?, `FKills` = ?, `FWins` = ?, `FGoals` = ?, `Coins` = ?, `Inventory` = ?, `XP` = ?, `Placed` = ?, `Broken` = ? "); + queryBuilder.append("WHERE `UUID` = ?;"); + preparedStatement = connection.prepareStatement(queryBuilder.toString()); + preparedStatement.setInt(1, stat.getNormalKills()); + preparedStatement.setInt(2, stat.getNormalWins()); + preparedStatement.setInt(3, stat.getNormalGoals()); + preparedStatement.setInt(4, stat.getFourKills()); + preparedStatement.setInt(5, stat.getFourWins()); + preparedStatement.setInt(6, stat.getFourGoals()); + preparedStatement.setInt(7, stat.getCoins()); + if (stat.getHotbar() != null) + preparedStatement.setString(8, plugin.getKit().itemStackArrayToBase64(stat.getHotbar())); + else + preparedStatement.setString(8, "none"); + preparedStatement.setInt(9, stat.getXP()); + preparedStatement.setInt(10, stat.getPlaced()); + preparedStatement.setInt(11, stat.getBroken()); + preparedStatement.setString(12, stat.getUUID()); + preparedStatement.executeUpdate(); + } catch (final SQLException sqlException) { + sqlException.printStackTrace(); + + } finally { + if (preparedStatement != null) + try { + preparedStatement.close(); + } catch (final SQLException ignored) { + } + } + } + + public Connection getConnection() { + return connection; + } + + public void newTables() { + final Connection connection = getConnection(); + try { + final Statement statement = connection.createStatement(); + try { + statement.executeUpdate("CREATE TABLE IF NOT EXISTS BG_Data (UUID VARCHAR(60), Name VARCHAR(60), NKills INT, NWins INT, NGoals INT, FKills INT, FWins INT, FGoals INT, Coins INT, Inventory TEXT, XP INT, Placed INT, Broken INT, Cage TEXT)"); + } catch (final SQLException ex) { + try { + if (statement != null) + statement.close(); + } catch (final SQLException ex2) { + } + return; + } finally { + try { + if (statement != null) + statement.close(); + } catch (final SQLException ex3) { + } + } try { + if (statement != null) + statement.close(); + } catch (final SQLException ex4) { + } + } catch (final SQLException ex5) { + } + } - } finally { - if (preparedStatement != null) { - try { - preparedStatement.close(); - } catch (SQLException ignored) { - } - } - } - } - - public Connection getConnection() { - return connection; - } - - public void newTables() { - Connection connection = getConnection(); - try { - Statement statement = connection.createStatement(); - try { - statement.executeUpdate("CREATE TABLE IF NOT EXISTS BG_Data (UUID VARCHAR(60), Name VARCHAR(60), NKills INT, NWins INT, NGoals INT, FKills INT, FWins INT, FGoals INT, Coins INT, Inventory TEXT, XP INT, Placed INT, Broken INT, Cage TEXT)"); - } catch (SQLException ex) { - try { - if (statement != null) { - statement.close(); - } - } catch (SQLException ex2) { - } - return; - } finally { - try { - if (statement != null) { - statement.close(); - } - } catch (SQLException ex3) { - } - } try { - if (statement != null) { - statement.close(); - } - } catch (SQLException ex4) { - } - } catch (SQLException ex5) { - } - } - } \ No newline at end of file diff --git a/MultiArena-TheBridge/src/cx/sfy/TheBridge/listeners/PlayerListener.java b/MultiArena-TheBridge/src/cx/sfy/TheBridge/listeners/PlayerListener.java index 17c7698..ea0ac73 100644 --- a/MultiArena-TheBridge/src/cx/sfy/TheBridge/listeners/PlayerListener.java +++ b/MultiArena-TheBridge/src/cx/sfy/TheBridge/listeners/PlayerListener.java @@ -2,6 +2,7 @@ package cx.sfy.TheBridge.listeners; import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -26,6 +27,7 @@ import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryCloseEvent; import org.bukkit.event.inventory.InventoryType.SlotType; import org.bukkit.event.player.AsyncPlayerChatEvent; +import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerItemConsumeEvent; @@ -73,6 +75,23 @@ public class PlayerListener implements Listener { Utils.setPlayerExperience(p, PlayerStat.getPlayerStat(p).getXP()); } + @EventHandler + public void onCommand(PlayerCommandPreprocessEvent e) { + if (plugin.getGM().getGameByPlayer(e.getPlayer()) != null + || plugin.getGM().getGameFourByPlayer(e.getPlayer()) != null) { + final List cmds = plugin.getConfig().getStringList("commands.list"); + if (e.getMessage().contains("/bridges")) + return; + if (plugin.getConfig().getBoolean("commands.whitelist") == true) { + if (cmds.contains(e.getMessage())) + return; + } else if (plugin.getConfig().getBoolean("commands.whitelist") == false) + if (!cmds.contains(e.getMessage())) + e.setCancelled(true); + e.setCancelled(true); + } + } + public void givePlayerItems(Player p) { final ItemStack select = ItemBuilder.item(Material.valueOf(plugin.getConfig().getString("items.menu.material")), plugin.getConfig().getInt("items.menu.amount"), (short) plugin.getConfig().getInt("items.menu.data"), @@ -386,7 +405,8 @@ public class PlayerListener implements Listener { if (!game.getTeams().get(ChatColor.RED).getDeath() && !game.getTeamPlayer(p).getColor().equals(ChatColor.RED) && game.getTeams().get(ChatColor.RED).getPortal() - .contains(p.getLocation().getBlock().getLocation()) && wait == false) { + .contains(p.getLocation().getBlock().getLocation()) + && wait == false) { game.celebrateGoal(game.getTeamPlayer(p), game.getTeams().get(ChatColor.RED), p); wait = true; return; @@ -394,7 +414,8 @@ public class PlayerListener implements Listener { if (!game.getTeams().get(ChatColor.BLUE).getDeath() && !game.getTeamPlayer(p).getColor().equals(ChatColor.BLUE) && game.getTeams().get(ChatColor.BLUE).getPortal() - .contains(p.getLocation().getBlock().getLocation()) && wait == false) { + .contains(p.getLocation().getBlock().getLocation()) + && wait == false) { game.celebrateGoal(game.getTeamPlayer(p), game.getTeams().get(ChatColor.BLUE), p); wait = true; return; @@ -402,7 +423,8 @@ public class PlayerListener implements Listener { if (!game.getTeams().get(ChatColor.YELLOW).getDeath() && !game.getTeamPlayer(p).getColor().equals(ChatColor.YELLOW) && game.getTeams().get(ChatColor.YELLOW).getPortal() - .contains(p.getLocation().getBlock().getLocation()) && wait == false) { + .contains(p.getLocation().getBlock().getLocation()) + && wait == false) { game.celebrateGoal(game.getTeamPlayer(p), game.getTeams().get(ChatColor.YELLOW), p); wait = true; return; @@ -410,7 +432,8 @@ public class PlayerListener implements Listener { if (!game.getTeams().get(ChatColor.GREEN).getDeath() && !game.getTeamPlayer(p).getColor().equals(ChatColor.GREEN) && game.getTeams().get(ChatColor.GREEN).getPortal() - .contains(p.getLocation().getBlock().getLocation()) && wait == false) { + .contains(p.getLocation().getBlock().getLocation()) + && wait == false) { game.celebrateGoal(game.getTeamPlayer(p), game.getTeams().get(ChatColor.GREEN), p); wait = true; return; @@ -1017,7 +1040,8 @@ public class PlayerListener implements Listener { final Player d = (Player) e.getDamager(); if (plugin.getGM().getGameByPlayer(p) != null) { final Game game = plugin.getGM().getGameByPlayer(p); - if (game.isState(State.WAITING) || game.isState(State.STARTING) || game.isState(State.PREGAME)) { + if (game.isState(State.WAITING) || game.isState(State.STARTING) || game.isState(State.PREGAME) + || game.isState(State.RESTARTING) || game.isState(State.FINISH)) { e.setCancelled(true); return; } @@ -1033,7 +1057,9 @@ public class PlayerListener implements Listener { } if (plugin.getGM().getGameFourByPlayer(p) != null) { final GameFour game = plugin.getGM().getGameFourByPlayer(p); - if (game.isState(FState.WAITING) || game.isState(FState.STARTING) || game.isState(FState.PREGAME)) { + if (game.isState(FState.WAITING) || game.isState(FState.STARTING) || game.isState(FState.PREGAME) + || game.isState(FState.PREGAME) + || game.isState(FState.RESTARTING) || game.isState(FState.FINISH)) { e.setCancelled(true); return; } diff --git a/MultiArena-TheBridge/src/cx/sfy/TheBridge/managers/GameManager.java b/MultiArena-TheBridge/src/cx/sfy/TheBridge/managers/GameManager.java index 4866ad9..1690874 100644 --- a/MultiArena-TheBridge/src/cx/sfy/TheBridge/managers/GameManager.java +++ b/MultiArena-TheBridge/src/cx/sfy/TheBridge/managers/GameManager.java @@ -38,7 +38,7 @@ public class GameManager { this.playerGameFour = new HashMap(); this.kit = Bukkit.getServer().createInventory(null, InventoryType.PLAYER); if (plugin.getConfig().getString("kit") == null) { - Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "No hay un kit establecido. Usa " + ChatColor.YELLOW + "/bridges setkit"); + Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "You don't have a kit setted. Use " + ChatColor.YELLOW + "/bridges setkit"); } else { try { kit.setContents(plugin.getKit().fromBase64(plugin.getConfig().getString("kit")).getContents()); @@ -77,10 +77,10 @@ public class GameManager { FileConfiguration yml = YamlConfiguration.loadConfiguration(arena); String name = yml.getString("name"); if (yml.getString("locations.lobby") == null) { - Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.RED + "El mapa " + ChatColor.YELLOW + name + " " + ChatColor.RED + "no tiene seteado el Lobby."); + Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.RED + "The map " + ChatColor.YELLOW + name + " " + ChatColor.RED + "doens't have a lobby point setted."); } if (yml.getString("locations.spect") == null) { - Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.RED + "El mapa " + ChatColor.YELLOW + name + " " + ChatColor.RED + "no tiene seteado el Spectador."); + Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.RED + "The map " + ChatColor.YELLOW + name + " " + ChatColor.RED + "doesn't have spectate point setted."); } Location hRed = null; Location hBlue = null; @@ -188,11 +188,11 @@ public class GameManager { if (yml.getString("mode").toLowerCase().equals("normal")) { String name = yml.getString("name"); if (yml.getString("locations.lobby") == null) { - Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.RED + "El mapa " + ChatColor.YELLOW + name + " " + ChatColor.RED + "no tiene seteado el Lobby."); + Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.RED + "The map " + ChatColor.YELLOW + name + " " + ChatColor.RED + "doens't have a lobby point setted."); continue; } if (yml.getString("locations.spect") == null) { - Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.RED + "El mapa " + ChatColor.YELLOW + name + " " + ChatColor.RED + "no tiene seteado el Spectador."); + Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.RED + "The map " + ChatColor.YELLOW + name + " " + ChatColor.RED + "doesn't have spectate point setted."); continue; } plugin.getWC().resetWorld(name);