From f5ce1084d028c3fcccdcd5e1fce6864fdd98de98 Mon Sep 17 00:00:00 2001 From: Kamiel Date: Tue, 1 May 2018 20:25:59 +0200 Subject: [PATCH 1/5] Expose Actor animation and actionFrame to API --- runelite-api/src/main/java/net/runelite/api/Actor.java | 7 +++++++ .../src/main/java/net/runelite/rs/api/RSActor.java | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/runelite-api/src/main/java/net/runelite/api/Actor.java b/runelite-api/src/main/java/net/runelite/api/Actor.java index 097908311d..7e3af5a4b3 100644 --- a/runelite-api/src/main/java/net/runelite/api/Actor.java +++ b/runelite-api/src/main/java/net/runelite/api/Actor.java @@ -27,6 +27,7 @@ package net.runelite.api; import java.awt.Graphics2D; import java.awt.Polygon; import java.awt.image.BufferedImage; +import net.runelite.api.annotations.VisibleForDevtools; import net.runelite.api.coords.LocalPoint; import net.runelite.api.coords.WorldArea; import net.runelite.api.coords.WorldPoint; @@ -56,6 +57,12 @@ public interface Actor extends Renderable int getAnimation(); + @VisibleForDevtools + void setAnimation(int animation); + + @VisibleForDevtools + void setActionFrame(int actionFrame); + int getGraphic(); int getModelHeight(); diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSActor.java b/runescape-api/src/main/java/net/runelite/rs/api/RSActor.java index 45ba0ecb59..f69d134ede 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSActor.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSActor.java @@ -51,6 +51,10 @@ public interface RSActor extends RSRenderable, Actor @Override int getAnimation(); + @Import("animation") + @Override + void setAnimation(int animation); + @Import("graphic") @Override int getGraphic(); @@ -70,6 +74,7 @@ public interface RSActor extends RSRenderable, Actor int getActionFrame(); @Import("actionFrame") + @Override void setActionFrame(int frame); @Import("actionFrameCycle") From acfba42295cd2a936dbf6f39aa44d782282c8ce9 Mon Sep 17 00:00:00 2001 From: Kamiel Date: Tue, 1 May 2018 20:27:07 +0200 Subject: [PATCH 2/5] Add anim command to developer tools It is required to set the action frame to 0 else the animation will not play from the beginning --- .../runelite/client/plugins/devtools/DevToolsPlugin.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java index daca9042a7..31d205ed31 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java @@ -38,6 +38,7 @@ import lombok.extern.slf4j.Slf4j; import net.runelite.api.ChatMessageType; import net.runelite.api.Client; import net.runelite.api.Experience; +import net.runelite.api.Player; import net.runelite.api.Skill; import net.runelite.api.events.CommandExecuted; import net.runelite.api.events.VarbitChanged; @@ -178,6 +179,14 @@ public class DevToolsPlugin extends Plugin client.setChangedSkillsCount(count); break; } + case "anim": + { + int id = Integer.parseInt(args[0]); + Player localPlayer = client.getLocalPlayer(); + localPlayer.setAnimation(id); + localPlayer.setActionFrame(0); + break; + } } } From 084f8dcb649187b7e722dfc0472e9bdc437afc5f Mon Sep 17 00:00:00 2001 From: Kamiel Date: Tue, 1 May 2018 20:36:22 +0200 Subject: [PATCH 3/5] Expose Actor graphic and spotAnimFrame to API --- runelite-api/src/main/java/net/runelite/api/Actor.java | 4 ++++ runescape-api/src/main/java/net/runelite/rs/api/RSActor.java | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/runelite-api/src/main/java/net/runelite/api/Actor.java b/runelite-api/src/main/java/net/runelite/api/Actor.java index 7e3af5a4b3..56603a544f 100644 --- a/runelite-api/src/main/java/net/runelite/api/Actor.java +++ b/runelite-api/src/main/java/net/runelite/api/Actor.java @@ -65,6 +65,10 @@ public interface Actor extends Renderable int getGraphic(); + void setGraphic(int graphic); + + void setSpotAnimFrame(int spotAnimFrame); + int getModelHeight(); Polygon getCanvasTilePoly(); diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSActor.java b/runescape-api/src/main/java/net/runelite/rs/api/RSActor.java index f69d134ede..d159fb1462 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSActor.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSActor.java @@ -59,6 +59,10 @@ public interface RSActor extends RSRenderable, Actor @Override int getGraphic(); + @Import("graphic") + @Override + void setGraphic(int graphic); + @Import("combatInfoList") RSCombatInfoList getCombatInfoList(); @@ -93,6 +97,7 @@ public interface RSActor extends RSRenderable, Actor int getSpotAnimFrame(); @Import("spotAnimFrame") + @Override void setSpotAnimFrame(int frame); @Import("spotAnimFrameCycle") From e98304b536d6e6ffb7516338966bc740fed489b7 Mon Sep 17 00:00:00 2001 From: Kamiel Date: Tue, 1 May 2018 20:37:06 +0200 Subject: [PATCH 4/5] Add gfx command to developer tools Setting the spotAnimFrame to 0 is required to play the graphic from the start --- runelite-api/src/main/java/net/runelite/api/Actor.java | 2 ++ .../runelite/client/plugins/devtools/DevToolsPlugin.java | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/runelite-api/src/main/java/net/runelite/api/Actor.java b/runelite-api/src/main/java/net/runelite/api/Actor.java index 56603a544f..394395dbc7 100644 --- a/runelite-api/src/main/java/net/runelite/api/Actor.java +++ b/runelite-api/src/main/java/net/runelite/api/Actor.java @@ -65,8 +65,10 @@ public interface Actor extends Renderable int getGraphic(); + @VisibleForDevtools void setGraphic(int graphic); + @VisibleForDevtools void setSpotAnimFrame(int spotAnimFrame); int getModelHeight(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java index 31d205ed31..9c4ba94559 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java @@ -187,6 +187,14 @@ public class DevToolsPlugin extends Plugin localPlayer.setActionFrame(0); break; } + case "gfx": + { + int id = Integer.parseInt(args[0]); + Player localPlayer = client.getLocalPlayer(); + localPlayer.setGraphic(id); + localPlayer.setSpotAnimFrame(0); + break; + } } } From a7cbda46d8fbd0a9b863d4851059ead93f5d12fe Mon Sep 17 00:00:00 2001 From: Kamiel Date: Tue, 1 May 2018 23:57:39 +0200 Subject: [PATCH 5/5] Add logger command to change the logger level --- .../plugins/devtools/DevToolsPlugin.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java index 9c4ba94559..3784598954 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java @@ -24,6 +24,8 @@ */ package net.runelite.client.plugins.devtools; +import ch.qos.logback.classic.Level; +import ch.qos.logback.classic.Logger; import com.google.common.eventbus.EventBus; import com.google.common.eventbus.Subscribe; import com.google.inject.Provides; @@ -50,6 +52,7 @@ import net.runelite.client.ui.FontManager; import net.runelite.client.ui.NavigationButton; import net.runelite.client.ui.PluginToolbar; import net.runelite.client.ui.overlay.Overlay; +import org.slf4j.LoggerFactory; @PluginDescriptor( name = "Developer Tools", @@ -145,6 +148,26 @@ public class DevToolsPlugin extends Plugin switch (commandExecuted.getCommand()) { + case "logger": + { + final Logger logger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME); + String message; + Level currentLoggerLevel = logger.getLevel(); + + if (args.length < 1) + { + message = "Logger level is currently set to " + currentLoggerLevel; + } + else + { + Level newLoggerLevel = Level.toLevel(args[0], currentLoggerLevel); + logger.setLevel(newLoggerLevel); + message = "Logger level has been set to " + newLoggerLevel; + } + + client.addChatMessage(ChatMessageType.SERVER, "", message, null); + break; + } case "getvar": { int varbit = Integer.parseInt(args[0]);