From 52498e18df6df83afaf57da71631754237a98b66 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Tue, 8 Apr 2025 01:21:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B7=B7=E5=90=88=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=B1=BB=E5=9E=8Blist=20nbt=E5=BA=8F=E5=88=97?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bukkit/plugin/injector/BukkitInjector.java | 1 - .../bukkit/plugin/network/BukkitNetworkManager.java | 5 +++-- .../bukkit/plugin/network/PacketConsumers.java | 11 +++++++---- .../craftengine/bukkit/plugin/network/PacketIds.java | 2 ++ .../bukkit/plugin/network/impl/PacketIds1_20.java | 5 +++++ .../bukkit/plugin/network/impl/PacketIds1_20_2.java | 5 +++++ .../bukkit/plugin/network/impl/PacketIds1_20_3.java | 5 +++++ .../bukkit/plugin/network/impl/PacketIds1_20_5.java | 5 +++++ .../bukkit/plugin/network/impl/PacketIds1_21.java | 5 +++++ gradle.properties | 2 +- 10 files changed, 38 insertions(+), 8 deletions(-) diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/injector/BukkitInjector.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/injector/BukkitInjector.java index c3bfcf3d3..641947e72 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/injector/BukkitInjector.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/injector/BukkitInjector.java @@ -4,7 +4,6 @@ import com.mojang.datafixers.util.Pair; import net.bytebuddy.ByteBuddy; import net.bytebuddy.ClassFileVersion; import net.bytebuddy.description.field.FieldDescription; -import net.bytebuddy.description.method.ParameterDescription; import net.bytebuddy.description.modifier.Visibility; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.dynamic.DynamicType; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java index db6201ef5..5d7d621d3 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java @@ -156,8 +156,9 @@ public class BukkitNetworkManager implements NetworkManager, Listener, PluginMes registerByteBufPacketConsumer(PacketConsumers.LEVEL_PARTICLE, this.packetIds.clientboundLevelParticlesPacket()); registerByteBufPacketConsumer(PacketConsumers.LEVEL_EVENT, this.packetIds.clientboundLevelEventPacket()); registerByteBufPacketConsumer(VersionHelper.isVersionNewerThan1_20_3() ? PacketConsumers.OPEN_SCREEN_1_20_3 : PacketConsumers.OPEN_SCREEN_1_20, this.packetIds.clientboundOpenScreenPacket()); - registerByteBufPacketConsumer(VersionHelper.isVersionNewerThan1_20_3() ? PacketConsumers.SET_TITLE_TEXT_1_20_3 : PacketConsumers.SET_TITLE_TEXT_1_20, this.packetIds.clientboundSetTitleTextPacket()); - registerByteBufPacketConsumer(VersionHelper.isVersionNewerThan1_20_3() ? PacketConsumers.SET_TITLE_TEXT_1_20_3 : PacketConsumers.SET_TITLE_TEXT_1_20, this.packetIds.clientboundSetSubtitleTextPacket()); + registerByteBufPacketConsumer(VersionHelper.isVersionNewerThan1_20_3() ? PacketConsumers.SET_TEXT_1_20_3 : PacketConsumers.SET_TEXT_1_20, this.packetIds.clientboundSetTitleTextPacket()); + registerByteBufPacketConsumer(VersionHelper.isVersionNewerThan1_20_3() ? PacketConsumers.SET_TEXT_1_20_3 : PacketConsumers.SET_TEXT_1_20, this.packetIds.clientboundSetSubtitleTextPacket()); + registerByteBufPacketConsumer(VersionHelper.isVersionNewerThan1_20_3() ? PacketConsumers.SET_TEXT_1_20_3 : PacketConsumers.SET_TEXT_1_20, this.packetIds.clientboundSetActionBarTextPacket()); // registerByteBufPacketConsumer(PacketConsumers.REMOVE_ENTITY, this.packetIds.clientboundRemoveEntitiesPacket()); registerByteBufPacketConsumer(PacketConsumers.ADD_ENTITY_BYTEBUFFER, this.packetIds.clientboundAddEntityPacket()); // registerByteBufPacketConsumer(PacketConsumers.SOUND, this.packetIds.clientboundSoundPacket()); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketConsumers.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketConsumers.java index 3e6029613..f30b4fb77 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketConsumers.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketConsumers.java @@ -5,6 +5,7 @@ import io.netty.buffer.Unpooled; import it.unimi.dsi.fastutil.ints.IntList; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TranslationArgument; +import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; import net.momirealms.craftengine.bukkit.api.CraftEngineFurniture; import net.momirealms.craftengine.bukkit.api.event.FurnitureBreakEvent; import net.momirealms.craftengine.bukkit.api.event.FurnitureInteractEvent; @@ -242,7 +243,7 @@ public class PacketConsumers { } }; - public static final BiConsumer SET_TITLE_TEXT_1_20 = (user, event) -> { + public static final BiConsumer SET_TEXT_1_20 = (user, event) -> { try { FriendlyByteBuf buf = event.getBuffer(); String json = buf.readUtf(); @@ -257,18 +258,20 @@ public class PacketConsumers { buf.writeVarInt(event.packetID()); buf.writeUtf(AdventureHelper.componentToJson(component)); } catch (Exception e) { - CraftEngine.instance().logger().warn("Failed to handle ClientboundSet(Sub)TitleTextPacket", e); + CraftEngine.instance().logger().warn("Failed to handle ClientboundSet[(Sub)Title/ActionBar]TextPacket", e); } }; - public static final BiConsumer SET_TITLE_TEXT_1_20_3 = (user, event) -> { + public static final BiConsumer SET_TEXT_1_20_3 = (user, event) -> { try { FriendlyByteBuf buf = event.getBuffer(); Tag nbt = buf.readNbt(false); if (nbt == null) return; + System.out.println(nbt.getAsString()); Map tokens = CraftEngine.instance().imageManager().matchTags(nbt.getAsString()); if (tokens.isEmpty()) return; Component component = NBTComponentSerializer.nbt().deserialize(nbt); + System.out.println(GsonComponentSerializer.gson().serialize(component)); for (Map.Entry token : tokens.entrySet()) { component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue()))); } @@ -276,7 +279,7 @@ public class PacketConsumers { buf.writeVarInt(event.packetID()); buf.writeNbt(NBTComponentSerializer.nbt().serialize(component), false); } catch (Exception e) { - CraftEngine.instance().logger().warn("Failed to handle ClientboundSet(Sub)TitleTextPacket", e); + CraftEngine.instance().logger().warn("Failed to handle ClientboundSet[(Sub)Title/ActionBar]TextPacket", e); } }; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketIds.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketIds.java index b020e518a..f877d6470 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketIds.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketIds.java @@ -23,4 +23,6 @@ public interface PacketIds { int clientboundSetTitleTextPacket(); int clientboundSetSubtitleTextPacket(); + + int clientboundSetActionBarTextPacket(); } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/impl/PacketIds1_20.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/impl/PacketIds1_20.java index 147dde60d..d60d861a9 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/impl/PacketIds1_20.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/impl/PacketIds1_20.java @@ -58,4 +58,9 @@ public class PacketIds1_20 implements PacketIds { public int clientboundSetSubtitleTextPacket() { return 93; } + + @Override + public int clientboundSetActionBarTextPacket() { + return 70; + } } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/impl/PacketIds1_20_2.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/impl/PacketIds1_20_2.java index aea096922..8e8754964 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/impl/PacketIds1_20_2.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/impl/PacketIds1_20_2.java @@ -58,4 +58,9 @@ public class PacketIds1_20_2 implements PacketIds { public int clientboundSetSubtitleTextPacket() { return 95; } + + @Override + public int clientboundSetActionBarTextPacket() { + return 72; + } } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/impl/PacketIds1_20_3.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/impl/PacketIds1_20_3.java index ee9a808a4..a140c817f 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/impl/PacketIds1_20_3.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/impl/PacketIds1_20_3.java @@ -58,4 +58,9 @@ public class PacketIds1_20_3 implements PacketIds { public int clientboundSetSubtitleTextPacket() { return 97; } + + @Override + public int clientboundSetActionBarTextPacket() { + return 74; + } } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/impl/PacketIds1_20_5.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/impl/PacketIds1_20_5.java index 72ceaf28e..81fcf7ea0 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/impl/PacketIds1_20_5.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/impl/PacketIds1_20_5.java @@ -58,4 +58,9 @@ public class PacketIds1_20_5 implements PacketIds { public int clientboundSetSubtitleTextPacket() { return 99; } + + @Override + public int clientboundSetActionBarTextPacket() { + return 76; + } } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/impl/PacketIds1_21.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/impl/PacketIds1_21.java index e5721ba10..444c81877 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/impl/PacketIds1_21.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/impl/PacketIds1_21.java @@ -58,4 +58,9 @@ public class PacketIds1_21 implements PacketIds { public int clientboundSetSubtitleTextPacket() { return PacketIdFinder.clientboundByName("minecraft:set_subtitle_text"); } + + @Override + public int clientboundSetActionBarTextPacket() { + return PacketIdFinder.clientboundByName("minecraft:set_action_bar_text"); + } } diff --git a/gradle.properties b/gradle.properties index e6694e50f..5f0e31ca5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -40,7 +40,7 @@ lz4_version=1.8.0 geantyref_version=1.3.16 zstd_version=1.5.7-2 commons_io_version=2.18.0 -sparrow_nbt_version=0.4.6 +sparrow_nbt_version=0.5 sparrow_util_version=0.37 fastutil_version=8.5.15 netty_version=4.1.119.Final