From 54215bdb18cda4e4ec32f581075c641459eb2468 Mon Sep 17 00:00:00 2001 From: Brady Date: Thu, 11 Oct 2018 14:53:20 -0500 Subject: [PATCH] Just ONE tweaker When we make the next release, we need to specify in the setup files that Baritone now requires the SimpleTweaker dependency, and we need to remove the old alternate tweaker references. (Optifine and Forge) --- build.gradle | 6 +++ .../java/baritone/launch/BaritoneTweaker.java | 54 ++++++------------- .../baritone/launch/BaritoneTweakerForge.java | 44 --------------- .../launch/BaritoneTweakerOptifine.java | 34 ------------ 4 files changed, 22 insertions(+), 116 deletions(-) delete mode 100644 src/launch/java/baritone/launch/BaritoneTweakerForge.java delete mode 100644 src/launch/java/baritone/launch/BaritoneTweakerOptifine.java diff --git a/build.gradle b/build.gradle index daf835b9..776c4bea 100755 --- a/build.gradle +++ b/build.gradle @@ -73,9 +73,15 @@ repositories { name = 'spongepowered-repo' url = 'http://repo.spongepowered.org/maven/' } + + maven { + name = 'impactdevelopment-repo' + url = 'https://impactdevelopment.github.io/maven/' + } } dependencies { + runtime launchCompile('com.github.ImpactDevelopment:SimpleTweaker:1.1') runtime launchCompile('org.spongepowered:mixin:0.7.11-SNAPSHOT') { // Mixin includes a lot of dependencies that are too up-to-date exclude module: 'launchwrapper' diff --git a/src/launch/java/baritone/launch/BaritoneTweaker.java b/src/launch/java/baritone/launch/BaritoneTweaker.java index 536ecf95..e78da09f 100644 --- a/src/launch/java/baritone/launch/BaritoneTweaker.java +++ b/src/launch/java/baritone/launch/BaritoneTweaker.java @@ -17,61 +17,39 @@ package baritone.launch; -import net.minecraft.launchwrapper.ITweaker; +import io.github.impactdevelopment.simpletweaker.SimpleTweaker; +import net.minecraft.launchwrapper.Launch; import net.minecraft.launchwrapper.LaunchClassLoader; import org.spongepowered.asm.launch.MixinBootstrap; import org.spongepowered.asm.mixin.MixinEnvironment; import org.spongepowered.asm.mixin.Mixins; import org.spongepowered.tools.obfuscation.mcp.ObfuscationServiceMCP; -import java.io.File; -import java.util.ArrayList; import java.util.List; /** * @author Brady * @since 7/31/2018 9:59 PM */ -public class BaritoneTweaker implements ITweaker { - - List args; - - @Override - public void acceptOptions(List args, File gameDir, File assetsDir, String profile) { - this.args = new ArrayList<>(args); - if (gameDir != null) { - addArg("gameDir", gameDir.getAbsolutePath()); - } - if (assetsDir != null) { - addArg("assetsDir", assetsDir.getAbsolutePath()); - } - if (profile != null) { - addArg("version", profile); - } - } +public class BaritoneTweaker extends SimpleTweaker { @Override public void injectIntoClassLoader(LaunchClassLoader classLoader) { + super.injectIntoClassLoader(classLoader); + MixinBootstrap.init(); + + // noinspection unchecked + List tweakClasses = (List) Launch.blackboard.get("TweakClasses"); + + String obfuscation = ObfuscationServiceMCP.NOTCH; + if (tweakClasses.stream().anyMatch(s -> s.contains("net.minecraftforge.fml.common.launcher"))) { + obfuscation = ObfuscationServiceMCP.SEARGE; + } + MixinEnvironment.getDefaultEnvironment().setSide(MixinEnvironment.Side.CLIENT); - MixinEnvironment.getDefaultEnvironment().setObfuscationContext(ObfuscationServiceMCP.NOTCH); + MixinEnvironment.getDefaultEnvironment().setObfuscationContext(obfuscation); + Mixins.addConfiguration("mixins.baritone.json"); } - - @Override - public final String getLaunchTarget() { - return "net.minecraft.client.main.Main"; - } - - @Override - public final String[] getLaunchArguments() { - return this.args.toArray(new String[0]); - } - - private void addArg(String label, String value) { - if (!args.contains("--" + label) && value != null) { - this.args.add("--" + label); - this.args.add(value); - } - } } diff --git a/src/launch/java/baritone/launch/BaritoneTweakerForge.java b/src/launch/java/baritone/launch/BaritoneTweakerForge.java deleted file mode 100644 index 7623eed5..00000000 --- a/src/launch/java/baritone/launch/BaritoneTweakerForge.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * This file is part of Baritone. - * - * Baritone 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, either version 3 of the License, or - * (at your option) any later version. - * - * Baritone 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 Baritone. If not, see . - */ - -package baritone.launch; - -import net.minecraft.launchwrapper.LaunchClassLoader; -import org.spongepowered.asm.mixin.MixinEnvironment; -import org.spongepowered.tools.obfuscation.mcp.ObfuscationServiceMCP; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -/** - * @author Brady - * @since 7/31/2018 10:09 PM - */ -public class BaritoneTweakerForge extends BaritoneTweaker { - - @Override - public final void acceptOptions(List args, File gameDir, File assetsDir, String profile) { - this.args = new ArrayList<>(); - } - - @Override - public final void injectIntoClassLoader(LaunchClassLoader classLoader) { - super.injectIntoClassLoader(classLoader); - MixinEnvironment.getDefaultEnvironment().setObfuscationContext(ObfuscationServiceMCP.SEARGE); - } -} diff --git a/src/launch/java/baritone/launch/BaritoneTweakerOptifine.java b/src/launch/java/baritone/launch/BaritoneTweakerOptifine.java deleted file mode 100644 index 9f4f8380..00000000 --- a/src/launch/java/baritone/launch/BaritoneTweakerOptifine.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * This file is part of Baritone. - * - * Baritone 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, either version 3 of the License, or - * (at your option) any later version. - * - * Baritone 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 Baritone. If not, see . - */ - -package baritone.launch; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -/** - * @author Brady - * @since 7/31/2018 10:10 PM - */ -public class BaritoneTweakerOptifine extends BaritoneTweaker { - - @Override - public final void acceptOptions(List args, File gameDir, File assetsDir, String profile) { - this.args = new ArrayList<>(); - } -}