From fff9798905cc3ffd33d90475039ba199f165cbb5 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Sat, 5 Jul 2025 03:04:21 +0800 Subject: [PATCH] Update CommonItemPacketHandler.java --- .../network/handler/CommonItemPacketHandler.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/handler/CommonItemPacketHandler.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/handler/CommonItemPacketHandler.java index df172d479..c2959c567 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/handler/CommonItemPacketHandler.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/handler/CommonItemPacketHandler.java @@ -12,11 +12,14 @@ import net.momirealms.craftengine.core.plugin.network.NetWorkUser; import net.momirealms.craftengine.core.util.FriendlyByteBuf; import org.bukkit.inventory.ItemStack; +import java.util.HashSet; import java.util.List; import java.util.Optional; +import java.util.Set; public class CommonItemPacketHandler implements EntityPacketHandler { public static final CommonItemPacketHandler INSTANCE = new CommonItemPacketHandler(); + private static long lastWarningTime = 0; @Override public void handleSetEntityData(NetWorkUser user, ByteBufPacketEvent event) { @@ -29,9 +32,14 @@ public class CommonItemPacketHandler implements EntityPacketHandler { int entityDataId = FastNMS.INSTANCE.field$SynchedEntityData$DataValue$id(packedItem); if (entityDataId == EntityDataUtils.ITEM_DATA_ID) { Object nmsItemStack = FastNMS.INSTANCE.field$SynchedEntityData$DataValue$value(packedItem); - // TODO 检查为什么会导致问题,难道是其他插件乱发entity id? if (!CoreReflections.clazz$ItemStack.isInstance(nmsItemStack)) { - CraftEngine.instance().logger().warn("Invalid item data for entity " + id); + long time = System.currentTimeMillis(); + if (time - lastWarningTime > 5000) { + BukkitServerPlayer serverPlayer = (BukkitServerPlayer) user; + CraftEngine.instance().logger().severe("An issue was detected while applying item-related entity data for '" + serverPlayer.name() + + "'. Please execute the command '/ce debug entity-id " + serverPlayer.world().name() + " " + id + "' and provide a screenshot for further investigation."); + lastWarningTime = time; + } continue; } ItemStack itemStack = FastNMS.INSTANCE.method$CraftItemStack$asCraftMirror(nmsItemStack);