From 012ecc02afa1c65efd617da9a285968a52b93baf Mon Sep 17 00:00:00 2001 From: FalsePattern Date: Mon, 25 May 2026 23:05:09 +0200 Subject: [PATCH] fix: avoid EndlessIDsTransformer getting initialized too early --- .../endlessids/asm/EndlessIDsCore.java | 8 ++--- .../endlessids/asm/EndlessIDsTransformer.java | 4 --- .../falsepattern/endlessids/asm/Share.java | 33 +++++++++++++++++++ .../asm/transformer/GameDataAccelerator.java | 4 +-- .../SpaceCoreModInfoGenerator.java | 1 - .../chunk/ChunkProviderSuperPatcher.java | 6 ++-- 6 files changed, 42 insertions(+), 14 deletions(-) create mode 100644 src/main/java/com/falsepattern/endlessids/asm/Share.java diff --git a/src/main/java/com/falsepattern/endlessids/asm/EndlessIDsCore.java b/src/main/java/com/falsepattern/endlessids/asm/EndlessIDsCore.java index 9e9f860..bb5c396 100644 --- a/src/main/java/com/falsepattern/endlessids/asm/EndlessIDsCore.java +++ b/src/main/java/com/falsepattern/endlessids/asm/EndlessIDsCore.java @@ -80,18 +80,18 @@ public class EndlessIDsCore implements IFMLLoadingPlugin, IEarlyMixinLoader { @SuppressWarnings("unchecked") val exceptions = (Set) field.get(cl); if (exceptions.contains("code.elix_x.coremods")) { - EndlessIDsTransformer.logger.info("AntiIDConflict detected!"); - EndlessIDsTransformer.logger.info("Removing ASM protections so that we can fix its code."); + Share.logger.info("AntiIDConflict detected!"); + Share.logger.info("Removing ASM protections so that we can fix its code."); exceptions.remove("code.elix_x.coremods"); exceptions.add("code.elix_x.coremods.antiidconflict.core"); exceptions.add("code.elix_x.coremods.antiidconflict.ByteCodeTester"); } - return new String[]{EndlessIDsTransformer.class.getName()}; + return new String[]{Tags.GROUPNAME + ".asm.EndlessIDsTransformer" }; } private static void loudCrash(String message) { for (int i = 0; i < 100; i++) { - EndlessIDsTransformer.logger.fatal(message); + Share.logger.fatal(message); } val err = new Error(message); err.setStackTrace(new StackTraceElement[0]); diff --git a/src/main/java/com/falsepattern/endlessids/asm/EndlessIDsTransformer.java b/src/main/java/com/falsepattern/endlessids/asm/EndlessIDsTransformer.java index 11ac687..7dc0b12 100644 --- a/src/main/java/com/falsepattern/endlessids/asm/EndlessIDsTransformer.java +++ b/src/main/java/com/falsepattern/endlessids/asm/EndlessIDsTransformer.java @@ -22,7 +22,6 @@ package com.falsepattern.endlessids.asm; -import com.falsepattern.endlessids.Tags; import com.falsepattern.endlessids.asm.transformer.DevFixer; import com.falsepattern.endlessids.asm.transformer.FmlRegistry; import com.falsepattern.endlessids.asm.transformer.GameDataAccelerator; @@ -33,14 +32,11 @@ import com.falsepattern.endlessids.config.GeneralConfig; import com.falsepattern.lib.turboasm.MergeableTurboTransformer; import com.falsepattern.lib.turboasm.TurboClassTransformer; import lombok.val; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; import java.util.ArrayList; import java.util.List; public class EndlessIDsTransformer extends MergeableTurboTransformer { - public static final Logger logger = LogManager.getLogger(Tags.MODNAME + " ASM"); private static List transformers() { val result = new ArrayList(); diff --git a/src/main/java/com/falsepattern/endlessids/asm/Share.java b/src/main/java/com/falsepattern/endlessids/asm/Share.java new file mode 100644 index 0000000..6137afa --- /dev/null +++ b/src/main/java/com/falsepattern/endlessids/asm/Share.java @@ -0,0 +1,33 @@ +/* + * EndlessIDs + * + * Copyright (C) 2022-2026 FalsePattern, The MEGA Team + * All Rights Reserved + * + * The above copyright notice, this permission notice and the word "MEGA" + * shall be included in all copies or substantial portions of the Software. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, only version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ + +package com.falsepattern.endlessids.asm; + +import com.falsepattern.endlessids.Tags; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +public final class Share { + public static final Logger logger = LogManager.getLogger(Tags.MODNAME + " ASM"); + + private Share() {} +} diff --git a/src/main/java/com/falsepattern/endlessids/asm/transformer/GameDataAccelerator.java b/src/main/java/com/falsepattern/endlessids/asm/transformer/GameDataAccelerator.java index 4656f84..b63775c 100644 --- a/src/main/java/com/falsepattern/endlessids/asm/transformer/GameDataAccelerator.java +++ b/src/main/java/com/falsepattern/endlessids/asm/transformer/GameDataAccelerator.java @@ -22,9 +22,9 @@ package com.falsepattern.endlessids.asm.transformer; +import com.falsepattern.endlessids.asm.Share; import com.falsepattern.endlessids.Tags; import com.falsepattern.endlessids.asm.AsmTransformException; -import com.falsepattern.endlessids.asm.EndlessIDsTransformer; import com.falsepattern.endlessids.config.GeneralConfig; import com.falsepattern.lib.turboasm.ClassNodeHandle; import com.falsepattern.lib.turboasm.TurboClassTransformer; @@ -64,7 +64,7 @@ public class GameDataAccelerator implements TurboClassTransformer { } private static void transformError(MethodNode method) { - EndlessIDsTransformer.logger.error("Could not add caching code to GameData." + method.name + method.desc); + Share.logger.error("Could not add caching code to GameData.{}{}", method.name, method.desc); } private void transformRegisterBlock(MethodNode method) { diff --git a/src/main/java/com/falsepattern/endlessids/asm/transformer/SpaceCoreModInfoGenerator.java b/src/main/java/com/falsepattern/endlessids/asm/transformer/SpaceCoreModInfoGenerator.java index d24e945..06bd94d 100644 --- a/src/main/java/com/falsepattern/endlessids/asm/transformer/SpaceCoreModInfoGenerator.java +++ b/src/main/java/com/falsepattern/endlessids/asm/transformer/SpaceCoreModInfoGenerator.java @@ -24,7 +24,6 @@ package com.falsepattern.endlessids.asm.transformer; import com.falsepattern.endlessids.Tags; import com.falsepattern.endlessids.asm.EndlessIDsCore; -import com.falsepattern.endlessids.asm.EndlessIDsTransformer; import com.falsepattern.lib.turboasm.ClassNodeHandle; import com.falsepattern.lib.turboasm.TurboClassTransformer; import lombok.val; diff --git a/src/main/java/com/falsepattern/endlessids/asm/transformer/chunk/ChunkProviderSuperPatcher.java b/src/main/java/com/falsepattern/endlessids/asm/transformer/chunk/ChunkProviderSuperPatcher.java index 9063325..7c2033f 100644 --- a/src/main/java/com/falsepattern/endlessids/asm/transformer/chunk/ChunkProviderSuperPatcher.java +++ b/src/main/java/com/falsepattern/endlessids/asm/transformer/chunk/ChunkProviderSuperPatcher.java @@ -22,9 +22,9 @@ package com.falsepattern.endlessids.asm.transformer.chunk; +import com.falsepattern.endlessids.asm.Share; import com.falsepattern.endlessids.Tags; import com.falsepattern.endlessids.asm.EndlessIDsCore; -import com.falsepattern.endlessids.asm.EndlessIDsTransformer; import com.falsepattern.lib.turboasm.BytePatternMatcher; import com.falsepattern.lib.turboasm.ClassNodeHandle; import com.falsepattern.lib.turboasm.TurboClassTransformer; @@ -456,7 +456,7 @@ public class ChunkProviderSuperPatcher implements TurboClassTransformer { val memory = findTheTarget(method, cn); if (memory != null) { patched = true; - EndlessIDsTransformer.logger.debug("[ChunkProvider patcher]: Match found in method " + method.name); + Share.logger.debug("[ChunkProvider patcher]: Match found in method {}", method.name); val insnList = method.instructions; for (val node : method.localVariables) { if (node.desc.equals("[B") && node.index == memory.biomeArrayIndex) { @@ -473,7 +473,7 @@ public class ChunkProviderSuperPatcher implements TurboClassTransformer { } } if (!patched) { - EndlessIDsTransformer.logger.debug("[ChunkProvider patcher]: No matches found in class! This is not explicitly " + + Share.logger.debug("[ChunkProvider patcher]: No matches found in class! This is not explicitly " + "an error, because the patch might be applied by a mixin instead!"); } return patched;