LiteLoaderTransformer.java
1.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package com.mumfrey.liteloader.launch;
import java.io.File;
import java.lang.reflect.Method;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import net.minecraft.launchwrapper.IClassTransformer;
import net.minecraft.launchwrapper.LaunchClassLoader;
public class LiteLoaderTransformer implements IClassTransformer
{
private static final String classMappingRenderLightningBolt = "net.minecraft.src.RenderLightningBolt";
// TODO Obfuscation 1.6.3
private static final String classMappingRenderLightningBoltObf = "bha";
private static Logger logger = Logger.getLogger("liteloader");
public static LaunchClassLoader launchClassLoader;
public static List<String> modsToLoad;
public static File gameDirectory;
public static File assetsDirectory;
public static String profile;
@Override
public byte[] transform(String name, String transformedName, byte[] basicClass)
{
if (classMappingRenderLightningBolt.equals(name) || classMappingRenderLightningBoltObf.equals(name))
{
logger.info("Beginning LiteLoader Init...");
try
{
Class<?> loaderClass = Class.forName("com.mumfrey.liteloader.core.LiteLoader", false, LiteLoaderTransformer.launchClassLoader);
Method mInit = loaderClass.getDeclaredMethod("init", File.class, File.class, String.class, List.class, LaunchClassLoader.class);
mInit.setAccessible(true);
mInit.invoke(null, LiteLoaderTransformer.gameDirectory, LiteLoaderTransformer.assetsDirectory, LiteLoaderTransformer.profile, LiteLoaderTransformer.modsToLoad, LiteLoaderTransformer.launchClassLoader);
}
catch (Throwable th)
{
logger.log(Level.SEVERE, String.format("Error initialising LiteLoader: %s", th.getMessage()), th);
}
}
return basicClass;
}
}