diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotConfig.java index 314af4ab07..e0a32b2e0a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotConfig.java @@ -198,11 +198,22 @@ public interface ScreenshotConfig extends Config return false; } + @ConfigItem( + keyName = "ccKick", + name = "Screenshot Kicks from CC", + description = "Take a screenshot when you kick a user from a clan chat.", + position = 15 + ) + default boolean screenshotCcKick() + { + return false; + } + @ConfigItem( keyName = "hotkey", name = "Screenshot hotkey", description = "When you press this key a screenshot will be taken", - position = 15 + position = 16 ) default Keybind hotkey() { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java index 04db5a4e22..7d402bcafc 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java @@ -63,6 +63,7 @@ import static net.runelite.api.widgets.WidgetID.LEVEL_UP_GROUP_ID; import static net.runelite.api.widgets.WidgetID.QUEST_COMPLETED_GROUP_ID; import static net.runelite.api.widgets.WidgetID.THEATRE_OF_BLOOD_REWARD_GROUP_ID; import net.runelite.api.widgets.WidgetInfo; +import net.runelite.api.events.ScriptCallbackEvent; import net.runelite.client.Notifier; import static net.runelite.client.RuneLite.SCREENSHOT_DIR; import net.runelite.client.config.ConfigManager; @@ -157,6 +158,8 @@ public class ScreenshotPlugin extends Plugin private NavigationButton titleBarButton; + private String kickPlayerName; + private final HotkeyListener hotkeyListener = new HotkeyListener(() -> config.hotkey()) { @Override @@ -206,6 +209,7 @@ public class ScreenshotPlugin extends Plugin overlayManager.remove(screenshotOverlay); clientToolbar.removeNavigation(titleBarButton); keyManager.unregisterKeyListener(hotkeyListener); + kickPlayerName = null; } @Subscribe @@ -270,10 +274,26 @@ public class ScreenshotPlugin extends Plugin } } + @Subscribe + public void onScriptCallbackEvent(ScriptCallbackEvent e) + { + if (!"confirmClanKick".equals(e.getEventName())) + { + return; + } + + final String[] stringStack = client.getStringStack(); + final int stringSize = client.getStringStackSize(); + kickPlayerName = stringStack[stringSize - 1]; + } + @Subscribe public void onChatMessage(ChatMessage event) { - if (event.getType() != ChatMessageType.GAMEMESSAGE && event.getType() != ChatMessageType.SPAM && event.getType() != ChatMessageType.TRADE) + if (event.getType() != ChatMessageType.GAMEMESSAGE + && event.getType() != ChatMessageType.SPAM + && event.getType() != ChatMessageType.TRADE + && event.getType() != ChatMessageType.FRIENDSCHATNOTIFICATION) { return; } @@ -331,6 +351,17 @@ public class ScreenshotPlugin extends Plugin } } + if (config.screenshotCcKick() && chatMessage.equals("Your request to kick/ban this user was successful.")) + { + if (kickPlayerName == null) + { + return; + } + + takeScreenshot("Kick " + kickPlayerName, "Clan Chat Kicks"); + kickPlayerName = null; + } + if (config.screenshotPet() && PET_MESSAGES.stream().anyMatch(chatMessage::contains)) { String fileName = "Pet";