The latest version causes trouble when player join
SkyWave2022 opened this issue · 27 comments
- This issue is not solved in a development build
Describe the bug
The latest version causes trouble when player join
To Reproduce
Steps to reproduce the behavior:
delete protocol string replacer which depends on protocolLib.
works fine
Expected behavior
nothing
Version Info
config.yml.zip
I don't see what the issue of ProtocolLib is? If you remove ProtocolStringReplacer and everything works fine then please report the issue to them.
java.lang.IllegalArgumentException: Can't find id for 'FrogVariant[texture=minecraft:textures/entity/frog/cold_frog.png]' in map Registry[ResourceKey[minecraft:root / minecraft:frog_variant] (Experimental)]
at net.minecraft.network.FriendlyByteBuf.writeId(FriendlyByteBuf.java:139) ~[?:?]
at net.minecraft.network.syncher.EntityDataSerializer.lambda$simpleId$1(EntityDataSerializer.java:43) ~[?:?]
at net.minecraft.network.syncher.EntityDataSerializer$1.write(EntityDataSerializer.java:22) ~[?:?]
at net.minecraft.network.syncher.SynchedEntityData.writeDataItem(SynchedEntityData.java:231) ~[?:?]
at net.minecraft.network.syncher.SynchedEntityData.pack(SynchedEntityData.java:168) ~[?:?]
at net.minecraft.network.protocol.game.ClientboundSetEntityDataPacket.write(ClientboundSetEntityDataPacket.java:33) ~[?:?]
at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:41) ~[paper-1.19.jar:git-Paper-77]
at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:14) ~[paper-1.19.jar:git-Paper-77]
at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:107) ~[netty-codec-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:709) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:792) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:702) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:120) ~[netty-codec-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:709) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:792) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:702) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.ChannelDuplexHandler.write(ChannelDuplexHandler.java:115) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at me.neznamy.tab.platforms.bukkit.BukkitPipelineInjector$BukkitChannelDuplexHandler.write(BukkitPipelineInjector.java:91) ~[TAB.v3.1.2.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:764) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:790) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:758) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1020) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:311) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at com.comphenix.protocol.injector.netty.channel.NettyChannelProxy.writeAndFlush(NettyChannelProxy.java:227) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.netty.channel.NettyChannelProxy.writeAndFlush(NettyChannelProxy.java:233) ~[ProtocolLib.jar:?]
at net.minecraft.network.Connection.doSendPacket(Connection.java:463) ~[?:?]
at net.minecraft.network.Connection.lambda$writePacket$11(Connection.java:437) ~[?:?]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[netty-common-4.1.77.Final.jar:4.1.77.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[netty-common-4.1.77.Final.jar:4.1.77.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[netty-common-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:995) ~[netty-common-4.1.77.Final.jar:4.1.77.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.77.Final.jar:4.1.77.Final]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Another stacktrace. Different server
I still don't understand how that problem is related to ProtocolLib? It is (if at all) related to a plugin using ProtocolLib...
I still don't understand how that problem is related to ProtocolLib? It is (if at all) related to a plugin using ProtocolLib...
I guess ProtocolLib accessed the related fields? As ProtocolStringReplacer doesn't change these things
https://github.com/Rothes/ProtocolStringReplacer/blob/master/src/main/java/me/rothes/protocolstringreplacer/packetlisteners/server/EntityMetadata.java
ProtocolLib isn't accessing any packet field unless a plugin is using methods to modify a packet field...
ProtocolLib isn't accessing any packet field unless a plugin is using methods to modify a packet field...
I realized now dev version eased deepclone exception? ProtocolStringReplacer now can modify the itemstack of Item entity. But it shouldn't change ID.
I honestly have no idea what you're talking about... I don't know about ProtocolStringReplacer 🤷
I honestly have no idea what you're talking about... I don't know about ProtocolStringReplacer 🤷
I'm saying it may related to the fix of #1401 as this problem now only happens on 1.19 servers which can only use dev ProtocolLib. About ProtocolStringReplacer you can just check the link I sent. It doesn't change ID so shouldn't cause this kind of errors.
So not cloning the packet resolves the issue?
No confirmation, just conjecture. I don't have what it takes to test because only 3 people reported having this problem. I may try to get their world files.
Can you check if PacketContainer.FAST_CLONE_UNSUPPORTED (private field, use a debugger for that) contains the packet type of the cloned packet after cloning?
Can you check if PacketContainer.FAST_CLONE_UNSUPPORTED (private field, use a debugger for that) contains the packet type of the cloned packet after cloning?
it returns false, still. (mistake fixed)
Code:
PacketContainer ognPacket = packetEvent.getPacket();
PacketContainer packet = ognPacket.deepClone();
Field fast_clone_unsupported = PacketContainer.class.getDeclaredField("FAST_CLONE_UNSUPPORTED");
fast_clone_unsupported.setAccessible(true);
Set<PacketType> o = (Set<PacketType>) fast_clone_unsupported.get(null);
System.out.println(o.contains(packet.getType()));
Log:
[17:16:55 信息]: false
[17:16:55 错误]: Packet encoding of packet ID 77 threw (skippable? false)
java.lang.IllegalArgumentException: Can't find id for 'FrogVariant[texture=minecraft:textures/entity/frog/temperate_frog.png]' in map Registry[ResourceKey[minecraft:root / minecraft:frog_variant] (Experimental)]
at net.minecraft.network.FriendlyByteBuf.writeId(FriendlyByteBuf.java:139) ~[?:?]
at net.minecraft.network.syncher.EntityDataSerializer.lambda$simpleId$1(EntityDataSerializer.java:43) ~[?:?]
at net.minecraft.network.syncher.EntityDataSerializer$1.write(EntityDataSerializer.java:22) ~[?:?]
at net.minecraft.network.syncher.SynchedEntityData.writeDataItem(SynchedEntityData.java:231) ~[?:?]
at net.minecraft.network.syncher.SynchedEntityData.pack(SynchedEntityData.java:168) ~[?:?]
at net.minecraft.network.protocol.game.ClientboundSetEntityDataPacket.write(ClientboundSetEntityDataPacket.java:33) ~[?:?]
at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:41) ~[paper-1.19.jar:git-Paper-43]
at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:14) ~[paper-1.19.jar:git-Paper-43]
at jdk.internal.reflect.GeneratedMethodAccessor36.invoke(Unknown Source) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
at com.viaversion.viaversion.util.PipelineUtil.callEncode(PipelineUtil.java:93) ~[ViaVersion-4.4.1.jar:?]
at com.viaversion.viaversion.bukkit.handlers.BukkitEncodeHandler.encode(BukkitEncodeHandler.java:71) ~[ViaVersion-4.4.1.jar:?]
at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:107) ~[netty-codec-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:709) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:792) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:702) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:120) ~[netty-codec-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:764) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:790) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:758) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1020) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:311) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at com.comphenix.protocol.injector.netty.channel.NettyChannelProxy.writeAndFlush(NettyChannelProxy.java:227) ~[ProtocolLib19.jar:?]
at com.comphenix.protocol.injector.netty.channel.NettyChannelProxy.writeAndFlush(NettyChannelProxy.java:233) ~[ProtocolLib19.jar:?]
at net.minecraft.network.Connection.doSendPacket(Connection.java:463) ~[?:?]
at net.minecraft.network.Connection.lambda$writePacket$11(Connection.java:437) ~[?:?]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[netty-common-4.1.77.Final.jar:4.1.77.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[netty-common-4.1.77.Final.jar:4.1.77.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[netty-common-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:995) ~[netty-common-4.1.77.Final.jar:4.1.77.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.77.Final.jar:4.1.77.Final]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
[17:16:55 信息]: false
[17:16:55 信息]: false
[17:16:55 信息]: Rothes[/***] logged in with entity id 67 at ([world]21.5, 48.0, 5.5)
[17:16:55 信息]: Rothes lost connection: Internal Exception: io.netty.handler.codec.EncoderException: java.lang.IllegalArgumentException: Can't find id for 'FrogVariant[texture=minecraft:textures/entity/frog/temperate_frog.png]' in map Registry[ResourceKey[minecraft:root / minecraft:frog_variant] (Experimental)]
[17:16:55 信息]: Rothes left the game
Are you running on a spigot mapped server? From your screenshot it seems like the server files are Mojang Mapped 🤔
Are you running on a spigot mapped server? From your screenshot it seems like the server files are Mojang Mapped 🤔
paper
Yea I saw that, but it seems that your paper version is mojangmapped not spigotmapped...
Yea I saw that, but it seems that your paper version is mojangmapped not spigotmapped...
Not sure about it so I tested on Spigot 1.19.2 again.
[04:25:56] [Server thread/INFO]: Rothes[/***] logged in with entity id 67 at ([world]15.5, 48.0, 8.5)
[04:25:56] [Netty Server IO #1/ERROR]: Error receiving packet 80
[04:25:57] [Server thread/INFO]: Rothes lost connection: Internal Exception: io.netty.handler.codec.EncoderException: java.lang.IllegalArgumentException: Can't find id for 'FrogVariant[texture=minecraft:textures/entity/frog/temperate_frog.png]' in map Registry[ResourceKey[minecraft:root / minecraft:frog_variant] (Experimental)]
[04:25:57] [Server thread/INFO]: Rothes left the game
This server is running CraftBukkit version 3566-Spigot-584b459-c379a6b (MC: 1.19.2) (Implementing API version 1.19.2-R0.1-SNAPSHOT)
🤔 Still not sure what the issue is... I just opened #1822 which now tests that writing a packet after cloning is still possible, and the entity meta packet now includes a frog variant as well... But I was unable to reporoduce the issue :(
Can you test with https://github.com/derklaro/ProtocolLib/suites/7751342324/artifacts/325500206 again? If the cloning still fails, can you send me some kind of data which items are in the data watcher item list in the entity meta packet?
🤔 Still not sure what the issue is... I just opened #1822 which now tests that writing a packet after cloning is still possible, and the entity meta packet now includes a frog variant as well... But I was unable to reporoduce the issue :(
Can you test with https://github.com/derklaro/ProtocolLib/suites/7751342324/artifacts/325500206 again? If the cloning still fails, can you send me some kind of data which items are in the data watcher item list in the entity meta packet?
deepcloned data watcher
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Before deepclone Entity:CraftFrog
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Index:0
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value:0
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Byte
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Index:2
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value:Optional.empty
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.util.Optional
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Index:6
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value:CROAKING
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:net.minecraft.world.entity.EntityPose
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Index:4
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value:false
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Boolean
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Index:15
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value:0
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Byte
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Index:14
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value:Optional.empty
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.util.Optional
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Index:12
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value:0
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Integer
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Index:13
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value:0
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Integer
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Index:8
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value:0
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Byte
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Index:9
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value:10.0
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Float
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Index:11
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value:false
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Boolean
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Index:10
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value:0
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Integer
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Index:1
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value:300
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Integer
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Index:3
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value:false
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Boolean
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Index:7
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value:0
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Integer
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Index:5
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value:false
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Boolean
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Index:16
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value:false
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Boolean
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Index:17
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value:FrogVariant[texture=minecraft:textures/entity/frog/temperate_frog.png]
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:net.minecraft.world.entity.animal.FrogVariant
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Index:18
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value:OptionalInt.empty
[21:59:23 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.util.OptionalInt
[21:59:23 错误]: Packet encoding of packet ID 77 threw (skippable? false)
java.lang.IllegalArgumentException: Can't find id for 'FrogVariant[texture=minecraft:textures/entity/frog/temperate_frog.png]' in map Registry[ResourceKey[minecraft:root / minecraft:frog_variant] (Experimental)]
at net.minecraft.network.FriendlyByteBuf.writeId(FriendlyByteBuf.java:139) ~[?:?]
at net.minecraft.network.syncher.EntityDataSerializer.lambda$simpleId$1(EntityDataSerializer.java:43) ~[?:?]
at net.minecraft.network.syncher.EntityDataSerializer$1.write(EntityDataSerializer.java:22) ~[?:?]
at net.minecraft.network.syncher.SynchedEntityData.writeDataItem(SynchedEntityData.java:231) ~[?:?]
at net.minecraft.network.syncher.SynchedEntityData.pack(SynchedEntityData.java:168) ~[?:?]
at net.minecraft.network.protocol.game.ClientboundSetEntityDataPacket.write(ClientboundSetEntityDataPacket.java:33) ~[?:?]
at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:41) ~[paper-1.19.jar:git-Paper-43]
at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:14) ~[paper-1.19.jar:git-Paper-43]
at jdk.internal.reflect.GeneratedMethodAccessor38.invoke(Unknown Source) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
at com.viaversion.viaversion.util.PipelineUtil.callEncode(PipelineUtil.java:93) ~[ViaVersion-4.4.1.jar:?]
at com.viaversion.viaversion.bukkit.handlers.BukkitEncodeHandler.encode(BukkitEncodeHandler.java:71) ~[ViaVersion-4.4.1.jar:?]
at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:107) ~[netty-codec-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:709) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:792) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:702) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:120) ~[netty-codec-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:764) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:790) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:758) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1020) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:311) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at com.comphenix.protocol.injector.netty.channel.NettyChannelProxy.writeAndFlush(NettyChannelProxy.java:227) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.netty.channel.NettyChannelProxy.writeAndFlush(NettyChannelProxy.java:233) ~[ProtocolLib.jar:?]
at net.minecraft.network.Connection.doSendPacket(Connection.java:463) ~[?:?]
at net.minecraft.network.Connection.lambda$writePacket$11(Connection.java:437) ~[?:?]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[netty-common-4.1.77.Final.jar:4.1.77.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[netty-common-4.1.77.Final.jar:4.1.77.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[netty-common-4.1.77.Final.jar:4.1.77.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:995) ~[netty-common-4.1.77.Final.jar:4.1.77.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.77.Final.jar:4.1.77.Final]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
before deepclone
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Entity(Before deepclone):CraftFrog
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Entity(After deepclone):CraftFrog
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Index:0
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value:0
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Byte
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Index:2
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value:Optional.empty
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.util.Optional
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Index:6
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value:STANDING
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:net.minecraft.world.entity.EntityPose
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Index:4
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value:false
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Boolean
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Index:15
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value:0
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Byte
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Index:14
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value:Optional.empty
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.util.Optional
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Index:12
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value:0
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Integer
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Index:13
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value:0
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Integer
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Index:8
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value:0
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Byte
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Index:9
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value:10.0
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Float
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Index:11
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value:false
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Boolean
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Index:10
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value:0
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Integer
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Index:1
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value:300
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Integer
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Index:3
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value:false
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Boolean
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Index:7
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value:0
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Integer
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Index:5
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value:false
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Boolean
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Index:16
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value:false
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.lang.Boolean
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Index:17
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value:FrogVariant[texture=minecraft:textures/entity/frog/temperate_frog.png]
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:net.minecraft.world.entity.animal.FrogVariant
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Index:18
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value:OptionalInt.empty
[22:03:20 信息]: [ProtocolStringReplacer] [STDOUT] Value Class:java.util.OptionalInt
🤦 I'm sorry, there was a cloning issue with VillagerData in that test which caused it to use a different cloning method... Can reproduce that now :)
It should be fixed in https://github.com/derklaro/ProtocolLib/suites/7753494764/artifacts/325639845 🙏
It should be fixed in https://github.com/derklaro/ProtocolLib/suites/7753494764/artifacts/325639845 🙏
Can confirm it's fixed👍