From 727ffca8144eb3a0fd66a20061ecb27e5e8c795d Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Sat, 12 Apr 2025 00:24:17 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=88=9D=E6=AD=A5=E6=B7=BB=E5=8A=A0playeri?= =?UTF-8?q?nfo=E6=89=80=E9=9C=80=E7=9A=84=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bukkit/loader/src/main/resources/config.yml | 12 +++++++----- .../craftengine/bukkit/plugin/network/PacketIds.java | 2 ++ .../bukkit/plugin/network/impl/PacketIds1_20.java | 5 +++++ .../bukkit/plugin/network/impl/PacketIds1_20_5.java | 5 +++++ .../craftengine/bukkit/util/Reflections.java | 6 ++++++ .../craftengine/core/plugin/config/Config.java | 2 ++ 6 files changed, 27 insertions(+), 5 deletions(-) diff --git a/bukkit/loader/src/main/resources/config.yml b/bukkit/loader/src/main/resources/config.yml index 3198c7265..7ba3c04e5 100644 --- a/bukkit/loader/src/main/resources/config.yml +++ b/bukkit/loader/src/main/resources/config.yml @@ -153,18 +153,20 @@ image: command: true sign: true # By intercepting packets, you are allowed to use in other plugins + # Turning off some unused options would help reduce CPU usage on async threads intercept-packets: system-chat: true - tab-list: true + tab-list: true # Tab list header and footer + player-info: true # User list in tab actionbar: true title: true bossbar: true - container: true - team: true + container: true # GUI + team: true # Team prefix, suffix and display name scoreboard: true entity-name: false - armor-stand: true - text-display: true + armor-stand: true # Legacy Holograms + text-display: true # Modern Holograms emoji: {} 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 060d79728..978507531 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 @@ -37,4 +37,6 @@ public interface PacketIds { int clientboundSetObjectivePacket(); int clientboundLevelChunkWithLightPacket(); + + int clientboundPlayerInfoUpdatePacket(); } 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 bbf6bfbaf..4342d7c18 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 @@ -94,4 +94,9 @@ public class PacketIds1_20 implements PacketIds { public int clientboundLevelChunkWithLightPacket() { return PacketIdFinder.clientboundByClazz(Reflections.clazz$ClientboundLevelChunkWithLightPacket); } + + @Override + public int clientboundPlayerInfoUpdatePacket() { + return PacketIdFinder.clientboundByClazz(Reflections.clazz$clientboundplayer); + } } 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 8acbd3d52..66d8e2319 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 @@ -93,4 +93,9 @@ public class PacketIds1_20_5 implements PacketIds { public int clientboundLevelChunkWithLightPacket() { return PacketIdFinder.clientboundByName("minecraft:level_chunk_with_light"); } + + @Override + public int clientboundPlayerInfoUpdatePacket() { + return PacketIdFinder.clientboundByName("minecraft:player_info_update"); + } } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/Reflections.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/Reflections.java index a98610732..ba09578a0 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/Reflections.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/Reflections.java @@ -1745,6 +1745,12 @@ public class Reflections { ) ); + public static final Class clazz$ClientboundPlayerInfoUpdatePacket = requireNonNull( + ReflectionUtils.getClazz( + BukkitReflectionUtils.assembleMCClass("network.protocol.game.ClientboundPlayerInfoUpdatePacket") + ) + ); + public static final Field field$ClientboundLevelChunkWithLightPacket$chunkData = requireNonNull( ReflectionUtils.getDeclaredField( clazz$ClientboundLevelChunkWithLightPacket, clazz$ClientboundLevelChunkPacketData, 0 diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/Config.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/Config.java index 175a0c02a..409acc738 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/Config.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/Config.java @@ -134,6 +134,7 @@ public class Config { protected boolean image$intercept_packets$entity_name; protected boolean image$intercept_packets$text_display; protected boolean image$intercept_packets$armor_stand; + protected boolean image$intercept_packets$player_info; public Config(CraftEngine plugin) { this.plugin = plugin; @@ -302,6 +303,7 @@ public class Config { image$intercept_packets$entity_name = config.getBoolean("image.intercept-packets.entity-name", false); image$intercept_packets$text_display = config.getBoolean("image.intercept-packets.text-display", true); image$intercept_packets$armor_stand = config.getBoolean("image.intercept-packets.armor-stand", true); + image$intercept_packets$player_info = config.getBoolean("image.intercept-packets.player-info", true); Class modClazz = ReflectionUtils.getClazz(CraftEngine.MOD_CLASS); if (modClazz != null) { From ba2191b6ceb01e0dea7181869d7e957430af9f15 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Sat, 12 Apr 2025 00:27:28 +0800 Subject: [PATCH 2/2] Update PacketIds1_20.java --- .../craftengine/bukkit/plugin/network/impl/PacketIds1_20.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 4342d7c18..f7632f51d 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 @@ -97,6 +97,6 @@ public class PacketIds1_20 implements PacketIds { @Override public int clientboundPlayerInfoUpdatePacket() { - return PacketIdFinder.clientboundByClazz(Reflections.clazz$clientboundplayer); + return PacketIdFinder.clientboundByClazz(Reflections.clazz$ClientboundPlayerInfoUpdatePacket); } }