StellarWind22 / Fabric-Shield-Lib

Library for easily adding new shields, shield enchantments, and enabling you to enchant shields in general without worry of conflictions.
https://www.curseforge.com/minecraft/mc-mods/fabric-shield-lib
GNU Lesser General Public License v2.1
40 stars 19 forks source link

The world creation crash is still happening for 1.20.1 #170

Closed DroidZed closed 8 months ago

DroidZed commented 9 months ago

Here's the crash log: https://pastebin.com/pkUyRksC

CringeStar commented 9 months ago

It seems this time the cause of this crash is:

java.lang.AbstractMethodError: Receiver class com.github.crimsondawn45.fabricshieldlib.initializers.FabricShieldLib$$Lambda$4428/0x000001b481d40580 does not define or inherit an implementation of the resolved method 'abstract net.minecraft.class_3955 create(net.minecraft.class_2960, net.minecraft.class_7710)' of interface net.minecraft.class_1866$class_7711.

I will look into this when I get home.

DroidZed commented 9 months ago

Okay thanks a lot !

DroidZed commented 9 months ago

Any news ?

DroidZed commented 8 months ago

I have been waiting for a week...can't play my game unless this gets fixed so please respond with anything :(

CringeStar commented 8 months ago

Sorry, its exam week for me, so I probably cant look into this until Thursday or Friday, but I'll see what I can do right now.

CringeStar commented 8 months ago

Ok I've found the source:

    public static final SpecialRecipeSerializer<FabricShieldDecoratorRecipe> FABRIC_SHIELD_DECORATION_SERIALIZER;
    public static final RecipeType<FabricShieldDecoratorRecipe> FABRIC_SHIELD_DECORATION;

    static {
        //Registering Banner Recipe (Lib only)
        FABRIC_SHIELD_DECORATION = Registry.register(Registries.RECIPE_TYPE, new Identifier(MOD_ID, "fabric_shield_decoration"), new RecipeType<FabricShieldDecoratorRecipe>() {
            @Override
            public String toString() {return "test_recipe";}
        });
        FABRIC_SHIELD_DECORATION_SERIALIZER = Registry.register(Registries.RECIPE_SERIALIZER, new Identifier(MOD_ID, "fabric_shield_decoration"), new SpecialRecipeSerializer<>(FabricShieldDecoratorRecipe::new));
        }
CringeStar commented 8 months ago

I looked up the classes and translated the error:

the lambda does not define or inherit an implementation of the resolved method 'abstract CraftingRecipe create(Identifier, CraftingRecipeCategory)' of interface SpecialRecipeSerializer$Factory.

CringeStar commented 8 months ago

Maybe this line changed?

FABRIC_SHIELD_DECORATION = Registry.register(Registries.RECIPE_TYPE, new Identifier(MOD_ID, "fabric_shield_decoration")

CringeStar commented 8 months ago

I'll check with an acutal IDE at home.

DroidZed commented 8 months ago

it's okay bro take your time, I just wanted a response nothing else.

DroidZed commented 8 months ago

Thanks for the work

CringeStar commented 8 months ago

Ok, so I found the issue. In 1.20.1, the specific name of the method is different than in 1.20.2. Since we usually just support the latest update, we went from 1.20, where it worked, to 1.20.2, where it also worked. We never checked 1.20.1 since we assumed we could catch anything different when we went to 1.20.2. So we are going to need to make a 1.20-1.20.1 release and a separate 1.20.2-1.20.4 release, as we did with 1.19.2. It's easy, so hopefully it'll be out by the end of today or tommorow.

DroidZed commented 8 months ago

Thank you so much ! I see how things can change between versions and understand it can be confusing 😅 Good work !

CringeStar commented 8 months ago

Yep, even little stuff between versions makes it break lol, like going from Registry to Registries forced us to make a new version. I just released the 1.20.1 version on Github, will be on curseforge/modrinth shortly.

DroidZed commented 8 months ago

Thanks a lot !!