From 63664fbac735a84df493e22570dda7a4a91e19ad Mon Sep 17 00:00:00 2001 From: sdburns1998 Date: Sat, 29 Jun 2019 00:28:22 +0200 Subject: [PATCH] chat commands: add ba high gamble command --- .../runelite/http/api/chat/ChatClient.java | 8 +-- .../http/service/chat/ChatController.java | 2 +- .../http/service/chat/ChatService.java | 2 +- .../chatcommands/ChatCommandsPlugin.java | 70 +++++++++++++++++++ 4 files changed, 76 insertions(+), 6 deletions(-) diff --git a/http-api/src/main/java/net/runelite/http/api/chat/ChatClient.java b/http-api/src/main/java/net/runelite/http/api/chat/ChatClient.java index 3e9ffe3fd9..532b56d158 100644 --- a/http-api/src/main/java/net/runelite/http/api/chat/ChatClient.java +++ b/http-api/src/main/java/net/runelite/http/api/chat/ChatClient.java @@ -225,7 +225,7 @@ public class ChatClient public boolean submitGc(String username, int gc) throws IOException { - HttpUrl url = RuneLiteAPI.getPlusApiBase().newBuilder() + HttpUrl url = RuneLiteAPI.getApiBase().newBuilder() .addPathSegment("chat") .addPathSegment("gc") .addQueryParameter("name", username) @@ -237,7 +237,7 @@ public class ChatClient .url(url) .build(); - try (Response response = RuneLiteAPI.RLP_CLIENT.newCall(request).execute()) + try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute()) { return response.isSuccessful(); } @@ -245,7 +245,7 @@ public class ChatClient public int getGc(String username) throws IOException { - HttpUrl url = RuneLiteAPI.getPlusApiBase().newBuilder() + HttpUrl url = RuneLiteAPI.getApiBase().newBuilder() .addPathSegment("chat") .addPathSegment("gc") .addQueryParameter("name", username) @@ -255,7 +255,7 @@ public class ChatClient .url(url) .build(); - try (Response response = RuneLiteAPI.RLP_CLIENT.newCall(request).execute()) + try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute()) { if (!response.isSuccessful()) { diff --git a/http-service/src/main/java/net/runelite/http/service/chat/ChatController.java b/http-service/src/main/java/net/runelite/http/service/chat/ChatController.java index 5aa1b8144b..df287e6512 100644 --- a/http-service/src/main/java/net/runelite/http/service/chat/ChatController.java +++ b/http-service/src/main/java/net/runelite/http/service/chat/ChatController.java @@ -100,4 +100,4 @@ public class ChatController { return chatService.getHosts(world, location); } -} +} \ No newline at end of file diff --git a/http-service/src/main/java/net/runelite/http/service/chat/ChatService.java b/http-service/src/main/java/net/runelite/http/service/chat/ChatService.java index ebce4c49a0..aa23d3f18d 100644 --- a/http-service/src/main/java/net/runelite/http/service/chat/ChatService.java +++ b/http-service/src/main/java/net/runelite/http/service/chat/ChatService.java @@ -117,4 +117,4 @@ public class ChatService jedis.lrem(key, 0, json); } } -} +} \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java index 269c116c76..92bd2f588c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java @@ -98,6 +98,7 @@ public class ChatCommandsPlugin extends Plugin private static final String QP_COMMAND_STRING = "!qp"; private static final String GC_COMMAND_STRING = "!gc"; private static final String PB_COMMAND = "!pb"; + private static final String GC_COMMAND_STRING = "!gc"; private final HiscoreClient hiscoreClient = new HiscoreClient(); private final ChatClient chatClient = new ChatClient(); @@ -148,6 +149,7 @@ public class ChatCommandsPlugin extends Plugin chatCommandManager.registerCommandAsync(QP_COMMAND_STRING, this::questPointsLookup, this::questPointsSubmit); chatCommandManager.registerCommandAsync(GC_COMMAND_STRING, this::gambleCountLookup, this::gambleCountSubmit); chatCommandManager.registerCommandAsync(PB_COMMAND, this::personalBestLookup, this::personalBestSubmit); + chatCommandManager.registerCommandAsync(GC_COMMAND_STRING, this::gambleCountLookup, this::gambleCountSubmit); } @Override @@ -647,6 +649,74 @@ public class ChatCommandsPlugin extends Plugin return true; } + private void gambleCountLookup(ChatMessage chatMessage, String message) + { + if (!config.gc()) + { + return; + } + + ChatMessageType type = chatMessage.getType(); + + final String player; + if (type == ChatMessageType.PRIVATECHATOUT) + { + player = client.getLocalPlayer().getName(); + } + else + { + player = sanitize(chatMessage.getName()); + } + + int gc; + try + { + gc = chatClient.getGc(player); + } + catch (IOException ex) + { + log.debug("unable to lookup gamble count", ex); + return; + } + + String response = new ChatMessageBuilder() + .append(ChatColorType.NORMAL) + .append("Barbarian Assault High-level gambles: ") + .append(ChatColorType.HIGHLIGHT) + .append(Integer.toString(gc)) + .build(); + + log.debug("Setting response {}", response); + final MessageNode messageNode = chatMessage.getMessageNode(); + messageNode.setRuneLiteFormatMessage(response); + chatMessageManager.update(messageNode); + client.refreshChat(); + } + + private boolean gambleCountSubmit(ChatInput chatInput, String value) + { + final int gc = client.getVar(Varbits.BA_GC); + final String playerName = client.getLocalPlayer().getName(); + + executor.execute(() -> + { + try + { + chatClient.submitGc(playerName, gc); + } + catch (Exception ex) + { + log.warn("unable to submit gamble count", ex); + } + finally + { + chatInput.resume(); + } + }); + + return true; + } + /** * Looks up the item price and changes the original message to the * response.