package net.mcforkage.compat;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.Opcodes;
import org.objectweb.asm.tree.ClassNode;
import org.objectweb.asm.tree.InsnNode;
import org.objectweb.asm.tree.MethodNode;
import net.minecraft.launchwrapper.IClassTransformer;
public class GregtechFluidStackTransformer implements IClassTransformer {
@Override
public byte[] transform(String arg0, String arg1, byte[] arg2) {
if(arg2 == null || !arg0.equals("gregtech.api.objects.GT_FluidStack"))
return arg2;
ClassNode cn = new ClassNode();
new ClassReader(arg2).accept(cn, 0);
for(MethodNode mn : cn.methods) {
if(mn.name.equals("fixFluidIDForFucksSake")) {
mn.instructions.clear();
mn.instructions.add(new InsnNode(Opcodes.RETURN));
if(mn.localVariables != null) mn.localVariables.clear();
if(mn.tryCatchBlocks != null) mn.tryCatchBlocks.clear();
}
}
ClassWriter cw = new ClassWriter(0);
cn.accept(cw);
return cw.toByteArray();
}
}