test_class.declarator: CLUE_SCROLL = "<col=3300ff>You have completed 28 medium Treasure Trails</col>"
test_class.modifier: private static final
test_class.original_string: private static final String CLUE_SCROLL = "<col=3300ff>You have completed 28 medium Treasure Trails</col>";
test_class.type: String
test_class.var_name: CLUE_SCROLL
test_class.declarator: BARROWS_CHEST = "Your Barrows chest count is <col=ff0000>310</col>"
test_class.modifier: private static final
test_class.original_string: private static final String BARROWS_CHEST = "Your Barrows chest count is <col=ff0000>310</col>";
test_class.type: String
test_class.var_name: BARROWS_CHEST
test_class.declarator: CHAMBERS_OF_XERIC_CHEST = "Your completed Chambers of Xeric count is: <col=ff0000>489</col>."
test_class.modifier: private static final
test_class.original_string: private static final String CHAMBERS_OF_XERIC_CHEST = "Your completed Chambers of Xeric count is: <col=ff0000>489</col>.";
test_class.type: String
test_class.var_name: CHAMBERS_OF_XERIC_CHEST
test_class.declarator: THEATRE_OF_BLOOD_CHEST = "Your completed Theatre of Blood count is: <col=ff0000>73</col>."
test_class.modifier: private static final
test_class.original_string: private static final String THEATRE_OF_BLOOD_CHEST = "Your completed Theatre of Blood count is: <col=ff0000>73</col>.";
test_class.type: String
test_class.var_name: THEATRE_OF_BLOOD_CHEST
test_class.declarator: VALUABLE_DROP = "<col=ef1020>Valuable drop: 6 x Bronze arrow (42 coins)</col>"
test_class.modifier: private static final
test_class.original_string: private static final String VALUABLE_DROP = "<col=ef1020>Valuable drop: 6 x Bronze arrow (42 coins)</col>";
test_class.type: String
test_class.var_name: VALUABLE_DROP
test_class.declarator: UNTRADEABLE_DROP = "<col=ef1020>Untradeable drop: Rusty sword"
test_class.modifier: private static final
test_class.original_string: private static final String UNTRADEABLE_DROP = "<col=ef1020>Untradeable drop: Rusty sword";
test_class.type: String
test_class.var_name: UNTRADEABLE_DROP
test_class.declarator: BA_HIGH_GAMBLE_REWARD = "Raw shark (x 300)!<br>High level gamble count: <col=7f0000>100</col>"
test_class.modifier: private static final
test_class.original_string: private static final String BA_HIGH_GAMBLE_REWARD = "Raw shark (x 300)!<br>High level gamble count: <col=7f0000>100</col>";
test_class.type: String
test_class.var_name: BA_HIGH_GAMBLE_REWARD
test_class.declarator: HUNTER_LEVEL_2_TEXT = "<col=000080>Congratulations, you've just advanced a Hunter level.<col=000000><br><br>Your Hunter level is now 2."
test_class.modifier: private static final
test_class.original_string: private static final String HUNTER_LEVEL_2_TEXT = "<col=000080>Congratulations, you've just advanced a Hunter level.<col=000000><br><br>Your Hunter level is now 2.";
test_class.type: String
test_class.var_name: HUNTER_LEVEL_2_TEXT
test_class.declarator: client
test_class.modifier: @Mock
  	@Bind
  	private
test_class.original_string: @Mock
  	@Bind
  	private Client client;
test_class.type: Client
test_class.var_name: client
test_class.declarator: screenshotPlugin
test_class.modifier: @Inject
  	private
test_class.original_string: @Inject
  	private ScreenshotPlugin screenshotPlugin;
test_class.type: ScreenshotPlugin
test_class.var_name: screenshotPlugin
test_class.declarator: screenshotConfig
test_class.modifier: @Mock
  	@Bind
  	private
test_class.original_string: @Mock
  	@Bind
  	private ScreenshotConfig screenshotConfig;
test_class.type: ScreenshotConfig
test_class.var_name: screenshotConfig
test_class.declarator: notifier
test_class.modifier: @Mock
  	@Bind
test_class.original_string: @Mock
  	@Bind
  	Notifier notifier;
test_class.type: Notifier
test_class.var_name: notifier
test_class.declarator: clientUi
test_class.modifier: @Mock
  	@Bind
test_class.original_string: @Mock
  	@Bind
  	ClientUI clientUi;
test_class.type: ClientUI
test_class.var_name: clientUi
test_class.declarator: drawManager
test_class.modifier: @Mock
  	@Bind
test_class.original_string: @Mock
  	@Bind
  	DrawManager drawManager;
test_class.type: DrawManager
test_class.var_name: drawManager
test_class.declarator: config
test_class.modifier: @Mock
  	@Bind
test_class.original_string: @Mock
  	@Bind
  	RuneLiteConfig config;
test_class.type: RuneLiteConfig
test_class.var_name: config
test_class.declarator: service
test_class.modifier: @Mock
  	@Bind
test_class.original_string: @Mock
  	@Bind
  	ScheduledExecutorService service;
test_class.type: ScheduledExecutorService
test_class.var_name: service
test_class.declarator: overlayManager
test_class.modifier: @Mock
  	@Bind
  	private
test_class.original_string: @Mock
  	@Bind
  	private OverlayManager overlayManager;
test_class.type: OverlayManager
test_class.var_name: overlayManager
test_class.declarator: infoBoxManager
test_class.modifier: @Mock
  	@Bind
  	private
test_class.original_string: @Mock
  	@Bind
  	private InfoBoxManager infoBoxManager;
test_class.type: InfoBoxManager
test_class.var_name: infoBoxManager
test_class.file: runelite-client/src/test/java/net/runelite/client/plugins/screenshot/ScreenshotPluginTest.java
test_class.identifier: ScreenshotPluginTest
test_case.body: @Test
  	public void testUntradeableDrop()
  	{
  		ChatMessage chatMessageEvent = new ChatMessage(null, GAMEMESSAGE, "", UNTRADEABLE_DROP, null, 0);
  		screenshotPlugin.onChatMessage(chatMessageEvent);
  
  		verify(drawManager).requestNextFrameListener(any(Consumer.class));
  	}
test_case.class_method_signature: ScreenshotPluginTest.testUntradeableDrop()
test_case.full_signature: @Test public void testUntradeableDrop()
test_case.identifier: testUntradeableDrop
test_case.invocations: onChatMessage requestNextFrameListener verify any
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testUntradeableDrop()
focal_class.declarator: CHEST_LOOTED_MESSAGE = "You find some treasure in the chest!"
focal_class.modifier: private static final
focal_class.original_string: private static final String CHEST_LOOTED_MESSAGE = "You find some treasure in the chest!";
focal_class.type: String
focal_class.var_name: CHEST_LOOTED_MESSAGE
focal_class.declarator: CHEST_LOOT_EVENTS = ImmutableMap.of(12127, "The Gauntlet")
focal_class.modifier: private static final
focal_class.original_string: private static final Map<Integer, String> CHEST_LOOT_EVENTS = ImmutableMap.of(12127, "The Gauntlet");
focal_class.type: Map<Integer, String>
focal_class.var_name: CHEST_LOOT_EVENTS
focal_class.declarator: GAUNTLET_REGION = 7512
focal_class.modifier: private static final
focal_class.original_string: private static final int GAUNTLET_REGION = 7512;
focal_class.type: int
focal_class.var_name: GAUNTLET_REGION
focal_class.declarator: CORRUPTED_GAUNTLET_REGION = 7768
focal_class.modifier: private static final
focal_class.original_string: private static final int CORRUPTED_GAUNTLET_REGION = 7768;
focal_class.type: int
focal_class.var_name: CORRUPTED_GAUNTLET_REGION
focal_class.declarator: NUMBER_PATTERN = Pattern.compile("([0-9]+)")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern NUMBER_PATTERN = Pattern.compile("([0-9]+)");
focal_class.type: Pattern
focal_class.var_name: NUMBER_PATTERN
focal_class.declarator: LEVEL_UP_PATTERN = Pattern.compile(".*Your ([a-zA-Z]+) (?:level is|are)? now (\\d+)\\.")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern LEVEL_UP_PATTERN = Pattern.compile(".*Your ([a-zA-Z]+) (?:level is|are)? now (\\d+)\\.");
focal_class.type: Pattern
focal_class.var_name: LEVEL_UP_PATTERN
focal_class.declarator: BOSSKILL_MESSAGE_PATTERN = Pattern.compile("Your (.+) kill count is: <col=ff0000>(\\d+)</col>.")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern BOSSKILL_MESSAGE_PATTERN = Pattern.compile("Your (.+) kill count is: <col=ff0000>(\\d+)</col>.");
focal_class.type: Pattern
focal_class.var_name: BOSSKILL_MESSAGE_PATTERN
focal_class.declarator: VALUABLE_DROP_PATTERN = Pattern.compile(".*Valuable drop: ([^<>]+)(?:</col>)?")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern VALUABLE_DROP_PATTERN = Pattern.compile(".*Valuable drop: ([^<>]+)(?:</col>)?");
focal_class.type: Pattern
focal_class.var_name: VALUABLE_DROP_PATTERN
focal_class.declarator: UNTRADEABLE_DROP_PATTERN = Pattern.compile(".*Untradeable drop: ([^<>]+)(?:</col>)?")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern UNTRADEABLE_DROP_PATTERN = Pattern.compile(".*Untradeable drop: ([^<>]+)(?:</col>)?");
focal_class.type: Pattern
focal_class.var_name: UNTRADEABLE_DROP_PATTERN
focal_class.declarator: DUEL_END_PATTERN = Pattern.compile("You have now (won|lost) ([0-9]+) duels?\\.")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern DUEL_END_PATTERN = Pattern.compile("You have now (won|lost) ([0-9]+) duels?\\.");
focal_class.type: Pattern
focal_class.var_name: DUEL_END_PATTERN
focal_class.declarator: QUEST_PATTERN_1 = Pattern.compile(".+?ve\\.*? (?<verb>been|rebuilt|.+?ed)? ?(?:the )?'?(?<quest>.+?)'?(?: [Qq]uest)?[!.]?$")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern QUEST_PATTERN_1 = Pattern.compile(".+?ve\\.*? (?<verb>been|rebuilt|.+?ed)? ?(?:the )?'?(?<quest>.+?)'?(?: [Qq]uest)?[!.]?$");
focal_class.type: Pattern
focal_class.var_name: QUEST_PATTERN_1
focal_class.declarator: QUEST_PATTERN_2 = Pattern.compile("'?(?<quest>.+?)'?(?: [Qq]uest)? (?<verb>[a-z]\\w+?ed)?(?: f.*?)?[!.]?$")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern QUEST_PATTERN_2 = Pattern.compile("'?(?<quest>.+?)'?(?: [Qq]uest)? (?<verb>[a-z]\\w+?ed)?(?: f.*?)?[!.]?$");
focal_class.type: Pattern
focal_class.var_name: QUEST_PATTERN_2
focal_class.declarator: RFD_TAGS = ImmutableList.of("Another Cook", "freed", "defeated", "saved")
focal_class.modifier: private static final
focal_class.original_string: private static final ImmutableList<String> RFD_TAGS = ImmutableList.of("Another Cook", "freed", "defeated", "saved");
focal_class.type: ImmutableList<String>
focal_class.var_name: RFD_TAGS
focal_class.declarator: WORD_QUEST_IN_NAME_TAGS = ImmutableList.of("Another Cook", "Doric", "Heroes", "Legends", "Observatory", "Olaf", "Waterfall")
focal_class.modifier: private static final
focal_class.original_string: private static final ImmutableList<String> WORD_QUEST_IN_NAME_TAGS = ImmutableList.of("Another Cook", "Doric", "Heroes", "Legends", "Observatory", "Olaf", "Waterfall");
focal_class.type: ImmutableList<String>
focal_class.var_name: WORD_QUEST_IN_NAME_TAGS
focal_class.declarator: PET_MESSAGES = ImmutableList.of("You have a funny feeling like you're being followed",
  		"You feel something weird sneaking into your backpack",
  		"You have a funny feeling like you would have been followed")
focal_class.modifier: private static final
focal_class.original_string: private static final ImmutableList<String> PET_MESSAGES = ImmutableList.of("You have a funny feeling like you're being followed",
  		"You feel something weird sneaking into your backpack",
  		"You have a funny feeling like you would have been followed");
focal_class.type: ImmutableList<String>
focal_class.var_name: PET_MESSAGES
focal_class.declarator: BA_HIGH_GAMBLE_REWARD_PATTERN = Pattern.compile("(?<reward>.+)!<br>High level gamble count: <col=7f0000>(?<gambleCount>.+)</col>")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern BA_HIGH_GAMBLE_REWARD_PATTERN = Pattern.compile("(?<reward>.+)!<br>High level gamble count: <col=7f0000>(?<gambleCount>.+)</col>");
focal_class.type: Pattern
focal_class.var_name: BA_HIGH_GAMBLE_REWARD_PATTERN
focal_class.declarator: clueType
focal_class.modifier: private
focal_class.original_string: private String clueType;
focal_class.type: String
focal_class.var_name: clueType
focal_class.declarator: clueNumber
focal_class.modifier: private
focal_class.original_string: private Integer clueNumber;
focal_class.type: Integer
focal_class.var_name: clueNumber
focal_class.declarator: barrowsNumber
focal_class.modifier: private
focal_class.original_string: private Integer barrowsNumber;
focal_class.type: Integer
focal_class.var_name: barrowsNumber
focal_class.declarator: chambersOfXericNumber
focal_class.modifier: private
focal_class.original_string: private Integer chambersOfXericNumber;
focal_class.type: Integer
focal_class.var_name: chambersOfXericNumber
focal_class.declarator: chambersOfXericChallengeNumber
focal_class.modifier: private
focal_class.original_string: private Integer chambersOfXericChallengeNumber;
focal_class.type: Integer
focal_class.var_name: chambersOfXericChallengeNumber
focal_class.declarator: theatreOfBloodNumber
focal_class.modifier: private
focal_class.original_string: private Integer theatreOfBloodNumber;
focal_class.type: Integer
focal_class.var_name: theatreOfBloodNumber
focal_class.declarator: shouldTakeScreenshot
focal_class.modifier: private
focal_class.original_string: private boolean shouldTakeScreenshot;
focal_class.type: boolean
focal_class.var_name: shouldTakeScreenshot
focal_class.declarator: config
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private ScreenshotConfig config;
focal_class.type: ScreenshotConfig
focal_class.var_name: config
focal_class.declarator: overlayManager
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private OverlayManager overlayManager;
focal_class.type: OverlayManager
focal_class.var_name: overlayManager
focal_class.declarator: screenshotOverlay
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private ScreenshotOverlay screenshotOverlay;
focal_class.type: ScreenshotOverlay
focal_class.var_name: screenshotOverlay
focal_class.declarator: notifier
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private Notifier notifier;
focal_class.type: Notifier
focal_class.var_name: notifier
focal_class.declarator: client
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private Client client;
focal_class.type: Client
focal_class.var_name: client
focal_class.declarator: clientUi
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private ClientUI clientUi;
focal_class.type: ClientUI
focal_class.var_name: clientUi
focal_class.declarator: clientToolbar
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private ClientToolbar clientToolbar;
focal_class.type: ClientToolbar
focal_class.var_name: clientToolbar
focal_class.declarator: drawManager
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private DrawManager drawManager;
focal_class.type: DrawManager
focal_class.var_name: drawManager
focal_class.declarator: executor
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private ScheduledExecutorService executor;
focal_class.type: ScheduledExecutorService
focal_class.var_name: executor
focal_class.declarator: keyManager
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private KeyManager keyManager;
focal_class.type: KeyManager
focal_class.var_name: keyManager
focal_class.declarator: spriteManager
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private SpriteManager spriteManager;
focal_class.type: SpriteManager
focal_class.var_name: spriteManager
focal_class.declarator: imageCapture
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private ImageCapture imageCapture;
focal_class.type: ImageCapture
focal_class.var_name: imageCapture
focal_class.declarator: reportButton
focal_class.modifier: @Getter(AccessLevel.PACKAGE)
  	private
focal_class.original_string: @Getter(AccessLevel.PACKAGE)
  	private BufferedImage reportButton;
focal_class.type: BufferedImage
focal_class.var_name: reportButton
focal_class.declarator: titleBarButton
focal_class.modifier: private
focal_class.original_string: private NavigationButton titleBarButton;
focal_class.type: NavigationButton
focal_class.var_name: titleBarButton
focal_class.declarator: kickPlayerName
focal_class.modifier: private
focal_class.original_string: private String kickPlayerName;
focal_class.type: String
focal_class.var_name: kickPlayerName
focal_class.declarator: hotkeyListener = new HotkeyListener(() -> config.hotkey())
  	{
  		@Override
  		public void hotkeyPressed()
  		{
  			manualScreenshot();
  		}
  	}
focal_class.modifier: private final
focal_class.original_string: private final HotkeyListener hotkeyListener = new HotkeyListener(() -> config.hotkey())
  	{
  		@Override
  		public void hotkeyPressed()
  		{
  			manualScreenshot();
  		}
  	};
focal_class.type: HotkeyListener
focal_class.var_name: hotkeyListener
focal_class.file: runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java
focal_class.identifier: ScreenshotPlugin
focal_class.class_method_signature: ScreenshotPlugin.getConfig(ConfigManager configManager)
focal_class.full_signature: @Provides ScreenshotConfig getConfig(ConfigManager configManager)
focal_class.identifier: getConfig
focal_class.modifiers: @Provides
focal_class.parameters: (ConfigManager configManager)
focal_class.return: ScreenshotConfig
focal_class.signature: ScreenshotConfig getConfig(ConfigManager configManager)
focal_class.class_method_signature: ScreenshotPlugin.startUp()
focal_class.full_signature: @Override protected void startUp()
focal_class.identifier: startUp
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void startUp()
focal_class.class_method_signature: ScreenshotPlugin.shutDown()
focal_class.full_signature: @Override protected void shutDown()
focal_class.identifier: shutDown
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void shutDown()
focal_class.class_method_signature: ScreenshotPlugin.onGameTick(GameTick event)
focal_class.full_signature: @Subscribe public void onGameTick(GameTick event)
focal_class.identifier: onGameTick
focal_class.modifiers: @Subscribe public
focal_class.parameters: (GameTick event)
focal_class.return: void
focal_class.signature: void onGameTick(GameTick event)
focal_class.class_method_signature: ScreenshotPlugin.onActorDeath(ActorDeath actorDeath)
focal_class.full_signature: @Subscribe public void onActorDeath(ActorDeath actorDeath)
focal_class.identifier: onActorDeath
focal_class.modifiers: @Subscribe public
focal_class.parameters: (ActorDeath actorDeath)
focal_class.return: void
focal_class.signature: void onActorDeath(ActorDeath actorDeath)
focal_class.class_method_signature: ScreenshotPlugin.onPlayerLootReceived(final PlayerLootReceived playerLootReceived)
focal_class.full_signature: @Subscribe public void onPlayerLootReceived(final PlayerLootReceived playerLootReceived)
focal_class.identifier: onPlayerLootReceived
focal_class.modifiers: @Subscribe public
focal_class.parameters: (final PlayerLootReceived playerLootReceived)
focal_class.return: void
focal_class.signature: void onPlayerLootReceived(final PlayerLootReceived playerLootReceived)
focal_class.class_method_signature: ScreenshotPlugin.onScriptCallbackEvent(ScriptCallbackEvent e)
focal_class.full_signature: @Subscribe public void onScriptCallbackEvent(ScriptCallbackEvent e)
focal_class.identifier: onScriptCallbackEvent
focal_class.modifiers: @Subscribe public
focal_class.parameters: (ScriptCallbackEvent e)
focal_class.return: void
focal_class.signature: void onScriptCallbackEvent(ScriptCallbackEvent e)
focal_class.class_method_signature: ScreenshotPlugin.onChatMessage(ChatMessage event)
focal_class.full_signature: @Subscribe public void onChatMessage(ChatMessage event)
focal_class.identifier: onChatMessage
focal_class.modifiers: @Subscribe public
focal_class.parameters: (ChatMessage event)
focal_class.return: void
focal_class.signature: void onChatMessage(ChatMessage event)
focal_class.class_method_signature: ScreenshotPlugin.onWidgetLoaded(WidgetLoaded event)
focal_class.full_signature: @Subscribe public void onWidgetLoaded(WidgetLoaded event)
focal_class.identifier: onWidgetLoaded
focal_class.modifiers: @Subscribe public
focal_class.parameters: (WidgetLoaded event)
focal_class.return: void
focal_class.signature: void onWidgetLoaded(WidgetLoaded event)
focal_class.class_method_signature: ScreenshotPlugin.manualScreenshot()
focal_class.full_signature: private void manualScreenshot()
focal_class.identifier: manualScreenshot
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void manualScreenshot()
focal_class.class_method_signature: ScreenshotPlugin.parseLevelUpWidget(WidgetInfo levelUpLevel)
focal_class.full_signature:  String parseLevelUpWidget(WidgetInfo levelUpLevel)
focal_class.identifier: parseLevelUpWidget
focal_class.parameters: (WidgetInfo levelUpLevel)
focal_class.return: String
focal_class.signature: String parseLevelUpWidget(WidgetInfo levelUpLevel)
focal_class.class_method_signature: ScreenshotPlugin.parseQuestCompletedWidget(final String text)
focal_class.full_signature: @VisibleForTesting static String parseQuestCompletedWidget(final String text)
focal_class.identifier: parseQuestCompletedWidget
focal_class.modifiers: @VisibleForTesting static
focal_class.parameters: (final String text)
focal_class.return: String
focal_class.signature: String parseQuestCompletedWidget(final String text)
focal_class.class_method_signature: ScreenshotPlugin.parseBAHighGambleWidget(final String text)
focal_class.full_signature: @VisibleForTesting static String parseBAHighGambleWidget(final String text)
focal_class.identifier: parseBAHighGambleWidget
focal_class.modifiers: @VisibleForTesting static
focal_class.parameters: (final String text)
focal_class.return: String
focal_class.signature: String parseBAHighGambleWidget(final String text)
focal_class.class_method_signature: ScreenshotPlugin.takeScreenshot(String fileName, String subDir)
focal_class.full_signature: private void takeScreenshot(String fileName, String subDir)
focal_class.identifier: takeScreenshot
focal_class.modifiers: private
focal_class.parameters: (String fileName, String subDir)
focal_class.return: void
focal_class.signature: void takeScreenshot(String fileName, String subDir)
focal_class.class_method_signature: ScreenshotPlugin.takeScreenshot(String fileName, String subDir, Image image)
focal_class.full_signature: private void takeScreenshot(String fileName, String subDir, Image image)
focal_class.identifier: takeScreenshot
focal_class.modifiers: private
focal_class.parameters: (String fileName, String subDir, Image image)
focal_class.return: void
focal_class.signature: void takeScreenshot(String fileName, String subDir, Image image)
focal_class.class_method_signature: ScreenshotPlugin.isInsideGauntlet()
focal_class.full_signature: private boolean isInsideGauntlet()
focal_class.identifier: isInsideGauntlet
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isInsideGauntlet()
focal_class.class_method_signature: ScreenshotPlugin.getClueNumber()
focal_class.full_signature: @VisibleForTesting int getClueNumber()
focal_class.identifier: getClueNumber
focal_class.modifiers: @VisibleForTesting
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getClueNumber()
focal_class.class_method_signature: ScreenshotPlugin.getClueType()
focal_class.full_signature: @VisibleForTesting String getClueType()
focal_class.identifier: getClueType
focal_class.modifiers: @VisibleForTesting
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getClueType()
focal_class.class_method_signature: ScreenshotPlugin.getBarrowsNumber()
focal_class.full_signature: @VisibleForTesting int getBarrowsNumber()
focal_class.identifier: getBarrowsNumber
focal_class.modifiers: @VisibleForTesting
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getBarrowsNumber()
focal_class.class_method_signature: ScreenshotPlugin.getChambersOfXericNumber()
focal_class.full_signature: @VisibleForTesting int getChambersOfXericNumber()
focal_class.identifier: getChambersOfXericNumber
focal_class.modifiers: @VisibleForTesting
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getChambersOfXericNumber()
focal_class.class_method_signature: ScreenshotPlugin.getChambersOfXericChallengeNumber()
focal_class.full_signature: @VisibleForTesting int getChambersOfXericChallengeNumber()
focal_class.identifier: getChambersOfXericChallengeNumber
focal_class.modifiers: @VisibleForTesting
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getChambersOfXericChallengeNumber()
focal_class.class_method_signature: ScreenshotPlugin.gettheatreOfBloodNumber()
focal_class.full_signature: @VisibleForTesting int gettheatreOfBloodNumber()
focal_class.identifier: gettheatreOfBloodNumber
focal_class.modifiers: @VisibleForTesting
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int gettheatreOfBloodNumber()
focal_class.superclass: extends Plugin
focal_method.body: @Subscribe
  	public void onChatMessage(ChatMessage event)
  	{
  		if (event.getType() != ChatMessageType.GAMEMESSAGE
  			&& event.getType() != ChatMessageType.SPAM
  			&& event.getType() != ChatMessageType.TRADE
  			&& event.getType() != ChatMessageType.FRIENDSCHATNOTIFICATION)
  		{
  			return;
  		}
  
  		String chatMessage = event.getMessage();
  
  		if (chatMessage.contains("You have completed") && chatMessage.contains("Treasure"))
  		{
  			Matcher m = NUMBER_PATTERN.matcher(Text.removeTags(chatMessage));
  			if (m.find())
  			{
  				clueNumber = Integer.valueOf(m.group());
  				clueType = chatMessage.substring(chatMessage.lastIndexOf(m.group()) + m.group().length() + 1, chatMessage.indexOf("Treasure") - 1);
  				return;
  			}
  		}
  
  		if (chatMessage.startsWith("Your Barrows chest count is"))
  		{
  			Matcher m = NUMBER_PATTERN.matcher(Text.removeTags(chatMessage));
  			if (m.find())
  			{
  				barrowsNumber = Integer.valueOf(m.group());
  				return;
  			}
  		}
  
  		if (chatMessage.startsWith("Your completed Chambers of Xeric count is:"))
  		{
  			Matcher m = NUMBER_PATTERN.matcher(Text.removeTags(chatMessage));
  			if (m.find())
  			{
  				chambersOfXericNumber = Integer.valueOf(m.group());
  				return;
  			}
  		}
  
  		if (chatMessage.startsWith("Your completed Chambers of Xeric Challenge Mode count is:"))
  		{
  			Matcher m = NUMBER_PATTERN.matcher(Text.removeTags(chatMessage));
  			if (m.find())
  			{
  				chambersOfXericChallengeNumber = Integer.valueOf(m.group());
  				return;
  			}
  		}
  
  		if (chatMessage.startsWith("Your completed Theatre of Blood count is:"))
  		{
  			Matcher m = NUMBER_PATTERN.matcher(Text.removeTags(chatMessage));
  			if (m.find())
  			{
  				theatreOfBloodNumber = Integer.valueOf(m.group());
  				return;
  			}
  		}
  
  		if (config.screenshotKick() && chatMessage.equals("Your request to kick/ban this user was successful."))
  		{
  			if (kickPlayerName == null)
  			{
  				return;
  			}
  
  			takeScreenshot("Kick " + kickPlayerName, "Friends Chat Kicks");
  			kickPlayerName = null;
  		}
  
  		if (config.screenshotPet() && PET_MESSAGES.stream().anyMatch(chatMessage::contains))
  		{
  			String fileName = "Pet";
  			takeScreenshot(fileName, "Pets");
  		}
  
  		if (config.screenshotBossKills())
  		{
  			Matcher m = BOSSKILL_MESSAGE_PATTERN.matcher(chatMessage);
  			if (m.matches())
  			{
  				String bossName = m.group(1);
  				String bossKillcount = m.group(2);
  				String fileName = bossName + "(" + bossKillcount + ")";
  				takeScreenshot(fileName, "Boss Kills");
  			}
  		}
  
  		if (chatMessage.equals(CHEST_LOOTED_MESSAGE) && config.screenshotRewards())
  		{
  			final int regionID = client.getLocalPlayer().getWorldLocation().getRegionID();
  			String eventName = CHEST_LOOT_EVENTS.get(regionID);
  			if (eventName != null)
  			{
  				takeScreenshot(eventName, "Chest Loot");
  			}
  		}
  
  		if (config.screenshotValuableDrop())
  		{
  			Matcher m = VALUABLE_DROP_PATTERN.matcher(chatMessage);
  			if (m.matches())
  			{
  				String valuableDropName = m.group(1);
  				String fileName = "Valuable drop " + valuableDropName;
  				takeScreenshot(fileName, "Valuable Drops");
  			}
  		}
  
  		if (config.screenshotUntradeableDrop() && !isInsideGauntlet())
  		{
  			Matcher m = UNTRADEABLE_DROP_PATTERN.matcher(chatMessage);
  			if (m.matches())
  			{
  				String untradeableDropName = m.group(1);
  				String fileName = "Untradeable drop " + untradeableDropName;
  				takeScreenshot(fileName, "Untradeable Drops");
  			}
  		}
  
  		if (config.screenshotDuels())
  		{
  			Matcher m = DUEL_END_PATTERN.matcher(chatMessage);
  			if (m.find())
  			{
  				String result = m.group(1);
  				String count = m.group(2);
  				String fileName = "Duel " + result + " (" + count + ")";
  				takeScreenshot(fileName, "Duels");
  			}
  		}
  	}
focal_method.class_method_signature: ScreenshotPlugin.onChatMessage(ChatMessage event)
focal_method.full_signature: @Subscribe public void onChatMessage(ChatMessage event)
focal_method.identifier: onChatMessage
focal_method.invocations: getType getType getType getType getMessage contains contains matcher removeTags find valueOf group substring lastIndexOf group length group indexOf startsWith matcher removeTags find valueOf group startsWith matcher removeTags find valueOf group startsWith matcher removeTags find valueOf group startsWith matcher removeTags find valueOf group screenshotKick equals takeScreenshot screenshotPet anyMatch stream takeScreenshot screenshotBossKills matcher matches group group takeScreenshot equals screenshotRewards getRegionID getWorldLocation getLocalPlayer get takeScreenshot screenshotValuableDrop matcher matches group takeScreenshot screenshotUntradeableDrop isInsideGauntlet matcher matches group takeScreenshot screenshotDuels matcher find group group takeScreenshot
focal_method.modifiers: @Subscribe public
focal_method.parameters: (ChatMessage event)
focal_method.return: void
focal_method.signature: void onChatMessage(ChatMessage event)