From 99a7fcd8bdba38aaecfd8ca855ac74192b05392a Mon Sep 17 00:00:00 2001 From: Jonathing Date: Fri, 8 Nov 2024 20:40:18 -0500 Subject: [PATCH] Bump CoreMods to 5.2 (#10129) Full Changelog: https://gist.github.com/Jonathing/c3ad28b2a048ac839a7baba5417ee870 The key features are: - ES6 language support - Thoroughly updated ASMAPI, with full documentation - Bug fixes (some optional for backwards-compatibility) - Partial internal code cleanup - Updated Nashorn to 15.4 - Request CoreMods to not apply fix for ASMAPI.findFirstInstructionBefore by default --- build_shared.gradle | 8 ++++++++ .../java/net/minecraftforge/fml/loading/FMLLoader.java | 9 +++++++++ settings.gradle | 6 +++--- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/build_shared.gradle b/build_shared.gradle index 203f723fb0..30f8774d08 100644 --- a/build_shared.gradle +++ b/build_shared.gradle @@ -74,3 +74,11 @@ eclipse { // Run when importing the project synchronizationTasks generateResources, copyEclipseSettings, eclipseClasspath, eclipseProject } + +idea { + module { + // IntelliJ IDEA does not do this by itself anymore... + downloadJavadoc = true + downloadSources = true + } +} diff --git a/fmlloader/src/main/java/net/minecraftforge/fml/loading/FMLLoader.java b/fmlloader/src/main/java/net/minecraftforge/fml/loading/FMLLoader.java index 94006fa508..9ec3dd687f 100644 --- a/fmlloader/src/main/java/net/minecraftforge/fml/loading/FMLLoader.java +++ b/fmlloader/src/main/java/net/minecraftforge/fml/loading/FMLLoader.java @@ -57,6 +57,9 @@ public class FMLLoader { LOGGER.debug(CORE, "Detected version data : {}", versionInfo); LOGGER.debug(CORE, "FML {} loading", LauncherVersion.getVersion()); + // Allows us to communicate properties with other services through ModLauncher + setupBlackboardKeys(); + checkPackage(ITransformationService.class, "4.0", "ModLauncher"); accessTransformer = getPlugin(env, "accesstransformer", "1.0", "AccessTransformer"); /*eventBus =*/ getPlugin(env, "eventbus", "1.0", "EventBus"); @@ -120,6 +123,12 @@ public class FMLLoader { return providers.get(0); } + private static void setupBlackboardKeys() { + LOGGER.debug(CORE, "Requesting CoreMods to not apply the fix for ASMAPI.findFirstInstructionBefore by default"); + var blackboardKey = TypesafeMap.Key.getOrCreate(Launcher.INSTANCE.blackboard(), "coremods.use_old_findFirstInstructionBefore", Boolean.class); + Launcher.INSTANCE.blackboard().computeIfAbsent(blackboardKey, k -> true); + } + static void setupLaunchHandler(final IEnvironment environment, final Map arguments) { final String launchTarget = environment.getProperty(IEnvironment.Keys.LAUNCHTARGET.get()).orElse("MISSING"); arguments.put("launchTarget", launchTarget); diff --git a/settings.gradle b/settings.gradle index 709793c17f..2331b12d36 100644 --- a/settings.gradle +++ b/settings.gradle @@ -29,8 +29,8 @@ dependencyResolutionManagement { library('unsafe', 'net.minecraftforge:unsafe:0.9.2') library('accesstransformers', 'net.minecraftforge:accesstransformers:8.1.1') library('antlr-runtime', 'org.antlr:antlr4-runtime:4.9.1') // Needed by Access Transformer because parsing a simple text file was too complicated - library('coremods', 'net.minecraftforge:coremods:5.1.0') - library('nashorn', 'org.openjdk.nashorn:nashorn-core:15.3') // Needed by coremods, because the JRE no longer ships JS + library('coremods', 'net.minecraftforge:coremods:5.2.1') + library('nashorn', 'org.openjdk.nashorn:nashorn-core:15.4') // Needed by coremods, because the JRE no longer ships JS library('eventbus', 'net.minecraftforge:eventbus:6.2.8') library('typetools', 'net.jodah:typetools:0.6.3') // Needed by EventBus because of lambdas library('mergetool-api', 'net.minecraftforge:mergetool-api:1.0') @@ -51,7 +51,7 @@ dependencyResolutionManagement { library('bootstrap-shim', 'net.minecraftforge', 'bootstrap-shim').versionRef('bootstrap') // ASM it's used for so many of our hacks - version('asm', '9.7') + version('asm', '9.7.1') library('asm', 'org.ow2.asm', 'asm' ).versionRef('asm') library('asm-tree', 'org.ow2.asm', 'asm-tree' ).versionRef('asm') library('asm-util', 'org.ow2.asm', 'asm-util' ).versionRef('asm')