diff --git a/resources/patches-deobfuscated.xml b/resources/patches-deobfuscated.xml index b6a5e94a..721acca7 100644 --- a/resources/patches-deobfuscated.xml +++ b/resources/patches-deobfuscated.xml @@ -1651,10 +1651,10 @@ appeng.me.tile.TileTerminal appeng.me.tile.TileStorageMonitor appeng.me.tile.TileStorageBus - appeng.me.tile.TileProgrammableInterface + appeng.me.tile.TileProgramableInterface appeng.me.tile.TileP2PTunnel appeng.me.tile.TileOutputCable - appeng.me.tile.TileLEvelEmitter + appeng.me.tile.TileLevelEmitter appeng.me.tile.TileIOPort appeng.me.tile.TileInterfaceBase appeng.me.tile.TileInputCable @@ -1665,7 +1665,7 @@ appeng.me.tile.TileAssemblerMB appeng.me.tile.TileAssembler "> - + ^method:TileEntity/updateEntity^ diff --git a/src/common/nallar/tickthreading/patcher/PatchManager.java b/src/common/nallar/tickthreading/patcher/PatchManager.java index ea53a0cf..d9a04f74 100644 --- a/src/common/nallar/tickthreading/patcher/PatchManager.java +++ b/src/common/nallar/tickthreading/patcher/PatchManager.java @@ -336,7 +336,9 @@ public Object run(Element patchElement, CtClass ctClass) { try { ctMethod = methodDescription.inClass(ctClass); } catch (Throwable t) { - Log.warning("", t); + if (!attributes.containsKey("allowMissing")) { + Log.warning("", t); + } continue; } run(ctMethod, attributes); diff --git a/src/common/nallar/tickthreading/patcher/Patches.java b/src/common/nallar/tickthreading/patcher/Patches.java index bd67b673..4a4010a2 100644 --- a/src/common/nallar/tickthreading/patcher/Patches.java +++ b/src/common/nallar/tickthreading/patcher/Patches.java @@ -32,6 +32,7 @@ import javassist.bytecode.CodeIterator; import javassist.bytecode.ConstPool; import javassist.bytecode.Descriptor; +import javassist.bytecode.DuplicateMemberException; import javassist.bytecode.MethodInfo; import javassist.bytecode.Mnemonic; import javassist.bytecode.Opcode; @@ -78,7 +79,13 @@ public void remove(CtMethod ctMethod) { requiredAttributes = "code" ) public void newMethod(CtClass ctClass, Map attributes) throws CannotCompileException { - ctClass.addMethod(CtNewMethod.make(attributes.get("code"), ctClass)); + try { + ctClass.addMethod(CtNewMethod.make(attributes.get("code"), ctClass)); + } catch (DuplicateMemberException e) { + if (!attributes.containsKey("ignoreDuplicate")) { + throw e; + } + } } @Patch (