diff --git a/codebase b/codebase deleted file mode 100644 index ec9ec98cc5..0000000000 --- a/codebase +++ /dev/null @@ -1 +0,0 @@ -http://oldschool17.runescape.com/ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 3cd8500c13..ac0b842f19 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.2-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/injector/src/main/java/com/openosrs/injector/injectors/raw/RuneliteMenuEntry.java b/injector/src/main/java/com/openosrs/injector/injectors/raw/RuneliteMenuEntry.java index 38473d0e62..9a9af81c2c 100644 --- a/injector/src/main/java/com/openosrs/injector/injectors/raw/RuneliteMenuEntry.java +++ b/injector/src/main/java/com/openosrs/injector/injectors/raw/RuneliteMenuEntry.java @@ -38,13 +38,13 @@ public class RuneliteMenuEntry extends AbstractInjector public void inject() { - addInvoke(); - addInvokeBare(); + addInvoke("newRuneliteMenuEntry", true); + addInvoke("newBareRuneliteMenuEntry", false); addSwap(InjectUtil.findMethod(inject, "incrementMenuEntries")); addSwap(InjectUtil.findMethod(inject, "decrementMenuEntries")); } - private void addInvoke() + private void addInvoke(String methodName, boolean iload) { ClassFile runeliteMenuEntryVanilla = inject.vanilla.findClass(RUNELITE_MENU_ENTRY); @@ -53,8 +53,7 @@ public class RuneliteMenuEntry extends AbstractInjector .findClass("Client") ); - Method copy = clientVanilla.findMethod("newRuneliteMenuEntry"); - copy.setPublic(); + Method copy = clientVanilla.findMethod(methodName); final Code code = new Code(copy); code.setMaxStack(3); @@ -65,33 +64,15 @@ public class RuneliteMenuEntry extends AbstractInjector ins.add(new New(instructions, runeliteMenuEntryVanilla.getPoolClass())); ins.add(new Dup(instructions)); - ins.add(new ILoad(instructions, 0)); - ins.add(new InvokeSpecial(instructions, new net.runelite.asm.pool.Method(runeliteMenuEntryVanilla.getPoolClass(), "", new Signature("(I)V")))); - ins.add(new Return(instructions, InstructionType.ARETURN)); - } - - private void addInvokeBare() - { - ClassFile runeliteMenuEntryVanilla = inject.vanilla.findClass(RUNELITE_MENU_ENTRY); - - final ClassFile clientVanilla = inject.toVanilla( - inject.getDeobfuscated() - .findClass("Client") - ); - - Method copy = clientVanilla.findMethod("newBareRuneliteMenuEntry"); - copy.setPublic(); - - final Code code = new Code(copy); - code.setMaxStack(3); - copy.setCode(code); - - final Instructions instructions = code.getInstructions(); - final List ins = instructions.getInstructions(); - - ins.add(new New(instructions, runeliteMenuEntryVanilla.getPoolClass())); - ins.add(new Dup(instructions)); - ins.add(new InvokeSpecial(instructions, new net.runelite.asm.pool.Method(runeliteMenuEntryVanilla.getPoolClass(), "", new Signature("()V")))); + if (iload) + { + ins.add(new ILoad(instructions, 0)); + ins.add(new InvokeSpecial(instructions, new net.runelite.asm.pool.Method(runeliteMenuEntryVanilla.getPoolClass(), "", new Signature("(I)V")))); + } + else + { + ins.add(new InvokeSpecial(instructions, new net.runelite.asm.pool.Method(runeliteMenuEntryVanilla.getPoolClass(), "", new Signature("()V")))); + } ins.add(new Return(instructions, InstructionType.ARETURN)); } diff --git a/runelite-api/src/main/java/net/runelite/api/Client.java b/runelite-api/src/main/java/net/runelite/api/Client.java index 4a3e09578a..8d2f72637b 100644 --- a/runelite-api/src/main/java/net/runelite/api/Client.java +++ b/runelite-api/src/main/java/net/runelite/api/Client.java @@ -647,7 +647,7 @@ public interface Client extends GameEngine * Create a new menu entry * @return the newly created menu entry */ - MenuEntry createMenuEntry(String option, String target, int identifier, int opcode, int param1, int param2); + MenuEntry createMenuEntry(String option, String target, int identifier, int opcode, int param1, int param2, boolean forceLeftClick); /** * Gets an array of currently open right-click menu entries that can be diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java index f0d202f318..211c1c4fe1 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java @@ -168,6 +168,7 @@ import net.runelite.rs.api.RSWidget; import net.runelite.rs.api.RSWorld; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import sun.reflect.generics.reflectiveObjects.NotImplementedException; @Mixin(RSClient.class) public abstract class RSClientMixin implements RSClient @@ -799,18 +800,18 @@ public abstract class RSClientMixin implements RSClient @Inject public static RSRuneLiteMenuEntry newBareRuneliteMenuEntry() { - return null; + throw new NotImplementedException(); } @Inject public static RSRuneLiteMenuEntry newRuneliteMenuEntry(int idx) { - return null; + throw new NotImplementedException(); } @Inject @Override - public MenuEntry createMenuEntry(String option, String target, int identifier, int opcode, int param1, int param2) + public MenuEntry createMenuEntry(String option, String target, int identifier, int opcode, int param1, int param2, boolean forceLeftClick) { RSRuneLiteMenuEntry menuEntry = newBareRuneliteMenuEntry(); @@ -821,6 +822,7 @@ public abstract class RSClientMixin implements RSClient menuEntry.setParam0(param1); menuEntry.setParam1(param2); menuEntry.setConsumer(null); + menuEntry.setForceLeftClick(forceLeftClick); return menuEntry; } diff --git a/runescape-client/src/main/java/RuneLiteMenuEntry.java b/runescape-client/src/main/java/RuneLiteMenuEntry.java index 9f73ada9cd..30681ec768 100644 --- a/runescape-client/src/main/java/RuneLiteMenuEntry.java +++ b/runescape-client/src/main/java/RuneLiteMenuEntry.java @@ -16,16 +16,6 @@ public class RuneLiteMenuEntry implements MenuEntry this.idx = idx; } - public void test(int idx) - { - new RuneLiteMenuEntry(idx); - } - - public void test2() - { - new RuneLiteMenuEntry(); - } - public Consumer getConsumer() { return consumer;