1 package com.irtimaled.bbor.launch;
3 import net.minecraft.launchwrapper.ITweaker;
4 import net.minecraft.launchwrapper.LaunchClassLoader;
5 import org.spongepowered.asm.launch.MixinBootstrap;
6 import org.spongepowered.asm.mixin.MixinEnvironment;
7 import org.spongepowered.asm.mixin.Mixins;
10 import java.util.ArrayList;
11 import java.util.List;
13 public abstract class Tweaker implements ITweaker {
14 private List<String> args;
17 public void acceptOptions(List<String> args, File gameDir, File assetsDir, String profile) {
18 this.args = new ArrayList<>();
19 addOptions(args, gameDir, assetsDir, profile);
22 void addArg(String name, String value) {
29 protected void addOptions(List<String> args, File gameDir, File assetsDir, String profile) {
30 this.args.addAll(args);
34 public void injectIntoClassLoader(LaunchClassLoader classLoader) {
35 MixinBootstrap.init();
36 Mixins.addConfiguration("mixins.bbor.json");
37 MixinEnvironment.getDefaultEnvironment().setSide(isClient() ? MixinEnvironment.Side.CLIENT : MixinEnvironment.Side.SERVER);
41 protected abstract boolean isClient();
44 public String[] getLaunchArguments() {
45 return args.toArray(new String[0]);