Wizardry Mod

Wizardry Mod

6M Downloads

Unknown crash on my server caused by Wizardry

BloxMaster3 opened this issue ยท 7 comments

commented

Crash Report: crash-2024-04-23_06.36.34-server.txt
Latest Log:
latest.zip
the crash just happened randomly with no visible cause in-game, but only the server crashed, the client was just disconnected

commented

The crash happened in the Phase Effect. The most likely reason is that the new blacklist system did not take into account that the effect can be applied to mobs, and may have caused an error. But it's good to check.

commented

The crash happened in the Phase Effect. The most likely reason is that the new blacklist system did not take into account that the effect can be applied to mobs, and may have caused an error. But it's good to check.

whats the newest version that doesn't have this blacklist system or can I disable it?

The blacklist system was introduced in v0.11.2 so I recommend using the previous version.

will this ever be fixed? I noticed on the discord that it says discontinued

commented

The crash happened in the Phase Effect. The most likely reason is that the new blacklist system did not take into account that the effect can be applied to mobs, and may have caused an error. But it's good to check.

whats the newest version that doesn't have this blacklist system or can I disable it?

commented

The crash happened in the Phase Effect. The most likely reason is that the new blacklist system did not take into account that the effect can be applied to mobs, and may have caused an error. But it's good to check.

whats the newest version that doesn't have this blacklist system or can I disable it?

The blacklist system was introduced in v0.11.2 so I recommend using the previous version.

commented

Even though it is discontinued there is still one person who wants to keep version 1.12.2 and my team and I will start rewriting the mod for newer versions soon.

commented

I did... SO MUCH DIGGING... in order to isolate this bug, though I didn't learn too much more than already covered here.

This crash will only happen on dedicated servers because of this offending line:

https://github.com/TeamWizardry/Wizardry/blob/master/src/main/java/com/teamwizardry/wizardry/common/potion/PotionPhase.java#L415

No surprises here, this is the line implicated in the crash report. Here's what happened:

AxisAlignedBB.getCenter() is CLIENT-SIDE ONLY. Meaning that when this line is reached on a dedicated server, it throws the NoMethodDefError. That throwable, being an error and not an exception, is then not caught by the try-catch.

The solution is to avoid using methods that exist on one side only, like that one. You can calculate the center yourself if you need it bad enough. If you really want to be cute, use a Mixin to add in the missing implementation to the class itself (making it dual-sided), since you already depend on that system.

I am not sure that this bug happens only in the case of a mob with the potion effect, as this code is essentially bad to run on the dedicated server in general. I don't see any sided code in that file that would suggest that when handling the potion effect for player entities that the offending line would not be executed on the server as well.

commented

I did... SO MUCH DIGGING... in order to isolate this bug, though I didn't learn too much more than already covered here.

This crash will only happen on dedicated servers because of this offending line:

https://github.com/TeamWizardry/Wizardry/blob/master/src/main/java/com/teamwizardry/wizardry/common/potion/PotionPhase.java#L415

No surprises here, this is the line implicated in the crash report. Here's what happened:

AxisAlignedBB.getCenter() is CLIENT-SIDE ONLY. Meaning that when this line is reached on a dedicated server, it throws the NoMethodDefError. That throwable, being an error and not an exception, is then not caught by the try-catch.

The solution is to avoid using methods that exist on one side only, like that one. You can calculate the center yourself if you need it bad enough. If you really want to be cute, use a Mixin to add in the missing implementation to the class itself (making it dual-sided), since you already depend on that system.

I am not sure that this bug happens only in the case of a mob with the potion effect, as this code is essentially bad to run on the dedicated server in general. I don't see any sided code in that file that would suggest that when handling the potion effect for player entities that the offending line would not be executed on the server as well.

yeah, i moved to electroblobs but good job finding the bug