diff --git a/commons-bukkit/pom.xml b/commons-bukkit/pom.xml index fd3fcf8..83493a8 100644 --- a/commons-bukkit/pom.xml +++ b/commons-bukkit/pom.xml @@ -12,7 +12,7 @@ commons-bukkit - 1.21.10-R0.1-SNAPSHOT + 26.2-R0.1-SNAPSHOT 0.1.0 1.12-1.6.5 0.5.1-SNAPSHOT @@ -38,12 +38,12 @@ org.spigotmc spigot-api ${spigot.version} + provided org.spigotmc spigot ${spigot.version} - remapped-mojang provided @@ -90,39 +90,6 @@ - - net.md-5 - specialsource-maven-plugin - 2.0.4 - - - package - - remap - - remap-obf - - org.spigotmc:minecraft-server:${spigot.version}:txt:maps-mojang - true - org.spigotmc:spigot:${spigot.version}:jar:remapped-mojang - true - remapped-obf - - - - package - - remap - - remap-spigot - - ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar - org.spigotmc:minecraft-server:${spigot.version}:csrg:maps-spigot - org.spigotmc:spigot:${spigot.version}:jar:remapped-obf - - - - 3.1 org.apache.maven.plugins @@ -138,7 +105,7 @@ org.apache.maven.plugins maven-shade-plugin - 2.4.1 + 3.6.2 package diff --git a/commons-bukkit/src/main/java/com/supaham/commons/bukkit/utils/ReflectionUtils.java b/commons-bukkit/src/main/java/com/supaham/commons/bukkit/utils/ReflectionUtils.java index 591b5d5..6c1ad1f 100644 --- a/commons-bukkit/src/main/java/com/supaham/commons/bukkit/utils/ReflectionUtils.java +++ b/commons-bukkit/src/main/java/com/supaham/commons/bukkit/utils/ReflectionUtils.java @@ -2,7 +2,7 @@ import net.minecraft.network.protocol.Packet; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_21_R6.entity.CraftPlayer; +import org.bukkit.craftbukkit.entity.CraftPlayer; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; @@ -35,11 +35,16 @@ private static void init() throws Exception { PackageType nms = PackageType.MINECRAFT_SERVER; PackageType obc = PackageType.CRAFTBUKKIT; - classes.put("entityPlayer", nms.getClassSafe("server.level", "EntityPlayer")); +// classes.put("entityPlayer", nms.getClassSafe("server.level", "EntityPlayer")); // fields.put("playerConnection", getField(classes.get("entityPlayer"), "playerConnection")); // TODO: This might now need to be updated every time... :'( // methods.put("sendPacket", getMethod(fields.get("playerConnection").getType(), "sendPacket")); - Class clazz = nms.getClassSafe("world.phys", "Vec3D"); + Class clazz; + if (getServerMajorVersion() <= 21) { + clazz = nms.getClassSafe("world.phys", "Vec3D"); + } else { + clazz = nms.getClassSafe("world.phys", "Vec3"); + } classes.put("Vec3D", clazz); constructors.put("Vec3D", clazz.getDeclaredConstructor(double.class, double.class, double.class)); @@ -47,11 +52,11 @@ private static void init() throws Exception { // fields.put("Vec3Dy", getField(clazz, "y")); // fields.put("Vec3Dz", getField(clazz, "z")); - classes.put("BlockPosition", nms.getClassSafe("core", "BlockPosition")); - clazz = nms.getClassSafe("core", "BaseBlockPosition"); - fields.put("BaseBlockPositionx", getField(clazz, "a")); - fields.put("BaseBlockPositiony", getField(clazz, "b")); - fields.put("BaseBlockPositionz", getField(clazz, "c")); +// classes.put("BlockPosition", nms.getClassSafe("core", "BlockPosition")); +// clazz = nms.getClassSafe("core", "BaseBlockPosition"); +// fields.put("BaseBlockPositionx", getField(clazz, "a")); +// fields.put("BaseBlockPositiony", getField(clazz, "b")); +// fields.put("BaseBlockPositionz", getField(clazz, "c")); clazz = obc.getClassSafe("inventory.CraftInventoryCustom"); classes.put("CraftInventoryCustom", clazz); @@ -68,7 +73,7 @@ public static void sendPacket(Player player, Object object) { } public static Object toNMSVec3D(Vector vector) { - Class vec3D = PackageType.MINECRAFT_SERVER.getClassSafe("world.phys", "Vec3D"); + Class vec3D = classes.get("Vec3D"); try { Constructor ctor = constructors.get("Vec3D"); return ctor.newInstance(vector.getX(), vector.getY(), vector.getZ()); @@ -79,7 +84,7 @@ public static Object toNMSVec3D(Vector vector) { } public static Vector fromNMSVec3D(Object object) { - if (!object.getClass().equals(PackageType.MINECRAFT_SERVER.getClassSafe("world.phys","Vec3D"))) { + if (!object.getClass().equals(classes.get("Vec3D"))) { return null; } try { @@ -141,14 +146,37 @@ public static String getRootNMSPackage() { } } + public static String getRootCraftbukkitPackage() { + if (getServerMajorVersion() <= 21) { + return "org.bukkit.craftbukkit." + getServerVersion(); + } else { + return "org.bukkit.craftbukkit"; + } + } + public static Integer getServerMajorVersion() { - return Integer.parseInt(getServerVersion().split("_")[1]); + // Old versions would have e.g. 1_21... new has e.g. 26.1... so turn it into _ + String serverVersion = getServerVersion().replace('.', '_').replace('-', '_'); + int major = Integer.parseInt(serverVersion.split("_")[0]); + int minor = Integer.parseInt(serverVersion.split("_")[1]); + + if (major == 1) { + return minor; + } else { + return major; + } } public static String getServerVersion() { // org.bukkit.craftbukkit.v1_7_R4.entity // org.bukkit.craftbukkit.v1_8_R2.entity; - return Bukkit.getServer().getClass().getPackage().getName().substring(23); + String packageName = Bukkit.getServer().getClass().getPackage().getName(); + + if (packageName.length() > 22) { + return packageName.substring(23); + } else { + return Bukkit.getServer().getBukkitVersion(); + } } public static boolean isServer18OrHigher() { @@ -189,7 +217,7 @@ public enum PackageType { /** * {@code org.bukkit.craftbukkit.server_version} package. */ - CRAFTBUKKIT("org.bukkit.craftbukkit." + getServerVersion()),; + CRAFTBUKKIT(getRootCraftbukkitPackage()),; private final String path; diff --git a/commons-core/pom.xml b/commons-core/pom.xml index d74f31e..4c24bab 100644 --- a/commons-core/pom.xml +++ b/commons-core/pom.xml @@ -69,7 +69,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.3 + 3.6.2 package