private MethodNode generateIsBlockingWithShield() { MethodNode mv = new MethodNode(ACC_PUBLIC, "isBlockingWithShield", "()Z", null, null); mv.visitCode(); Label l0 = new Label(); mv.visitLabel(l0); mv.visitVarInsn(ALOAD, 0); mv.visitMethodInsn(INVOKESTATIC, UTILITY_CLASS, "canBlockWithShield", "(L" + entityPlayerClassName + ";)Z"); Label l1 = new Label(); mv.visitJumpInsn(IFEQ, l1); mv.visitVarInsn(ALOAD, 0); mv.visitFieldInsn(GETFIELD, entityPlayerClassName, "isShielding", "Z"); mv.visitJumpInsn(IFEQ, l1); mv.visitInsn(ICONST_1); Label l2 = new Label(); mv.visitJumpInsn(GOTO, l2); mv.visitLabel(l1); mv.visitFrame(F_SAME, 0, null, 0, null); mv.visitInsn(ICONST_0); mv.visitLabel(l2); mv.visitFrame(F_SAME1, 0, null, 1, new Object[]{INTEGER}); mv.visitInsn(IRETURN); Label l3 = new Label(); mv.visitLabel(l3); mv.visitLocalVariable("this", "L" + entityPlayerClassName + ";", null, l0, l3, 0); mv.visitMaxs(1, 1); mv.visitEnd(); return mv; }
mv.visitJumpInsn(GOTO, l2); mv.visitLabel(l1); mv.visitFrame(F_SAME1, 0, null, 1, new Object[]{entityPlayerClassName}); mv.visitInsn(ICONST_0); mv.visitLabel(l2); mv.visitFrame(F_FULL, 2, new Object[]{entityPlayerClassName, INTEGER}, 2, new Object[]{entityPlayerClassName, INTEGER}); mv.visitFieldInsn(PUTFIELD, entityPlayerClassName, "isShielding", "Z"); Label l3 = new Label();
mv.visitMethodInsn(INVOKEVIRTUAL, entityPlayerClassName, playEquipSoundMethodName, "(L" + itemStackClassName + ";)V"); mv.visitLabel(l1); mv.visitFrame(F_SAME, 0, null, 0, null); mv.visitInsn(RETURN); Label l3 = new Label();
Label l10 = new Label(); mv.visitLabel(l10); mv.visitFrame(F_APPEND, 3, new Object[]{"[C", "[C", INTEGER}, 0, null); mv.visitVarInsn(ALOAD, 8); mv.visitVarInsn(ILOAD, 9); mv.visitIincInsn(9, 1); mv.visitLabel(l9); mv.visitFrame(F_SAME, 0, null, 0, null); mv.visitVarInsn(ILOAD, 9); mv.visitVarInsn(ALOAD, 7); Label l17 = new Label(); mv.visitLabel(l17); mv.visitFrame(F_FULL, 12, new Object[]{"java/lang/Object", "java/lang/Object", "java/lang/Object", "java/lang/Object", "java/lang/Object", "java/lang/Object", "java/lang/Object", "[C", "[C", "[C", "[C", INTEGER}, 0, new Object[]{}); mv.visitIincInsn(11, 1); mv.visitLabel(l16); mv.visitFrame(F_SAME, 0, null, 0, null); mv.visitVarInsn(ILOAD, 11); mv.visitVarInsn(ALOAD, 9); Label l24 = new Label(); mv.visitLabel(l24); mv.visitFrame(F_FULL, 14, new Object[]{"java/lang/Object", "java/lang/Object", "java/lang/Object", "java/lang/Object", "java/lang/Object", "java/lang/Object", "java/lang/Object", "[C", "[C", "[C", "[C", "[C", "[C", INTEGER}, 0, new Object[]{});
Label l7 = new Label(); mv.visitLabel(l7); mv.visitFrame(F_APPEND, 3, new Object[]{"[C", "[C", INTEGER}, 0, null); mv.visitVarInsn(ALOAD, 8); mv.visitVarInsn(ILOAD, 9); mv.visitIincInsn(9, 1); mv.visitLabel(l6); mv.visitFrame(F_SAME, 0, null, 0, null); mv.visitVarInsn(ILOAD, 9); mv.visitVarInsn(ALOAD, 7); Label l14 = new Label(); mv.visitLabel(l14); mv.visitFrame(F_FULL, 12, new Object[]{"java/lang/Object", "java/lang/Object", "java/lang/Object", "java/lang/Object", "java/lang/Object", "java/lang/Object", "java/lang/Object", "[C", "[C", "[C", "[C", INTEGER}, 0, new Object[]{}); mv.visitIincInsn(11, 1); mv.visitLabel(l13); mv.visitFrame(F_SAME, 0, null, 0, null); mv.visitVarInsn(ILOAD, 11); mv.visitVarInsn(ALOAD, 9); Label l21 = new Label(); mv.visitLabel(l21); mv.visitFrame(F_FULL, 14, new Object[]{"java/lang/Object", "java/lang/Object", "java/lang/Object", "java/lang/Object", "java/lang/Object", "java/lang/Object", "java/lang/Object", "[C", "[C", "[C", "[C", "[C", "[C", INTEGER}, 0, new Object[]{});