apace100 / cosmetic-armor

Adds additional armor slots which don't affect armor stats, but instead act only as visual.
8 stars 13 forks source link

Game crashes when I open my inventory #32

Open TommYTommY2006 opened 1 year ago

TommYTommY2006 commented 1 year ago

I'm using the medievalMC modpack for 1.19.2 fabric. The second i put on a helmet my game crashed, everytime i join the server again i can play fine, until i open my inventory because then it just crashes again.

rwmb commented 1 year ago

same happened to me. I had to remove cosmetic armor from the server to be able to play again update: it only happens when using bewitchment armor, might be related to that old issue from last year...

HyperlyBola commented 1 year ago

Hi, without reading any of your crash logs (plz post them to make it easier for the dev to help diagnose your issues)

I can already tell this is likely an issue caused by geckolib. you don't need to delete the mod to fix the issue. Here's an alternative way to fix it if you wanna keep using the mod to hide your OP armor :)

  1. find your UUID https://mcuuid.net/
  2. go to your server's world folder and look for "playerdata" then open that and find the .dat folder matching your UUID
  3. download NBT Explorer https://github.com/jaquadro/NBTExplorer/releases and open the .dat file matching your player UUID
  4. find inventory and delete the folder containing the armor causing the issue
  5. save your changes and try joining your server again

i really enjoy having invisible or just general cosmetic armors, and i'm in no way saying you must try to keep this mod at all costs. like if it's better for you to just delete the mod then go ahead lol

kenbaird13 commented 1 year ago

I have this same issue, but with the botania armor. If i am wearing 2 full sets of armor, and one of them is botania, then the game crashes when my inventory is open.

Dr-Primal commented 1 year ago

The same thing also happened to my friend in a modded server, with the Witch Hat from BiomeMakeover. When he put on the hat, it caused both our games to fully crash because I was within view of the hat. I reported the issue to them and they directed me here. Seems like the Geckolib issue isn't exactly fixed yet. The odd part is that I'm wearing the full set of Prismarine Armor from Immersive armors as a cosmetic, yet my game acted just fine, hence why I think it has to do with Geckolib.

Edit: I'm using 1.4.2, which should've initially fixed the issue

Linguardium commented 1 year ago

issue appears to be due to the stored slot being unset and after cosmetic armor tries to render in renderArmor. renderArmor calls renderArmorParts when calls getTexture which calls geckolib while geckolib has not set the slot it is rendering

    private void method_4169(class_4587 $$0, class_4597 $$1, T $$2, class_1304 $$3, int $$4, A $$5) {
        CallbackInfo callbackInfo15 = new CallbackInfo("method_4169", true);
        this.handler$dji000$cosmetic-armor$renderCustomArmor($$0, $$1, $$2, $$3, $$4, $$5, callbackInfo15);
        if (!callbackInfo15.isCancelled()) {
            this.handler$ffi000$geckolib3$storeSlot($$0, $$1, $$2, $$3, $$4, $$5, (CallbackInfo)null);
            CallbackInfo callbackInfo18 = new CallbackInfo("method_4169", true);
...

unfortunately, due to the nature of mixins and the fact that GeckoLib is relying on load order (which is not reliable) there isnt a good way to do this other than to keep chasing issues. Ideally, geckolib would be rewritten to not rely on load order