-
-
Notifications
You must be signed in to change notification settings - Fork 148
Description
Expected behavior
The "Head" tag working properly and discarding illegal format.
Observed/Actual behavior
The message results in a RuntimeException because of Player name contained disallowed characters: 'aerulion '
View Exception
[14:00:50 ERROR]: Error sending packet clientbound/minecraft:system_chat
io.netty.handler.codec.EncoderException: Failed to encode packet 'clientbound/minecraft:system_chat'
at net.minecraft.network.codec.IdDispatchCodec.encode(IdDispatchCodec.java:62) ~[paper-1.21.10.jar:1.21.10-91-9934c17]
at net.minecraft.network.codec.IdDispatchCodec.encode(IdDispatchCodec.java:13) ~[paper-1.21.10.jar:1.21.10-91-9934c17]
at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:27) ~[paper-1.21.10.jar:1.21.10-91-9934c17]
at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:12) ~[paper-1.21.10.jar:1.21.10-91-9934c17]
at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:107) ~[netty-codec-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:893) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:113) ~[netty-codec-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:893) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.ChannelOutboundHandlerAdapter.write(ChannelOutboundHandlerAdapter.java:113) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at net.minecraft.network.Connection$2.write(Connection.java:718) ~[paper-1.21.10.jar:1.21.10-91-9934c17]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:893) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:956) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:982) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:950) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:969) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:310) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at net.minecraft.network.Connection.doSendPacket(Connection.java:493) ~[paper-1.21.10.jar:1.21.10-91-9934c17]
at net.minecraft.network.Connection.lambda$sendPacket$13(Connection.java:475) ~[paper-1.21.10.jar:1.21.10-91-9934c17]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173) ~[netty-common-4.1.118.Final.jar:4.1.118.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166) ~[netty-common-4.1.118.Final.jar:4.1.118.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) ~[netty-common-4.1.118.Final.jar:4.1.118.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) ~[netty-transport-4.1.118.Final.jar:4.1.118.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998) ~[netty-common-4.1.118.Final.jar:4.1.118.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.118.Final.jar:4.1.118.Final]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
Caused by: java.lang.RuntimeException: Failed to encode adventure Component: ObjectComponentImpl{contents=PlayerHeadObjectContentsImpl{name="aerulion ", id=null, profileProperties=[], hat=true, texture=null}, style=StyleImpl{obfuscated=not_set, bold=not_set, strikethrough=not_set, underlined=not_set, italic=not_set, color=null, shadowColor=null, clickEvent=null, hoverEvent=null, insertion=null, font=null}, children=[]}; Player name contained disallowed characters: 'aerulion '
at io.papermc.paper.adventure.WrapperAwareSerializer.lambda$serialize$2(WrapperAwareSerializer.java:38) ~[paper-1.21.10.jar:1.21.10-91-9934c17]
at com.mojang.serialization.DataResult$Error.getOrThrow(DataResult.java:287) ~[datafixerupper-8.0.16.jar:?]
at io.papermc.paper.adventure.WrapperAwareSerializer.serialize(WrapperAwareSerializer.java:38) ~[paper-1.21.10.jar:1.21.10-91-9934c17]
Caused by: java.lang.RuntimeException: Failed to encode adventure Component: ObjectComponentImpl{contents=PlayerHeadObjectContentsImpl{name="aerulion ", id=null, profileProperties=[], hat=true, texture=null}, style=StyleImpl{obfuscated=not_set, bold=not_set, strikethrough=not_set, underlined=not_set, italic=not_set, color=null, shadowColor=null, clickEvent=null, hoverEvent=null, insertion=null, font=null}, children=[]}; Player name contained disallowed characters: 'aerulion '
at io.papermc.paper.adventure.WrapperAwareSerializer.serialize(WrapperAwareSerializer.java:13) ~[paper-1.21.10.jar:1.21.10-91-9934c17]
at io.papermc.paper.adventure.AdventureComponent.deepConverted(AdventureComponent.java:26) ~[paper-1.21.10.jar:1.21.10-91-9934c17]
at io.papermc.paper.adventure.AdventureComponent.getContents(AdventureComponent.java:46) ~[paper-1.21.10.jar:1.21.10-91-9934c17]
at net.minecraft.network.chat.Component.tryCollapseToString(Component.java:68) ~[paper-1.21.10.jar:1.21.10-91-9934c17]
at net.minecraft.network.chat.ComponentSerialization.lambda$createCodec$9(ComponentSerialization.java:178) ~[paper-1.21.10.jar:1.21.10-91-9934c17]
at com.mojang.serialization.Encoder$1.encode(Encoder.java:25) ~[datafixerupper-8.0.16.jar:?]
at com.mojang.serialization.Codec$2.encode(Codec.java:80) ~[datafixerupper-8.0.16.jar:?]
at com.mojang.serialization.Codec$RecursiveCodec.encode(Codec.java:217) ~[datafixerupper-8.0.16.jar:?]
at com.mojang.serialization.Encoder.encodeStart(Encoder.java:14) ~[datafixerupper-8.0.16.jar:?]
at net.minecraft.network.chat.ComponentSerialization$1.encode(ComponentSerialization.java:57) ~[paper-1.21.10.jar:1.21.10-91-9934c17]
at net.minecraft.network.chat.ComponentSerialization$1.encode(ComponentSerialization.java:44) ~[paper-1.21.10.jar:1.21.10-91-9934c17]
at net.minecraft.network.codec.StreamCodec$8.encode(StreamCodec.java:150) ~[paper-1.21.10.jar:1.21.10-91-9934c17]
at net.minecraft.network.codec.StreamCodec$5.encode(StreamCodec.java:92) ~[paper-1.21.10.jar:1.21.10-91-9934c17]
at net.minecraft.network.codec.StreamCodec$5.encode(StreamCodec.java:82) ~[paper-1.21.10.jar:1.21.10-91-9934c17]
at net.minecraft.network.codec.IdDispatchCodec.encode(IdDispatchCodec.java:57) ~[paper-1.21.10.jar:1.21.10-91-9934c17]
... 30 more
What makes this issue more annoying is that when using this in the Chat Renderer context to allow for mini-messages in chat, the message won't be sent. This results in all connected players being kicked once the player chats again due to the chat message order check.
Steps/models to reproduce
Send a Messsage to a player using something like
player.sendMessage(MiniMessage.miniMessage().deserialize("<head:aerulion >"));
or
player.sendMessage(MiniMessage.miniMessage().deserialize("<head:aeru lion>"));
Plugin and Datapack List
None, just a test plugin to send the message.
Paper version
This server is running Paper version 1.21.10-91-main@9934c17 (2025-10-27T18:27:20Z) (Implementing API version 1.21.10-R0.1-SNAPSHOT)
You are running the latest version
Other
I wasn't sure whether to report it here or in the Adventure repository. If it is more appropriate there, please let me know and I will open a new issue.