Skip to content

Commit

Permalink
Update side detection logic to work in 1.7.10 as well
Browse files Browse the repository at this point in the history
  • Loading branch information
Mumfrey committed Jan 12, 2015
1 parent 552181a commit 24365c4
Showing 1 changed file with 21 additions and 14 deletions.
35 changes: 21 additions & 14 deletions src/main/java/org/spongepowered/asm/mixin/MixinEnvironment.java
Original file line number Diff line number Diff line change
Expand Up @@ -75,26 +75,33 @@ protected boolean detect() {
protected abstract boolean detect();

protected final String getSideName() {
try {
Class<?> fmlLaunchHandler = Class.forName("net.minecraftforge.fml.relauncher.FMLLaunchHandler", false, Launch.classLoader);
Method mdSide = fmlLaunchHandler.getDeclaredMethod("side");
Enum<?> side = (Enum<?>)mdSide.invoke(null);
return side.name();
} catch (Exception ex) {
// nope
String name = this.getSideName("net.minecraftforge.fml.relauncher.FMLLaunchHandler", "side");
if (name != null) {
return name;
}

try {
Class<?> liteLoaderCore = Class.forName("com.mumfrey.liteloader.core.LiteLoader", false, Launch.classLoader);
Method mdEnvironment = liteLoaderCore.getDeclaredMethod("getEnvironmentType");
Enum<?> envType = (Enum<?>)mdEnvironment.invoke(null);
return envType.name();
} catch (Exception ex) {
// nope
name = this.getSideName("cpw.mods.fml.relauncher.FMLLaunchHandler", "side");
if (name != null) {
return name;
}

name = this.getSideName("com.mumfrey.liteloader.core.LiteLoader", "getEnvironmentType");
if (name != null) {
return name;
}

return "UNKNOWN";
}

private String getSideName(String className, String methodName) {
try {
Class<?> clazz = Class.forName(className, false, Launch.classLoader);
Method method = clazz.getDeclaredMethod(methodName);
return ((Enum<?>)method.invoke(null)).name();
} catch (Exception ex) {
return null;
}
}
}

private static final String CONFIGS_KEY = "mixin.configs";
Expand Down

0 comments on commit 24365c4

Please sign in to comment.