Add JavaScriptCallback to allow java callbacks instead of cs2

This commit is contained in:
Max Weber
2018-10-08 01:34:12 -06:00
parent e98f1657b3
commit 33dec14a38
4 changed files with 82 additions and 1 deletions

View File

@@ -33,6 +33,7 @@ import net.runelite.api.mixins.Inject;
import net.runelite.api.mixins.Mixin;
import net.runelite.api.mixins.Replace;
import net.runelite.api.mixins.Shadow;
import net.runelite.api.widgets.JavaScriptCallback;
import net.runelite.rs.api.RSClient;
import net.runelite.rs.api.RSScript;
import net.runelite.rs.api.RSScriptEvent;
@@ -115,6 +116,13 @@ public abstract class ScriptVMMixin implements RSClient
@Replace("runScript")
static void rl$runScript(RSScriptEvent event, int maxExecutionTime)
{
Object[] arguments = event.getArguments();
if (arguments != null && arguments.length > 0 && arguments[0] instanceof JavaScriptCallback)
{
((JavaScriptCallback) arguments[0]).run(event);
return;
}
try
{
rs$runScript(event, maxExecutionTime);