diff --git a/src/main/java/pk/ajneb97/PlayerKits2.java b/src/main/java/pk/ajneb97/PlayerKits2.java index ffc38a5..5c24914 100644 --- a/src/main/java/pk/ajneb97/PlayerKits2.java +++ b/src/main/java/pk/ajneb97/PlayerKits2.java @@ -118,11 +118,17 @@ public class PlayerKits2 extends JavaPlugin { public void setVersion(){ String packageName = Bukkit.getServer().getClass().getPackage().getName(); - String bukkitVersion = Bukkit.getServer().getBukkitVersion(); - if(bukkitVersion.contains("1.20.5") || bukkitVersion.contains("1.20.6")){ - serverVersion = ServerVersion.v1_20_R4; - }else{ - serverVersion = ServerVersion.valueOf(packageName.replace("org.bukkit.craftbukkit.", "")); + String bukkitVersion = Bukkit.getServer().getBukkitVersion().split("-")[0]; + switch(bukkitVersion){ + case "1.20.5": + case "1.20.6": + serverVersion = ServerVersion.v1_20_R4; + break; + case "1.21": + serverVersion = ServerVersion.v1_21_R1; + break; + default: + serverVersion = ServerVersion.valueOf(packageName.replace("org.bukkit.craftbukkit.", "")); } } diff --git a/src/main/java/pk/ajneb97/database/MySQLConnection.java b/src/main/java/pk/ajneb97/database/MySQLConnection.java index 8d72781..34c8b04 100644 --- a/src/main/java/pk/ajneb97/database/MySQLConnection.java +++ b/src/main/java/pk/ajneb97/database/MySQLConnection.java @@ -185,7 +185,7 @@ public class MySQLConnection { }.runTaskAsynchronously(plugin); } - public void createPlayer(PlayerData player){ + public void createPlayer(PlayerData player,SimpleCallback callback){ new BukkitRunnable(){ @Override public void run() { @@ -197,6 +197,13 @@ public class MySQLConnection { statement.setString(1, player.getUuid()); statement.setString(2, player.getName()); statement.executeUpdate(); + + new BukkitRunnable(){ + @Override + public void run() { + callback.onDone(); + } + }.runTask(plugin); } catch (SQLException e) { e.printStackTrace(); } diff --git a/src/main/java/pk/ajneb97/database/SimpleCallback.java b/src/main/java/pk/ajneb97/database/SimpleCallback.java new file mode 100644 index 0000000..8f63b98 --- /dev/null +++ b/src/main/java/pk/ajneb97/database/SimpleCallback.java @@ -0,0 +1,6 @@ +package pk.ajneb97.database; + +public interface SimpleCallback { + + void onDone(); +} diff --git a/src/main/java/pk/ajneb97/managers/KitItemManager.java b/src/main/java/pk/ajneb97/managers/KitItemManager.java index baaf705..22073f4 100644 --- a/src/main/java/pk/ajneb97/managers/KitItemManager.java +++ b/src/main/java/pk/ajneb97/managers/KitItemManager.java @@ -1,6 +1,8 @@ package pk.ajneb97.managers; +import org.bukkit.Bukkit; import org.bukkit.Color; +import org.bukkit.NamespacedKey; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Player; @@ -37,6 +39,7 @@ public class KitItemManager { kitItem.setDurability(item.getDurability()); } + ServerVersion serverVersion = PlayerKits2.serverVersion; if(item.hasItemMeta()) { ItemMeta meta = item.getItemMeta(); if(meta.hasDisplayName()) { @@ -52,7 +55,12 @@ public class KitItemManager { if(meta.hasEnchants()) { List enchants = new ArrayList(); for(Map.Entry entry : meta.getEnchants().entrySet()){ - String enchant = entry.getKey().getName(); + String enchant; + if(serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_21_R1)){ + enchant = entry.getKey().getKey().getKey().toUpperCase(); + }else{ + enchant = entry.getKey().getName(); + } int level = entry.getValue(); enchants.add(enchant+";"+level); } @@ -81,7 +89,14 @@ public class KitItemManager { Map enchants = meta2.getStoredEnchants(); List enchantsList = new ArrayList(); for (Map.Entry entry : enchants.entrySet()) { - enchantsList.add(entry.getKey().getName()+";"+entry.getValue().intValue()); + String enchant; + if(serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_21_R1)){ + enchant = entry.getKey().getKey().getKey().toUpperCase(); + }else{ + enchant = entry.getKey().getName(); + } + int level = entry.getValue(); + enchantsList.add(enchant+";"+level); } if(!enchantsList.isEmpty()) { kitItem.setBookEnchants(enchantsList); @@ -89,7 +104,6 @@ public class KitItemManager { } } - ServerVersion serverVersion = PlayerKits2.serverVersion; if(!serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_20_R4)){ List nbtList = ItemUtils.getNBT(plugin,item); if(!nbtList.isEmpty()) { @@ -150,7 +164,8 @@ public class KitItemManager { for(int i=0;i { removePlayerByUUID(uuid); //Remove data if already exists - boolean firstJoin = false; if(playerData != null) { players.add(playerData); //Update name if different @@ -163,34 +162,26 @@ public class PlayerDataManager { mySQLConnection.updatePlayerName(playerData); } }else { - firstJoin = true; playerData = new PlayerData(player.getName(),uuid); players.add(playerData); + //Create if it doesn't exist - mySQLConnection.createPlayer(playerData); - } - if(firstJoin){ - plugin.getKitsManager().giveFirstJoinKit(player); + mySQLConnection.createPlayer(playerData, () -> plugin.getKitsManager().giveFirstJoinKit(player)); } }); }else{ - boolean firstJoin = false; PlayerData playerData = getPlayerByUUID(player.getUniqueId().toString()); if(playerData == null){ - firstJoin = true; playerData = new PlayerData(player.getName(),player.getUniqueId().toString()); playerData.setModified(true); players.add(playerData); + plugin.getKitsManager().giveFirstJoinKit(player); }else{ if(playerData.getName() == null || !playerData.getName().equals(player.getName())){ playerData.setName(player.getName()); playerData.setModified(true); } } - - if(firstJoin){ - plugin.getKitsManager().giveFirstJoinKit(player); - } } } } diff --git a/src/main/java/pk/ajneb97/utils/ServerVersion.java b/src/main/java/pk/ajneb97/utils/ServerVersion.java index c0b11a3..94a115a 100644 --- a/src/main/java/pk/ajneb97/utils/ServerVersion.java +++ b/src/main/java/pk/ajneb97/utils/ServerVersion.java @@ -25,7 +25,8 @@ public enum ServerVersion { v1_20_R1, v1_20_R2, v1_20_R3, - v1_20_R4; + v1_20_R4, + v1_21_R1; public boolean serverVersionGreaterEqualThan(ServerVersion version1,ServerVersion version2){ return version1.ordinal() >= version2.ordinal(); diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 28cdab2..3464066 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ main: pk.ajneb97.PlayerKits2 -version: 1.11.4 +version: 1.12.1 name: PlayerKits2 api-version: 1.13 softdepend: [Vault,PlaceholderAPI]