DentedLeft / Dented-Modding

General repository for Minecraft mods by Dented Modding
0 stars 0 forks source link

[Vanilla Sprinkles] Items stack above 99 in bundle causes crash #8

Closed TheMasterBlaster closed 3 months ago

TheMasterBlaster commented 3 months ago

Once an item stacks above 99 in a bundle, my server begins to spam an error message in the console and TPS begins to drop. On single player, trying to save and quit with a bundle holding over 99 items crashes the game. I have replicated the issue with no extra mods installed.

Minecraft - 1.21 Vanilla Sprinkles - 1.0.2 Fabric API - 0.100.4

Launcher crash message "The game crashed whilst saving entity nbt Error: java.lang.IllegalStateException: Value must be within range [1;99]: 128"

DentedLeft commented 3 months ago

Thank you for bringing up this issue. What error message is spammed in the server console?

TheMasterBlaster commented 3 months ago

net.minecraft.class_148: Saving entity NBT at net.minecraft.class_1297.method_5647(class_1297.java:1940) ~[server-intermediary.jar:?] at net.minecraft.class_2306.method_9957(class_2306.java:312) ~[server-intermediary.jar:?] at net.minecraft.class_2300.method_9813(class_2300.java:236) ~[server-intermediary.jar:?] at net.minecraft.class_2300.method_9816(class_2300.java:120) ~[server-intermediary.jar:?] at net.minecraft.class_2186.method_9307(class_2186.java:67) ~[server-intermediary.jar:?] at net.minecraft.class_3050.method_13292(class_3050.java:208) ~[server-intermediary.jar:?] at com.mojang.brigadier.context.ContextChain.runModifier(ContextChain.java:60) ~[brigadier-1.2.9.jar:?] at net.minecraft.class_8858.method_54410(class_8858.java:78) ~[server-intermediary.jar:?] at net.minecraft.class_8858$class_8861.method_54412(class_8858.java:156) ~[server-intermediary.jar:?] at net.minecraft.class_8858$class_8861.execute(class_8858.java:148) ~[server-intermediary.jar:?] at net.minecraft.class_8856.method_54405(class_8856.java:8) ~[server-intermediary.jar:?] at net.minecraft.class_8847.method_54388(class_8847.java:8) ~[server-intermediary.jar:?] at net.minecraft.class_8854.method_54390(class_8854.java:107) ~[server-intermediary.jar:?] at net.minecraft.class_2170.method_54313(class_2170.java:379) ~[server-intermediary.jar:?] at net.minecraft.class_2991.method_12904(class_2991.java:69) ~[server-intermediary.jar:?] at net.minecraft.class_2991.method_29460(class_2991.java:59) ~[server-intermediary.jar:?] at net.minecraft.class_2991.method_18699(class_2991.java:53) ~[server-intermediary.jar:?] at net.minecraft.server.MinecraftServer.method_3813(MinecraftServer.java:1007) ~[server-intermediary.jar:?] at net.minecraft.class_3176.method_3813(class_3176.java:299) ~[server-intermediary.jar:?] at net.minecraft.server.MinecraftServer.method_3748(MinecraftServer.java:912) ~[server-intermediary.jar:?] at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:697) ~[server-intermediary.jar:?] at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:281) ~[server-intermediary.jar:?] at java.base/java.lang.Thread.run(Thread.java:1583) [?:?] Caused by: java.lang.IllegalStateException: Value must be within range [1;99]: 128 at com.mojang.serialization.DataResult$Error.getOrThrow(DataResult.java:287) ~[datafixerupper-8.0.16.jar:?] at com.mojang.serialization.DataResult.getOrThrow(DataResult.java:81) ~[datafixerupper-8.0.16.jar:?] at net.minecraft.class_1799.method_57376(class_1799.java:396) ~[server-intermediary.jar:?] at net.minecraft.class_1661.method_7384(class_1661.java:408) ~[server-intermediary.jar:?] at net.minecraft.class_1657.method_5652(class_1657.java:895) ~[server-intermediary.jar:?] at net.minecraft.class_3222.method_5652(class_3222.java:412) ~[server-intermediary.jar:?] at net.minecraft.class_1297.method_5647(class_1297.java:1922) ~[server-intermediary.jar:?] ... 22 more

TheMasterBlaster commented 3 months ago

I was removing mods one by one on the server. A Tool Trims mod is causing the console error spam, but even without that mod installed, if a player has 100 of one item in a bundle when they try to log out the server fails to save their data and throws [19:50:35 WARN] [Server thread]: [PlayerDataStorage] Failed to save player data for TheMasterBlast_r

DentedLeft commented 3 months ago

I adjusted the stack sizes for the bundle. It now accepts up to 96 64-stack items, 48 16-stack items, or 4 1-stack items.

DentedLeft commented 3 months ago

Fixed in version 1.0.3.

TheMasterBlaster commented 3 months ago

I was thinking. Couldn't you have made the bundle just start a new stack once the first one got to 64?

DentedLeft commented 3 months ago

I had that same idea, but there's no way to differentiate between different stacks once items are loaded into a bundle- stacks of the same item are automatically condensed. If I could figure out this problem, I'd have left the bundle size as it was.

TheMasterBlaster commented 3 months ago

I wonder how the mod/datapack Infinite Storage Bundle handled it. From the image on the gallery, they got four 64 stacks of logs to show up correctly

DentedLeft commented 3 months ago

That's very interesting. I'm not sure what's missing on my end but I'll reopen this issue and see if I find a fix so that I can put bundles back to 256 items maximum.

DentedLeft commented 3 months ago

Restored 4x Bundle capacity (256 items max) as of version 1.0.4.