From 9cd73c84a65759c164cc2f1d2eb98515998294fe Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 7 Oct 2023 12:41:16 -0700 Subject: [PATCH] More buildscript work Fixed ignoreList for client and server. Lazy configured a few more tasks Fixed early loading screen hardcoded names.. why? --- build.gradle | 35 ++++++++++++------- .../fml/loading/ImmediateWindowHandler.java | 2 +- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/build.gradle b/build.gradle index b960ea82fb..4d395fc4be 100644 --- a/build.gradle +++ b/build.gradle @@ -107,14 +107,14 @@ def extraTxts = [ rootProject.tasks.createChangelog.outputFile ] -task downloadVersionManifest(type: Download) { +tasks.register('downloadVersionManifest', Download) { src 'https://piston-meta.mojang.com/mc/game/version_manifest_v2.json' dest file('build/versions/version_manifest.json') useETag 'all' onlyIfModified true quiet true } -task downloadJson(type: Download, dependsOn: downloadVersionManifest) { +tasks.register('downloadJson', Download) { inputs.file downloadVersionManifest.dest src { downloadVersionManifest.dest.json.versions.find{ it.id == MC_VERSION }.url } dest file("build/versions/${MC_VERSION}/version.json") @@ -122,15 +122,21 @@ task downloadJson(type: Download, dependsOn: downloadVersionManifest) { onlyIfModified true quiet true } -['client', 'server'].each { id -> - task "download${id.capitalize()}Raw"(type: Download, dependsOn: downloadJson) { - inputs.file downloadJson.dest - src { downloadJson.dest.json.downloads.get(id).url } - dest file("build/versions/${MC_VERSION}/${id}.jar") - useETag 'all' - onlyIfModified true - quiet true - } +tasks.register('downloadClientRaw', Download) { + inputs.file downloadJson.dest + src { downloadJson.dest.json.downloads.client.url } + dest file("build/versions/${MC_VERSION}/client.jar") + useETag 'all' + onlyIfModified true + quiet true +} +tasks.register('downloadServerRaw', Download) { + inputs.file downloadJson.dest + src { downloadJson.dest.json.downloads.server.url } + dest file("build/versions/${MC_VERSION}/server.jar") + useETag 'all' + onlyIfModified true + quiet true } subprojects { @@ -384,6 +390,11 @@ def sharedFmlonlyForge = { Project prj -> } def userdevRuns = prj.tasks.userdevConfig.runs + def ignoreList = ( //bsl uses filename.startsWith, so we have to use the project name, i add '-' for saftey's sake and not wanting to ignore things that modders add. But the whole system is really dumb/fragile. + prj.configurations.moduleonly.allDependencies.collect{ it.name } + + ['client-extra', 'fmlcore', 'javafmllanguage', 'lowcodelanguage', 'mclanguage', prj.name] + ).collect{ it + '-' }.sort().join(',') + for (def run : prj.patcher.runs + userdevRuns) { if (run.parents) continue // We already added this to the parent run config //run.property 'bsl.debug', 'true' @@ -400,7 +411,7 @@ def sharedFmlonlyForge = { Project prj -> run.client run.name.contains('client') // SecureJarHandler bootstrap values. - run.property 'ignoreList', prj.configurations.moduleonly.files.collect {it.name.replaceAll(/([-_]([.\d]*\d+)|\.jar$)/, '') }.join(',') + ",client-extra,fmlcore,javafmllanguage,lowcodelanguage,mclanguage,${prj.name}-" + run.property 'ignoreList', ignoreList // FIXME: Without this jna doesn't work at runtime. Someone figure out why please? run.property 'mergeModules', 'jna-5.10.0.jar,jna-platform-5.10.0.jar' if (userdevRuns.contains(run)) { diff --git a/fmlloader/src/main/java/net/minecraftforge/fml/loading/ImmediateWindowHandler.java b/fmlloader/src/main/java/net/minecraftforge/fml/loading/ImmediateWindowHandler.java index 365434aab3..8ab78d5c49 100644 --- a/fmlloader/src/main/java/net/minecraftforge/fml/loading/ImmediateWindowHandler.java +++ b/fmlloader/src/main/java/net/minecraftforge/fml/loading/ImmediateWindowHandler.java @@ -23,7 +23,7 @@ public class ImmediateWindowHandler { private static ProgressMeter earlyProgress; public static void load(final String launchTarget, final String[] arguments) { - if (!List.of("forgeclient", "forgeclientuserdev", "forgeclientdev").contains(launchTarget)) { + if (!launchTarget.contains("client")) { provider = new DummyProvider(); LOGGER.info("ImmediateWindowProvider not loading because launch target is {}", launchTarget); } else if (!FMLConfig.getBoolConfigValue(FMLConfig.ConfigValue.EARLY_WINDOW_CONTROL)) {