mirror of
https://github.com/architectury/architectury-loom.git
synced 2026-04-01 21:17:46 -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:
@@ -50,6 +50,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.extension.LoomFiles;
|
||||
@@ -95,6 +96,10 @@ public interface LoomGradleExtension extends LoomGradleExtensionAPI {
|
||||
|
||||
void setSrgMinecraftProvider(SrgMinecraftProvider<?> srgMinecraftProvider);
|
||||
|
||||
MojangMappedMinecraftProvider<?> getMojangMappedMinecraftProvider();
|
||||
|
||||
void setMojangMappedMinecraftProvider(MojangMappedMinecraftProvider<?> srgMinecraftProvider);
|
||||
|
||||
default List<Path> getMinecraftJars(MappingsNamespace mappingsNamespace) {
|
||||
return switch (mappingsNamespace) {
|
||||
case NAMED -> getNamedMinecraftProvider().getMinecraftJarPaths();
|
||||
@@ -104,6 +109,10 @@ public interface LoomGradleExtension extends LoomGradleExtensionAPI {
|
||||
ModPlatform.assertPlatform(this, ModPlatform.FORGE, () -> "SRG jars are only available on Forge.");
|
||||
yield getSrgMinecraftProvider().getMinecraftJarPaths();
|
||||
}
|
||||
case MOJANG -> {
|
||||
ModPlatform.assertPlatform(this, ModPlatform.NEOFORGE, () -> "Mojang-mapped jars are only available on NeoForge.");
|
||||
yield getMojangMappedMinecraftProvider().getMinecraftJarPaths();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -149,12 +158,12 @@ public interface LoomGradleExtension extends LoomGradleExtensionAPI {
|
||||
return isForge() && !getForge().getDataGenMods().isEmpty();
|
||||
}
|
||||
|
||||
default boolean isForgeAndOfficial() {
|
||||
return isForge() && getMcpConfigProvider().isOfficial();
|
||||
default boolean isForgeLikeAndOfficial() {
|
||||
return isForgeLike() && getMcpConfigProvider().isOfficial();
|
||||
}
|
||||
|
||||
default boolean isForgeAndNotOfficial() {
|
||||
return isForge() && !getMcpConfigProvider().isOfficial();
|
||||
default boolean isForgeLikeAndNotOfficial() {
|
||||
return isForgeLike() && !getMcpConfigProvider().isOfficial();
|
||||
}
|
||||
|
||||
DependencyProviders getDependencyProviders();
|
||||
@@ -179,4 +188,14 @@ public interface LoomGradleExtension extends LoomGradleExtensionAPI {
|
||||
|
||||
ForgeRunsProvider getForgeRunsProvider();
|
||||
void setForgeRunsProvider(ForgeRunsProvider forgeRunsProvider);
|
||||
|
||||
/**
|
||||
* The mapping file that is specific to the platform settings.
|
||||
* It contains SRG (Forge/common) or Mojang mappings (NeoForge) as needed.
|
||||
*
|
||||
* @return the platform mapping file path
|
||||
*/
|
||||
default Path getPlatformMappingFile() {
|
||||
return getMappingConfiguration().getPlatformMappingFile(this);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user