Polymer

Polymer

763k Downloads

[MC 1.21] [polymer-core:0.9.9+1.21] Error sending packet clientbound/minecraft:container_set_content

FaeWulf opened this issue ยท 1 comments

commented

Hello! Today I faced an issue with polymer. The mod "divergent-progression" replace the tools break mechanic, every time you use tools with 1 durability left, instead of breaking, it will give you a "broken tool". And that's where this problem occurs.

I hope there is a way to work around this problem. Thank you so much!

Some information:
Minecraft 1.21
Fabric Loader 0.15.11
Fabric API 0.102.0+1.21

Diversity 1.3.3+1.21 (This is my mod included Polymer core)
divergent-progression-1.1.0 (This is the mod causes issue with polymer)

Link of the mod if you want: https://modrinth.com/mod/divergent-progression

[14:37:50] [Netty Server IO #1/ERROR] (Minecraft) Error sending packet clientbound/minecraft:container_set_content
 io.netty.handler.codec.EncoderException: Failed to encode packet 'clientbound/minecraft:container_set_content'
	at net.minecraft.network.handler.PacketCodecDispatcher.encode(PacketCodecDispatcher.java:52) ~[minecraft-common-1430c07c9e-1.21-net.fabricmc.yarn.1_21.1.21+build.1-v2.jar:?]
	at net.minecraft.network.handler.PacketCodecDispatcher.encode(PacketCodecDispatcher.java:21) ~[minecraft-common-1430c07c9e-1.21-net.fabricmc.yarn.1_21.1.21+build.1-v2.jar:?]
	at net.minecraft.network.handler.EncoderHandler.encode(EncoderHandler.java:27) ~[minecraft-common-1430c07c9e-1.21-net.fabricmc.yarn.1_21.1.21+build.1-v2.jar:?]
	at net.minecraft.network.handler.EncoderHandler.encode(EncoderHandler.java:20) ~[minecraft-common-1430c07c9e-1.21-net.fabricmc.yarn.1_21.1.21+build.1-v2.jar:?]
	at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:107) ~[netty-codec-4.1.97.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881) ~[netty-transport-4.1.97.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863) ~[netty-transport-4.1.97.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968) ~[netty-transport-4.1.97.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856) ~[netty-transport-4.1.97.Final.jar:?]
	at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:113) ~[netty-codec-4.1.97.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881) ~[netty-transport-4.1.97.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863) ~[netty-transport-4.1.97.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968) ~[netty-transport-4.1.97.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856) ~[netty-transport-4.1.97.Final.jar:?]
	at io.netty.channel.ChannelOutboundHandlerAdapter.write(ChannelOutboundHandlerAdapter.java:113) ~[netty-transport-4.1.97.Final.jar:?]
	at net.minecraft.network.ClientConnection$2.write(ClientConnection.java:545) ~[minecraft-common-1430c07c9e-1.21-net.fabricmc.yarn.1_21.1.21+build.1-v2.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881) ~[netty-transport-4.1.97.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940) ~[netty-transport-4.1.97.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:966) ~[netty-transport-4.1.97.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:934) ~[netty-transport-4.1.97.Final.jar:?]
	at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:984) ~[netty-transport-4.1.97.Final.jar:?]
	at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1025) ~[netty-transport-4.1.97.Final.jar:?]
	at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:306) ~[netty-transport-4.1.97.Final.jar:?]
	at net.minecraft.network.ClientConnection.sendInternal(ClientConnection.java:373) ~[minecraft-common-1430c07c9e-1.21-net.fabricmc.yarn.1_21.1.21+build.1-v2.jar:?]
	at net.minecraft.network.ClientConnection.method_52917(ClientConnection.java:368) ~[minecraft-common-1430c07c9e-1.21-net.fabricmc.yarn.1_21.1.21+build.1-v2.jar:?]
	at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[netty-common-4.1.97.Final.jar:?]
	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[netty-common-4.1.97.Final.jar:?]
	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[netty-common-4.1.97.Final.jar:?]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) ~[netty-transport-4.1.97.Final.jar:?]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.97.Final.jar:?]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.97.Final.jar:?]
	at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
Caused by: java.lang.NullPointerException: Cannot invoke "net.minecraft.component.type.ItemEnchantmentsComponent.getEnchantments()" because the return value of "net.minecraft.item.ItemStack.get(net.minecraft.component.ComponentType)" is null
	at eu.pb4.polymer.core.api.item.PolymerItemUtils.isPolymerServerItem(PolymerItemUtils.java:308) ~[polymer-core-0.9.9+1.21.jar:?]
	at eu.pb4.polymer.core.api.item.PolymerItemUtils.getPolymerItemStack(PolymerItemUtils.java:152) ~[polymer-core-0.9.9+1.21.jar:?]
	at net.minecraft.item.ItemStack$1.localvar$zec000$polymer-core$polymer$replaceWithVanillaItem(ItemStack.java:521) ~[minecraft-common-1430c07c9e-1.21-net.fabricmc.yarn.1_21.1.21+build.1-v2.jar:?]
	at net.minecraft.item.ItemStack$1.encode(ItemStack.java) ~[minecraft-common-1430c07c9e-1.21-net.fabricmc.yarn.1_21.1.21+build.1-v2.jar:?]
	at net.minecraft.item.ItemStack$1.encode(ItemStack.java:172) ~[minecraft-common-1430c07c9e-1.21-net.fabricmc.yarn.1_21.1.21+build.1-v2.jar:?]
	at net.minecraft.network.codec.PacketCodecs$11.encode(PacketCodecs.java:541) ~[minecraft-common-1430c07c9e-1.21-net.fabricmc.yarn.1_21.1.21+build.1-v2.jar:?]
	at net.minecraft.network.codec.PacketCodecs$11.encode(PacketCodecs.java:525) ~[minecraft-common-1430c07c9e-1.21-net.fabricmc.yarn.1_21.1.21+build.1-v2.jar:?]
	at net.minecraft.network.packet.s2c.play.InventoryS2CPacket.write(InventoryS2CPacket.java:49) ~[minecraft-common-1430c07c9e-1.21-net.fabricmc.yarn.1_21.1.21+build.1-v2.jar:?]
	at net.minecraft.network.codec.PacketCodec$6.encode(PacketCodec.java:87) ~[minecraft-common-1430c07c9e-1.21-net.fabricmc.yarn.1_21.1.21+build.1-v2.jar:?]
	at net.minecraft.network.codec.PacketCodec$9.encode(PacketCodec.java:166) ~[minecraft-common-1430c07c9e-1.21-net.fabricmc.yarn.1_21.1.21+build.1-v2.jar:?]
	at net.minecraft.network.codec.PacketCodec$9.encode(PacketCodec.java:158) ~[minecraft-common-1430c07c9e-1.21-net.fabricmc.yarn.1_21.1.21+build.1-v2.jar:?]
	... 32 more
commented

After checking the code, it's a bug in divergent-progression in the https://github.com/BlueStaggo/divergent-progression/blob/main/src/main/java/io/bluestaggo/divergeprog/mixin/ComponentHolderMixin.java. The issue is that it hardcodes enchantment prevention in get, but doesn't mirror the code in the constains, so it can return contains true, but get would still be null