package de.take_weiland.mods.commons.internal.transformers;
import de.take_weiland.mods.commons.asm.MCPNames;
import de.take_weiland.mods.commons.internal.ASMHooks;
import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.Type;
import static org.objectweb.asm.Opcodes.ALOAD;
import static org.objectweb.asm.Opcodes.ASM4;
import static org.objectweb.asm.Opcodes.INVOKESTATIC;
import static org.objectweb.asm.Type.VOID_TYPE;
/**
* @author diesieben07
*/
public final class InitGuiHook extends MethodVisitor {
public InitGuiHook(MethodVisitor mv) {
super(ASM4, mv);
}
@Override
public void visitMethodInsn(int opcode, String owner, String name, String desc) {
super.visitMethodInsn(opcode, owner, name, desc);
if (name.equals(MCPNames.method(MCPNames.M_INIT_GUI))) {
super.visitVarInsn(ALOAD, 0);
String asmHooks = Type.getInternalName(ASMHooks.class);
Type guiScreenType = Type.getObjectType("net/minecraft/client/gui/GuiScreen");
super.visitMethodInsn(INVOKESTATIC, asmHooks, ASMHooks.ON_GUI_INIT, Type.getMethodDescriptor(VOID_TYPE, guiScreenType));
}
}
}