KyoriPowered / adventure-platform-mod

An adapter for adventure to integrate with Fabric and NeoForge
https://docs.advntr.dev/platform/fabric.html
MIT License
31 stars 19 forks source link

Player dies and does not drop items or get death message. Log points to adventure-platform-fabric-5.14.0-8212e244c451835.jar #145

Closed RedOptic closed 3 months ago

RedOptic commented 4 months ago

Hopefully this is the right place to put this. I'm getting an odd error with a fabric 1.21 server and adventure-platform-fabric keeps being mentioned when the error happens and I was hoping for some insight. Whether the error occurs or not is random.

The specific part of the log when the error occurs: https://pastebin.com/WZaeAb54

The rest of the logs don't provide any other information related to this error but I can provide them after going through and removing IPs and such if needed.

MiniDigger commented 4 months ago

adventure is only a library for displaying chat, for varius reasons it has to hook into the message sending pipeline. this is most likely not caused by adventure (or adventure-platform-fabric) the error you are seeing is thrown by minecraft code. a wild guess is that the player is killed with an item that has some kinda malformed data on it (since it item is used in the death message that will throw an error on serializing). do you know what item was used? does it always occur when using that item? what is it enchanted with?

RedOptic commented 4 months ago

adventure is only a library for displaying chat, for varius reasons it has to hook into the message sending pipeline. this is most likely not caused by adventure (or adventure-platform-fabric) the error you are seeing is thrown by minecraft code. a wild guess is that the player is killed with an item that has some kinda malformed data on it (since it item is used in the death message that will throw an error on serializing). do you know what item was used? does it always occur when using that item? what is it enchanted with?

The error seems to happen with any enchanted item in a players inventory, no matter the enchantment, on about 10% of deaths. The error does seem to happen more frequently when a player is killed by the new mace item, if it's enchanted with the new enchants that came out alongside it.

One other thing I've noticed is that using /give to give yourself enchanted items also spits out the "Can't access registry ResourceKey[minecraft:root / minecraft:enchantment]; Can't access registry ResourceKey[minecraft:root / minecraft:enchantment]" error, but does still give the item with the enchants.

Anything with enchanted items whether they be in a players inventory, if the player is killed by an enchanted item, or both seems to cause the issue. Just not consistently.

FifthTundraG commented 4 months ago

adventure is only a library for displaying chat, for varius reasons it has to hook into the message sending pipeline. this is most likely not caused by adventure (or adventure-platform-fabric)

This appears to be the case.

This error does not occur in adventure-platform-fabric, but does with the Better Fabric Console mod. adventure-platform-fabric is a dependency of this mod, which is what I'm assuming OP had installed when experiencing this error. I've created an issue on the Better Fabric Console GitHub referencing various problems mentioned here. See https://github.com/jpenilla/better-fabric-console/issues/46

jpenilla commented 4 months ago

This is a valid issue, components using registries not accessible from BuiltInRegistries.REGISTRY (i.e. enchantments in 1.21+) will fail to convert to/from adventure using #asComponent or the deprecated FabricAudiences#toAdventure method.

FifthTundraG commented 4 months ago

This is a valid issue, components using registries not accessible from BuiltInRegistries.REGISTRY (i.e. enchantments in 1.21+) will fail to convert to/from adventure using #asComponent or the deprecated FabricAudiences#toAdventure method.

Thanks for the clarification! Interesting that I couldn't reproduce it when I was testing adventure-platform-fabric, but could with Better Fabric Console. I'll close the issue on your repository.

sakurawald commented 4 months ago

This is a valid issue, components using registries not accessible from BuiltInRegistries.REGISTRY (i.e. enchantments in 1.21+) will fail to convert to/from adventure using #asComponent or the deprecated FabricAudiences#toAdventure method.

Confirmed, same as https://github.com/KyoriPowered/adventure/issues/1093