Crash in Better Minecraft Fabric 1.19.2 from improper Random call
ccrvincent opened this issue ยท 3 comments
Describe the bug
Server crashes on player death. Stack trace indicates that GraveHelper#deleteItemFromList
is calling Random#nextInt
with a 0 upper bound, which isn't valid.
Additional context
Mentioned in a server host's Discord from someone else. Looks like it's just missing an empty inventory check in deleteItemFromList
.
Running BetterMinecraft FABRIC 1.19.2
Time: 2023-01-05 19:48:22
Description: Exception in server tick loop
java.lang.IllegalArgumentException: bound must be positive
at java.base/java.util.Random.nextInt(Random.java:321)
at com.b1n_ry.yigd.core.GraveHelper.deleteItemFromList(GraveHelper.java:71)
at com.b1n_ry.yigd.core.GraveHelper.onDeath(GraveHelper.java:154)
at net.minecraft.class_1309.md2fd7f0$lambda$generateGrave$0$10(class_1309.java:39112)
at com.b1n_ry.yigd.Yigd.lambda$onInitialize$3(Yigd.java:265)
at net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents.lambda$static$2(ServerTickEvents.java:62)
at net.minecraft.server.MinecraftServer.handler$cfi002$onEndTick(MinecraftServer.java:7821)
at net.minecraft.server.MinecraftServer.method_3748(MinecraftServer.java:857)
at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:665)
at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:257)
at java.base/java.lang.Thread.run(Thread.java:833)
Thanks for the report. Should be really easy to fix. Not quite sure when I'll have access to my computer for this next, so I'm sorry for any delay until the new update. A temporary solution would be to disable item-loss in the configs. It might not be as balanced as you would want it to be, but at least there won't be any crashes when people die with empty inventories. Also, let me know if there's any improvements you would like to see to the item loss mechanic (or anything else for that matter)
I made a bare-minimum fix of making sure there's something to process and put it in a PR. Super slap-dash (I didn't even clone the repo locally, just used the web editor) but should work until you can put together something more thorough.