screenshot: Add option to take screenshot on clan chat kick

This commit is contained in:
Rachel M
2020-05-12 19:14:36 -07:00
committed by Jordan Atwood
parent 01f134795d
commit 3f48614ddc
2 changed files with 44 additions and 2 deletions

View File

@@ -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()
{

View File

@@ -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";