KyoriPowered / adventure-platform

Adventure platform implementations
https://docs.advntr.dev/platform/index.html
MIT License
175 stars 29 forks source link

Exception when sending Title using BukkitAudiences in Paper 1.20.4 #159

Open XXY233 opened 6 months ago

XXY233 commented 6 months ago

The reason I'm using BukkitAudiences is that I want the plugin to also work with Spigot and Minecraft 1.8. The plugin works fine in Paper 1.20.1, but not in Paper 1.20.4.

server: paper-1.20.4-447 adventure-platform-bukkit: 4.3.2

stack-traces ``` [22:36:20] [Netty Server IO #3/ERROR]: Packet encoding of packet ClientboundSetSubtitleTextPacket (ID: 97) threw (skippable? false) java.lang.NullPointerException: Cannot invoke "net.minecraft.network.chat.IChatBaseComponent.d()" because "text" is null at net.minecraft.network.chat.ComponentSerialization.lambda$createCodec$11(ComponentSerialization.java:117) ~[paper-1.20.4.jar:git-Paper-447] at com.mojang.serialization.Encoder$1.encode(Encoder.java:25) ~[datafixerupper-6.0.8.jar:?] at com.mojang.serialization.Codec$2.encode(Codec.java:76) ~[datafixerupper-6.0.8.jar:?] at net.minecraft.util.ExtraCodecs$RecursiveCodec.encode(ExtraCodecs.java:671) ~[?:?] at com.mojang.serialization.Encoder.encodeStart(Encoder.java:14) ~[datafixerupper-6.0.8.jar:?] at net.minecraft.network.FriendlyByteBuf.writeWithCodec(FriendlyByteBuf.java:121) ~[?:?] at net.minecraft.network.FriendlyByteBuf.writeComponent(FriendlyByteBuf.java:545) ~[?:?] at net.minecraft.network.protocol.game.ClientboundSetSubtitleTextPacket.write(ClientboundSetSubtitleTextPacket.java:29) ~[paper-1.20.4.jar:git-Paper-447] at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:42) ~[paper-1.20.4.jar:git-Paper-447] at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:14) ~[paper-1.20.4.jar:git-Paper-447] at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:107) ~[netty-codec-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:120) ~[netty-codec-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:113) ~[netty-codec-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.ChannelDuplexHandler.write(ChannelDuplexHandler.java:115) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.lumine.mythic.lib.util.network.LightInjector$PacketHandler.write(LightInjector.java:523) ~[MythicLib-dist-1.6.2-20240221.182953-33.jar:?] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:879) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.DefaultChannelPipeline.write(DefaultChannelPipeline.java:1015) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannel.write(AbstractChannel.java:301) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at com.comphenix.protocol.injector.netty.channel.NettyChannelProxy.write(NettyChannelProxy.java:210) ~[ProtocolLib.jar:?] at com.comphenix.protocol.injector.netty.channel.NettyChannelProxy.write(NettyChannelProxy.java:199) ~[ProtocolLib.jar:?] at net.minecraft.network.Connection.doSendPacket(Connection.java:448) ~[?:?] at net.minecraft.network.Connection.lambda$sendPacket$10(Connection.java:433) ~[?:?] at com.comphenix.protocol.injector.netty.channel.NettyEventLoopProxy.lambda$proxyRunnable$2(NettyEventLoopProxy.java:48) ~[ProtocolLib.jar:?] at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] at java.lang.Thread.run(Thread.java:840) ~[?:?] [22:36:20] [Netty Server IO #3/ERROR]: Packet encoding of packet ClientboundSetTitleTextPacket (ID: 99) threw (skippable? false) java.lang.NullPointerException: Cannot invoke "net.minecraft.network.chat.IChatBaseComponent.d()" because "text" is null at net.minecraft.network.chat.ComponentSerialization.lambda$createCodec$11(ComponentSerialization.java:117) ~[paper-1.20.4.jar:git-Paper-447] at com.mojang.serialization.Encoder$1.encode(Encoder.java:25) ~[datafixerupper-6.0.8.jar:?] at com.mojang.serialization.Codec$2.encode(Codec.java:76) ~[datafixerupper-6.0.8.jar:?] at net.minecraft.util.ExtraCodecs$RecursiveCodec.encode(ExtraCodecs.java:671) ~[?:?] at com.mojang.serialization.Encoder.encodeStart(Encoder.java:14) ~[datafixerupper-6.0.8.jar:?] at net.minecraft.network.FriendlyByteBuf.writeWithCodec(FriendlyByteBuf.java:121) ~[?:?] at net.minecraft.network.FriendlyByteBuf.writeComponent(FriendlyByteBuf.java:545) ~[?:?] at net.minecraft.network.protocol.game.ClientboundSetTitleTextPacket.write(ClientboundSetTitleTextPacket.java:29) ~[paper-1.20.4.jar:git-Paper-447] at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:42) ~[paper-1.20.4.jar:git-Paper-447] at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:14) ~[paper-1.20.4.jar:git-Paper-447] at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:107) ~[netty-codec-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:120) ~[netty-codec-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:113) ~[netty-codec-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.ChannelDuplexHandler.write(ChannelDuplexHandler.java:115) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.lumine.mythic.lib.util.network.LightInjector$PacketHandler.write(LightInjector.java:523) ~[MythicLib-dist-1.6.2-20240221.182953-33.jar:?] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:879) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.DefaultChannelPipeline.write(DefaultChannelPipeline.java:1015) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.AbstractChannel.write(AbstractChannel.java:301) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at com.comphenix.protocol.injector.netty.channel.NettyChannelProxy.write(NettyChannelProxy.java:210) ~[ProtocolLib.jar:?] at com.comphenix.protocol.injector.netty.channel.NettyChannelProxy.write(NettyChannelProxy.java:199) ~[ProtocolLib.jar:?] at net.minecraft.network.Connection.doSendPacket(Connection.java:448) ~[?:?] at net.minecraft.network.Connection.lambda$sendPacket$10(Connection.java:433) ~[?:?] at com.comphenix.protocol.injector.netty.channel.NettyEventLoopProxy.lambda$proxyRunnable$2(NettyEventLoopProxy.java:48) ~[ProtocolLib.jar:?] at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.97.Final.jar:4.1.97.Final] at java.lang.Thread.run(Thread.java:840) ~[?:?] [22:36:20] [Server thread/INFO]: TheLittle_Yang lost connection: Internal Exception: io.netty.handler.codec.EncoderException: java.lang.NullPointerException: Cannot invoke "net.minecraft.network.chat.IChatBaseComponent.d()" because "text" is null [22:36:20] [Server thread/INFO]: TheLittle_Yang left the game ```
XXY233 commented 2 weeks ago

Well, this only happens after relocating the package, it doesn't happen if I don't relocate the package.

relocate("net.kyori.adventure", "xxx.adventure")