P3pp3rF1y / Reliquary

The source code of Reliquary! That mod, with the magical swag, and a weapon, and stuff.
Other
44 stars 33 forks source link

Crash with Shift-Clicking Reliquary Curios to/from Curios Inventory #652

Closed P3BBL35 closed 1 day ago

P3BBL35 commented 10 months ago

Version: 1.20.1 Mod Version: 2.0.36.1199 Curios Mod Version: 5.4.0 for 1.20.1 Issue: Currently running a custom modded server with some friends. When someone shift-clicks the Invisibility Cloak curio in/out from the Curios inventory, the server crashes. This happened consistently and was reproducible. We tried putting the Cloak on and off without shift-clicking the item into the curios inventory, and no crashes occurred. Also tested for the Charm Belt, which caused a client-side crash, and the Twilight Cloak, which had the same results. Both crashed with the following error message on the server log:

java.lang.ClassCastException: class net.minecraft.world.item.AirItem cannot be cast to class reliquary.items.util.ICuriosItem (net.minecraft.world.item.AirItem is in module minecraft@1.20.1 of loader 'TRANSFORMER' @76b05c0; reliquary.items.util.ICuriosItem is in module reliquary@1.20.1-2.0.36.1199 of loader 'TRANSFORMER' @76b05c0)
        at TRANSFORMER/reliquary@1.20.1-2.0.36.1199/reliquary.compat.curios.CuriosBaubleItemWrapper.<init>(CuriosBaubleItemWrapper.java:15)
        at TRANSFORMER/reliquary@1.20.1-2.0.36.1199/reliquary.compat.curios.CuriosCompat$1.lambda$getCapability$0(CuriosCompat.java:84)
        at TRANSFORMER/forge@47.2.1/net.minecraftforge.common.util.LazyOptional.getValue(LazyOptional.java:99)
        at TRANSFORMER/forge@47.2.1/net.minecraftforge.common.util.LazyOptional.getValueUnsafe(LazyOptional.java:110)
        at TRANSFORMER/forge@47.2.1/net.minecraftforge.common.util.LazyOptional.map(LazyOptional.java:180)
        at TRANSFORMER/curios@5.4.0+1.20.1/top.theillusivec4.curios.common.event.CuriosEventHandler.syncCurios(CuriosEventHandler.java:663)
        at TRANSFORMER/curios@5.4.0+1.20.1/top.theillusivec4.curios.common.event.CuriosEventHandler.lambda$tick$29(CuriosEventHandler.java:577)
        at TRANSFORMER/forge@47.2.1/net.minecraftforge.common.util.LazyOptional.ifPresent(LazyOptional.java:137)
...

Some hopefully relevant server crash logs here regarding my friends trying the shift-clicking, which caused a full server crash. crash-2023-11-11_18.50.08-server.txt crash-2023-11-11_18.54.28-server.txt crash-2023-11-11_18.57.59-server.txt

P3pp3rF1y commented 6 months ago

I tried shift-clicking like crazy while also angering enderman because that's what I saw was happening in one of the crash logs, but I am unable to recreate. Looks like one of the ton of mods you have there is doing something funky where it allows updating stack in curios at the same time enderman's anger code is running which definitely isn't vanilla behavior where these things happen after each other. If you are able to figure out how to recreate with a specific mod or a few mods I can take another look to see if there's anything on my side to fix.

P3BBL35 commented 6 months ago

From some playing around, it seems like it's an incompatibility with the L2 Library Mod. The following crash log is with just Reliquary, Curios API, and L2 Library mods, using the latest versions of each. This is specifically concerning the L2 Library's Curios Inventory. Shift-clicking a curio from the Curios inventory causes a crash. crash-2024-04-02_15.05.38-server.txt

I tried doing the same thing with some other Curio-supporting mods like Artifacts, and shift-clicking from the Curios Inventory does not cause a crash. It seems to only be Reliquary-related curios.

P3pp3rF1y commented 6 months ago

Alright, please report to them as they are doing something funky then which causes the stack to be empty despite the fact that it wasn't empty when it got curio capability initialized based on the fact it was a curio. No idea what that could be but give the fact they are actually adding whole new screen for curios I am guessing it's some improper update of the stacks in slot click code or something similar.

P3pp3rF1y commented 1 day ago

closing