Earth2Java [FORGE]

Earth2Java [FORGE]

21.3k Downloads

1.16.2 GenerationSettingsAccessor mixin & mod compatibility

Katorone opened this issue ยท 7 comments

commented

Target Version
Mod Loader: [email protected]+build.397-1.16
Minecraft Version: 1.16.2
Mod Version: [email protected]+1.16.2

Describe the bug
Method overwrite conflict for setFeatures in appliedenergistics2.mixins.json:structure.GenerationSettingsAccessor, previously written by slexom.earthtojava.mobs.mixins.MixinGenerationSettings. Skipping method.

Two mods are trying to overwrite the same method, causing incompatibility. I'm reporting this to the AE2 team as well.

To Reproduce
Install earth2java and AE2 for Fabric 1.16.2

Expected behavior
Mod compatibility

Mod List
https://www.curseforge.com/minecraft/mc-mods/applied-energistics-2/files/3033292

commented

This is an issue that come from the lack of an unified api for biomes in fabric 1.16.2. Those mods, and others too, use same approach to do same things and this generate errors and incompatibility. This isn't the only combination of mods that generate this, or related, issues.
I'll disable any feature that regard generations until we have an api.

commented

@Slexom Just copy paste our Accessor Mixin, it does the same thing and any number of mods can use the exact same one without causing incompatibility.

commented

I'll look at it, thank you.

commented

p.s.: If you want an alternative: If you prefix the methods you add with your mod-id, (earth2java_getXYZ), that will also be okay.

commented

Thank you for the tips @shartte

commented

Regarding AppliedEnergistics/Applied-Energistics-2#4600

Please don't add methods to a class without using your mod-id as a prefix in the method-name, unless you are using an accessor.
For accessing this class's private field, you can just copy paste the Accessor we use:

https://github.com/AppliedEnergistics/Applied-Energistics-2/blob/fabric/master/src/main/java/appeng/mixins/structure/GenerationSettingsAccessor.java

commented

Thank you!