ViaVersion / ViaBackwards

Allows the connection of older clients to newer server versions for Minecraft servers.
https://hangar.papermc.io/ViaVersion/ViaBackwards
GNU General Public License v3.0
456 stars 86 forks source link

[1.20.6->1.20.4] Unpaired Lodestone Compass bug (disconnect) #755

Closed Pantera07 closed 3 months ago

Pantera07 commented 3 months ago

'/viaversion dump' Output

https://dump.viaversion.com/b3639e35b11db208914e5a39174d98dac67ec449c0785a00aa8dc4e9f3084c9a

Console Error

[03:28:48 WARN]: [ViaVersion] ERROR IN Protocol1_20_5To1_20_3 IN REMAP OF CONTAINER_SET_SLOT (0x15)
[03:28:48 WARN]: io.netty.handler.codec.EncoderException: com.viaversion.viaversion.exception.InformativeException: Please report this on the Via support Discord or open an issue on the relevant GitHub repository
[03:28:48 WARN]: Source 0: com.viaversion.viaversion.rewriter.ItemRewriter$5 (Anonymous)
[03:28:48 WARN]:        at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:107)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856)
[03:28:48 WARN]:        at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:113)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856)
[03:28:48 WARN]:        at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:113)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856)
[03:28:48 WARN]:        at io.netty.channel.ChannelOutboundHandlerAdapter.write(ChannelOutboundHandlerAdapter.java:113)
[03:28:48 WARN]:        at net.minecraft.network.Connection$2.write(Connection.java:749)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:851)
[03:28:48 WARN]:        at io.netty.channel.DefaultChannelPipeline.write(DefaultChannelPipeline.java:1010)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannel.write(AbstractChannel.java:296)
[03:28:48 WARN]:        at net.minecraft.network.Connection.doSendPacket(Connection.java:504)
[03:28:48 WARN]:        at net.minecraft.network.Connection.lambda$sendPacket$13(Connection.java:489)
[03:28:48 WARN]:        at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
[03:28:48 WARN]:        at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
[03:28:48 WARN]:        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
[03:28:48 WARN]:        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
[03:28:48 WARN]:        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
[03:28:48 WARN]:        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
[03:28:48 WARN]:        at java.base/java.lang.Thread.run(Thread.java:1583)
[03:28:48 WARN]: Caused by: com.viaversion.viaversion.exception.InformativeException: Please report this on the Via support Discord or open an issue on the relevant GitHub repository
[03:28:48 WARN]: Source 0: com.viaversion.viaversion.rewriter.ItemRewriter$5 (Anonymous)
[03:28:48 WARN]: Caused by: java.lang.NullPointerException: Cannot invoke "com.viaversion.viaversion.api.minecraft.GlobalPosition.dimension()" because the return value of "com.viaversion.viaversion.api.minecraft.item.data.LodestoneTracker.position()" is null
[03:28:48 WARN]:        at ViaVersion-5.0.0-SNAPSHOT.jar//com.viaversion.viaversion.protocols.v1_20_3to1_20_5.rewriter.StructuredDataConverter.lambda$new$21(StructuredDataConverter.java:226)
[03:28:48 WARN]:        at ViaVersion-5.0.0-SNAPSHOT.jar//com.viaversion.viaversion.protocols.v1_20_3to1_20_5.rewriter.StructuredDataConverter.lambda$register$57(StructuredDataConverter.java:866)
[03:28:48 WARN]:        at ViaVersion-5.0.0-SNAPSHOT.jar//com.viaversion.viaversion.protocols.v1_20_3to1_20_5.rewriter.StructuredDataConverter.writeToTag(StructuredDataConverter.java:858)
[03:28:48 WARN]:        at ViaVersion-5.0.0-SNAPSHOT.jar//com.viaversion.viaversion.protocols.v1_20_3to1_20_5.rewriter.BlockItemPacketRewriter1_20_5.toOldItem(BlockItemPacketRewriter1_20_5.java:391)
[03:28:48 WARN]:        at ViaBackwards-5.0.0-SNAPSHOT.jar//com.viaversion.viabackwards.protocol.v1_20_5to1_20_3.rewriter.BlockItemPacketRewriter1_20_5.handleItemToClient(BlockItemPacketRewriter1_20_5.java:323)
[03:28:48 WARN]:        at ViaVersion-5.0.0-SNAPSHOT.jar//com.viaversion.viaversion.rewriter.ItemRewriter.handleClientboundItem(ItemRewriter.java:524)
[03:28:48 WARN]:        at ViaVersion-5.0.0-SNAPSHOT.jar//com.viaversion.viaversion.rewriter.ItemRewriter$5.lambda$register$0(ItemRewriter.java:145)
[03:28:48 WARN]:        at ViaVersion-5.0.0-SNAPSHOT.jar//com.viaversion.viaversion.api.protocol.remapper.PacketHandlers.handle(PacketHandlers.java:179)
[03:28:48 WARN]:        at ViaVersion-5.0.0-SNAPSHOT.jar//com.viaversion.viaversion.api.protocol.AbstractProtocol.transform(AbstractProtocol.java:405)
[03:28:48 WARN]:        at ViaVersion-5.0.0-SNAPSHOT.jar//com.viaversion.viaversion.protocol.packet.PacketWrapperImpl.apply(PacketWrapperImpl.java:369)
[03:28:48 WARN]:        at ViaVersion-5.0.0-SNAPSHOT.jar//com.viaversion.viaversion.protocol.ProtocolPipelineImpl.transform(ProtocolPipelineImpl.java:122)
[03:28:48 WARN]:        at ViaVersion-5.0.0-SNAPSHOT.jar//com.viaversion.viaversion.connection.UserConnectionImpl.transform(UserConnectionImpl.java:337)
[03:28:48 WARN]:        at ViaVersion-5.0.0-SNAPSHOT.jar//com.viaversion.viaversion.connection.UserConnectionImpl.transformClientbound(UserConnectionImpl.java:313)
[03:28:48 WARN]:        at ViaVersion-5.0.0-SNAPSHOT.jar//com.viaversion.viaversion.bukkit.handlers.BukkitEncodeHandler.encode(BukkitEncodeHandler.java:58)
[03:28:48 WARN]:        at ViaVersion-5.0.0-SNAPSHOT.jar//com.viaversion.viaversion.bukkit.handlers.BukkitEncodeHandler.encode(BukkitEncodeHandler.java:35)
[03:28:48 WARN]:        at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:90)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856)
[03:28:48 WARN]:        at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:113)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856)
[03:28:48 WARN]:        at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:113)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856)
[03:28:48 WARN]:        at io.netty.channel.ChannelOutboundHandlerAdapter.write(ChannelOutboundHandlerAdapter.java:113)
[03:28:48 WARN]:        at net.minecraft.network.Connection$2.write(Connection.java:749)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:851)
[03:28:48 WARN]:        at io.netty.channel.DefaultChannelPipeline.write(DefaultChannelPipeline.java:1010)
[03:28:48 WARN]:        at io.netty.channel.AbstractChannel.write(AbstractChannel.java:296)
[03:28:48 WARN]:        at net.minecraft.network.Connection.doSendPacket(Connection.java:504)
[03:28:48 WARN]:        at net.minecraft.network.Connection.lambda$sendPacket$13(Connection.java:489)
[03:28:48 WARN]:        at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
[03:28:48 WARN]:        at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
[03:28:48 WARN]:        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
[03:28:48 WARN]:        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
[03:28:48 WARN]:        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
[03:28:48 WARN]:        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
[03:28:48 WARN]:        at java.base/java.lang.Thread.run(Thread.java:1583)
[03:28:48 INFO]: Mad_Daniel lost connection: Internal Exception: io.netty.handler.codec.EncoderException: com.viaversion.viaversion.exception.InformativeException: Please report this on the Via support Discord or open an issue on the relevant GitHub repository
Source 0: com.viaversion.viaversion.rewriter.ItemRewriter$5 (Anonymous)
[03:28:48 INFO]: Mad_Daniel left the game

Bug Description

Unpaired Lodestone Compass kicks the player.

Steps to Reproduce

  1. Server Join (1.20.6 Server & 1.20.4 Client)
  2. Place Lodestone
  3. Pairing Compass
  4. Break Lodestone

Expected Behavior

Lodestone Compass should not cause player disconnections.

Additional Server Info

Related: https://github.com/ViaVersion/ViaVersion/issues/3861

Checklist

Barvalg commented 3 months ago

Platform: 1.20.6--81--5a9afbe%20%28MC%3A%201.20.6%29
ViaVersion (5.0.0-SNAPSHOT): Even with dev
ViaBackwards(5.0.0-SNAPSHOT): Even with dev

FlorianMichael commented 3 months ago

Checkout https://github.com/ViaVersion/ViaVersion/pull/3862