package eu.the5zig.mod.asm; import net.minecraft.client.main.Main; import net.minecraft.launchwrapper.ITweaker; import net.minecraft.launchwrapper.Launch; import net.minecraft.launchwrapper.LaunchClassLoader; import net.minecraft.launchwrapper.LogWrapper; import java.io.File; import java.util.ArrayList; import java.util.List; public class ClassTweaker implements ITweaker { private List<String> args; private File gameDir; private File assetsDir; private String version; public ClassTweaker() { } @Override public void acceptOptions(List<String> args, File gameDir, File assetsDir, String version) { this.args = args; this.gameDir = gameDir; this.assetsDir = assetsDir; this.version = version; LogWrapper.info("Minecraft Version: " + version); try { LogWrapper.finest("Checking for Forge"); Class.forName("net.minecraftforge.client.GuiIngameForge"); LogWrapper.info("Forge detected!"); Transformer.FORGE = true; } catch (Exception ignored) { LogWrapper.info("Forge not found!"); } } @Override public void injectIntoClassLoader(LaunchClassLoader classLoader) { classLoader.registerTransformer(Transformer.class.getName()); } @Override public String getLaunchTarget() { return Main.class.getName(); } @Override public String[] getLaunchArguments() { ArrayList<String> argumentList = (ArrayList<String>) Launch.blackboard.get("ArgumentList"); if (argumentList.isEmpty()) { if (gameDir != null) { argumentList.add("--gameDir"); argumentList.add(gameDir.getPath()); } if (assetsDir != null) { argumentList.add("--assetsDir"); argumentList.add(assetsDir.getPath()); } argumentList.add("--version"); argumentList.add(version); argumentList.addAll(args); } return new String[0]; } }