GTNewHorizons / GT-New-Horizons-Modpack

A big progressive questing modpack for Minecraft 1.7.10 balanced around the mod GregTech.
https://www.gtnewhorizons.com/
Other
1.02k stars 311 forks source link

Fix all mixin conflicts #17299

Open Alexdoru opened 2 months ago

Alexdoru commented 2 months ago

Your GTNH Discord Username

Alexdoru

Your Pack Version

Nightly 641

Your Server

SP

Java Version

Java 8

Type of Server

Single Player

Your Expectation

no conflicts

The Reality

When we start the pack and look at the log there's plenty of mixins conflicting with each others, it would be nice to have those resolved because every mixin conflict is either a potential bug, a missing feature or two mods wanting to add the same feature and one of those should be disabled

example of such conflicts :

[18:14:33] [main/WARN] [mixin]: @Redirect conflict. Skipping mixins.archaicfix.early.json:client.core.MixinMinecraft from mod archaicfix->@Redirect::getFancyGrass(Lnet/minecraft/client/settings/GameSettings;)Z with priority 1000, already redirected by mixins.angelica.early.json:sodium.MixinMinecraft from mod angelica->@Redirect::sodium$overrideFancyGrass(Lnet/minecraft/client/settings/GameSettings;)Z with priority 1000
[18:14:33] [main/WARN] [mixin]: @Redirect conflict. Skipping mixins.hodgepodge.early.json:minecraft.MixinMinecraft_UnfocusedFullscreen from mod hodgepodge->@Redirect::hodgepodge$fixUnfocusedFullscreen()Z with priority 1000, already redirected by mixins.archaicfix.early.json:client.core.MixinMinecraft from mod archaicfix->@Redirect::alwaysHaveDisplayActive()Z with priority 1000

Your Proposal

fix the conflicts

Final Checklist

wlhlm commented 2 weeks ago

Running nightly-725, I see the following conflicts:

1.

[11:24:17] [Client thread/WARN] [mixin]: @Inject(@At("INVOKE")) Shift.BY=2 on mixins.angelica.early.json:shaders.startup.MixinAbstractTexture from mod angelica::handler$zdp000$angelica$iris$afterGenerateId exceeds the maximum allowed value: 0. Increase the value of maxShiftBy to suppress this warning.

2.

[11:24:13] [main/WARN] [mixin]: @Redirect conflict. Skipping mixins.hodgepodge.early.json:minecraft.MixinMinecraft_UnfocusedFullscreen from mod hodgepodge->@Redirect::hodgepodge$fixUnfocusedFullscreen()Z with priority 1000, already redirected by mixins.archaicfix.early.json:client.core.MixinMinecraft from mod archaicfix->@Redirect::alwaysHaveDisplayActive()Z with priority 1000

3.

11:24:14] [main/WARN] [mixin]: @Redirect conflict. Skipping mixins.hodgepodge.early.json:minecraft.MixinWorldUpdateEntities from mod hodgepodge->@Redirect::fasterRemoveAll(Ljava/util/List;Ljava/util/Collection;)Z with priority 1000, already redirected by mixins.archaicfix.early.json:common.core.MixinWorld from mod archaicfix->@Redirect::removeInUnloaded(Ljava/util/List;Ljava/util/Collection;)Z with priority 1000

4.

[11:24:14] [main/WARN] [mixin]: @Redirect conflict. Skipping mixins.bugtorch.early.json:minecraft.fastrandom.MixinWorldClient from mod bugtorch->@Redirect::redirectDoVoidFogParticlesRandom()Ljava/util/Random; with priority 1000, already redirected by mixins.angelica.early.json:notfine.particles.MixinWorldClient from mod angelica->@Redirect::notFine$redirectDoVoidFogParticlesRandom()Ljava/util/Random; with priority 1000

5.

[11:24:17] [Client thread/WARN] [mixin]: Method overwrite conflict for func_77018_a in mixins.bugtorch.early.json:minecraft.rendering.MixinRenderItem from mod bugtorch, previously written by com.gtnewhorizons.angelica.mixins.early.notfine.fix.MixinRenderItem. Skipping method.

6.

[11:24:17] [Client thread/WARN] [mixin]: @Redirect conflict. Skipping mixins.bugtorch.early.json:minecraft.rendering.MixinEffectRenderer from mod bugtorch->@Redirect::skipGlDepthMask(Z)V with priority 1000, already redirected by mixins.angelica.early.json:notfine.particles.MixinEffectRenderer from mod angelica->@Redirect::skipGlDepthMask(Z)V with priority 1000

7.

[11:24:13] [main/WARN] [mixin]: @Redirect conflict. Skipping mixins.archaicfix.early.json:client.core.MixinMinecraft from mod archaicfix->@Redirect::getFancyGrass(Lnet/minecraft/client/settings/GameSettings;)Z with priority 1000, already redirected by mixins.angelica.early.json:sodium.MixinMinecraft from mod angelica->@Redirect::sodium$overrideFancyGrass(Lnet/minecraft/client/settings/GameSettings;)Z with priority 1000

8.

[11:24:17] [Client thread/WARN] [mixin]: @Redirect conflict. Skipping mixins.archaicfix.early.json:client.core.MixinRenderItem from mod archaicfix->@Redirect::forceFancyGraphics(Lnet/minecraft/client/settings/GameSettings;)Z with priority 1000, already redirected by mixins.angelica.early.json:notfine.toggle.MixinRenderItem from mod angelica->@Redirect::notFine$toggleDroppedItemDetail(Lnet/minecraft/client/settings/GameSettings;)Z with priority 1100

9.

[11:24:25] [Client thread/WARN] [mixin]: @Redirect conflict. Skipping mixins.archaicfix.early.json:client.core.MixinThreadDownloadImageData from mod archaicfix->@Redirect::onThreadStart(Ljava/lang/Thread;)V with priority 1000, already redirected by mixins.angelica.early.json:angelica.archaic.MixinThreadDownloadImageData from mod angelica->@Redirect::onThreadStart(Ljava/lang/Thread;)V with priority 1000

10.

[11:24:28] [Client thread/WARN] [mixin]: @Redirect conflict. Skipping mixins.archaicfix.early.json:common.core.MixinChunkProviderServer from mod archaicfix->@Redirect::populateChunkWithBiomes(Lnet/minecraft/world/chunk/IChunkProvider;II)Lnet/minecraft/world/chunk/Chunk; with priority 1000, already redirected by mixins.angelica.early.json:sodium.MixinChunkProviderServer from mod angelica->@Redirect::sodium$populateChunkWithBiomes(Lnet/minecraft/world/chunk/IChunkProvider;II)Lnet/minecraft/world/chunk/Chunk; with priority 1000

11.

[11:24:31] [Client thread/WARN] [mixin]: @Redirect conflict. Skipping mixins.archaicfix.early.json:client.core.MixinNetHandlerPlayClient from mod archaicfix->@Redirect::onGuiDisplayJoin(Lnet/minecraft/client/Minecraft;Lnet/minecraft/client/gui/GuiScreen;)V with priority 500, already redirected by mixins.angelica.early.json:angelica.archaic.MixinNetHandlerPlayClient from mod angelica->@Redirect::onGuiDisplayJoin(Lnet/minecraft/client/Minecraft;Lnet/minecraft/client/gui/GuiScreen;)V with priority 500
[11:24:31] [Client thread/WARN] [mixin]: @Redirect conflict. Skipping mixins.archaicfix.early.json:client.core.MixinNetHandlerPlayClient from mod archaicfix->@Redirect::onGuiDisplayRespawn(Lnet/minecraft/client/Minecraft;Lnet/minecraft/client/gui/GuiScreen;)V with priority 500, already redirected by mixins.angelica.early.json:angelica.archaic.MixinNetHandlerPlayClient from mod angelica->@Redirect::onGuiDisplayRespawn(Lnet/minecraft/client/Minecraft;Lnet/minecraft/client/gui/GuiScreen;)V with priority 500
wlhlm commented 2 weeks ago

No. 1 could be refactored to not use Shift.BY, I guess.

No. 4 to no. 11 are conflicts involving Angelica: I'm not entirely sure what the plan is here, but it seems like Angelica includes parts (all?) of ArachaicFix and BugTorch (by way of notfine), so I'm guessing those will eventually be removed from the pack? That fix would those mixin conflicts. @mitchej123 can you explain?

No. 2, and no. 3 are conflicts between hodgepodge and ArchaicFix. If my guess in the previous paragraph is correct, that we'll eventually drop ArchaicFix then that'll get rid of the conflict.

Alexdoru commented 2 weeks ago

Most of the mixin conflicts come from mods that both have the same feature implemented, we need to edit the mods to delete the feature in one of the mods