diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/entity/PacketEntity.java b/plugin/src/main/java/lol/pyr/znpcsplus/entity/PacketEntity.java index fa7a863..c41c444 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/entity/PacketEntity.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/entity/PacketEntity.java @@ -1,11 +1,12 @@ package lol.pyr.znpcsplus.entity; +import com.github.retrooper.packetevents.PacketEvents; +import com.github.retrooper.packetevents.manager.server.ServerVersion; import com.github.retrooper.packetevents.protocol.entity.type.EntityType; import com.github.retrooper.packetevents.protocol.entity.type.EntityTypes; -import lol.pyr.znpcsplus.reflection.Reflections; -import lol.pyr.znpcsplus.util.VersionUtil; import lol.pyr.znpcsplus.api.entity.PropertyHolder; import lol.pyr.znpcsplus.packets.PacketFactory; +import lol.pyr.znpcsplus.reflection.Reflections; import lol.pyr.znpcsplus.util.ZLocation; import org.bukkit.entity.Player; @@ -71,8 +72,9 @@ public class PacketEntity { } private static int reserveEntityID() { - if (VersionUtil.isNewerThan(14)) return Reflections.ATOMIC_ENTITY_ID_FIELD.get().incrementAndGet(); - else { + if (PacketEvents.getAPI().getServerManager().getVersion().isNewerThanOrEquals(ServerVersion.V_1_14)) { + return Reflections.ATOMIC_ENTITY_ID_FIELD.get().incrementAndGet(); + } else { int id = Reflections.ENTITY_ID_MODIFIER.get(); Reflections.ENTITY_ID_MODIFIER.set(id + 1); return id; diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/reflection/ReflectionBuilder.java b/plugin/src/main/java/lol/pyr/znpcsplus/reflection/ReflectionBuilder.java index 5656081..0476f96 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/reflection/ReflectionBuilder.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/reflection/ReflectionBuilder.java @@ -1,10 +1,11 @@ package lol.pyr.znpcsplus.reflection; +import com.github.retrooper.packetevents.PacketEvents; +import com.github.retrooper.packetevents.manager.server.ServerVersion; import com.google.common.collect.ImmutableList; import lol.pyr.znpcsplus.reflection.types.ClassReflection; import lol.pyr.znpcsplus.reflection.types.FieldReflection; import lol.pyr.znpcsplus.reflection.types.MethodReflection; -import lol.pyr.znpcsplus.util.VersionUtil; import java.util.ArrayList; @@ -35,7 +36,7 @@ public class ReflectionBuilder { } public ReflectionBuilder withClassName(String className) { - this.className.add(ReflectionPackage.joinWithDot(reflectionPackage, VersionUtil.isNewerThan(17) ? additionalData : "", className)); + this.className.add(ReflectionPackage.joinWithDot(reflectionPackage, PacketEvents.getAPI().getServerManager().getVersion().isNewerThanOrEquals(ServerVersion.V_1_17) ? additionalData : "", className)); return this; } diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/reflection/ReflectionLazyLoader.java b/plugin/src/main/java/lol/pyr/znpcsplus/reflection/ReflectionLazyLoader.java index 5ad8847..01c4eaa 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/reflection/ReflectionLazyLoader.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/reflection/ReflectionLazyLoader.java @@ -1,6 +1,6 @@ package lol.pyr.znpcsplus.reflection; -import lol.pyr.znpcsplus.util.VersionUtil; +import com.github.retrooper.packetevents.PacketEvents; import java.util.ArrayList; import java.util.List; @@ -39,7 +39,7 @@ public abstract class ReflectionLazyLoader { logger.warning(getClass().getSimpleName() + " failed!"); logger.warning("Class Names: " + possibleClassNames); logger.warning("Reflection Type: " + getClass().getCanonicalName()); - logger.warning("Bukkit Version: " + VersionUtil.BUKKIT_VERSION + " (" + VersionUtil.getBukkitPackage() + ")"); + logger.warning("Server Version: " + PacketEvents.getAPI().getServerManager().getVersion().name()); printDebugInfo(logger::warning); logger.warning("Exception:"); throwable.printStackTrace(); diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/reflection/ReflectionPackage.java b/plugin/src/main/java/lol/pyr/znpcsplus/reflection/ReflectionPackage.java index df5b979..df8c708 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/reflection/ReflectionPackage.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/reflection/ReflectionPackage.java @@ -1,6 +1,8 @@ package lol.pyr.znpcsplus.reflection; -import lol.pyr.znpcsplus.util.VersionUtil; +import com.github.retrooper.packetevents.PacketEvents; +import com.github.retrooper.packetevents.manager.server.ServerVersion; +import org.bukkit.Bukkit; import java.util.Arrays; import java.util.Objects; @@ -12,14 +14,15 @@ import java.util.stream.Collectors; * pre-1.17 had all of their classes "flattened" into one package. */ public class ReflectionPackage { - private static final boolean flattened = !VersionUtil.isNewerThan(17); - public static final String BUKKIT = "org.bukkit.craftbukkit." + VersionUtil.getBukkitPackage(); + private static final String VERSION = Bukkit.getServer().getClass().getPackage().getName().split("\\.")[3]; + public static final String BUKKIT = "org.bukkit.craftbukkit." + VERSION; + private static final boolean flattened = !PacketEvents.getAPI().getServerManager().getVersion().isNewerThanOrEquals(ServerVersion.V_1_17); /** * Check if the classes are flattened, if so we need to add the version string into the * package string which is another quirk of the old server jars. */ - public static final String MINECRAFT = joinWithDot("net.minecraft", flattened ? "server." + VersionUtil.getBukkitPackage() : ""); + public static final String MINECRAFT = joinWithDot("net.minecraft", flattened ? "server." + VERSION : ""); public static final String ENTITY = flattened ? MINECRAFT : joinWithDot(MINECRAFT, "world.entity"); public static String joinWithDot(String... parts) { diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/reflection/Reflections.java b/plugin/src/main/java/lol/pyr/znpcsplus/reflection/Reflections.java index 2af7a3e..910c5a1 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/reflection/Reflections.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/reflection/Reflections.java @@ -1,9 +1,10 @@ package lol.pyr.znpcsplus.reflection; +import com.github.retrooper.packetevents.PacketEvents; +import com.github.retrooper.packetevents.manager.server.ServerVersion; import com.mojang.authlib.GameProfile; import lol.pyr.znpcsplus.reflection.types.FieldReflection; import lol.pyr.znpcsplus.util.FoliaUtil; -import lol.pyr.znpcsplus.util.VersionUtil; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.entity.Entity; @@ -46,7 +47,7 @@ public final class Reflections { new ReflectionBuilder(ReflectionPackage.ENTITY) .withClassName(ENTITY_CLASS) .withFieldName("entityCount") - .setStrict(!VersionUtil.isNewerThan(14)) + .setStrict(!PacketEvents.getAPI().getServerManager().getVersion().isNewerThanOrEquals(ServerVersion.V_1_14)) .toFieldReflection() .toStaticValueModifier(int.class); @@ -57,7 +58,7 @@ public final class Reflections { .withFieldName("d") .withFieldName("c") .withExpectResult(AtomicInteger.class) - .setStrict(VersionUtil.isNewerThan(14)) + .setStrict(PacketEvents.getAPI().getServerManager().getVersion().isNewerThanOrEquals(ServerVersion.V_1_14)) .toFieldReflection() .toStaticValueLoader(AtomicInteger.class); diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/util/VersionUtil.java b/plugin/src/main/java/lol/pyr/znpcsplus/util/VersionUtil.java deleted file mode 100644 index b36b790..0000000 --- a/plugin/src/main/java/lol/pyr/znpcsplus/util/VersionUtil.java +++ /dev/null @@ -1,28 +0,0 @@ -package lol.pyr.znpcsplus.util; - -import org.bukkit.Bukkit; - -public final class VersionUtil { - public static final int BUKKIT_VERSION; - - static { - int version = 0; - try { - version = Integer.parseInt(getFormattedBukkitPackage()); - } catch (NumberFormatException ignored) {} - BUKKIT_VERSION = version; - } - - public static boolean isNewerThan(int version) { - return (BUKKIT_VERSION >= version); - } - - public static String getBukkitPackage() { - return Bukkit.getServer().getClass().getPackage().getName().split("\\.")[3]; - } - - public static String getFormattedBukkitPackage() { - String version = getBukkitPackage().replace("v", "").replace("R", ""); - return version.substring(2, version.length() - 2); - } -}