From 41a041972afe8ac99b936a2b0d7721ce34516a22 Mon Sep 17 00:00:00 2001 From: MarbleTurtle <60723971+MarbleTurtle@users.noreply.github.com> Date: Sun, 31 May 2020 21:57:22 -0700 Subject: [PATCH] clanchat: Add player name to kick message (#11555) --- .../client/plugins/clanchat/ClanChatConfig.java | 15 +++++++++++++-- .../client/plugins/clanchat/ClanChatPlugin.java | 16 ++++++++++++++++ .../src/main/scripts/ClanSendKick.rs2asm | 7 +++++++ 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatConfig.java index 3a7dbfa20d..08ba3de298 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatConfig.java @@ -150,11 +150,22 @@ public interface ClanChatConfig extends Config return false; } + @ConfigItem( + keyName = "kickWithName", + name = "Show kicked player", + description = "Changes kick message to say who was kicked", + position = 10 + ) + default boolean kickWithName() + { + return true; + } + @ConfigItem( keyName = "showIgnores", name = "Recolor ignored players", description = "Recolors players that are on your ignore list", - position = 10 + position = 11 ) default boolean showIgnores() { @@ -165,7 +176,7 @@ public interface ClanChatConfig extends Config keyName = "showIgnoresColor", name = "Ignored color", description = "Allows you to change the color of the ignored players in your clan chat", - position = 11 + position = 12 ) default Color showIgnoresColor() { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatPlugin.java index 1e51d1b4df..49dfa8027a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatPlugin.java @@ -555,6 +555,22 @@ public class ClanChatPlugin extends Plugin clientThread.invokeLater(() -> confirmKickPlayer(kickPlayerName)); break; } + case "sendKickName": + { + if (!config.kickWithName()) + { + break; + } + + // Get name of the player we are kicking + final String[] stringStack = client.getStringStack(); + final int stringSize = client.getStringStackSize(); + final String kickPlayerName = stringStack[stringSize - 1]; + + // Sets the kick message based on players name + stringStack[stringSize - 2] = "-Attempting to kick " + kickPlayerName + " from friends chat..."; + break; + } } } diff --git a/runelite-client/src/main/scripts/ClanSendKick.rs2asm b/runelite-client/src/main/scripts/ClanSendKick.rs2asm index 1da495029f..f26f49c73a 100644 --- a/runelite-client/src/main/scripts/ClanSendKick.rs2asm +++ b/runelite-client/src/main/scripts/ClanSendKick.rs2asm @@ -6,6 +6,9 @@ ; callback "confirmClanKick" ; Used by the ClanChat plugin to show a chatbox panel confirming the requested kick ; Also requires the "confirmKicks" option of ClanChatConfig to be enabled +; callback "sendKickName" +; Used by the ClanChat plugin to modify the kick message to include player name +; Also requires the "kickWithName" option of ClanChatConfig to be enabled invoke 1942 iconst 1 if_icmpeq LABEL4 @@ -16,6 +19,10 @@ LABEL4: return LABEL7: sconst "-Attempting to kick player from friends chat..." + sload 0 ; Username we are kicking + sconst "sendKickName" + runelite_callback + pop_string ; Username we are kicking iconst 2 invoke 96 sload 0