Skip to content

Commit

Permalink
Disable Forge for now
Browse files Browse the repository at this point in the history
  • Loading branch information
UnRealDinnerbone committed Apr 24, 2024
1 parent b92ed04 commit 1ea57d9
Show file tree
Hide file tree
Showing 4 changed files with 133 additions and 130 deletions.
10 changes: 5 additions & 5 deletions plugin/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ plugins {

java.toolchain.languageVersion = JavaLanguageVersion.of(21)

version = "0.1.4"
version = "0.1.5"
group = "dev.nanite"

repositories {
Expand All @@ -40,10 +40,10 @@ dependencies {

implementation("net.fabricmc:fabric-loom:1.6.5")

implementation("net.minecraftforge.gradle:ForgeGradle:6.0.+") {
exclude(group = "net.minecraftforge", module = "DiffPatch")
}
implementation("org.spongepowered:mixingradle:0.7.38")
// implementation("net.minecraftforge.gradle:ForgeGradle:6.0.+") {
// exclude(group = "net.minecraftforge", module = "DiffPatch")
// }
// implementation("org.spongepowered:mixingradle:0.7.38")
implementation("net.neoforged.gradle:userdev:7.0.100")
// Use JUnit test framework for unit tests
testImplementation("junit:junit:4.13.1")
Expand Down
4 changes: 2 additions & 2 deletions plugin/src/main/java/dev/nanite/mlp/MultiLoaderExtension.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import dev.nanite.mlp.aw2at.AccessWidenerToTransformerTask;
import dev.nanite.mlp.ext.*;
import dev.nanite.mlp.loaders.FabricLoader;
import dev.nanite.mlp.loaders.ForgeLoader;
//import dev.nanite.mlp.loaders.ForgeLoader;
import dev.nanite.mlp.loaders.NeoLoader;
import dev.nanite.mlp.tasks.SingleOutputJar;
import net.fabricmc.loom.api.LoomGradleExtensionAPI;
Expand Down Expand Up @@ -111,7 +111,7 @@ public void forge(Action<MultiLoaderForge> action) {
MultiLoaderForge multiLoaderForge = project.getObjects().newInstance(MultiLoaderForge.class, project);
MultiLoaderRoot rootExtension = getRootExtension(project).getRootOptions().get();
action.execute(multiLoaderForge);
ForgeLoader.setupForge(project, multiLoaderForge);
// ForgeLoader.setupForge(project, multiLoaderForge);
if(rootExtension.isForgeATEnabled()) {
project.afterEvaluate(forgeProject -> {
try {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package dev.nanite.mlp.aw2at;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import dev.nanite.mlp.MultiLoaderExtension;
import dev.nanite.mlp.ext.MultiLoaderRoot;
import dev.nanite.mlp.lib.DownloaderUtils;
Expand All @@ -16,7 +18,6 @@
import net.fabricmc.mappingio.format.proguard.ProGuardFileReader;
import net.fabricmc.mappingio.format.srg.TsrgFileReader;
import net.fabricmc.mappingio.tree.MemoryMappingTree;
import net.minecraftforge.gradle.common.util.Utils;
import org.gradle.api.DefaultTask;
import org.gradle.api.Project;
import org.gradle.api.tasks.TaskAction;
Expand All @@ -30,6 +31,8 @@
//This should only run from the root project
public class AccessWidenerToTransformerTask extends DefaultTask {

private static final Gson GSON = new GsonBuilder().create();

public static final String ACCESS_TRANSFORMER_PATH = "src/main/resources/META-INF/accesstransformer.cfg";

private static final String MCP_CONFIG = "https://maven.minecraftforge.net/releases/de/oceanlabs/mcp/mcp_config/%s/mcp_config-%s.zip";
Expand Down Expand Up @@ -78,11 +81,11 @@ public static byte[] getMojangMappings(Path folder, String minecraftVersion) thr
error:
if(!Files.exists(mojangMappings)) {
String pistonMetaData = Download.create(PISTON_META).downloadString();
PistonMeta pistonMeta = Utils.GSON.fromJson(pistonMetaData, PistonMeta.class);
PistonMeta pistonMeta = GSON.fromJson(pistonMetaData, PistonMeta.class);
for (PistonMeta.Version version : pistonMeta.versions) {
if(version.id.equals(minecraftVersion)) {
String versionMetaString = Download.create(version.url).downloadString();
VersionMeta versionMeta = Utils.GSON.fromJson(versionMetaString, VersionMeta.class);
VersionMeta versionMeta = GSON.fromJson(versionMetaString, VersionMeta.class);
VersionMeta.Downloads downloads = versionMeta.downloads;
Download.create(downloads.client_mappings.url)
.sha1(downloads.client_mappings.sha1)
Expand Down
240 changes: 120 additions & 120 deletions plugin/src/main/java/dev/nanite/mlp/loaders/ForgeLoader.java
Original file line number Diff line number Diff line change
@@ -1,120 +1,120 @@
package dev.nanite.mlp.loaders;

import dev.nanite.mlp.MultiLoaderExtension;
import dev.nanite.mlp.aw2at.AccessWidenerToTransformerTask;
import dev.nanite.mlp.ext.MultiLoaderForge;
import dev.nanite.mlp.ext.MultiLoaderRoot;
import net.minecraftforge.gradle.common.util.ModConfig;
import net.minecraftforge.gradle.common.util.RunConfig;
import net.minecraftforge.gradle.userdev.UserDevExtension;
import net.minecraftforge.gradle.userdev.UserDevPlugin;
import org.gradle.api.NamedDomainObjectContainer;
import org.gradle.api.Project;
import org.gradle.api.artifacts.dsl.DependencyHandler;
import org.gradle.api.plugins.JavaPlugin;
import org.gradle.api.tasks.SourceSet;
import org.gradle.api.tasks.SourceSetContainer;
import org.spongepowered.asm.gradle.plugins.MixinExtension;
import org.spongepowered.asm.gradle.plugins.MixinGradlePlugin;

import java.util.Map;

public class ForgeLoader {

public static void setupForge(Project project, MultiLoaderForge multiLoaderForge){
applyForgePlugins(project);
configureForgeDependencies(project, multiLoaderForge);
setupForgeGradle(project, multiLoaderForge);
GenericLoader.genericGradleSetup(project);
project.getTasks().getByName("jar").finalizedBy("reobfJar");
}

public static void applyForgePlugins(Project project) {
project.getPluginManager().apply("java");
project.getPluginManager().apply(UserDevPlugin.class);
project.getPluginManager().apply(MixinGradlePlugin.class);
}

public static void configureForgeDependencies(Project project, MultiLoaderForge multiLoaderForge){
MultiLoaderRoot multiLoaderRoot = MultiLoaderExtension.getRootExtension(project).getRootOptions().get();
if(multiLoaderForge.isNeo.get() && !multiLoaderRoot.minecraftVersion.get().equals("1.20.1")) {
throw new IllegalStateException("Neo in forge is only supported on 1.20.1");
}
var forgePath = multiLoaderForge.isNeo.get() ? "net.neoforged" : "net.minecraftforge";
if(multiLoaderRoot.overrideSpongeMixin.get()){
project.getConfigurations().getByName("annotationProcessor")
.exclude(Map.of("group", "org.spongepowered", "module", "mixin"));
}
DependencyHandler deps = project.getDependencies();
deps.add("minecraft",
forgePath + ":forge:" + multiLoaderRoot.minecraftVersion.get() + "-" +
multiLoaderForge.forgeVersion.get());
Project commonProject = MultiLoaderExtension.getCommonProject(project, multiLoaderRoot);
deps.add(JavaPlugin.COMPILE_ONLY_CONFIGURATION_NAME,
commonProject);
deps.add(JavaPlugin.ANNOTATION_PROCESSOR_CONFIGURATION_NAME,
multiLoaderRoot.mixinString.get());
if(multiLoaderRoot.splitSources.get()) {
SourceSetContainer commonSourceSets = commonProject.getExtensions().getByType(SourceSetContainer.class);
SourceSet clientSourceSet = commonSourceSets.getByName("client");
deps.add(JavaPlugin.COMPILE_ONLY_CONFIGURATION_NAME, clientSourceSet.getOutput());
}
}

public static void setupForgeGradle(Project project, MultiLoaderForge multiLoaderForge){
MultiLoaderRoot multiLoaderRoot = MultiLoaderExtension.getRootExtension(project).getRootOptions().get();
UserDevExtension forgeUserDev = project.getExtensions().getByType(UserDevExtension.class);
forgeUserDev.mappings("official", multiLoaderRoot.minecraftVersion.get());
NamedDomainObjectContainer<RunConfig> runs = forgeUserDev.getRuns();
Project commonProject = MultiLoaderExtension.getCommonProject(project, multiLoaderRoot);
SourceSetContainer commonSourceSets = commonProject.getExtensions().getByType(SourceSetContainer.class);
SourceSetContainer projectSourceSets = project.getExtensions().getByType(SourceSetContainer.class);
createOrConfigureRunConfig(project, runs, commonSourceSets, commonProject, "Client", multiLoaderRoot.splitSources.get());
createOrConfigureRunConfig(project, runs, commonSourceSets, commonProject, "Server", multiLoaderRoot.splitSources.get());
if(multiLoaderRoot.getDataGenOptions().isPresent() &&
(multiLoaderRoot.getDataGenOptions().get().useForge.isPresent() || multiLoaderRoot.getDataGenOptions().get().mixBoth.get())){
RunConfig dataConfig = createOrConfigureRunConfig(project, runs, commonSourceSets,
commonProject, "Data", multiLoaderRoot.splitSources.get());
dataConfig.args("--mod", multiLoaderRoot.modID.get(), "--all", "--output",
multiLoaderRoot.getDataGenOptions().get().useForge.get(), "--existing",
commonProject.file("src/main/resources"), "--existing",
project.file("src/main/resources"));
}
if(multiLoaderRoot.isForgeATEnabled()) {
forgeUserDev.accessTransformer(project.file(AccessWidenerToTransformerTask.ACCESS_TRANSFORMER_PATH));
}
MixinExtension mixinExtension = project.getExtensions().getByType(MixinExtension.class);
if(commonProject.file("src/main/resources/" + multiLoaderRoot.commonMixin.get()).exists()) {
mixinExtension.config(multiLoaderRoot.commonMixin.get());
}
if(project.file("src/main/resources/" + multiLoaderForge.forgeMixins.get()).exists()) {
mixinExtension.config(multiLoaderForge.forgeMixins.get());
}
mixinExtension.add(projectSourceSets.getByName("main"), multiLoaderRoot.modID.get() + ".refmap.json");
}

private static RunConfig createOrConfigureRunConfig(Project project, NamedDomainObjectContainer<RunConfig> runs,
SourceSetContainer commonSourceSets, Project commonProject, String name, boolean isSplitSources){
RunConfig runConfig = runs.maybeCreate(name.toLowerCase());
runConfig.workingDirectory(project.file("run"));
runConfig.ideaModule(project.getRootProject().getName() + "." + project.getName() + ".main");
runConfig.taskName(name);
runConfig.property("mixin.env.remapRefMap", "true");
runConfig.property("mixin.env.refMapRemappingFile", project.getProjectDir() + "/build/createSrgToMcp/output.srg");
NamedDomainObjectContainer<ModConfig> mods = runConfig.getMods();
ModConfig modRun = mods.findByName("mod" + name + "Run");
if(modRun == null){
modRun = mods.create("mod" + name + "Run");
}
SourceSet forgeMain = project.getExtensions().getByType(SourceSetContainer.class).getByName("main");
modRun.sources(commonSourceSets.getByName("main"), forgeMain);
if(isSplitSources){
SourceSet client = commonSourceSets.getByName("client");
modRun.source(client);
project.getTasks().maybeCreate("clientClasses")
.dependsOn(commonProject.getTasks().getByName("clientClasses"));
}
return runConfig;
}

}
//package dev.nanite.mlp.loaders;
//
//import dev.nanite.mlp.MultiLoaderExtension;
//import dev.nanite.mlp.aw2at.AccessWidenerToTransformerTask;
//import dev.nanite.mlp.ext.MultiLoaderForge;
//import dev.nanite.mlp.ext.MultiLoaderRoot;
//import net.minecraftforge.gradle.common.util.ModConfig;
//import net.minecraftforge.gradle.common.util.RunConfig;
//import net.minecraftforge.gradle.userdev.UserDevExtension;
//import net.minecraftforge.gradle.userdev.UserDevPlugin;
//import org.gradle.api.NamedDomainObjectContainer;
//import org.gradle.api.Project;
//import org.gradle.api.artifacts.dsl.DependencyHandler;
//import org.gradle.api.plugins.JavaPlugin;
//import org.gradle.api.tasks.SourceSet;
//import org.gradle.api.tasks.SourceSetContainer;
//import org.spongepowered.asm.gradle.plugins.MixinExtension;
//import org.spongepowered.asm.gradle.plugins.MixinGradlePlugin;
//
//import java.util.Map;
//
//public class ForgeLoader {
//
// public static void setupForge(Project project, MultiLoaderForge multiLoaderForge){
// applyForgePlugins(project);
// configureForgeDependencies(project, multiLoaderForge);
// setupForgeGradle(project, multiLoaderForge);
// GenericLoader.genericGradleSetup(project);
// project.getTasks().getByName("jar").finalizedBy("reobfJar");
// }
//
// public static void applyForgePlugins(Project project) {
// project.getPluginManager().apply("java");
// project.getPluginManager().apply(UserDevPlugin.class);
// project.getPluginManager().apply(MixinGradlePlugin.class);
// }
//
// public static void configureForgeDependencies(Project project, MultiLoaderForge multiLoaderForge){
// MultiLoaderRoot multiLoaderRoot = MultiLoaderExtension.getRootExtension(project).getRootOptions().get();
// if(multiLoaderForge.isNeo.get() && !multiLoaderRoot.minecraftVersion.get().equals("1.20.1")) {
// throw new IllegalStateException("Neo in forge is only supported on 1.20.1");
// }
// var forgePath = multiLoaderForge.isNeo.get() ? "net.neoforged" : "net.minecraftforge";
// if(multiLoaderRoot.overrideSpongeMixin.get()){
// project.getConfigurations().getByName("annotationProcessor")
// .exclude(Map.of("group", "org.spongepowered", "module", "mixin"));
// }
// DependencyHandler deps = project.getDependencies();
// deps.add("minecraft",
// forgePath + ":forge:" + multiLoaderRoot.minecraftVersion.get() + "-" +
// multiLoaderForge.forgeVersion.get());
// Project commonProject = MultiLoaderExtension.getCommonProject(project, multiLoaderRoot);
// deps.add(JavaPlugin.COMPILE_ONLY_CONFIGURATION_NAME,
// commonProject);
// deps.add(JavaPlugin.ANNOTATION_PROCESSOR_CONFIGURATION_NAME,
// multiLoaderRoot.mixinString.get());
// if(multiLoaderRoot.splitSources.get()) {
// SourceSetContainer commonSourceSets = commonProject.getExtensions().getByType(SourceSetContainer.class);
// SourceSet clientSourceSet = commonSourceSets.getByName("client");
// deps.add(JavaPlugin.COMPILE_ONLY_CONFIGURATION_NAME, clientSourceSet.getOutput());
// }
// }
//
// public static void setupForgeGradle(Project project, MultiLoaderForge multiLoaderForge){
// MultiLoaderRoot multiLoaderRoot = MultiLoaderExtension.getRootExtension(project).getRootOptions().get();
// UserDevExtension forgeUserDev = project.getExtensions().getByType(UserDevExtension.class);
// forgeUserDev.mappings("official", multiLoaderRoot.minecraftVersion.get());
// NamedDomainObjectContainer<RunConfig> runs = forgeUserDev.getRuns();
// Project commonProject = MultiLoaderExtension.getCommonProject(project, multiLoaderRoot);
// SourceSetContainer commonSourceSets = commonProject.getExtensions().getByType(SourceSetContainer.class);
// SourceSetContainer projectSourceSets = project.getExtensions().getByType(SourceSetContainer.class);
// createOrConfigureRunConfig(project, runs, commonSourceSets, commonProject, "Client", multiLoaderRoot.splitSources.get());
// createOrConfigureRunConfig(project, runs, commonSourceSets, commonProject, "Server", multiLoaderRoot.splitSources.get());
// if(multiLoaderRoot.getDataGenOptions().isPresent() &&
// (multiLoaderRoot.getDataGenOptions().get().useForge.isPresent() || multiLoaderRoot.getDataGenOptions().get().mixBoth.get())){
// RunConfig dataConfig = createOrConfigureRunConfig(project, runs, commonSourceSets,
// commonProject, "Data", multiLoaderRoot.splitSources.get());
// dataConfig.args("--mod", multiLoaderRoot.modID.get(), "--all", "--output",
// multiLoaderRoot.getDataGenOptions().get().useForge.get(), "--existing",
// commonProject.file("src/main/resources"), "--existing",
// project.file("src/main/resources"));
// }
// if(multiLoaderRoot.isForgeATEnabled()) {
// forgeUserDev.accessTransformer(project.file(AccessWidenerToTransformerTask.ACCESS_TRANSFORMER_PATH));
// }
// MixinExtension mixinExtension = project.getExtensions().getByType(MixinExtension.class);
// if(commonProject.file("src/main/resources/" + multiLoaderRoot.commonMixin.get()).exists()) {
// mixinExtension.config(multiLoaderRoot.commonMixin.get());
// }
// if(project.file("src/main/resources/" + multiLoaderForge.forgeMixins.get()).exists()) {
// mixinExtension.config(multiLoaderForge.forgeMixins.get());
// }
// mixinExtension.add(projectSourceSets.getByName("main"), multiLoaderRoot.modID.get() + ".refmap.json");
// }
//
// private static RunConfig createOrConfigureRunConfig(Project project, NamedDomainObjectContainer<RunConfig> runs,
// SourceSetContainer commonSourceSets, Project commonProject, String name, boolean isSplitSources){
// RunConfig runConfig = runs.maybeCreate(name.toLowerCase());
// runConfig.workingDirectory(project.file("run"));
// runConfig.ideaModule(project.getRootProject().getName() + "." + project.getName() + ".main");
// runConfig.taskName(name);
// runConfig.property("mixin.env.remapRefMap", "true");
// runConfig.property("mixin.env.refMapRemappingFile", project.getProjectDir() + "/build/createSrgToMcp/output.srg");
// NamedDomainObjectContainer<ModConfig> mods = runConfig.getMods();
// ModConfig modRun = mods.findByName("mod" + name + "Run");
// if(modRun == null){
// modRun = mods.create("mod" + name + "Run");
// }
// SourceSet forgeMain = project.getExtensions().getByType(SourceSetContainer.class).getByName("main");
// modRun.sources(commonSourceSets.getByName("main"), forgeMain);
// if(isSplitSources){
// SourceSet client = commonSourceSets.getByName("client");
// modRun.source(client);
// project.getTasks().maybeCreate("clientClasses")
// .dependsOn(commonProject.getTasks().getByName("clientClasses"));
// }
// return runConfig;
// }
//
//}

0 comments on commit 1ea57d9

Please sign in to comment.