9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-25 18:09:27 +00:00

Update CommonItemPacketHandler.java

This commit is contained in:
XiaoMoMi
2025-07-05 03:04:21 +08:00
parent 9dd3d51012
commit fff9798905

View File

@@ -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);