Bawnorton / Neruina

A mod that prevents ticking related crashes from bricking worlds
MIT License
39 stars 3 forks source link

[Bug Report] Items disappearing after player kick #1

Closed onycius closed 1 year ago

onycius commented 1 year ago

Hello! I've experienced several instances where Neruina would kick a player as a crash-ticking entity right before or during death. In these cases, the player logs back in to see their items missing. There is no death message recorded.

Case 1: player teleports outside the world border and gets instantly killed by suffocation. One of my players got kicked instead, and their items/graves were nowhere to be found.

Case 2: fighting a high-HP boss. Mid-fight, the player was kicked and their items/grave were nowhere to be found.

I have YIGD installed, so there might be an incompatibility there. A grave should be forming where they die, but since the game doesn't register that they actually died the grave doesn't form.

Bawnorton commented 1 year ago

This sounds like an incompatibility issue, please send me your server's log for when the kicks happen. If you're hosting yourself it will be at .minecraft/logs/, otherwise you'll have to check where your server provider stores logs.

onycius commented 1 year ago

This might not be a direct incompatibility with Neruina but with YIGD and ticking entities themselves. The error still occurs with Neruina installed, so if you're able to make an indirect fix for this through Neruina that'd be great! If not, I'll contact the YIGD devs instead.

Here is the error (the log was too large to fully copy/paste): https://pastebin.com/JjTc1P6p

Bawnorton commented 1 year ago

Well, since Neruina isn't responsible, I won't be adding a patch as Neruina is designed to stop ticking entity-type crashes from crashing the server itself, not fix the cause of the crash.

Btw the error you sent only includes the top part of the stack trace, in order to properly diagnose you'll want to send the file located at "/home/container/./crash-reports/crash-2023-05-26_21.00.59-server.txt" to the devs of YIGD or use mclo.gs instead which you should be able to paste the whole log into.

onycius commented 1 year ago

for testing purposes, is it possible to remove certain mixins? specifically, the one that deals with kicking/killing the player?

Bawnorton commented 1 year ago

I'm quite busy atm, when I have the time to get around to it I can make a modified jar. Or you can compile it yourself if you know how. Clone the repo and remove ServerPlayNetworkHandlerMixin.java and remove the reference to it in the mixins json in the resources folder and then build with gradle, jar will be in build/libs. If not, I can do it, 1.18 or 1.19?

onycius commented 1 year ago

1.19.2. thank you so much!

Bawnorton commented 1 year ago

neruina-0.2.0+1.19-custom.jar.zip

I was able to do it from my phone, don't ask. This version won't handle when the player entity causes a ticking exception. I wouldn't expect the behaviour to be any different as when a ticking exception occurs no other code is run and the game just crashes.