mirror of
https://github.com/GTMEGA/EndlessIDs.git
synced 2026-11-12 06:07:31 +00:00
delete unused ASM
This commit is contained in:
7 files changed
-423
No files matched your search
@@ -7,22 +7,16 @@ import com.falsepattern.endlessids.asm.transformer.UndergroundBiomesBiomeUndergr
|
||||
import com.falsepattern.endlessids.asm.transformer.UndergroundBiomesOreUBifier;
|
||||
import com.falsepattern.endlessids.asm.transformer.CofhBlockHelper;
|
||||
import com.falsepattern.endlessids.asm.transformer.FmlRegistry;
|
||||
import com.falsepattern.endlessids.asm.transformer.VanillaWorld;
|
||||
import com.falsepattern.endlessids.asm.transformer.VanillaItemInWorldManager;
|
||||
import com.falsepattern.endlessids.asm.transformer.VanillaPlayerControllerMP;
|
||||
import com.falsepattern.endlessids.asm.transformer.VanillaRenderGlobal;
|
||||
import com.falsepattern.endlessids.asm.transformer.VanillaS26PacketMapChunkBulk;
|
||||
import com.falsepattern.endlessids.asm.transformer.VanillaS24PacketBlockActivation;
|
||||
import com.falsepattern.endlessids.asm.transformer.VanillaS22PacketMultiBlockChange;
|
||||
import com.falsepattern.endlessids.asm.transformer.VanillaS21PacketChunkData;
|
||||
import com.falsepattern.endlessids.asm.transformer.VanillaNetHandlerPlayClient;
|
||||
import com.falsepattern.endlessids.asm.transformer.VanillaDataWatcher;
|
||||
import com.falsepattern.endlessids.asm.transformer.VanillaExtendedBlockStorage;
|
||||
import com.falsepattern.endlessids.asm.transformer.VanillaChunk;
|
||||
import com.falsepattern.endlessids.asm.transformer.VanillaAnvilChunkLoader;
|
||||
import com.falsepattern.endlessids.asm.transformer.VanillaStatList;
|
||||
import com.falsepattern.endlessids.asm.transformer.VanillaBlockFire;
|
||||
import com.falsepattern.endlessids.asm.transformer.SelfHooks;
|
||||
import java.util.Map;
|
||||
|
||||
public enum ClassEdit
|
||||
|
||||
@@ -1,62 +0,0 @@
|
||||
package com.falsepattern.endlessids.asm.transformer;
|
||||
|
||||
import com.falsepattern.endlessids.asm.Name;
|
||||
import org.objectweb.asm.tree.InsnList;
|
||||
import org.objectweb.asm.tree.InsnNode;
|
||||
import org.objectweb.asm.tree.FieldInsnNode;
|
||||
import org.objectweb.asm.Type;
|
||||
import org.objectweb.asm.tree.AbstractInsnNode;
|
||||
import org.objectweb.asm.tree.VarInsnNode;
|
||||
import org.objectweb.asm.tree.MethodNode;
|
||||
import com.falsepattern.endlessids.asm.AsmUtil;
|
||||
import org.objectweb.asm.tree.ClassNode;
|
||||
import com.falsepattern.endlessids.asm.IClassNodeTransformer;
|
||||
|
||||
public class SelfHooks implements IClassNodeTransformer
|
||||
{
|
||||
public SelfHooks() {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transform(final ClassNode cn, final boolean obfuscated) {
|
||||
MethodNode method = AsmUtil.findMethod(cn, "get");
|
||||
this.transformGet(cn, method);
|
||||
method = AsmUtil.findMethod(cn, "setBlockRefCount");
|
||||
this.transformSetBlockRefCount(cn, method, obfuscated);
|
||||
method = AsmUtil.findMethod(cn, "setTickRefCount");
|
||||
this.transformSetTickRefCount(cn, method, obfuscated);
|
||||
}
|
||||
|
||||
private void transformGet(final ClassNode cn, final MethodNode method) {
|
||||
final InsnList code = method.instructions;
|
||||
code.clear();
|
||||
code.add((AbstractInsnNode)new VarInsnNode(25, 0));
|
||||
code.add((AbstractInsnNode)new FieldInsnNode(180, Type.getArgumentTypes(method.desc)[0].getInternalName(), "block16BArray", "[S"));
|
||||
code.add((AbstractInsnNode)new InsnNode(176));
|
||||
method.localVariables = null;
|
||||
method.maxStack = 1;
|
||||
}
|
||||
|
||||
private void transformSetBlockRefCount(final ClassNode cn, final MethodNode method, final boolean isObf) {
|
||||
final InsnList code = method.instructions;
|
||||
code.clear();
|
||||
code.add((AbstractInsnNode)new VarInsnNode(25, 0));
|
||||
code.add((AbstractInsnNode)new VarInsnNode(21, 1));
|
||||
code.add((AbstractInsnNode)Name.ebs_blockRefCount.virtualSet(isObf));
|
||||
code.add((AbstractInsnNode)new InsnNode(177));
|
||||
method.localVariables = null;
|
||||
method.maxStack = 2;
|
||||
}
|
||||
|
||||
private void transformSetTickRefCount(final ClassNode cn, final MethodNode method, final boolean isObf) {
|
||||
final InsnList code = method.instructions;
|
||||
code.clear();
|
||||
code.add((AbstractInsnNode)new VarInsnNode(25, 0));
|
||||
code.add((AbstractInsnNode)new VarInsnNode(21, 1));
|
||||
code.add((AbstractInsnNode)Name.ebs_tickRefCount.virtualSet(isObf));
|
||||
code.add((AbstractInsnNode)new InsnNode(177));
|
||||
method.localVariables = null;
|
||||
method.maxStack = 2;
|
||||
}
|
||||
}
|
||||
-85
@@ -1,85 +0,0 @@
|
||||
package com.falsepattern.endlessids.asm.transformer;
|
||||
|
||||
import org.objectweb.asm.tree.MethodInsnNode;
|
||||
import java.util.ListIterator;
|
||||
import org.objectweb.asm.tree.InsnList;
|
||||
import com.falsepattern.endlessids.asm.AsmTransformException;
|
||||
import org.objectweb.asm.tree.LdcInsnNode;
|
||||
import org.objectweb.asm.tree.AbstractInsnNode;
|
||||
import org.objectweb.asm.tree.MethodNode;
|
||||
import com.falsepattern.endlessids.asm.AsmUtil;
|
||||
import com.falsepattern.endlessids.asm.Name;
|
||||
import org.objectweb.asm.tree.ClassNode;
|
||||
import com.falsepattern.endlessids.asm.IClassNodeTransformer;
|
||||
|
||||
public class VanillaAnvilChunkLoader implements IClassNodeTransformer
|
||||
{
|
||||
public VanillaAnvilChunkLoader() {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transform(final ClassNode cn, final boolean obfuscated) {
|
||||
MethodNode method = AsmUtil.findMethod(cn, Name.acl_writeChunkToNBT);
|
||||
this.transformWriteChunkToNBT(cn, method, obfuscated);
|
||||
method = AsmUtil.findMethod(cn, Name.acl_readChunkFromNBT);
|
||||
this.transformReadChunkFromNBT(cn, method, obfuscated);
|
||||
}
|
||||
|
||||
private void transformWriteChunkToNBT(final ClassNode cn, final MethodNode method, final boolean obfuscated) {
|
||||
final InsnList code = method.instructions;
|
||||
final ListIterator<AbstractInsnNode> iterator = (ListIterator<AbstractInsnNode>)code.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
final AbstractInsnNode insn = (AbstractInsnNode)iterator.next();
|
||||
if (insn.getOpcode() == 18 && ((LdcInsnNode)insn).cst.equals("Blocks")) {
|
||||
iterator.remove();
|
||||
iterator.next();
|
||||
iterator.next();
|
||||
iterator.remove();
|
||||
iterator.next();
|
||||
iterator.remove();
|
||||
iterator.add((AbstractInsnNode)Name.hooks_writeChunkToNbt.staticInvocation(obfuscated));
|
||||
return;
|
||||
}
|
||||
}
|
||||
throw new AsmTransformException("can't find Blocks LDC");
|
||||
}
|
||||
|
||||
private void transformReadChunkFromNBT(final ClassNode cn, final MethodNode method, final boolean obfuscated) {
|
||||
final InsnList code = method.instructions;
|
||||
int part = 0;
|
||||
final ListIterator<AbstractInsnNode> iterator = (ListIterator<AbstractInsnNode>)code.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
final AbstractInsnNode insn = (AbstractInsnNode)iterator.next();
|
||||
if (part == 0) {
|
||||
if (insn.getOpcode() != 18 || !((LdcInsnNode)insn).cst.equals("Blocks")) {
|
||||
continue;
|
||||
}
|
||||
iterator.set((AbstractInsnNode)Name.hooks_readChunkFromNbt.staticInvocation(obfuscated));
|
||||
++part;
|
||||
}
|
||||
else if (part == 1) {
|
||||
iterator.remove();
|
||||
if (insn.getOpcode() != 182) {
|
||||
continue;
|
||||
}
|
||||
final MethodInsnNode node = (MethodInsnNode)insn;
|
||||
if (!Name.ebs_setBlockMSBArray.matches(node, obfuscated)) {
|
||||
continue;
|
||||
}
|
||||
++part;
|
||||
}
|
||||
else {
|
||||
if (insn.getType() == 14) {
|
||||
iterator.remove();
|
||||
++part;
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (part != 3) {
|
||||
throw new AsmTransformException("no match for part " + part);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,69 +0,0 @@
|
||||
package com.falsepattern.endlessids.asm.transformer;
|
||||
|
||||
import java.util.ListIterator;
|
||||
import org.objectweb.asm.tree.MethodNode;
|
||||
import com.falsepattern.endlessids.asm.AsmTransformException;
|
||||
import org.objectweb.asm.tree.JumpInsnNode;
|
||||
import org.objectweb.asm.tree.InsnNode;
|
||||
import org.objectweb.asm.tree.LdcInsnNode;
|
||||
import org.objectweb.asm.tree.VarInsnNode;
|
||||
import org.objectweb.asm.tree.MethodInsnNode;
|
||||
import org.objectweb.asm.tree.AbstractInsnNode;
|
||||
import com.falsepattern.endlessids.asm.AsmUtil;
|
||||
import com.falsepattern.endlessids.asm.Name;
|
||||
import org.objectweb.asm.tree.ClassNode;
|
||||
import com.falsepattern.endlessids.asm.IClassNodeTransformer;
|
||||
|
||||
public class VanillaChunk implements IClassNodeTransformer
|
||||
{
|
||||
public VanillaChunk() {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transform(final ClassNode cn, final boolean obfuscated) {
|
||||
final MethodNode method = AsmUtil.findMethod(cn, Name.chunk_fillChunk, true);
|
||||
if (method == null) {
|
||||
return;
|
||||
}
|
||||
method.localVariables = null;
|
||||
int part = 0;
|
||||
final ListIterator<AbstractInsnNode> it = (ListIterator<AbstractInsnNode>)method.instructions.iterator();
|
||||
while (it.hasNext()) {
|
||||
AbstractInsnNode insn = (AbstractInsnNode)it.next();
|
||||
if (part == 0) {
|
||||
if (insn.getOpcode() != 182 || !Name.ebs_getBlockLSBArray.matches((MethodInsnNode)insn, obfuscated)) {
|
||||
continue;
|
||||
}
|
||||
it.set((AbstractInsnNode)new VarInsnNode(25, 1));
|
||||
it.add((AbstractInsnNode)new VarInsnNode(21, 6));
|
||||
it.add((AbstractInsnNode)Name.hooks_setBlockData.staticInvocation(obfuscated));
|
||||
++part;
|
||||
}
|
||||
else if (part == 1) {
|
||||
if (insn.getOpcode() == 96) {
|
||||
it.set((AbstractInsnNode)new VarInsnNode(21, 6));
|
||||
it.add((AbstractInsnNode)new LdcInsnNode((Object)Integer.valueOf(8192)));
|
||||
it.add((AbstractInsnNode)new InsnNode(96));
|
||||
++part;
|
||||
}
|
||||
else {
|
||||
it.remove();
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (part == 2 && insn.getOpcode() == 182 && Name.ebs_getBlockMSBArray.matches((MethodInsnNode)insn, obfuscated)) {
|
||||
while (((AbstractInsnNode)it.previous()).getOpcode() != 3) {}
|
||||
while (((AbstractInsnNode)it.previous()).getType() != 8) {}
|
||||
do {
|
||||
insn = it.next();
|
||||
} while (insn.getOpcode() != 161 && insn.getOpcode() != 162);
|
||||
it.set((AbstractInsnNode)new JumpInsnNode((insn.getOpcode() == 161) ? 163 : 161, ((JumpInsnNode)insn).label));
|
||||
return;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
throw new AsmTransformException("no match for part " + part);
|
||||
}
|
||||
}
|
||||
-133
@@ -1,133 +0,0 @@
|
||||
package com.falsepattern.endlessids.asm.transformer;
|
||||
|
||||
import org.objectweb.asm.tree.MethodInsnNode;
|
||||
import com.falsepattern.endlessids.asm.AsmTransformException;
|
||||
import org.objectweb.asm.tree.InsnNode;
|
||||
import java.util.ListIterator;
|
||||
import org.objectweb.asm.tree.FieldInsnNode;
|
||||
import org.objectweb.asm.tree.VarInsnNode;
|
||||
import org.objectweb.asm.tree.InsnList;
|
||||
import org.objectweb.asm.tree.AbstractInsnNode;
|
||||
import org.objectweb.asm.tree.MethodNode;
|
||||
import com.falsepattern.endlessids.asm.AsmUtil;
|
||||
import com.falsepattern.endlessids.asm.Name;
|
||||
import org.objectweb.asm.tree.FieldNode;
|
||||
import org.objectweb.asm.tree.ClassNode;
|
||||
import com.falsepattern.endlessids.asm.IClassNodeTransformer;
|
||||
|
||||
public class VanillaExtendedBlockStorage implements IClassNodeTransformer
|
||||
{
|
||||
public VanillaExtendedBlockStorage() {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transform(final ClassNode cn, final boolean obfuscated) {
|
||||
cn.fields.add(new FieldNode(1, "block16BArray", "[S", (String)null, (Object)null));
|
||||
AsmUtil.makePublic(AsmUtil.findField(cn, Name.ebs_blockRefCount));
|
||||
AsmUtil.makePublic(AsmUtil.findField(cn, Name.ebs_tickRefCount));
|
||||
MethodNode method = AsmUtil.findMethod(cn, "<init>");
|
||||
this.transformConstructor(cn, method, obfuscated);
|
||||
method = AsmUtil.findMethod(cn, Name.ebs_getBlock);
|
||||
this.transformGetBlock(cn, method, obfuscated);
|
||||
method = AsmUtil.findMethod(cn, Name.ebs_setBlock);
|
||||
this.transformSetBlock(cn, method, obfuscated);
|
||||
method = AsmUtil.findMethod(cn, Name.ebs_getBlockMSBArray);
|
||||
this.transformGetBlockMSBArray(cn, method);
|
||||
method = AsmUtil.findMethod(cn, Name.ebs_removeInvalidBlocks);
|
||||
this.transformRemoveInvalidBlocks(cn, method);
|
||||
}
|
||||
|
||||
private void transformConstructor(final ClassNode cn, final MethodNode method, final boolean obfuscated) {
|
||||
final InsnList code = method.instructions;
|
||||
final ListIterator<AbstractInsnNode> iterator = (ListIterator<AbstractInsnNode>)code.iterator();
|
||||
if (iterator.hasNext()) {
|
||||
AbstractInsnNode insn = (AbstractInsnNode)iterator.next();
|
||||
insn = insn.getNext().getNext();
|
||||
final InsnList toInsert = new InsnList();
|
||||
toInsert.add((AbstractInsnNode)new VarInsnNode(25, 0));
|
||||
toInsert.add((AbstractInsnNode)Name.hooks_create16BArray.staticInvocation(obfuscated));
|
||||
toInsert.add((AbstractInsnNode)new FieldInsnNode(181, cn.name, "block16BArray", "[S"));
|
||||
method.instructions.insert(insn, toInsert);
|
||||
}
|
||||
method.maxStack = Math.max(method.maxStack, 2);
|
||||
}
|
||||
|
||||
private void transformGetBlock(final ClassNode cn, final MethodNode method, final boolean obfuscated) {
|
||||
final InsnList code = method.instructions;
|
||||
code.clear();
|
||||
code.add((AbstractInsnNode)new VarInsnNode(25, 0));
|
||||
code.add((AbstractInsnNode)new VarInsnNode(21, 1));
|
||||
code.add((AbstractInsnNode)new VarInsnNode(21, 2));
|
||||
code.add((AbstractInsnNode)new VarInsnNode(21, 3));
|
||||
code.add((AbstractInsnNode)Name.hooks_getBlockById.staticInvocation(obfuscated));
|
||||
code.add((AbstractInsnNode)new InsnNode(176));
|
||||
method.localVariables = null;
|
||||
method.maxStack = 4;
|
||||
}
|
||||
|
||||
private void transformSetBlock(final ClassNode cn, final MethodNode method, final boolean obfuscated) {
|
||||
final InsnList code = method.instructions;
|
||||
int part = 0;
|
||||
final ListIterator<AbstractInsnNode> iterator = (ListIterator<AbstractInsnNode>)code.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
final AbstractInsnNode insn = (AbstractInsnNode)iterator.next();
|
||||
if (part == 0) {
|
||||
iterator.remove();
|
||||
if (insn.getOpcode() != 184) {
|
||||
continue;
|
||||
}
|
||||
++part;
|
||||
iterator.add((AbstractInsnNode)new VarInsnNode(25, 0));
|
||||
iterator.add((AbstractInsnNode)new VarInsnNode(21, 1));
|
||||
iterator.add((AbstractInsnNode)new VarInsnNode(21, 2));
|
||||
iterator.add((AbstractInsnNode)new VarInsnNode(21, 3));
|
||||
iterator.add((AbstractInsnNode)Name.ebs_getBlock.virtualInvocation(obfuscated));
|
||||
}
|
||||
else if (part == 1) {
|
||||
if (insn.getOpcode() != 184) {
|
||||
continue;
|
||||
}
|
||||
iterator.set((AbstractInsnNode)new VarInsnNode(25, 6));
|
||||
iterator.add((AbstractInsnNode)Name.hooks_getIdFromBlockWithCheck.staticInvocation(obfuscated));
|
||||
++part;
|
||||
}
|
||||
else {
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
if (part != 2) {
|
||||
throw new AsmTransformException("no match for part " + part);
|
||||
}
|
||||
code.add((AbstractInsnNode)new VarInsnNode(54, 5));
|
||||
code.add((AbstractInsnNode)new VarInsnNode(25, 0));
|
||||
code.add((AbstractInsnNode)new VarInsnNode(21, 1));
|
||||
code.add((AbstractInsnNode)new VarInsnNode(21, 2));
|
||||
code.add((AbstractInsnNode)new VarInsnNode(21, 3));
|
||||
code.add((AbstractInsnNode)new VarInsnNode(21, 5));
|
||||
code.add((AbstractInsnNode)Name.hooks_setBlockId.staticInvocation(obfuscated));
|
||||
code.add((AbstractInsnNode)new InsnNode(177));
|
||||
method.localVariables = null;
|
||||
--method.maxLocals;
|
||||
method.maxStack = Math.max(method.maxStack, 5);
|
||||
}
|
||||
|
||||
private void transformGetBlockMSBArray(final ClassNode cn, final MethodNode method) {
|
||||
final InsnList code = method.instructions;
|
||||
code.clear();
|
||||
code.add((AbstractInsnNode)new InsnNode(1));
|
||||
code.add((AbstractInsnNode)new InsnNode(176));
|
||||
method.localVariables = null;
|
||||
method.maxStack = 1;
|
||||
}
|
||||
|
||||
private void transformRemoveInvalidBlocks(final ClassNode cn, final MethodNode method) {
|
||||
final InsnList code = method.instructions;
|
||||
code.clear();
|
||||
code.add((AbstractInsnNode)new VarInsnNode(25, 0));
|
||||
code.add((AbstractInsnNode)new MethodInsnNode(184, "com/falsepattern/endlessids/Hooks", "removeInvalidBlocksHook", "(L" + cn.name + ";)V", false));
|
||||
code.add((AbstractInsnNode)new InsnNode(177));
|
||||
method.localVariables = null;
|
||||
method.maxStack = 1;
|
||||
}
|
||||
}
|
||||
-48
@@ -1,48 +0,0 @@
|
||||
package com.falsepattern.endlessids.asm.transformer;
|
||||
|
||||
import java.util.ListIterator;
|
||||
import org.objectweb.asm.tree.InsnList;
|
||||
import com.falsepattern.endlessids.asm.AsmTransformException;
|
||||
import org.objectweb.asm.tree.MethodInsnNode;
|
||||
import org.objectweb.asm.tree.AbstractInsnNode;
|
||||
import org.objectweb.asm.tree.MethodNode;
|
||||
import com.falsepattern.endlessids.asm.Name;
|
||||
import com.falsepattern.endlessids.asm.AsmUtil;
|
||||
import org.objectweb.asm.tree.ClassNode;
|
||||
import com.falsepattern.endlessids.asm.IClassNodeTransformer;
|
||||
|
||||
public class VanillaS21PacketChunkData implements IClassNodeTransformer
|
||||
{
|
||||
public VanillaS21PacketChunkData() {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transform(final ClassNode cn, final boolean obfuscated) {
|
||||
MethodNode method = AsmUtil.findMethod(cn, "<clinit>");
|
||||
AsmUtil.transformInlinedSizeMethod(cn, method, 196864, 229632, false);
|
||||
method = AsmUtil.findMethod(cn, Name.s21_undefined1);
|
||||
AsmUtil.transformInlinedSizeMethod(cn, method, 196864, 229632, false);
|
||||
method = AsmUtil.findMethod(cn, Name.packet_readPacketData);
|
||||
AsmUtil.transformInlinedSizeMethod(cn, method, 12288, 14336, false);
|
||||
method = AsmUtil.findMethod(cn, Name.s21_undefined2);
|
||||
this.transformCreateData(cn, method, obfuscated);
|
||||
}
|
||||
|
||||
private void transformCreateData(final ClassNode cn, final MethodNode method, final boolean obfuscated) {
|
||||
final InsnList code = method.instructions;
|
||||
final ListIterator<AbstractInsnNode> iterator = (ListIterator<AbstractInsnNode>)code.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
final AbstractInsnNode insn = (AbstractInsnNode)iterator.next();
|
||||
if (insn.getOpcode() == 182) {
|
||||
final MethodInsnNode node = (MethodInsnNode)insn;
|
||||
if (Name.ebs_getBlockLSBArray.matches(node, obfuscated)) {
|
||||
iterator.set((AbstractInsnNode)Name.hooks_getBlockData.staticInvocation(obfuscated));
|
||||
return;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
throw new AsmTransformException("can't find getBlockLSBArray INVOKEVIRTUAL");
|
||||
}
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
package com.falsepattern.endlessids.asm.transformer;
|
||||
|
||||
import org.objectweb.asm.tree.MethodNode;
|
||||
import com.falsepattern.endlessids.asm.AsmUtil;
|
||||
import com.falsepattern.endlessids.asm.Name;
|
||||
import org.objectweb.asm.tree.ClassNode;
|
||||
import com.falsepattern.endlessids.asm.IClassNodeTransformer;
|
||||
|
||||
public class VanillaWorld implements IClassNodeTransformer
|
||||
{
|
||||
public VanillaWorld() {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transform(final ClassNode cn, final boolean obfuscated) {
|
||||
final MethodNode method = AsmUtil.findMethod(cn, Name.world_breakBlock);
|
||||
AsmUtil.transformInlinedSizeMethod(cn, method, 12, 16);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user