fix: avoid EndlessIDsTransformer getting initialized too early

This commit is contained in:
FalsePattern committed 2026-05-25 23:05:09 +02:00
1 parent 2d5dd8a52a
commit 012ecc02af
6 files changed
+42 -14

No files matched your search

@@ -80,18 +80,18 @@ public class EndlessIDsCore implements IFMLLoadingPlugin, IEarlyMixinLoader {
@SuppressWarnings("unchecked")
val exceptions = (Set<String>) 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]);
@@ -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<TurboClassTransformer> transformers() {
val result = new ArrayList<TurboClassTransformer>();
@@ -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 <https://www.gnu.org/licenses/>.
*/
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() {}
}
@@ -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) {
@@ -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;
@@ -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;