wisp-forest / accessories

A extendable and data-driven Accessory Mod for Minecraft
Other
28 stars 10 forks source link

[Bug] [Forge 1.20.1] Multiplayer Syncing Problem on Player Join #42

Closed maxim0p closed 3 months ago

maxim0p commented 3 months ago

When attempting to play Multiplayer/LAN with the accessories mod, only one player can access the accessory GUI at a time. The game will also crash when another player tries to access the accessory GUI screen. The crash is the same for both cases as it seems to be a client side crash.

Crash log: https://pastebin.com/av3zfkq1

In the case of a multiplayer server, only the player who joined the server first can access the accessory GUI, anyone who joins after can press the inventory button, but nothing will happen. If the first player disconnects and reconnects the second player can now open the GUI, but when the first player presses the inventory button, they will crash, and subsequently anyone who joins after, can't open the GUI again. Also trying to use the "H" keybind to open the GUI does not work either and will also crash the game.

Server video demonstration: https://streamable.com/njru9f

For LAN hosted single player world its pretty much the same but no crash since the host cant disconnect and reconnect. Only the LAN host can access the accessory GUI and not any other players.

Singleplayer LAN video demonstration: https://streamable.com/l45uwa

Note: I have connector present, and I'm using regular Forge, but I have done a lot of troubleshooting, with and without connector installed, using NeoForge, using different curios mods and trinkets mods. I also tested on a clean profile with just accessories and cloth config installed, and it all ends up in the same bug/crash.

Forge Version: 47.3.3 Minecraft Version: 1.20.1

Accessory mods used: accessories-1.0.0-alpha.24+1.20-neoforge _accessoriescclayer-7.4.0-alpha.13+1.20 _accessoriestclayer-3.8.1-alpha.12+1.20

Dragon-Seeker commented 3 months ago

Wow this is a odd bug, will investigate such.

Dragon-Seeker commented 3 months ago

Testing within the development for 1.21 without compat layers, I can't reproduce the issue. Will attempt such within 1.20.1 and then test with both compat layers.

Dragon-Seeker commented 3 months ago

Seems to be involved with the OnDatapackSyncEvent on forge not firing leading to a problem where the client does not get the data required i.e. slot info and such. Meaning it's just a forge specific bug... argg

Dragon-Seeker commented 3 months ago

Ok tracked it down to a bug within the code targeting the wrong entity when trying to reopen the screens for anyone who has AccessoriesScreen open when running dataSync

Dragon-Seeker commented 3 months ago

Further checking on the CCLayer seems to still have the bug, most investigating! Disregard such, building issues didn't make the latest changes.

Dragon-Seeker commented 3 months ago

Pushed a fix for such to modrinth and curseforge

maxim0p commented 3 months ago

Just tested the new version. The issue seems fixed from my testing. And the visual bug from #43 is fixed as well, the accessories now appear, and the game no longer crashes. Thank you!

I also tested the keepInventory bug from #40 to see if it was related, and it still drops it seems. Interestingly though, that bug doesn't happen on the Alpha 23 version.

Dragon-Seeker commented 3 months ago

Will look into the keep inventory bug coming up but closing this as fixed