From a7f706066611917149029798394231933a0b2a01 Mon Sep 17 00:00:00 2001 From: Ajneb97 Date: Fri, 22 Sep 2023 18:39:02 -0300 Subject: [PATCH] 1.4.1 --- pom.xml | 2 +- src/main/java/pk/ajneb97/PlayerKits2.java | 16 ++++++- src/main/java/pk/ajneb97/utils/ItemUtils.java | 42 +++++++++++-------- .../java/pk/ajneb97/utils/OtherUtils.java | 19 ++++----- .../{versions => utils}/ServerVersion.java | 7 +++- .../java/pk/ajneb97/versions/NMSManager.java | 19 +++++---- src/main/resources/plugin.yml | 2 +- 7 files changed, 69 insertions(+), 38 deletions(-) rename src/main/java/pk/ajneb97/{versions => utils}/ServerVersion.java (62%) diff --git a/pom.xml b/pom.xml index 30f538e..8b633a6 100644 --- a/pom.xml +++ b/pom.xml @@ -37,7 +37,7 @@ org.spigotmc spigot-api - 1.20.1-R0.1-SNAPSHOT + 1.20.2-R0.1-SNAPSHOT provided diff --git a/src/main/java/pk/ajneb97/PlayerKits2.java b/src/main/java/pk/ajneb97/PlayerKits2.java index f5403a5..72a76ae 100644 --- a/src/main/java/pk/ajneb97/PlayerKits2.java +++ b/src/main/java/pk/ajneb97/PlayerKits2.java @@ -18,11 +18,13 @@ import pk.ajneb97.model.internal.UpdateCheckerResult; import pk.ajneb97.tasks.InventoryUpdateTaskManager; import pk.ajneb97.tasks.PlayerDataSaveTask; import pk.ajneb97.versions.NMSManager; +import pk.ajneb97.utils.ServerVersion; public class PlayerKits2 extends JavaPlugin { public String version = getDescription().getVersion(); - public static String prefix = MessagesManager.getColoredMessage("&8[&bPlayerKits&a²&8] "); + public static String prefix; + public static ServerVersion serverVersion; private KitItemManager kitItemManager; private KitsManager kitsManager; @@ -41,6 +43,8 @@ public class PlayerKits2 extends JavaPlugin { private MySQLConnection mySQLConnection; public void onEnable(){ + setVersion(); + setPrefix(); registerCommands(); registerEvents(); @@ -105,6 +109,15 @@ public class PlayerKits2 extends JavaPlugin { playerDataSaveTask.start(configsManager.getMainConfigManager().getConfig().getInt("player_data_save_time")); } + public void setPrefix(){ + prefix = MessagesManager.getColoredMessage("&8[&bPlayerKits&a²&8] "); + } + + public void setVersion(){ + String packageName = Bukkit.getServer().getClass().getPackage().getName(); + serverVersion = ServerVersion.valueOf(packageName.replace("org.bukkit.craftbukkit.", "")); + } + public KitItemManager getKitItemManager() { return kitItemManager; } @@ -157,6 +170,7 @@ public class PlayerKits2 extends JavaPlugin { return verifyManager; } + public void updateMessage(UpdateCheckerResult result){ if(!result.isError()){ String latestVersion = result.getLatestVersion(); diff --git a/src/main/java/pk/ajneb97/utils/ItemUtils.java b/src/main/java/pk/ajneb97/utils/ItemUtils.java index 65ead28..f4aac75 100644 --- a/src/main/java/pk/ajneb97/utils/ItemUtils.java +++ b/src/main/java/pk/ajneb97/utils/ItemUtils.java @@ -1,6 +1,7 @@ package pk.ajneb97.utils; import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -94,28 +95,35 @@ public class ItemUtils { try { profileField = skullMeta.getClass().getDeclaredField("profile"); profileField.setAccessible(true); - try { - GameProfile gameProfile = (GameProfile) profileField.get(skullMeta); - if(gameProfile != null && gameProfile.getProperties() != null) { - PropertyMap propertyMap = gameProfile.getProperties(); - owner = gameProfile.getName(); - if(gameProfile.getId() != null) { - id = gameProfile.getId().toString(); - } - for(Property p : propertyMap.values()) { + + GameProfile gameProfile = (GameProfile) profileField.get(skullMeta); + if(gameProfile != null && gameProfile.getProperties() != null) { + PropertyMap propertyMap = gameProfile.getProperties(); + owner = gameProfile.getName(); + if(gameProfile.getId() != null) { + id = gameProfile.getId().toString(); + } + + ServerVersion serverVersion = PlayerKits2.serverVersion; + for(Property p : propertyMap.values()) { + if(serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_20_R2)){ + String pName = (String)p.getClass().getMethod("name").invoke(p); + if(pName.equals("textures")){ + texture = (String)p.getClass().getMethod("value").invoke(p); + } + }else{ if(p.getName().equals("textures")) { texture = p.getValue(); } } } - } catch (IllegalArgumentException | IllegalAccessException e) { - e.printStackTrace(); } - } catch (NoSuchFieldException | SecurityException e) { + } catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException + | InvocationTargetException | NoSuchMethodException e) { e.printStackTrace(); - } - - if(texture != null || id != null || owner != null) { + } + + if(texture != null || id != null || owner != null) { kitItemSkullData = new KitItemSkullData(owner,texture,id); } @@ -148,9 +156,9 @@ public class ItemUtils { GameProfile profile = null; if(id == null) { - profile = new GameProfile(UUID.randomUUID(), owner); + profile = new GameProfile(UUID.randomUUID(), owner != null ? owner : ""); }else { - profile = new GameProfile(UUID.fromString(id), owner); + profile = new GameProfile(UUID.fromString(id), owner != null ? owner : ""); } profile.getProperties().put("textures", new Property("textures", texture)); diff --git a/src/main/java/pk/ajneb97/utils/OtherUtils.java b/src/main/java/pk/ajneb97/utils/OtherUtils.java index ab75553..cd2145f 100644 --- a/src/main/java/pk/ajneb97/utils/OtherUtils.java +++ b/src/main/java/pk/ajneb97/utils/OtherUtils.java @@ -4,6 +4,7 @@ import org.bukkit.Bukkit; import org.bukkit.Color; import org.bukkit.entity.Player; import pk.ajneb97.PlayerKits2; +import pk.ajneb97.api.PlayerKitsAPI; import pk.ajneb97.managers.MessagesManager; import java.util.ArrayList; @@ -11,27 +12,25 @@ import java.util.ArrayList; public class OtherUtils { public static boolean isNew() { - if(Bukkit.getVersion().contains("1.16") || Bukkit.getVersion().contains("1.17") - || Bukkit.getVersion().contains("1.18") || Bukkit.getVersion().contains("1.19") - || Bukkit.getVersion().contains("1.20")) { + ServerVersion serverVersion = PlayerKits2.serverVersion; + if(serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_16_R1)){ return true; - }else { - return false; } + return false; } public static boolean isLegacy() { - if(Bukkit.getVersion().contains("1.13") || Bukkit.getVersion().contains("1.14") || - Bukkit.getVersion().contains("1.15") || isNew()) { + ServerVersion serverVersion = PlayerKits2.serverVersion; + if(serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_13_R1)) { return false; - }else { - return true; } + return true; } // 1.20+ public static boolean isTrimNew() { - if(Bukkit.getVersion().contains("1.20")) { + ServerVersion serverVersion = PlayerKits2.serverVersion; + if(serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_20_R1)) { return true; }else { return false; diff --git a/src/main/java/pk/ajneb97/versions/ServerVersion.java b/src/main/java/pk/ajneb97/utils/ServerVersion.java similarity index 62% rename from src/main/java/pk/ajneb97/versions/ServerVersion.java rename to src/main/java/pk/ajneb97/utils/ServerVersion.java index cf31cb4..861de4a 100644 --- a/src/main/java/pk/ajneb97/versions/ServerVersion.java +++ b/src/main/java/pk/ajneb97/utils/ServerVersion.java @@ -1,4 +1,4 @@ -package pk.ajneb97.versions; +package pk.ajneb97.utils; public enum ServerVersion { v1_8_R1, @@ -23,4 +23,9 @@ public enum ServerVersion { v1_19_R2, v1_19_R3, v1_20_R1, + v1_20_R2; + + public boolean serverVersionGreaterEqualThan(ServerVersion version1,ServerVersion version2){ + return version1.ordinal() >= version2.ordinal(); + } } diff --git a/src/main/java/pk/ajneb97/versions/NMSManager.java b/src/main/java/pk/ajneb97/versions/NMSManager.java index 10a9ba5..6d38655 100644 --- a/src/main/java/pk/ajneb97/versions/NMSManager.java +++ b/src/main/java/pk/ajneb97/versions/NMSManager.java @@ -1,7 +1,9 @@ package pk.ajneb97.versions; -import org.bukkit.Bukkit; import org.bukkit.inventory.ItemStack; +import pk.ajneb97.PlayerKits2; +import pk.ajneb97.utils.ServerVersion; + import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.List; @@ -9,13 +11,13 @@ import java.util.Set; public class NMSManager { - private ServerVersion serverVersion; + private Version version; + private ServerVersion serverVersion; public NMSManager(){ this.version = new Version(); - String packageName = Bukkit.getServer().getClass().getPackage().getName(); - serverVersion = ServerVersion.valueOf(packageName.replace("org.bukkit.craftbukkit.", "")); + this.serverVersion = PlayerKits2.serverVersion; try { //Classes @@ -82,7 +84,8 @@ public class NMSManager { case v1_19_R1: case v1_19_R2: case v1_19_R3: methodName = "t"; break; - case v1_20_R1: methodName = "u"; break; + case v1_20_R1: + case v1_20_R2: methodName = "u"; break; } version.addMethod("hasTag",version.getClassRef("ItemStackNMS").getMethod(methodName)); @@ -93,7 +96,8 @@ public class NMSManager { case v1_19_R1: case v1_19_R2: case v1_19_R3: methodName = "u"; break; - case v1_20_R1: methodName = "v"; break; + case v1_20_R1: + case v1_20_R2: methodName = "v"; break; } version.addMethod("getTag",version.getClassRef("ItemStackNMS").getMethod(methodName)); @@ -119,7 +123,8 @@ public class NMSManager { case v1_19_R1: methodName = "d"; break; case v1_19_R2: case v1_19_R3: - case v1_20_R1: methodName = "e"; break; + case v1_20_R1: + case v1_20_R2: methodName = "e"; break; } version.addMethod("getKeys",version.getClassRef("NBTTagCompound").getMethod(methodName)); version.addMethod("hasKeyOfType",version.getClassRef("NBTTagCompound").getMethod("b",String.class,int.class)); diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index e205ac4..a654c69 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ main: pk.ajneb97.PlayerKits2 -version: 1.3.3 +version: 1.4.1 name: PlayerKits2 api-version: 1.13 softdepend: [Vault,PlaceholderAPI]