mirror of
https://github.com/architectury/architectury-loom.git
synced 2026-04-02 05:27:43 -05:00
NeoForge support (#166)
* Initial plumbing for NeoForge support
* Fix checkstyle
* Add ModPlatform.id
* Use NeoForge-specific cache
* Use NeoForge-specific dependency configuration
This is only for the "(neo)forge" configuration exposed
as API. The other configurations remain the same.
* Add test for basic NeoForge 1.20.2 projects
* Implement hacky fast track for NeoForge field migration
In other works, we skip field migrating for now.
* Disable patched decompilation task on Neo
* Disable mixin AP for building on NeoForge
* Many changes related to NeoForge mappings and remapping
* Code style and related fixes
* McpExecutor: Add support for downloading deps via Gradle
Also adds support for downloading a file without a repo
for NeoForm functions.
* Fix wrong configurations being used on NeoForge
* Fix mixin version detection on NeoForge
* Rename MinecraftPatchedProvider jar paths on NeoForge
* Test NeoForge against a client-only MC jar
* Add DFU for codecs, support NeoForge run config templates
* Centralise userdev config reading, support missing SAS
* Set up Shadow for bundling DFU
* Use correct name for NeoForm in cache files
* RemapJarTask: Fix check using isForgeLike for Forge
* MojangMappingsMerger: Complete and reorder mappings
* Fix SRG being used on NeoForge
* Fix SRG being used on NeoForge for ATs
* Use client pipeline for merged to avoid patch issues on Neo
* Update to architectury-loom-runtime 2.0
* Fix Minecraft jar name on Neo
* Fix MojangMappingsMerger having incomplete names
* Fix NeoForge mod dependency remapping using wrong mappings
* Quiet down MojangMappingsMerger
* Fix (Neo)Forge builtin coremods not being remapped
Fixes #146.
* Disable deprecated data generation API on NeoForge
* Use release version of the forge runtime
* Revert "Set up Shadow for bundling DFU"
This reverts commit 2bb8166744.
* Make NeoForge Field Migration work
* NeoForge shouldn't try to get datagen mods
* Fix checkstyle
* Remove mojang maven
* Split Forge and NeoForge extensions
* SimpleNeoForgeTest: Bump Neo version and fix Yarn version
* Remove resolved TODOs
* Re-enable joined NeoForm pipeline
* MPP: Rename srg -> intermediate jars
* Reintroduce namespace filtering for mapping trees
Should be a simple optimisation to avoid reading an
additional ns.
* ForgeRunTemplateTest: Fix code format
* Adapt SrgMerger into ForgeMappingsMerger (#169)
* Fix crash with NeoForge ext creation
* Adapt SrgMerger into ForgeMappingsMerger
* Update tiny-remapper
* Fix spotless
* Resolve reviews
* Fix checkstyle
* Remap ASMAPI.redirectFieldToMethod (#171)
* Remap ASMAPI.redirectFieldToMethod
* Move lastClassName outside the if
* Fix missing template variables in tests using forge/simple
* Add Java version to forge/simple test variables
* Disable naming service dependency on Neo
* Fix changing patch version not affecting mapped game jars
Fixes #167.
* Rename configuration: neoforge -> neoForge
---------
Co-authored-by: shedaniel <daniel@shedaniel.me>
This commit is contained in:
@@ -40,6 +40,7 @@ import org.gradle.api.provider.Provider;
|
||||
|
||||
import net.fabricmc.loom.LoomGradleExtension;
|
||||
import net.fabricmc.loom.api.ForgeExtensionAPI;
|
||||
import net.fabricmc.loom.api.NeoForgeExtensionAPI;
|
||||
import net.fabricmc.loom.api.mappings.intermediate.IntermediateMappingsProvider;
|
||||
import net.fabricmc.loom.api.mappings.layered.MappingsNamespace;
|
||||
import net.fabricmc.loom.configuration.InstallerData;
|
||||
@@ -52,6 +53,7 @@ import net.fabricmc.loom.configuration.providers.mappings.MappingConfiguration;
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.MinecraftProvider;
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.library.LibraryProcessorManager;
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.mapped.IntermediaryMinecraftProvider;
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.mapped.MojangMappedMinecraftProvider;
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.mapped.NamedMinecraftProvider;
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.mapped.SrgMinecraftProvider;
|
||||
import net.fabricmc.loom.util.Constants;
|
||||
@@ -65,7 +67,6 @@ public class LoomGradleExtensionImpl extends LoomGradleExtensionApiImpl implemen
|
||||
private final MixinExtension mixinApExtension;
|
||||
private final LoomFiles loomFiles;
|
||||
private final ConfigurableFileCollection unmappedMods;
|
||||
private final Supplier<ForgeExtensionAPI> forgeExtension;
|
||||
|
||||
private final List<AccessWidenerFile> transitiveAccessWideners = new ArrayList<>();
|
||||
|
||||
@@ -75,6 +76,7 @@ public class LoomGradleExtensionImpl extends LoomGradleExtensionApiImpl implemen
|
||||
private NamedMinecraftProvider<?> namedMinecraftProvider;
|
||||
private IntermediaryMinecraftProvider<?> intermediaryMinecraftProvider;
|
||||
private SrgMinecraftProvider<?> srgMinecraftProvider;
|
||||
private MojangMappedMinecraftProvider<?> mojangMappedMinecraftProvider;
|
||||
private InstallerData installerData;
|
||||
private boolean refreshDeps;
|
||||
private Provider<Boolean> multiProjectOptimisation;
|
||||
@@ -85,6 +87,8 @@ public class LoomGradleExtensionImpl extends LoomGradleExtensionApiImpl implemen
|
||||
// +-------------------+
|
||||
private DependencyProviders dependencyProviders;
|
||||
private ForgeRunsProvider forgeRunsProvider;
|
||||
private final Supplier<ForgeExtensionAPI> forgeExtension;
|
||||
private final Supplier<NeoForgeExtensionAPI> neoForgeExtension;
|
||||
|
||||
public LoomGradleExtensionImpl(Project project, LoomFiles files) {
|
||||
super(project, files);
|
||||
@@ -94,6 +98,7 @@ public class LoomGradleExtensionImpl extends LoomGradleExtensionApiImpl implemen
|
||||
this.loomFiles = files;
|
||||
this.unmappedMods = project.files();
|
||||
this.forgeExtension = Suppliers.memoize(() -> isForge() ? project.getObjects().newInstance(ForgeExtensionImpl.class, project, this) : null);
|
||||
this.neoForgeExtension = Suppliers.memoize(() -> isNeoForge() ? project.getObjects().newInstance(NeoForgeExtensionImpl.class, project) : null);
|
||||
|
||||
// Setup the default intermediate mappings provider.
|
||||
setIntermediateMappingsProvider(IntermediaryMappingsProvider.class, provider -> {
|
||||
@@ -185,6 +190,16 @@ public class LoomGradleExtensionImpl extends LoomGradleExtensionApiImpl implemen
|
||||
this.srgMinecraftProvider = srgMinecraftProvider;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MojangMappedMinecraftProvider<?> getMojangMappedMinecraftProvider() {
|
||||
return Objects.requireNonNull(mojangMappedMinecraftProvider, "Cannot get MojangMappedMinecraftProvider before it has been setup");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setMojangMappedMinecraftProvider(MojangMappedMinecraftProvider<?> mojangMappedMinecraftProvider) {
|
||||
this.mojangMappedMinecraftProvider = mojangMappedMinecraftProvider;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FileCollection getMinecraftJarsCollection(MappingsNamespace mappingsNamespace) {
|
||||
return getProject().files(
|
||||
@@ -293,6 +308,12 @@ public class LoomGradleExtensionImpl extends LoomGradleExtensionApiImpl implemen
|
||||
return forgeExtension.get();
|
||||
}
|
||||
|
||||
@Override
|
||||
public NeoForgeExtensionAPI getNeoForge() {
|
||||
ModPlatform.assertPlatform(this, ModPlatform.NEOFORGE);
|
||||
return neoForgeExtension.get();
|
||||
}
|
||||
|
||||
@Override
|
||||
public DependencyProviders getDependencyProviders() {
|
||||
return dependencyProviders;
|
||||
@@ -305,13 +326,13 @@ public class LoomGradleExtensionImpl extends LoomGradleExtensionApiImpl implemen
|
||||
|
||||
@Override
|
||||
public ForgeRunsProvider getForgeRunsProvider() {
|
||||
ModPlatform.assertPlatform(this, ModPlatform.FORGE);
|
||||
ModPlatform.assertForgeLike(this);
|
||||
return forgeRunsProvider;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setForgeRunsProvider(ForgeRunsProvider forgeRunsProvider) {
|
||||
ModPlatform.assertPlatform(this, ModPlatform.FORGE);
|
||||
ModPlatform.assertForgeLike(this);
|
||||
this.forgeRunsProvider = forgeRunsProvider;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user