screenshot: Add option to take screenshot on clan chat kick
This commit is contained in:
@@ -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()
|
||||
{
|
||||
|
||||
@@ -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";
|
||||
|
||||
Reference in New Issue
Block a user