package openeye.logic;
import com.google.common.base.Preconditions;
import java.io.File;
import java.util.List;
import java.util.Map;
import net.minecraft.launchwrapper.ITweaker;
import net.minecraft.launchwrapper.LaunchClassLoader;
public class Bootstrap {
private Bootstrap() {}
public static final Bootstrap instance = new Bootstrap();
private boolean runtimeDeobfuscationEnabled;
private List<ITweaker> tweakers;
private LaunchClassLoader loader;
private File mcLocation;
private File selfLocation;
@SuppressWarnings("unchecked")
public void populateFromInject(Map<String, Object> data) {
runtimeDeobfuscationEnabled = (Boolean)data.get("runtimeDeobfuscationEnabled");
tweakers = (List<ITweaker>)data.get("coremodList");
}
public void populateFromSetupClass(Map<String, Object> data) {
loader = (LaunchClassLoader)data.get("classLoader");
mcLocation = (File)data.get("mcLocation");
selfLocation = (File)data.get("coremodLocation");
}
public void startup() {
Preconditions.checkNotNull(mcLocation, "Failed to start OpenEye, no minecraft folder available");
Config.load(mcLocation);
Storages storages = Storages.init(mcLocation);
StateHolder.init(storages);
Sanitizers.addMinecraftPath(mcLocation);
ThrowableLogger.init();
}
public boolean isRuntimeDeobfuscationEnabled() {
return runtimeDeobfuscationEnabled;
}
public List<ITweaker> getTweakers() {
return tweakers;
}
public LaunchClassLoader getLoader() {
return loader;
}
public File getMcLocation() {
return mcLocation;
}
public File getSelfLocation() {
return selfLocation;
}
}