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;
|
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(
|
@ConfigItem(
|
||||||
keyName = "hotkey",
|
keyName = "hotkey",
|
||||||
name = "Screenshot hotkey",
|
name = "Screenshot hotkey",
|
||||||
description = "When you press this key a screenshot will be taken",
|
description = "When you press this key a screenshot will be taken",
|
||||||
position = 15
|
position = 16
|
||||||
)
|
)
|
||||||
default Keybind hotkey()
|
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.QUEST_COMPLETED_GROUP_ID;
|
||||||
import static net.runelite.api.widgets.WidgetID.THEATRE_OF_BLOOD_REWARD_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.widgets.WidgetInfo;
|
||||||
|
import net.runelite.api.events.ScriptCallbackEvent;
|
||||||
import net.runelite.client.Notifier;
|
import net.runelite.client.Notifier;
|
||||||
import static net.runelite.client.RuneLite.SCREENSHOT_DIR;
|
import static net.runelite.client.RuneLite.SCREENSHOT_DIR;
|
||||||
import net.runelite.client.config.ConfigManager;
|
import net.runelite.client.config.ConfigManager;
|
||||||
@@ -157,6 +158,8 @@ public class ScreenshotPlugin extends Plugin
|
|||||||
|
|
||||||
private NavigationButton titleBarButton;
|
private NavigationButton titleBarButton;
|
||||||
|
|
||||||
|
private String kickPlayerName;
|
||||||
|
|
||||||
private final HotkeyListener hotkeyListener = new HotkeyListener(() -> config.hotkey())
|
private final HotkeyListener hotkeyListener = new HotkeyListener(() -> config.hotkey())
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@@ -206,6 +209,7 @@ public class ScreenshotPlugin extends Plugin
|
|||||||
overlayManager.remove(screenshotOverlay);
|
overlayManager.remove(screenshotOverlay);
|
||||||
clientToolbar.removeNavigation(titleBarButton);
|
clientToolbar.removeNavigation(titleBarButton);
|
||||||
keyManager.unregisterKeyListener(hotkeyListener);
|
keyManager.unregisterKeyListener(hotkeyListener);
|
||||||
|
kickPlayerName = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe
|
@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
|
@Subscribe
|
||||||
public void onChatMessage(ChatMessage event)
|
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;
|
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))
|
if (config.screenshotPet() && PET_MESSAGES.stream().anyMatch(chatMessage::contains))
|
||||||
{
|
{
|
||||||
String fileName = "Pet";
|
String fileName = "Pet";
|
||||||
|
|||||||
Reference in New Issue
Block a user