Browse Source

Added command whitelist and fixed some random bugs

for/master
pintu 5 years ago
parent
commit
1fa72c1ea5
  1. 2
      MultiArena-TheBridge/src/cx/sfy/TheBridge/controllers/WorldController.java
  2. 936
      MultiArena-TheBridge/src/cx/sfy/TheBridge/database/Database.java
  3. 38
      MultiArena-TheBridge/src/cx/sfy/TheBridge/listeners/PlayerListener.java
  4. 10
      MultiArena-TheBridge/src/cx/sfy/TheBridge/managers/GameManager.java

2
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) {

936
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) {
}
}
}

38
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<String> 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;
}

10
MultiArena-TheBridge/src/cx/sfy/TheBridge/managers/GameManager.java

@ -38,7 +38,7 @@ public class GameManager {
this.playerGameFour = new HashMap<Player, GameFour>();
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);

Loading…
Cancel
Save