From 69a32a97adf734c08d7b438d9797d688da7be3ed Mon Sep 17 00:00:00 2001 From: brachy84 Date: Tue, 23 Jul 2024 19:43:18 +0200 Subject: [PATCH] move minecraft block to addon.gradle & fix dev error --- addon.gradle | 33 +++++++++++++++++-- dependencies.gradle | 29 ++-------------- .../groovyscript/sandbox/GroovyLogImpl.java | 8 +++-- .../sandbox/ScriptModContainer.java | 3 ++ 4 files changed, 41 insertions(+), 32 deletions(-) diff --git a/addon.gradle b/addon.gradle index 629490719..263e88313 100644 --- a/addon.gradle +++ b/addon.gradle @@ -1,11 +1,38 @@ +// additional gradle configuration + +minecraft { + injectedTags.put 'GROOVY_VERSION', groovy_version + + if (project.debug_use_examples_folder.toBoolean()) { + extraRunJvmArguments.add('-Dgroovyscript.use_examples_folder=true') + } + if (project.debug_run_ls.toBoolean()) { + extraRunJvmArguments.add('-Dgroovyscript.run_ls=true') + } + if (project.debug_generate_examples.toBoolean()) { + extraRunJvmArguments.add('-Dgroovyscript.generate_examples=true') + } + if (project.debug_generate_wiki.toBoolean()) { + extraRunJvmArguments.add('-Dgroovyscript.generate_wiki=true') + } + if (project.debug_generate_and_crash.toBoolean()) { + extraRunJvmArguments.add('-Dgroovyscript.generate_and_crash=true') + } + if (project.debug_log_missing_lang_keys.toBoolean()) { + extraRunJvmArguments.add('-Dgroovyscript.log_missing_lang_keys=true') + } + + //extraTweakClasses << "${modGroup}.LaunchTweaker" +} + configurations { - lsp4j - implementation.extendsFrom(lsp4j) + specialEmbed + implementation.extendsFrom(specialEmbed) } jar { from provider { - configurations.lsp4j.collect { + configurations.specialEmbed.collect { it.isDirectory() ? it : zipTree(it) } }, { diff --git a/dependencies.gradle b/dependencies.gradle index 485042e95..5df5ab0f9 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -109,13 +109,13 @@ dependencies { embed "org.apache.groovy:groovy:${project.groovy_version}" // TODO: check if there is anything to exclude - embed "io.github.classgraph:classgraph:4.8.165" + specialEmbed "io.github.classgraph:classgraph:4.8.165" - lsp4j("org.eclipse.lsp4j:org.eclipse.lsp4j:0.20.1") { + specialEmbed("org.eclipse.lsp4j:org.eclipse.lsp4j:0.20.1") { exclude group: 'com.google.guava', module: 'guava' exclude group: 'com.google.code.gson', module: 'gson' } - lsp4j("org.eclipse.lsp4j:org.eclipse.lsp4j.jsonrpc:0.20.1") { + specialEmbed("org.eclipse.lsp4j:org.eclipse.lsp4j.jsonrpc:0.20.1") { exclude group: 'com.google.guava', module: 'guava' exclude group: 'com.google.code.gson', module: 'gson' } @@ -157,26 +157,3 @@ dependencies { runtimeOnly 'com.cleanroommc:strip-latest-forge-requirements:1.0' } - -minecraft { - injectedTags.put 'GROOVY_VERSION', groovy_version - - if (project.debug_use_examples_folder.toBoolean()) { - extraRunJvmArguments.add('-Dgroovyscript.use_examples_folder=true') - } - if (project.debug_run_ls.toBoolean()) { - extraRunJvmArguments.add('-Dgroovyscript.run_ls=true') - } - if (project.debug_generate_examples.toBoolean()) { - extraRunJvmArguments.add('-Dgroovyscript.generate_examples=true') - } - if (project.debug_generate_wiki.toBoolean()) { - extraRunJvmArguments.add('-Dgroovyscript.generate_wiki=true') - } - if (project.debug_generate_and_crash.toBoolean()) { - extraRunJvmArguments.add('-Dgroovyscript.generate_and_crash=true') - } - if (project.debug_log_missing_lang_keys.toBoolean()) { - extraRunJvmArguments.add('-Dgroovyscript.log_missing_lang_keys=true') - } -} diff --git a/src/main/java/com/cleanroommc/groovyscript/sandbox/GroovyLogImpl.java b/src/main/java/com/cleanroommc/groovyscript/sandbox/GroovyLogImpl.java index 0813e1e28..dce75d6cc 100644 --- a/src/main/java/com/cleanroommc/groovyscript/sandbox/GroovyLogImpl.java +++ b/src/main/java/com/cleanroommc/groovyscript/sandbox/GroovyLogImpl.java @@ -6,6 +6,8 @@ import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.ModContainer; +import net.minecraftforge.fml.relauncher.FMLInjectionData; +import net.minecraftforge.fml.relauncher.FMLLaunchHandler; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -39,8 +41,8 @@ public class GroovyLogImpl implements GroovyLog { private List errors = new ArrayList<>(); private GroovyLogImpl() { - File logFile = new File(Loader.instance().getConfigDir().toPath().getParent().toString() + - File.separator + "logs" + File.separator + getLogFileName()); + File minecraftHome = (File) FMLInjectionData.data()[6]; + File logFile = new File(minecraftHome, "logs" + File.separator + getLogFileName()); logFilePath = logFile.toPath(); PrintWriter tempWriter; try { @@ -63,7 +65,7 @@ private GroovyLogImpl() { } private static String getLogFileName() { - return FMLCommonHandler.instance().getSide().isServer() ? "groovy_server.log" : "groovy.log"; + return FMLLaunchHandler.side().isServer() ? "groovy_server.log" : "groovy.log"; } @GroovyBlacklist diff --git a/src/main/java/com/cleanroommc/groovyscript/sandbox/ScriptModContainer.java b/src/main/java/com/cleanroommc/groovyscript/sandbox/ScriptModContainer.java index 301760584..4b6f9e909 100644 --- a/src/main/java/com/cleanroommc/groovyscript/sandbox/ScriptModContainer.java +++ b/src/main/java/com/cleanroommc/groovyscript/sandbox/ScriptModContainer.java @@ -3,6 +3,7 @@ import com.cleanroommc.groovyscript.GroovyScript; import com.cleanroommc.groovyscript.core.GroovyScriptCore; import com.google.common.eventbus.EventBus; +import net.minecraft.launchwrapper.Launch; import net.minecraftforge.fml.common.DummyModContainer; import net.minecraftforge.fml.common.LoadController; import net.minecraftforge.fml.relauncher.FMLInjectionData; @@ -13,6 +14,8 @@ public class ScriptModContainer extends DummyModContainer { public ScriptModContainer() { super(RunConfig.modMetadata); + // fixes error when forge tries to find a mod jar inside classgraph + Launch.classLoader.getSources().removeIf(url -> url.toString().contains("io.github.classgraph")); GroovyScript.initializeRunConfig((File) FMLInjectionData.data()[6]); }