Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package fr.mcnanotech.nhg.asm;
- import java.io.InputStream;
- import java.util.zip.ZipEntry;
- import java.util.zip.ZipFile;
- public class NHGClassTransformer implements net.minecraft.launchwrapper.IClassTransformer
- {
- @Override
- public byte[] transform(String name, String transformedName, byte[] byteCode)
- {
- if(name.equals("vo") || name.equals("net.minecraft.entity.ai.EntityAINearestAttackableTarget"))
- {
- System.out.println("********* INSIDE AI ABOUT TO PATCH: " + name);
- byteCode = patchClassInJar("net.minecraft.entity.ai.EntityAINearestAttackableTarget", byteCode);
- }
- else if(name.equals("un") || name.equals("net.minecraft.entity.ai.EntityAIWatchClosest"))
- {
- System.out.println("********* INSIDE AI ABOUT TO PATCH: " + name);
- byteCode = patchClassInJar("net.minecraft.entity.ai.EntityAIWatchClosest", byteCode);
- }
- else if(name.equals("yn") || name.equals("net.minecraft.entity.monster.EntitySpider"))
- {
- System.out.println("********* INSIDE MOB ABOUT TO PATCH: " + name);
- byteCode = patchClassInJar("net.minecraft.entity.monster.EntitySpider", byteCode);
- }
- else if(name.equals("yk") || name.equals("net.minecraft.entity.monster.EntitySilverfish"))
- {
- System.out.println("********* INSIDE MOB ABOUT TO PATCH: " + name);
- byteCode = patchClassInJar("net.minecraft.entity.monster.EntitySilverfish", byteCode);
- }
- else if(name.equals("ym") || name.equals("net.minecraft.entity.monster.EntitySlime"))
- {
- System.out.println("********* INSIDE MOB ABOUT TO PATCH: " + name);
- byteCode = patchClassInJar("net.minecraft.entity.monster.EntitySlime", byteCode);
- }
- else if(name.equals("wv") || name.equals("net.minecraft.entity.passive.EntityWolf"))
- {
- System.out.println("********* INSIDE MOB ABOUT TO PATCH: " + name);
- byteCode = patchClassInJar("net.minecraft.entity.passive.EntityWolf", byteCode);
- }
- else if(name.equals("bjk") || name.equals("net.minecraft.client.entity.EntityClientPlayerMP"))
- {
- System.out.println("********* INSIDE Player ABOUT TO PATCH: " + name);
- byteCode = patchClassInJar("net.minecraft.client.entity.EntityClientPlayerMP", byteCode);
- }
- else if(name.equals("blo") || name.equals("net.minecraft.client.renderer.WorldRenderer"))
- {
- System.out.println("********* INSIDE WORLDRENDERER ABOUT TO PATCH: " + name);
- byteCode = patchClassInJar("net.minecraft.client.renderer.WorldRenderer", byteCode);
- }
- else if(name.equals("bhm") || name.equals("net.minecraft.client.model.ModelBiped"))
- {
- System.out.println("********* INSIDE MODEL ABOUT TO PATCH: " + name);
- byteCode = patchClassInJar("net.minecraft.client.model.ModelBiped", byteCode);
- }
- return byteCode;
- }
- private byte[] patchClassInJar(String name, byte[] byteCode)
- {
- try
- {
- ZipFile zip = new ZipFile(NHGLoadingPlugin.location);
- ZipEntry entry = zip.getEntry(name.replace('.', '/') + ".class");
- if(entry == null)
- {
- System.err.println(name + " not found in " + NHGLoadingPlugin.location.getName());
- }
- else
- {
- InputStream zin = zip.getInputStream(entry);
- byteCode = new byte[(int)entry.getSize()];
- zin.read(byteCode);
- zin.close();
- System.out.println("[" + "NanotechHungerGames" + "]: " + "Class " + name + " patched!");
- }
- zip.close();
- }
- catch(Exception e)
- {
- throw new RuntimeException("Error overriding " + name + " from " + NHGLoadingPlugin.location.getName(), e);
- }
- return byteCode;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement