diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/reflection/minecraft/NetworkReflections.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/reflection/minecraft/NetworkReflections.java index 5bb4bd47d..48bb2b8cd 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/reflection/minecraft/NetworkReflections.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/reflection/minecraft/NetworkReflections.java @@ -1255,7 +1255,17 @@ public final class NetworkReflections { // 1.20.2+ public static final Constructor constructor$DiscardedPayload = Optional.ofNullable(clazz$DiscardedPayload) - .map(ReflectionUtils::getTheOnlyConstructor) + .map(it -> { + if (VersionHelper.isOrAbove1_20_5()) { + Constructor constructor1 = ReflectionUtils.getConstructor(it, CoreReflections.clazz$ResourceLocation, ByteBuf.class); + if (constructor1 != null) { + return constructor1; + } + return ReflectionUtils.getConstructor(it, CoreReflections.clazz$ResourceLocation, byte[].class); + } else { + return ReflectionUtils.getConstructor(it, CoreReflections.clazz$ResourceLocation); + } + }) .orElse(null); public static final Class clazz$ClientboundContainerSetContentPacket = requireNonNull( @@ -1644,7 +1654,7 @@ public final class NetworkReflections { // 1.20.2~1.20.4 public static final Constructor constructor$UnknownPayload = Optional.ofNullable(clazz$UnknownPayload) - .map(ReflectionUtils::getTheOnlyConstructor) + .map(it -> ReflectionUtils.getConstructor(it, CoreReflections.clazz$ResourceLocation, ByteBuf.class)) .orElse(null); // 1.21.5+ diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java index d9bdc7478..2d13134ce 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java @@ -372,7 +372,7 @@ public class BukkitServerPlayer extends Player { Object responsePacket; if (VersionHelper.isOrAbove1_20_2()) { Object dataPayload; - if (NetworkReflections.clazz$UnknownPayload != null) { + if (!VersionHelper.isOrAbove1_20_5()) { dataPayload = NetworkReflections.constructor$UnknownPayload.newInstance(channelResourceLocation, Unpooled.wrappedBuffer(data)); } else if (DiscardedPayload.useNewMethod) { dataPayload = NetworkReflections.constructor$DiscardedPayload.newInstance(channelResourceLocation, data);