ejektaflex / Bountiful

A Minecraft mod adding bounties for specific items.
https://minecraft.curseforge.com/projects/bountiful
GNU General Public License v3.0
82 stars 31 forks source link

[Bug]: mouse click crash when clicking a trade option in bounty board #242

Closed Nostalgion closed 5 months ago

Nostalgion commented 11 months ago

What happened?

when clicking a trade option in the bounty board, in my instance it was one with a bed from Handcrafted, the game freezes then crashes after about 5 seconds, resulting in this log: https://mclo.gs/isOOicm

How can we reproduce it?

utilizing mods found in this zip (hopefully it is accessible through this link) https://cdn.discordapp.com/attachments/899417775032913961/1132826599184666674/fungly-3.zip

Mod Version

latest as of 7/23/2023

Mod Loader

Forge

Mod Loader Version

47.1.1 - 1.20.1

Relevant log output

https://mclo.gs/isOOicm

ejektaflex commented 11 months ago

From what I can tell, this is due to some sort of registration bug. When the game starts, we register our Message types on the client and on the server; these are the messages that can be sent between client<-->server. Then, when sending a message, it looks up the Message type so that it can figure out how to serialize the message and send it. However, for some reason, the lookup apparently has a small chance of randomly failing to find the registered Message, even though I can confirm that it's been previously registered. I have absolutely no code that would remove the Messages from the registry, so I don't know why the registered Message would be removed.

I have a proposed solution for the bug that involves having the client re-register the Message if it can't find it. Weird thing about that though is:

Nicole-Evermore commented 7 months ago

Issue is still occurring. On server a player right clicked a bounty and was kicked: https://mclo.gs/MD2ktwr This 'ticking error' repeated whenever the player tried to rejoin the server, and kicked them before even loading into the world. Bounty picked up was a bounty for an amount of Copper bars, which the player did have on hand at the time. Using an NBT editor to remove the Bounty item from their inventory allowed them to reconnect. Note: Error only occurred when bounty was right clicked. Holding the base bounty in the inventory before then caused no issue.

ejektaflex commented 5 months ago

@Nicole-Evermore that's because of the mod Create: Sweets & Treats, it's an unrelated problem with their mod. Uninstall it to fix your problem.

The above problem was due to my network data being de-registered for a reason that I can't rightly explain - but I haven't had it happen in quite a while, so hopefully it was just a Forge bug causing this. I'm marking this as closed, unless it can be reliably reproduced.