From 45cd3bd37a2a2eca29e8a7b9a5127c6b57e34e23 Mon Sep 17 00:00:00 2001 From: Vestri Date: Sat, 8 Aug 2020 18:47:37 +0200 Subject: [PATCH] cleaned code removed unused stuff --- plugin.yml | 2 +- src/pts/java/ConfigManager.java | 50 ++------------------- src/pts/java/PlayertoSql.java | 21 ++++----- src/pts/java/api/PlayerManagement.java | 28 ++++++++---- src/pts/java/command/CommandSavePlayer.java | 4 +- src/pts/java/database/DatabaseManager.java | 38 ++++++++-------- src/pts/java/event/PlayerJoin.java | 1 - src/pts/java/event/PlayerQuit.java | 4 +- src/pts/java/player/AutosaveManager.java | 34 +------------- src/pts/java/player/ItemManager.java | 1 - src/pts/java/player/PlayerManager.java | 8 ++-- 11 files changed, 64 insertions(+), 127 deletions(-) diff --git a/plugin.yml b/plugin.yml index e62b5d5..fd5bedc 100644 --- a/plugin.yml +++ b/plugin.yml @@ -1,7 +1,7 @@ name: PlayertoSql author: Vestri description: Plugin Player to Sql -version: 0.31 +version: 1.0 api-version: 1.15 main: pts.java.PlayertoSql depend: [ProtocolLib] diff --git a/src/pts/java/ConfigManager.java b/src/pts/java/ConfigManager.java index 95099ed..0fcd0a7 100644 --- a/src/pts/java/ConfigManager.java +++ b/src/pts/java/ConfigManager.java @@ -36,51 +36,9 @@ protected static void loadConfig() } //get values - joinLoadDelay = getConfigValueInt("general.loaddelay"); - playerFile = getConfigValueBool("general.playerfile"); - autosaveInterval = getConfigValueInt("general.autosaveinterval"); - playercreate = getConfigValueBool("general.playercreate"); - } - - //try to get String value - public static String getConfigValueString(String value) - { - if (!PlayertoSql.getInstance().getConfig().contains(value)) - { - PlayertoSql.getInstance().getLogger().severe("Value: " + value + " not found in config.yml of" + PlayertoSql.getInstance().getName()); - return "ValueNotFound"; - } - else - { - return PlayertoSql.getInstance().getConfig().getString(value); - } - } - - //try to get Int value - public static int getConfigValueInt(String value) - { - if (!PlayertoSql.getInstance().getConfig().contains(value)) - { - PlayertoSql.getInstance().getLogger().severe("Value: " + value + " not found in config.yml of" + PlayertoSql.getInstance().getName()); - return 0; - } - else - { - return PlayertoSql.getInstance().getConfig().getInt(value); - } - } - - //try to get Boolean - public static Boolean getConfigValueBool(String value) - { - if (!PlayertoSql.getInstance().getConfig().contains(value)) - { - PlayertoSql.getInstance().getLogger().severe("Value: " + value + " not found in config.yml of" + PlayertoSql.getInstance().getName()); - return false; - } - else - { - return PlayertoSql.getInstance().getConfig().getBoolean(value); - } + joinLoadDelay = PlayertoSql.getInstance().getConfig().getInt("general.loaddelay"); + playerFile = PlayertoSql.getInstance().getConfig().getBoolean("general.playerfile"); + autosaveInterval = PlayertoSql.getInstance().getConfig().getInt("general.autosaveinterval"); + playercreate = PlayertoSql.getInstance().getConfig().getBoolean("general.playercreate"); } } diff --git a/src/pts/java/PlayertoSql.java b/src/pts/java/PlayertoSql.java index b5c2be9..f170e2e 100644 --- a/src/pts/java/PlayertoSql.java +++ b/src/pts/java/PlayertoSql.java @@ -22,6 +22,16 @@ public class PlayertoSql extends JavaPlugin static PlayerManager playerManager; + public static PlayertoSql getInstance() + { + return instance; + } + + public PlayerManager getPlayerManager() + { + return playerManager; + } + //on enable plugin load config reg events and commands check if autosave an start it public void onEnable() { @@ -34,7 +44,7 @@ public void onEnable() new PlayerManagement(); regEvents(); regCommands(); - if (ConfigManager.getConfigValueBool("general.autosave")) + if (getConfig().getBoolean("general.autosave")) { autosaveManager = new AutosaveManager(); } @@ -77,13 +87,4 @@ public void onDisable() Bukkit.getLogger().info("[PlayertoSql] has been disabled!"); } - public static PlayertoSql getInstance() - { - return instance; - } - - public PlayerManager getPlayerManager() - { - return playerManager; - } } diff --git a/src/pts/java/api/PlayerManagement.java b/src/pts/java/api/PlayerManagement.java index 3b92729..1597eaf 100644 --- a/src/pts/java/api/PlayerManagement.java +++ b/src/pts/java/api/PlayerManagement.java @@ -17,6 +17,7 @@ public static PlayerManagement getInstance() { return instance; } + //check if player is not on disabledPlayerSaved list //if not then start a task with 1 tick delay to save player @SuppressWarnings("unused") @@ -24,18 +25,20 @@ public boolean savePlayerSync(Player p) { if (!PlayertoSql.getInstance().getPlayerManager().disabledPlayerSaved.contains(p.getUniqueId())) { - Bukkit.getScheduler().runTask(PlayertoSql.getInstance(), ()-> PlayertoSql.getInstance().getPlayerManager().savePlayer(p, p.getInventory().getStorageContents(), p.getInventory().getArmorContents(), p.getInventory().getExtraContents(), p.getEnderChest().getContents(),false,"api async")); + Bukkit.getScheduler().runTask(PlayertoSql.getInstance(), () -> PlayertoSql.getInstance().getPlayerManager().savePlayer(p, p.getInventory().getStorageContents(), p.getInventory().getArmorContents(), p.getInventory().getExtraContents(), p.getEnderChest().getContents(), false, "api async")); return true; } return false; } + //start a task with 1 tick delay to save player @SuppressWarnings("unused") public boolean savePlayerIgnoreDisableSync(Player p) { - Bukkit.getScheduler().runTask(PlayertoSql.getInstance(), ()-> PlayertoSql.getInstance().getPlayerManager().savePlayer(p, p.getInventory().getStorageContents(), p.getInventory().getArmorContents(), p.getInventory().getExtraContents(), p.getEnderChest().getContents(),true,"api async")); + Bukkit.getScheduler().runTask(PlayertoSql.getInstance(), () -> PlayertoSql.getInstance().getPlayerManager().savePlayer(p, p.getInventory().getStorageContents(), p.getInventory().getArmorContents(), p.getInventory().getExtraContents(), p.getEnderChest().getContents(), true, "api async")); return true; } + //check if player is not on disabledPlayerSaved list //if not then start a async task to save player @SuppressWarnings("unused") @@ -44,19 +47,21 @@ public boolean savePlayerAsync(Player p) if (!PlayertoSql.getInstance().getPlayerManager().disabledPlayerSaved.contains(p.getUniqueId())) { Bukkit.getScheduler().runTaskAsynchronously(PlayertoSql.getInstance(), () -> - PlayertoSql.getInstance().getPlayerManager().savePlayer(p, p.getInventory().getStorageContents(), p.getInventory().getArmorContents(), p.getInventory().getExtraContents(), p.getEnderChest().getContents(),false,"api sync")); + PlayertoSql.getInstance().getPlayerManager().savePlayer(p, p.getInventory().getStorageContents(), p.getInventory().getArmorContents(), p.getInventory().getExtraContents(), p.getEnderChest().getContents(), false, "api sync")); return true; } return false; } + //start a async task to save player @SuppressWarnings("unused") public boolean savePlayerIgnoreDisableAsync(Player p) { Bukkit.getScheduler().runTaskAsynchronously(PlayertoSql.getInstance(), () -> - PlayertoSql.getInstance().getPlayerManager().savePlayer(p, p.getInventory().getStorageContents(), p.getInventory().getArmorContents(), p.getInventory().getExtraContents(), p.getEnderChest().getContents(),true,"api sync")); + PlayertoSql.getInstance().getPlayerManager().savePlayer(p, p.getInventory().getStorageContents(), p.getInventory().getArmorContents(), p.getInventory().getExtraContents(), p.getEnderChest().getContents(), true, "api sync")); return true; } + //add player to DisablePlayerSave list @SuppressWarnings("unused") public boolean disablePlayerSave(Player p) @@ -64,6 +69,7 @@ public boolean disablePlayerSave(Player p) PlayertoSql.getInstance().getPlayerManager().addDisablePlayerSave(p.getUniqueId()); return true; } + //remove player to DisablePlayerSave list @SuppressWarnings("unused") public boolean enablePlayerSave(Player p) @@ -71,6 +77,7 @@ public boolean enablePlayerSave(Player p) PlayertoSql.getInstance().getPlayerManager().removeDisablePlayerSave(p.getUniqueId()); return true; } + //check if player is not on disabledPlayerLoaded list //if not then start a task with 1 tick delay to load player @SuppressWarnings("unused") @@ -78,35 +85,39 @@ public boolean loadPlayerSync(Player p) { if (!PlayertoSql.getInstance().getPlayerManager().disabledPlayerLoaded.contains(p.getUniqueId())) { - Bukkit.getScheduler().runTask(PlayertoSql.getInstance(), ()-> PlayertoSql.getInstance().getPlayerManager().loadPlayer(p,false)); + Bukkit.getScheduler().runTask(PlayertoSql.getInstance(), () -> PlayertoSql.getInstance().getPlayerManager().loadPlayer(p, false)); return true; } return false; } + //start a task with 1 tick delay to load player @SuppressWarnings("unused") public boolean loadPlayerIgnoreDisableSync(Player p) { - Bukkit.getScheduler().runTask(PlayertoSql.getInstance(), ()-> PlayertoSql.getInstance().getPlayerManager().loadPlayer(p,true)); + Bukkit.getScheduler().runTask(PlayertoSql.getInstance(), () -> PlayertoSql.getInstance().getPlayerManager().loadPlayer(p, true)); return true; } + //check if player is not on disabledPlayerLoaded list //if not then start a async task to load player @SuppressWarnings("unused") public boolean loadPlayerAsync(Player p) { Bukkit.getScheduler().runTaskAsynchronously(PlayertoSql.getInstance(), () -> - PlayertoSql.getInstance().getPlayerManager().loadPlayer(p,false)); + PlayertoSql.getInstance().getPlayerManager().loadPlayer(p, false)); return true; } + //start a async task to load player @SuppressWarnings("unused") public boolean loadPlayerIgnoreDisableAsync(Player p) { Bukkit.getScheduler().runTaskAsynchronously(PlayertoSql.getInstance(), () -> - PlayertoSql.getInstance().getPlayerManager().loadPlayer(p,true)); + PlayertoSql.getInstance().getPlayerManager().loadPlayer(p, true)); return true; } + //add player to DisablePlayerLoad list @SuppressWarnings("unused") public boolean disablePlayerLoad(Player p) @@ -114,6 +125,7 @@ public boolean disablePlayerLoad(Player p) PlayertoSql.getInstance().getPlayerManager().addDisablePlayerLoad(p.getUniqueId()); return true; } + //remove player to DisablePlayerLoad list @SuppressWarnings("unused") public boolean enablePlayerLoad(Player p) diff --git a/src/pts/java/command/CommandSavePlayer.java b/src/pts/java/command/CommandSavePlayer.java index ee6076f..d4a3ccd 100644 --- a/src/pts/java/command/CommandSavePlayer.java +++ b/src/pts/java/command/CommandSavePlayer.java @@ -32,13 +32,13 @@ public boolean onCommand(CommandSender commandSender, Command command, String s, if (args.length == 1) { Bukkit.getScheduler().runTaskAsynchronously(PlayertoSql.getInstance(), () -> - PlayertoSql.getInstance().getPlayerManager().savePlayer(p, p.getInventory().getContents(), p.getInventory().getArmorContents(), p.getInventory().getExtraContents(), p.getEnderChest().getContents(), false,"Command")); + PlayertoSql.getInstance().getPlayerManager().savePlayer(p, p.getInventory().getContents(), p.getInventory().getArmorContents(), p.getInventory().getExtraContents(), p.getEnderChest().getContents(), false, "Command")); return true; } //2 args save player sync 1 tick delay else if (args.length == 2) { - Bukkit.getScheduler().runTask(PlayertoSql.getInstance(), () -> PlayertoSql.getInstance().getPlayerManager().savePlayer(p, p.getInventory().getStorageContents(), p.getInventory().getArmorContents(), p.getInventory().getExtraContents(), p.getEnderChest().getContents(), false,"Command")); + Bukkit.getScheduler().runTask(PlayertoSql.getInstance(), () -> PlayertoSql.getInstance().getPlayerManager().savePlayer(p, p.getInventory().getStorageContents(), p.getInventory().getArmorContents(), p.getInventory().getExtraContents(), p.getEnderChest().getContents(), false, "Command")); return true; } } diff --git a/src/pts/java/database/DatabaseManager.java b/src/pts/java/database/DatabaseManager.java index 6ad562c..0343ab2 100644 --- a/src/pts/java/database/DatabaseManager.java +++ b/src/pts/java/database/DatabaseManager.java @@ -1,6 +1,5 @@ package pts.java.database; -import pts.java.ConfigManager; import pts.java.PlayertoSql; import pts.java.player.ItemManager; import org.bukkit.entity.Player; @@ -24,9 +23,9 @@ public class DatabaseManager static String date; - static String updateInventoryStatement = ""; - static String updateArmorStatement = ""; - static String updateEnderChestStatement = ""; + static String updateInventoryStatement; + static String updateArmorStatement; + static String updateEnderChestStatement; public static byte inventoryLength = 36; public static byte enderChestLength = 27; @@ -92,11 +91,11 @@ private void createStatementStrings() //load all config values private void loadConfigValues() { - dbname = ConfigManager.getConfigValueString("database.mysql.databaseName"); - playerTableName = ConfigManager.getConfigValueString("database.mysql.tableNameplayer"); - playerInventoryTableName = ConfigManager.getConfigValueString("database.mysql.tableNameinventory"); - playerInventoryArmorTableName = ConfigManager.getConfigValueString("database.mysql.tableNamearmor"); - playerEnderChestTableName = ConfigManager.getConfigValueString("database.mysql.tableNameenderchest"); + dbname = PlayertoSql.getInstance().getConfig().getString("database.mysql.databaseName"); + playerTableName = PlayertoSql.getInstance().getConfig().getString("database.mysql.tableNameplayer"); + playerInventoryTableName = PlayertoSql.getInstance().getConfig().getString("database.mysql.tableNameinventory"); + playerInventoryArmorTableName = PlayertoSql.getInstance().getConfig().getString("database.mysql.tableNamearmor"); + playerEnderChestTableName = PlayertoSql.getInstance().getConfig().getString("database.mysql.tableNameenderchest"); Date dt = new Date(); java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd"); @@ -106,15 +105,14 @@ private void loadConfigValues() //create connection with db private void createConnection(boolean reconnect) { - String ssl = ""; - String username = ConfigManager.getConfigValueString("database.mysql.user"); - String password = ConfigManager.getConfigValueString("database.mysql.password"); - if (ConfigManager.getConfigValueBool("database.mysql.host")) + String username = PlayertoSql.getInstance().getConfig().getString("database.mysql.user"); + String password = PlayertoSql.getInstance().getConfig().getString("database.mysql.password"); + if (PlayertoSql.getInstance().getConfig().getBoolean("database.mysql.host")) { ssl = "&sslMode=REQUIRED"; } - String server = "jdbc:mysql://" + ConfigManager.getConfigValueString("database.mysql.host") + ":" + ConfigManager.getConfigValueString("database.mysql.port") + "/" + dbname + "?autoReconnect=true&allowMultiQueries=true&rewriteBatchedStatements=true" + ssl; + String server = "jdbc:mysql://" + PlayertoSql.getInstance().getConfig().getString("database.mysql.host") + ":" + PlayertoSql.getInstance().getConfig().getString("database.mysql.port") + "/" + dbname + "?autoReconnect=true&allowMultiQueries=true&rewriteBatchedStatements=true" + ssl; try { connection = DriverManager.getConnection(server, username, password); @@ -196,7 +194,8 @@ private void setupTables() " (`uuid_player` CHAR(128) NOT NULL," + "`name` CHAR(128) NOT NULL," + "`last_login` DATE NOT NULL," + - " PRIMARY KEY (`uuid_player`)) ENGINE = InnoDB DEFAULT CHARSET=utf8;"; + " PRIMARY KEY (`uuid_player`)) ENGINE = InnoDB DEFAULT CHARSET=utf8" + + " ROW_FORMAT = DYNAMIC ;"; query = connection.prepareStatement(data); query.execute(); @@ -204,7 +203,8 @@ private void setupTables() data = "CREATE TABLE IF NOT EXISTS " + dbname + "." + playerInventoryTableName + " " + "(`uuid_player` CHAR(128) NOT NULL," + "" + createInventoryQueryString() + "" + - " PRIMARY KEY (`uuid_player`)) ENGINE = InnoDB DEFAULT CHARSET=utf8;"; + " PRIMARY KEY (`uuid_player`)) ENGINE = InnoDB DEFAULT CHARSET=utf8 " + + " ROW_FORMAT = DYNAMIC;"; query = connection.prepareStatement(data); query.execute(); @@ -216,7 +216,8 @@ private void setupTables() "`slot_02_id` LONGTEXT NULL," + "`slot_03_id` LONGTEXT NULL," + "`slot_04_id` LONGTEXT NULL," + //offhand - " PRIMARY KEY (`uuid_player`)) ENGINE = InnoDB DEFAULT CHARSET=utf8;"; + " PRIMARY KEY (`uuid_player`)) ENGINE = InnoDB DEFAULT CHARSET=utf8" + + " ROW_FORMAT = DYNAMIC;"; query = connection.prepareStatement(data); query.execute(); @@ -224,7 +225,8 @@ private void setupTables() data = "CREATE TABLE IF NOT EXISTS " + dbname + "." + playerEnderChestTableName + " " + "(`uuid_player` CHAR(128) NOT NULL," + "" + createEnderQuery() + "" + - " PRIMARY KEY (`uuid_player`)) ENGINE = InnoDB DEFAULT CHARSET=utf8;"; + " PRIMARY KEY (`uuid_player`)) ENGINE = InnoDB DEFAULT CHARSET=utf8" + + " ROW_FORMAT = DYNAMIC;"; query = connection.prepareStatement(data); query.execute(); diff --git a/src/pts/java/event/PlayerJoin.java b/src/pts/java/event/PlayerJoin.java index 4446ac9..9add57b 100644 --- a/src/pts/java/event/PlayerJoin.java +++ b/src/pts/java/event/PlayerJoin.java @@ -8,7 +8,6 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; -import pts.java.player.PlayerManager; public class PlayerJoin implements Listener { diff --git a/src/pts/java/event/PlayerQuit.java b/src/pts/java/event/PlayerQuit.java index 0957294..bf6deb3 100644 --- a/src/pts/java/event/PlayerQuit.java +++ b/src/pts/java/event/PlayerQuit.java @@ -17,11 +17,11 @@ public void onDisconnect(final PlayerQuitEvent event) Player p = event.getPlayer(); //start async player save ItemStack[] inv = p.getInventory().getStorageContents(); - ItemStack[] inva = p.getInventory().getArmorContents(); + ItemStack[] inva = p.getInventory().getArmorContents(); ItemStack[] invae = p.getInventory().getExtraContents(); ItemStack[] inven = p.getEnderChest().getContents(); Bukkit.getScheduler().runTaskAsynchronously(PlayertoSql.getInstance(), () -> - PlayertoSql.getInstance().getPlayerManager().savePlayer(p, inv,inva,invae ,inven ,false,"quitsave")); + PlayertoSql.getInstance().getPlayerManager().savePlayer(p, inv, inva, invae, inven, false, "quitsave")); p.getInventory().clear(); } } diff --git a/src/pts/java/player/AutosaveManager.java b/src/pts/java/player/AutosaveManager.java index 2214f43..a95b40e 100644 --- a/src/pts/java/player/AutosaveManager.java +++ b/src/pts/java/player/AutosaveManager.java @@ -5,9 +5,6 @@ import org.bukkit.Bukkit; import org.bukkit.entity.Player; -import java.util.ArrayList; -import java.util.List; - public class AutosaveManager { PlayerManager pm; @@ -16,7 +13,6 @@ public AutosaveManager() { //get playerManager pm = PlayertoSql.getInstance().getPlayerManager(); - //start autosave task runTask(); } @@ -39,39 +35,11 @@ private void autosave() //check if player online if (p != null && p.isOnline()) { - pm.savePlayer(p, p.getInventory().getStorageContents(), p.getInventory().getArmorContents(), p.getInventory().getExtraContents(), p.getEnderChest().getContents(),false,"autosave"); + pm.savePlayer(p, p.getInventory().getStorageContents(), p.getInventory().getArmorContents(), p.getInventory().getExtraContents(), p.getEnderChest().getContents(), false, "autosave"); } } } //if all player saved try to save player unsaved player PlayertoSql.getInstance().getPlayerManager().trySaveMissingPlayerData(false); } - - - /* - public void onShutdownAutosave() - { - //get all player - List onlinePlayers = new ArrayList<>(Bukkit.getOnlinePlayers()); - - //for each player check if online and save - - for (Player p : onlinePlayers) - { - if (p.isOnline()) - { - ItemStack[] inv = p.getInventory().getStorageContents(); - ItemStack[] inva = p.getInventory().getArmorContents(); - ItemStack[] invae = p.getInventory().getExtraContents(); - ItemStack[] inven = p.getEnderChest().getContents(); - pm.savePlayer(p, inv,inva,invae ,inven ,false,"autosaveSD"); - } - else - { - PlayertoSql.getInstance().getLogger().warning("Player not auto saved! Player is offline"); - } - } - } - - */ } diff --git a/src/pts/java/player/ItemManager.java b/src/pts/java/player/ItemManager.java index 950e379..bb433c4 100644 --- a/src/pts/java/player/ItemManager.java +++ b/src/pts/java/player/ItemManager.java @@ -5,7 +5,6 @@ import org.bukkit.inventory.ItemStack; import pts.java.PlayertoSql; -import java.io.*; import java.util.Objects; public class ItemManager diff --git a/src/pts/java/player/PlayerManager.java b/src/pts/java/player/PlayerManager.java index f852492..f48f5e3 100644 --- a/src/pts/java/player/PlayerManager.java +++ b/src/pts/java/player/PlayerManager.java @@ -1,6 +1,5 @@ package pts.java.player; -import org.bukkit.Bukkit; import pts.java.ConfigManager; import pts.java.PlayertoSql; import pts.java.database.DatabaseManager; @@ -16,7 +15,6 @@ import java.io.FileWriter; import java.io.IOException; import java.sql.ResultSet; -import java.sql.SQLException; import java.util.ArrayList; import java.util.Date; import java.util.Objects; @@ -54,13 +52,13 @@ public void onPlayerJoin(Player p) } else { - PlayertoSql.getInstance().getLogger().info("Player not create! Create player disabled"); + PlayertoSql.getInstance().getLogger().info(p.getName() + " not create! Create player disabled"); } } } else { - PlayertoSql.getInstance().getLogger().warning("Player not create/load! Player is offline"); + PlayertoSql.getInstance().getLogger().warning(p.getName() + " not create/load! Player is offline"); } } @@ -245,7 +243,7 @@ public void savePlayer(Player p, ItemStack[] inventory, ItemStack[] armor, ItemS } else { - PlayertoSql.getInstance().getLogger().info("Player could not be saved because it was not loaded!"); + PlayertoSql.getInstance().getLogger().info(p.getName() + " could not be saved because it was not loaded!"); } } }