package openblocks.asm; import net.minecraft.launchwrapper.IClassTransformer; import openmods.Log; import openmods.asm.VisitorHelper; import openmods.asm.VisitorHelper.TransformProvider; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.ClassWriter; public class OpenBlocksClassTransformer implements IClassTransformer { @Override public byte[] transform(final String name, String transformedName, byte[] bytes) { if (bytes == null) return bytes; if (transformedName.equals("net.minecraft.entity.player.EntityPlayer")) return VisitorHelper.apply(bytes, name, new TransformProvider(ClassWriter.COMPUTE_FRAMES) { @Override public ClassVisitor createVisitor(String name, ClassVisitor cv) { Log.debug("Trying to patch EntityPlayer.isInBed (class: %s)", name); return new EntityPlayerVisitor(name, cv); } }); return bytes; } }