From 093590255c8393b7750924c530f75e3974d1a36a Mon Sep 17 00:00:00 2001 From: sansfromf0rtnite Date: Mon, 24 Jun 2019 23:55:30 -0700 Subject: [PATCH] Use injection instead of reflection for instance reloader. --- .../src/main/java/net/runelite/api/Client.java | 7 +++++++ .../client/plugins/raids/RaidsPanel.java | 16 +--------------- .../main/java/net/runelite/rs/api/RSClient.java | 3 +++ 3 files changed, 11 insertions(+), 15 deletions(-) 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 6d4e38235b..388d7e7b1c 100644 --- a/runelite-api/src/main/java/net/runelite/api/Client.java +++ b/runelite-api/src/main/java/net/runelite/api/Client.java @@ -127,6 +127,13 @@ public interface Client extends GameShell */ GameState getGameState(); + /** + * Sets the current game state. + * + * @param gameState new game state + */ + void setGameState(int gameState); + /** * Gets the current logged in username. * diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPanel.java index 7c62909195..0f4e8c916b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPanel.java @@ -27,7 +27,6 @@ package net.runelite.client.plugins.raids; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.event.ActionEvent; -import java.lang.reflect.Method; import javax.inject.Inject; import javax.swing.BorderFactory; import javax.swing.JButton; @@ -78,22 +77,9 @@ class RaidsPanel extends PluginPanel JPanel scoutFrame = new JPanel(); reloadButton.addActionListener((ActionEvent e) -> { - - if ((client.getGameState() == GameState.LOGGED_IN)) { - try - { - //look for client.gameStateChanged(-1); in src files to find - Method m = client.getClass().getClassLoader().loadClass("ba").getDeclaredMethod("ec", int.class, byte.class); - m.setAccessible(true); - m.invoke(null, 40, (byte) 3); - - } - catch (ReflectiveOperationException f) - { - throw new RuntimeException(f); - } + client.setGameState(40); } }); reloadScouter.addActionListener((ActionEvent e) -> diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java b/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java index dc52ced619..742b8c124a 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java @@ -143,6 +143,9 @@ public interface RSClient extends RSGameShell, Client @Import("gameState") int getRSGameState(); + @Import("updateGameState") + void setGameState(int gameState); + @Import("checkClick") @Override void setCheckClick(boolean checkClick);