diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/forge/MinecraftPatchedProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/forge/MinecraftPatchedProvider.java index 8f59433c6..4c7b3463c 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/forge/MinecraftPatchedProvider.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/forge/MinecraftPatchedProvider.java @@ -215,7 +215,6 @@ public void remapJar() throws Exception { fillClientExtraJar(); } - this.dirty = false; DependencyProvider.addDependency(project, minecraftClientExtra, Constants.Configurations.FORGE_EXTRA); } @@ -595,6 +594,13 @@ public Path getMinecraftPatchedJar() { return minecraftPatchedJar; } + /** + * Checks whether the provider's state is dirty (regenerating jars). + */ + public boolean isDirty() { + return dirty; + } + public enum Type { CLIENT_ONLY("client", "client", (patch, userdev) -> patch.clientPatches), SERVER_ONLY("server", "server", (patch, userdev) -> patch.serverPatches), diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/mapped/AbstractMappedMinecraftProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/mapped/AbstractMappedMinecraftProvider.java index 74a4aef1a..ef5a53d90 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/mapped/AbstractMappedMinecraftProvider.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/mapped/AbstractMappedMinecraftProvider.java @@ -46,6 +46,7 @@ import net.fabricmc.loom.build.IntermediaryNamespaces; import net.fabricmc.loom.configuration.ConfigContext; import net.fabricmc.loom.configuration.mods.dependency.LocalMavenHelper; +import net.fabricmc.loom.configuration.providers.forge.minecraft.ForgeMinecraftProvider; import net.fabricmc.loom.configuration.providers.mappings.IntermediaryMappingsProvider; import net.fabricmc.loom.configuration.providers.mappings.MappingConfiguration; import net.fabricmc.loom.configuration.providers.mappings.TinyMappingsService; @@ -178,6 +179,11 @@ private boolean areOutputsValid(List remappedJars) { } } + // Architectury: regenerate jars if patches have changed. + if (minecraftProvider instanceof ForgeMinecraftProvider withForge && withForge.getPatchedProvider().isDirty()) { + return false; + } + return true; }