techchrism / survival-invisiframes

A simple Spigot plugin to add invisible item frames to survival

Home Page:https://www.spigotmc.org/resources/survivalinvisiframes.80692/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Item frames crashing server

dev-stan opened this issue · comments

After updating from 1.16.5 to 1.17.1, interacting with item frames causes the server to crash and throws the exception below. The full crash report can be found here, the server crashes precisely when a player interacts with an item placed in an item frame placed before the 1.17.1 update.

	at app//net.minecraft.nbt.CompoundTag.copy(CompoundTag.java:397)
	at app//net.minecraft.world.item.ItemStack.cloneItemStack(ItemStack.java:652)
	at app//net.minecraft.world.item.ItemStack.copy(ItemStack.java:643)
	at app//net.minecraft.network.syncher.EntityDataSerializers$7.copy(EntityDataSerializers.java:147)
	at app//net.minecraft.network.syncher.EntityDataSerializers$7.write(EntityDataSerializers.java:134)
	at app//net.minecraft.network.syncher.SynchedEntityData$DataItem.copy(SynchedEntityData.java:344)
	at app//net.minecraft.network.syncher.SynchedEntityData.packDirty(SynchedEntityData.java:192)
	at app//net.minecraft.network.protocol.game.ClientboundSetEntityDataPacket.<init>(ClientboundSetEntityDataPacket.java:22)
	at app//net.minecraft.server.level.ServerEntity.sendDirtyEntityData(ServerEntity.java:371)
	at app//net.minecraft.server.level.ServerEntity.sendChanges(ServerEntity.java:207)
	at app//net.minecraft.server.level.ChunkTracker.processTrackQueue(ChunkTracker.java:2063)
	at app//net.minecraft.server.level.ChunkTracker.tick(ChunkTracker.java:2074)
	at app//net.minecraft.server.level.ServerChunkCache.tickChunks(ServerChunkCache.java:881)
	at app//net.minecraft.server.level.ServerChunkCache.tick(ServerChunkCache.java:752)
	at app//net.minecraft.server.level.ServerLevel.tick(ServerLevel.java:555)
	at app//net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1553)
	at app//net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:479)
	at app//net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1406)
	at app//net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1188)
	at app//net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:316)
	at java.base/java.lang.Thread.run(Thread.java:831)```

I don't know for sure but I strongly suspect this to be a spigot problem and nothing I can fix. Does it still happen if you create an invisible item frame in 1.16 then upgrade to 1.17 and remove the plugin?

Yes, it still happens when the plugin is removed, my guess is that something about the NBT data changed in the 1.17 update and when accessing the tools in the item frames it's null. The server is currently unplayable because there are thousands of item frames on the server and every interaction with them causes a crash. Help would be greatly appreciated!

Your best bet will be creating a spigot bug report with as much info as you can provide. In the meantime, I'll see if I can replicate this issue.

I was not able to replicate this issue. I'm running Paper version git-Paper-100 (MC: 1.17.1) (Implementing API version 1.17.1-R0.1-SNAPSHOT) (Git: 70ea1b2) which is currently 12 versions behind.