From 26cff004c50d3fe5b3edb17f81c531cae264e241 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Mon, 25 Aug 2025 20:13:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9E=84=E9=80=A0=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reflection/minecraft/NetworkReflections.java | 14 ++++++++++++-- .../bukkit/plugin/user/BukkitServerPlayer.java | 2 +- 2 files changed, 13 insertions(+), 3 deletions(-) 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);