test_class.declarator: HERB_IDS_TO_NAMES = ImmutableMap.<Integer, String>builder()
  		.put(ItemID.GRIMY_GUAM_LEAF, "Grimy guam leaf")
  		.put(ItemID.GRIMY_MARRENTILL, "Grimy marrentill")
  		.put(ItemID.GRIMY_TARROMIN, "Grimy tarromin")
  		.put(ItemID.GRIMY_HARRALANDER, "Grimy harralander")
  		.put(ItemID.GRIMY_RANARR_WEED, "Grimy ranarr weed")
  		.put(ItemID.GRIMY_IRIT_LEAF, "Grimy irit leaf")
  		.put(ItemID.GRIMY_AVANTOE, "Grimy avantoe")
  		.put(ItemID.GRIMY_KWUARM, "Grimy kwuarm")
  		.put(ItemID.GRIMY_SNAPDRAGON, "Grimy snapdragon")
  		.put(ItemID.GRIMY_CADANTINE, "Grimy cadantine")
  		.put(ItemID.GRIMY_LANTADYME, "Grimy lantadyme")
  		.put(ItemID.GRIMY_DWARF_WEED, "Grimy dwarf weed")
  		.put(ItemID.GRIMY_TORSTOL, "Grimy torstol")
  		.build()
test_class.modifier: private static final
test_class.original_string: private static final Map<Integer, String> HERB_IDS_TO_NAMES = ImmutableMap.<Integer, String>builder()
  		.put(ItemID.GRIMY_GUAM_LEAF, "Grimy guam leaf")
  		.put(ItemID.GRIMY_MARRENTILL, "Grimy marrentill")
  		.put(ItemID.GRIMY_TARROMIN, "Grimy tarromin")
  		.put(ItemID.GRIMY_HARRALANDER, "Grimy harralander")
  		.put(ItemID.GRIMY_RANARR_WEED, "Grimy ranarr weed")
  		.put(ItemID.GRIMY_IRIT_LEAF, "Grimy irit leaf")
  		.put(ItemID.GRIMY_AVANTOE, "Grimy avantoe")
  		.put(ItemID.GRIMY_KWUARM, "Grimy kwuarm")
  		.put(ItemID.GRIMY_SNAPDRAGON, "Grimy snapdragon")
  		.put(ItemID.GRIMY_CADANTINE, "Grimy cadantine")
  		.put(ItemID.GRIMY_LANTADYME, "Grimy lantadyme")
  		.put(ItemID.GRIMY_DWARF_WEED, "Grimy dwarf weed")
  		.put(ItemID.GRIMY_TORSTOL, "Grimy torstol")
  		.build();
test_class.type: Map<Integer, String>
test_class.var_name: HERB_IDS_TO_NAMES
test_class.declarator: scheduledExecutorService
test_class.modifier: @Mock
  	@Bind
  	private
test_class.original_string: @Mock
  	@Bind
  	private ScheduledExecutorService scheduledExecutorService;
test_class.type: ScheduledExecutorService
test_class.var_name: scheduledExecutorService
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: spriteManager
test_class.modifier: @Mock
  	@Bind
  	private
test_class.original_string: @Mock
  	@Bind
  	private SpriteManager spriteManager;
test_class.type: SpriteManager
test_class.var_name: spriteManager
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.declarator: lootTrackerPlugin
test_class.modifier: @Inject
  	private
test_class.original_string: @Inject
  	private LootTrackerPlugin lootTrackerPlugin;
test_class.type: LootTrackerPlugin
test_class.var_name: lootTrackerPlugin
test_class.declarator: lootTrackerConfig
test_class.modifier: @Mock
  	@Bind
  	private
test_class.original_string: @Mock
  	@Bind
  	private LootTrackerConfig lootTrackerConfig;
test_class.type: LootTrackerConfig
test_class.var_name: lootTrackerConfig
test_class.declarator: sessionManager
test_class.modifier: @Mock
  	@Bind
  	private
test_class.original_string: @Mock
  	@Bind
  	private SessionManager sessionManager;
test_class.type: SessionManager
test_class.var_name: sessionManager
test_class.declarator: itemManager
test_class.modifier: @Mock
  	@Bind
  	private
test_class.original_string: @Mock
  	@Bind
  	private ItemManager itemManager;
test_class.type: ItemManager
test_class.var_name: itemManager
test_class.declarator: chatMessageManager
test_class.modifier: @Mock
  	@Bind
  	private
test_class.original_string: @Mock
  	@Bind
  	private ChatMessageManager chatMessageManager;
test_class.type: ChatMessageManager
test_class.var_name: chatMessageManager
test_class.declarator: lootTrackerClient
test_class.modifier: @Mock
  	@Bind
  	private
test_class.original_string: @Mock
  	@Bind
  	private LootTrackerClient lootTrackerClient;
test_class.type: LootTrackerClient
test_class.var_name: lootTrackerClient
test_class.file: runelite-client/src/test/java/net/runelite/client/plugins/loottracker/LootTrackerPluginTest.java
test_class.identifier: LootTrackerPluginTest
test_case.body: @Test
  	public void testFirstClue()
  	{
  		ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.GAMEMESSAGE, "", "You have completed 1 master Treasure Trail.", "", 0);
  		lootTrackerPlugin.onChatMessage(chatMessage);
  
  		assertEquals("Clue Scroll (Master)", lootTrackerPlugin.eventType);
  		assertEquals(LootRecordType.EVENT, lootTrackerPlugin.lootRecordType);
  	}
test_case.class_method_signature: LootTrackerPluginTest.testFirstClue()
test_case.full_signature: @Test public void testFirstClue()
test_case.identifier: testFirstClue
test_case.invocations: onChatMessage assertEquals assertEquals
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testFirstClue()
focal_class.declarator: CLUE_SCROLL_PATTERN = Pattern.compile("You have completed [0-9]+ ([a-z]+) Treasure Trails?\\.")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern CLUE_SCROLL_PATTERN = Pattern.compile("You have completed [0-9]+ ([a-z]+) Treasure Trails?\\.");
focal_class.type: Pattern
focal_class.var_name: CLUE_SCROLL_PATTERN
focal_class.declarator: THEATRE_OF_BLOOD_REGION = 12867
focal_class.modifier: private static final
focal_class.original_string: private static final int THEATRE_OF_BLOOD_REGION = 12867;
focal_class.type: int
focal_class.var_name: THEATRE_OF_BLOOD_REGION
focal_class.declarator: HERBIBOAR_LOOTED_MESSAGE = "You harvest herbs from the herbiboar, whereupon it escapes."
focal_class.modifier: @VisibleForTesting
  	static final
focal_class.original_string: @VisibleForTesting
  	static final String HERBIBOAR_LOOTED_MESSAGE = "You harvest herbs from the herbiboar, whereupon it escapes.";
focal_class.type: String
focal_class.var_name: HERBIBOAR_LOOTED_MESSAGE
focal_class.declarator: HERBIBOAR_EVENT = "Herbiboar"
focal_class.modifier: private static final
focal_class.original_string: private static final String HERBIBOAR_EVENT = "Herbiboar";
focal_class.type: String
focal_class.var_name: HERBIBOAR_EVENT
focal_class.declarator: HERBIBOAR_HERB_SACK_PATTERN = Pattern.compile(".+(Grimy .+?) herb.+")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern HERBIBOAR_HERB_SACK_PATTERN = Pattern.compile(".+(Grimy .+?) herb.+");
focal_class.type: Pattern
focal_class.var_name: HERBIBOAR_HERB_SACK_PATTERN
focal_class.declarator: SEEDPACK_EVENT = "Seed pack"
focal_class.modifier: private static final
focal_class.original_string: private static final String SEEDPACK_EVENT = "Seed pack";
focal_class.type: String
focal_class.var_name: SEEDPACK_EVENT
focal_class.declarator: HESPORI_LOOTED_MESSAGE = "You have successfully cleared this patch for new crops."
focal_class.modifier: private static final
focal_class.original_string: private static final String HESPORI_LOOTED_MESSAGE = "You have successfully cleared this patch for new crops.";
focal_class.type: String
focal_class.var_name: HESPORI_LOOTED_MESSAGE
focal_class.declarator: HESPORI_EVENT = "Hespori"
focal_class.modifier: private static final
focal_class.original_string: private static final String HESPORI_EVENT = "Hespori";
focal_class.type: String
focal_class.var_name: HESPORI_EVENT
focal_class.declarator: HESPORI_REGION = 5021
focal_class.modifier: private static final
focal_class.original_string: private static final int HESPORI_REGION = 5021;
focal_class.type: int
focal_class.var_name: HESPORI_REGION
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: LARRAN_LOOTED_PATTERN = Pattern.compile("You have opened Larran's (big|small) chest .*")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern LARRAN_LOOTED_PATTERN = Pattern.compile("You have opened Larran's (big|small) chest .*");
focal_class.type: Pattern
focal_class.var_name: LARRAN_LOOTED_PATTERN
focal_class.declarator: STONE_CHEST_LOOTED_MESSAGE = "You steal some loot from the chest."
focal_class.modifier: private static final
focal_class.original_string: private static final String STONE_CHEST_LOOTED_MESSAGE = "You steal some loot from the chest.";
focal_class.type: String
focal_class.var_name: STONE_CHEST_LOOTED_MESSAGE
focal_class.declarator: DORGESH_KAAN_CHEST_LOOTED_MESSAGE = "You find treasure inside!"
focal_class.modifier: private static final
focal_class.original_string: private static final String DORGESH_KAAN_CHEST_LOOTED_MESSAGE = "You find treasure inside!";
focal_class.type: String
focal_class.var_name: DORGESH_KAAN_CHEST_LOOTED_MESSAGE
focal_class.declarator: GRUBBY_CHEST_LOOTED_MESSAGE = "You have opened the Grubby Chest"
focal_class.modifier: private static final
focal_class.original_string: private static final String GRUBBY_CHEST_LOOTED_MESSAGE = "You have opened the Grubby Chest";
focal_class.type: String
focal_class.var_name: GRUBBY_CHEST_LOOTED_MESSAGE
focal_class.declarator: HAM_CHEST_LOOTED_PATTERN = Pattern.compile("Your (?<key>[a-z]+) key breaks in the lock.*")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern HAM_CHEST_LOOTED_PATTERN = Pattern.compile("Your (?<key>[a-z]+) key breaks in the lock.*");
focal_class.type: Pattern
focal_class.var_name: HAM_CHEST_LOOTED_PATTERN
focal_class.declarator: HAM_STOREROOM_REGION = 10321
focal_class.modifier: private static final
focal_class.original_string: private static final int HAM_STOREROOM_REGION = 10321;
focal_class.type: int
focal_class.var_name: HAM_STOREROOM_REGION
focal_class.declarator: CHEST_EVENT_TYPES = new ImmutableMap.Builder<Integer, String>().
  		put(5179, "Brimstone Chest").
  		put(11573, "Crystal Chest").
  		put(12093, "Larran's big chest").
  		put(12127, "The Gauntlet").
  		put(13113, "Larran's small chest").
  		put(13151, "Elven Crystal Chest").
  		put(5277, "Stone chest").
  		put(10835, "Dorgesh-Kaan Chest").
  		put(10834, "Dorgesh-Kaan Chest").
  		put(7323, "Grubby Chest").
  		build()
focal_class.modifier: private static final
focal_class.original_string: private static final Map<Integer, String> CHEST_EVENT_TYPES = new ImmutableMap.Builder<Integer, String>().
  		put(5179, "Brimstone Chest").
  		put(11573, "Crystal Chest").
  		put(12093, "Larran's big chest").
  		put(12127, "The Gauntlet").
  		put(13113, "Larran's small chest").
  		put(13151, "Elven Crystal Chest").
  		put(5277, "Stone chest").
  		put(10835, "Dorgesh-Kaan Chest").
  		put(10834, "Dorgesh-Kaan Chest").
  		put(7323, "Grubby Chest").
  		build();
focal_class.type: Map<Integer, String>
focal_class.var_name: CHEST_EVENT_TYPES
focal_class.declarator: SHADE_CHEST_NO_KEY_PATTERN = Pattern.compile("You need a [a-z]+ key with a [a-z]+ trim to open this chest .*")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern SHADE_CHEST_NO_KEY_PATTERN = Pattern.compile("You need a [a-z]+ key with a [a-z]+ trim to open this chest .*");
focal_class.type: Pattern
focal_class.var_name: SHADE_CHEST_NO_KEY_PATTERN
focal_class.declarator: SHADE_CHEST_OBJECTS = new ImmutableMap.Builder<Integer, String>().
  		put(ObjectID.BRONZE_CHEST, "Bronze key red").
  		put(ObjectID.BRONZE_CHEST_4112, "Bronze key brown").
  		put(ObjectID.BRONZE_CHEST_4113, "Bronze key crimson").
  		put(ObjectID.BRONZE_CHEST_4114, "Bronze key black").
  		put(ObjectID.BRONZE_CHEST_4115, "Bronze key purple").
  		put(ObjectID.STEEL_CHEST, "Steel key red").
  		put(ObjectID.STEEL_CHEST_4117, "Steel key brown").
  		put(ObjectID.STEEL_CHEST_4118, "Steel key crimson").
  		put(ObjectID.STEEL_CHEST_4119, "Steel key black").
  		put(ObjectID.STEEL_CHEST_4120, "Steel key purple").
  		put(ObjectID.BLACK_CHEST, "Black key red").
  		put(ObjectID.BLACK_CHEST_4122, "Black key brown").
  		put(ObjectID.BLACK_CHEST_4123, "Black key crimson").
  		put(ObjectID.BLACK_CHEST_4124, "Black key black").
  		put(ObjectID.BLACK_CHEST_4125, "Black key purple").
  		put(ObjectID.SILVER_CHEST, "Silver key red").
  		put(ObjectID.SILVER_CHEST_4127, "Silver key brown").
  		put(ObjectID.SILVER_CHEST_4128, "Silver key crimson").
  		put(ObjectID.SILVER_CHEST_4129, "Silver key black").
  		put(ObjectID.SILVER_CHEST_4130, "Silver key purple").
  		build()
focal_class.modifier: private static final
focal_class.original_string: private static final Map<Integer, String> SHADE_CHEST_OBJECTS = new ImmutableMap.Builder<Integer, String>().
  		put(ObjectID.BRONZE_CHEST, "Bronze key red").
  		put(ObjectID.BRONZE_CHEST_4112, "Bronze key brown").
  		put(ObjectID.BRONZE_CHEST_4113, "Bronze key crimson").
  		put(ObjectID.BRONZE_CHEST_4114, "Bronze key black").
  		put(ObjectID.BRONZE_CHEST_4115, "Bronze key purple").
  		put(ObjectID.STEEL_CHEST, "Steel key red").
  		put(ObjectID.STEEL_CHEST_4117, "Steel key brown").
  		put(ObjectID.STEEL_CHEST_4118, "Steel key crimson").
  		put(ObjectID.STEEL_CHEST_4119, "Steel key black").
  		put(ObjectID.STEEL_CHEST_4120, "Steel key purple").
  		put(ObjectID.BLACK_CHEST, "Black key red").
  		put(ObjectID.BLACK_CHEST_4122, "Black key brown").
  		put(ObjectID.BLACK_CHEST_4123, "Black key crimson").
  		put(ObjectID.BLACK_CHEST_4124, "Black key black").
  		put(ObjectID.BLACK_CHEST_4125, "Black key purple").
  		put(ObjectID.SILVER_CHEST, "Silver key red").
  		put(ObjectID.SILVER_CHEST_4127, "Silver key brown").
  		put(ObjectID.SILVER_CHEST_4128, "Silver key crimson").
  		put(ObjectID.SILVER_CHEST_4129, "Silver key black").
  		put(ObjectID.SILVER_CHEST_4130, "Silver key purple").
  		build();
focal_class.type: Map<Integer, String>
focal_class.var_name: SHADE_CHEST_OBJECTS
focal_class.declarator: COFFIN_LOOTED_MESSAGE = "You push the coffin lid aside."
focal_class.modifier: private static final
focal_class.original_string: private static final String COFFIN_LOOTED_MESSAGE = "You push the coffin lid aside.";
focal_class.type: String
focal_class.var_name: COFFIN_LOOTED_MESSAGE
focal_class.declarator: HALLOWED_SEPULCHRE_COFFIN_EVENT = "Coffin (Hallowed Sepulchre)"
focal_class.modifier: private static final
focal_class.original_string: private static final String HALLOWED_SEPULCHRE_COFFIN_EVENT = "Coffin (Hallowed Sepulchre)";
focal_class.type: String
focal_class.var_name: HALLOWED_SEPULCHRE_COFFIN_EVENT
focal_class.declarator: HALLOWED_SEPULCHRE_MAP_REGIONS = ImmutableSet.of(8797, 10077, 9308, 10074, 9050)
focal_class.modifier: private static final
focal_class.original_string: private static final Set<Integer> HALLOWED_SEPULCHRE_MAP_REGIONS = ImmutableSet.of(8797, 10077, 9308, 10074, 9050);
focal_class.type: Set<Integer>
focal_class.var_name: HALLOWED_SEPULCHRE_MAP_REGIONS
focal_class.declarator: LAST_MAN_STANDING_REGIONS = ImmutableSet.of(13658, 13659, 13914, 13915, 13916)
focal_class.modifier: private static final
focal_class.original_string: private static final Set<Integer> LAST_MAN_STANDING_REGIONS = ImmutableSet.of(13658, 13659, 13914, 13915, 13916);
focal_class.type: Set<Integer>
focal_class.var_name: LAST_MAN_STANDING_REGIONS
focal_class.declarator: PICKPOCKET_REGEX = Pattern.compile("You pick (the )?(?<target>.+)'s? pocket.*")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern PICKPOCKET_REGEX = Pattern.compile("You pick (the )?(?<target>.+)'s? pocket.*");
focal_class.type: Pattern
focal_class.var_name: PICKPOCKET_REGEX
focal_class.declarator: BIRDNEST_EVENT = "Bird nest"
focal_class.modifier: private static final
focal_class.original_string: private static final String BIRDNEST_EVENT = "Bird nest";
focal_class.type: String
focal_class.var_name: BIRDNEST_EVENT
focal_class.declarator: BIRDNEST_IDS = ImmutableSet.of(ItemID.BIRD_NEST, ItemID.BIRD_NEST_5071, ItemID.BIRD_NEST_5072, ItemID.BIRD_NEST_5073, ItemID.BIRD_NEST_5074, ItemID.BIRD_NEST_7413, ItemID.BIRD_NEST_13653, ItemID.BIRD_NEST_22798, ItemID.BIRD_NEST_22800)
focal_class.modifier: private static final
focal_class.original_string: private static final Set<Integer> BIRDNEST_IDS = ImmutableSet.of(ItemID.BIRD_NEST, ItemID.BIRD_NEST_5071, ItemID.BIRD_NEST_5072, ItemID.BIRD_NEST_5073, ItemID.BIRD_NEST_5074, ItemID.BIRD_NEST_7413, ItemID.BIRD_NEST_13653, ItemID.BIRD_NEST_22798, ItemID.BIRD_NEST_22800);
focal_class.type: Set<Integer>
focal_class.var_name: BIRDNEST_IDS
focal_class.declarator: BIRDHOUSE_PATTERN = Pattern.compile("You dismantle and discard the trap, retrieving (?:(?:a|\\d{1,2}) nests?, )?10 dead birds, \\d{1,3} feathers and (\\d,?\\d{1,3}) Hunter XP\\.")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern BIRDHOUSE_PATTERN = Pattern.compile("You dismantle and discard the trap, retrieving (?:(?:a|\\d{1,2}) nests?, )?10 dead birds, \\d{1,3} feathers and (\\d,?\\d{1,3}) Hunter XP\\.");
focal_class.type: Pattern
focal_class.var_name: BIRDHOUSE_PATTERN
focal_class.declarator: BIRDHOUSE_XP_TO_TYPE = new ImmutableMap.Builder<Integer, String>().
  		put(280, "Regular Bird House").
  		put(420, "Oak Bird House").
  		put(560, "Willow Bird House").
  		put(700, "Teak Bird House").
  		put(820, "Maple Bird House").
  		put(960, "Mahogany Bird House").
  		put(1020, "Yew Bird House").
  		put(1140, "Magic Bird House").
  		put(1200, "Redwood Bird House").
  		build()
focal_class.modifier: private static final
focal_class.original_string: private static final Map<Integer, String> BIRDHOUSE_XP_TO_TYPE = new ImmutableMap.Builder<Integer, String>().
  		put(280, "Regular Bird House").
  		put(420, "Oak Bird House").
  		put(560, "Willow Bird House").
  		put(700, "Teak Bird House").
  		put(820, "Maple Bird House").
  		put(960, "Mahogany Bird House").
  		put(1020, "Yew Bird House").
  		put(1140, "Magic Bird House").
  		put(1200, "Redwood Bird House").
  		build();
focal_class.type: Map<Integer, String>
focal_class.var_name: BIRDHOUSE_XP_TO_TYPE
focal_class.declarator: PICKPOCKET_DISAMBIGUATION_MAP = ImmutableMultimap.of(
  		"H.A.M. Member", "Man",
  		"H.A.M. Member", "Woman"
  	)
focal_class.modifier: private static final
focal_class.original_string: private static final Multimap<String, String> PICKPOCKET_DISAMBIGUATION_MAP = ImmutableMultimap.of(
  		"H.A.M. Member", "Man",
  		"H.A.M. Member", "Woman"
  	);
focal_class.type: Multimap<String, String>
focal_class.var_name: PICKPOCKET_DISAMBIGUATION_MAP
focal_class.declarator: CASKET_EVENT = "Casket"
focal_class.modifier: private static final
focal_class.original_string: private static final String CASKET_EVENT = "Casket";
focal_class.type: String
focal_class.var_name: CASKET_EVENT
focal_class.declarator: VOWELS = ImmutableSet.of('a', 'e', 'i', 'o', 'u')
focal_class.modifier: private static final
focal_class.original_string: private static final Set<Character> VOWELS = ImmutableSet.of('a', 'e', 'i', 'o', 'u');
focal_class.type: Set<Character>
focal_class.var_name: VOWELS
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: itemManager
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private ItemManager itemManager;
focal_class.type: ItemManager
focal_class.var_name: itemManager
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: config
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private LootTrackerConfig config;
focal_class.type: LootTrackerConfig
focal_class.var_name: config
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: clientThread
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private ClientThread clientThread;
focal_class.type: ClientThread
focal_class.var_name: clientThread
focal_class.declarator: sessionManager
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private SessionManager sessionManager;
focal_class.type: SessionManager
focal_class.var_name: sessionManager
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: eventBus
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private EventBus eventBus;
focal_class.type: EventBus
focal_class.var_name: eventBus
focal_class.declarator: chatMessageManager
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private ChatMessageManager chatMessageManager;
focal_class.type: ChatMessageManager
focal_class.var_name: chatMessageManager
focal_class.declarator: lootManager
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private LootManager lootManager;
focal_class.type: LootManager
focal_class.var_name: lootManager
focal_class.declarator: panel
focal_class.modifier: private
focal_class.original_string: private LootTrackerPanel panel;
focal_class.type: LootTrackerPanel
focal_class.var_name: panel
focal_class.declarator: navButton
focal_class.modifier: private
focal_class.original_string: private NavigationButton navButton;
focal_class.type: NavigationButton
focal_class.var_name: navButton
focal_class.declarator: eventType
focal_class.modifier: @VisibleForTesting
focal_class.original_string: @VisibleForTesting
  	String eventType;
focal_class.type: String
focal_class.var_name: eventType
focal_class.declarator: lootRecordType
focal_class.modifier: @VisibleForTesting
focal_class.original_string: @VisibleForTesting
  	LootRecordType lootRecordType;
focal_class.type: LootRecordType
focal_class.var_name: lootRecordType
focal_class.declarator: metadata
focal_class.modifier: private
focal_class.original_string: private Object metadata;
focal_class.type: Object
focal_class.var_name: metadata
focal_class.declarator: chestLooted
focal_class.modifier: private
focal_class.original_string: private boolean chestLooted;
focal_class.type: boolean
focal_class.var_name: chestLooted
focal_class.declarator: lastPickpocketTarget
focal_class.modifier: private
focal_class.original_string: private String lastPickpocketTarget;
focal_class.type: String
focal_class.var_name: lastPickpocketTarget
focal_class.declarator: ignoredItems = new ArrayList<>()
focal_class.modifier: private
focal_class.original_string: private List<String> ignoredItems = new ArrayList<>();
focal_class.type: List<String>
focal_class.var_name: ignoredItems
focal_class.declarator: ignoredEvents = new ArrayList<>()
focal_class.modifier: private
focal_class.original_string: private List<String> ignoredEvents = new ArrayList<>();
focal_class.type: List<String>
focal_class.var_name: ignoredEvents
focal_class.declarator: inventorySnapshot
focal_class.modifier: private
focal_class.original_string: private Multiset<Integer> inventorySnapshot;
focal_class.type: Multiset<Integer>
focal_class.var_name: inventorySnapshot
focal_class.declarator: lootTrackerClient
focal_class.modifier: @Getter(AccessLevel.PACKAGE)
  	@Inject
  	private
focal_class.original_string: @Getter(AccessLevel.PACKAGE)
  	@Inject
  	private LootTrackerClient lootTrackerClient;
focal_class.type: LootTrackerClient
focal_class.var_name: lootTrackerClient
focal_class.declarator: queuedLoots = new ArrayList<>()
focal_class.modifier: private final
focal_class.original_string: private final List<LootRecord> queuedLoots = new ArrayList<>();
focal_class.type: List<LootRecord>
focal_class.var_name: queuedLoots
focal_class.file: runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPlugin.java
focal_class.identifier: LootTrackerPlugin
focal_class.class_method_signature: LootTrackerPlugin.stack(Collection<ItemStack> items)
focal_class.full_signature: private static Collection<ItemStack> stack(Collection<ItemStack> items)
focal_class.identifier: stack
focal_class.modifiers: private static
focal_class.parameters: (Collection<ItemStack> items)
focal_class.return: Collection<ItemStack>
focal_class.signature: Collection<ItemStack> stack(Collection<ItemStack> items)
focal_class.class_method_signature: LootTrackerPlugin.provideLootTrackerClient(OkHttpClient okHttpClient)
focal_class.full_signature: @Provides LootTrackerClient provideLootTrackerClient(OkHttpClient okHttpClient)
focal_class.identifier: provideLootTrackerClient
focal_class.modifiers: @Provides
focal_class.parameters: (OkHttpClient okHttpClient)
focal_class.return: LootTrackerClient
focal_class.signature: LootTrackerClient provideLootTrackerClient(OkHttpClient okHttpClient)
focal_class.class_method_signature: LootTrackerPlugin.provideConfig(ConfigManager configManager)
focal_class.full_signature: @Provides LootTrackerConfig provideConfig(ConfigManager configManager)
focal_class.identifier: provideConfig
focal_class.modifiers: @Provides
focal_class.parameters: (ConfigManager configManager)
focal_class.return: LootTrackerConfig
focal_class.signature: LootTrackerConfig provideConfig(ConfigManager configManager)
focal_class.class_method_signature: LootTrackerPlugin.onSessionOpen(SessionOpen sessionOpen)
focal_class.full_signature: @Subscribe public void onSessionOpen(SessionOpen sessionOpen)
focal_class.identifier: onSessionOpen
focal_class.modifiers: @Subscribe public
focal_class.parameters: (SessionOpen sessionOpen)
focal_class.return: void
focal_class.signature: void onSessionOpen(SessionOpen sessionOpen)
focal_class.class_method_signature: LootTrackerPlugin.onSessionClose(SessionClose sessionClose)
focal_class.full_signature: @Subscribe public void onSessionClose(SessionClose sessionClose)
focal_class.identifier: onSessionClose
focal_class.modifiers: @Subscribe public
focal_class.parameters: (SessionClose sessionClose)
focal_class.return: void
focal_class.signature: void onSessionClose(SessionClose sessionClose)
focal_class.class_method_signature: LootTrackerPlugin.onConfigChanged(ConfigChanged event)
focal_class.full_signature: @Subscribe public void onConfigChanged(ConfigChanged event)
focal_class.identifier: onConfigChanged
focal_class.modifiers: @Subscribe public
focal_class.parameters: (ConfigChanged event)
focal_class.return: void
focal_class.signature: void onConfigChanged(ConfigChanged event)
focal_class.class_method_signature: LootTrackerPlugin.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: LootTrackerPlugin.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: LootTrackerPlugin.onClientShutdown(ClientShutdown event)
focal_class.full_signature: @Subscribe public void onClientShutdown(ClientShutdown event)
focal_class.identifier: onClientShutdown
focal_class.modifiers: @Subscribe public
focal_class.parameters: (ClientShutdown event)
focal_class.return: void
focal_class.signature: void onClientShutdown(ClientShutdown event)
focal_class.class_method_signature: LootTrackerPlugin.onGameStateChanged(final GameStateChanged event)
focal_class.full_signature: @Subscribe public void onGameStateChanged(final GameStateChanged event)
focal_class.identifier: onGameStateChanged
focal_class.modifiers: @Subscribe public
focal_class.parameters: (final GameStateChanged event)
focal_class.return: void
focal_class.signature: void onGameStateChanged(final GameStateChanged event)
focal_class.class_method_signature: LootTrackerPlugin.addLoot(@NonNull String name, int combatLevel, LootRecordType type, Object metadata, Collection<ItemStack> items)
focal_class.full_signature:  void addLoot(@NonNull String name, int combatLevel, LootRecordType type, Object metadata, Collection<ItemStack> items)
focal_class.identifier: addLoot
focal_class.parameters: (@NonNull String name, int combatLevel, LootRecordType type, Object metadata, Collection<ItemStack> items)
focal_class.return: void
focal_class.signature: void addLoot(@NonNull String name, int combatLevel, LootRecordType type, Object metadata, Collection<ItemStack> items)
focal_class.class_method_signature: LootTrackerPlugin.onNpcLootReceived(final NpcLootReceived npcLootReceived)
focal_class.full_signature: @Subscribe public void onNpcLootReceived(final NpcLootReceived npcLootReceived)
focal_class.identifier: onNpcLootReceived
focal_class.modifiers: @Subscribe public
focal_class.parameters: (final NpcLootReceived npcLootReceived)
focal_class.return: void
focal_class.signature: void onNpcLootReceived(final NpcLootReceived npcLootReceived)
focal_class.class_method_signature: LootTrackerPlugin.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: LootTrackerPlugin.onWidgetLoaded(WidgetLoaded widgetLoaded)
focal_class.full_signature: @Subscribe public void onWidgetLoaded(WidgetLoaded widgetLoaded)
focal_class.identifier: onWidgetLoaded
focal_class.modifiers: @Subscribe public
focal_class.parameters: (WidgetLoaded widgetLoaded)
focal_class.return: void
focal_class.signature: void onWidgetLoaded(WidgetLoaded widgetLoaded)
focal_class.class_method_signature: LootTrackerPlugin.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: LootTrackerPlugin.onItemContainerChanged(ItemContainerChanged event)
focal_class.full_signature: @Subscribe public void onItemContainerChanged(ItemContainerChanged event)
focal_class.identifier: onItemContainerChanged
focal_class.modifiers: @Subscribe public
focal_class.parameters: (ItemContainerChanged event)
focal_class.return: void
focal_class.signature: void onItemContainerChanged(ItemContainerChanged event)
focal_class.class_method_signature: LootTrackerPlugin.onMenuOptionClicked(MenuOptionClicked event)
focal_class.full_signature: @Subscribe public void onMenuOptionClicked(MenuOptionClicked event)
focal_class.identifier: onMenuOptionClicked
focal_class.modifiers: @Subscribe public
focal_class.parameters: (MenuOptionClicked event)
focal_class.return: void
focal_class.signature: void onMenuOptionClicked(MenuOptionClicked event)
focal_class.class_method_signature: LootTrackerPlugin.submitLootTask()
focal_class.full_signature: @Schedule( period = 5, unit = ChronoUnit.MINUTES, asynchronous = true ) public void submitLootTask()
focal_class.identifier: submitLootTask
focal_class.modifiers: @Schedule( period = 5, unit = ChronoUnit.MINUTES, asynchronous = true ) public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void submitLootTask()
focal_class.class_method_signature: LootTrackerPlugin.submitLoot()
focal_class.full_signature: @Nullable private CompletableFuture<Void> submitLoot()
focal_class.identifier: submitLoot
focal_class.modifiers: @Nullable private
focal_class.parameters: ()
focal_class.return: CompletableFuture<Void>
focal_class.signature: CompletableFuture<Void> submitLoot()
focal_class.class_method_signature: LootTrackerPlugin.setEvent(LootRecordType lootRecordType, String eventType, Object metadata)
focal_class.full_signature: private void setEvent(LootRecordType lootRecordType, String eventType, Object metadata)
focal_class.identifier: setEvent
focal_class.modifiers: private
focal_class.parameters: (LootRecordType lootRecordType, String eventType, Object metadata)
focal_class.return: void
focal_class.signature: void setEvent(LootRecordType lootRecordType, String eventType, Object metadata)
focal_class.class_method_signature: LootTrackerPlugin.setEvent(LootRecordType lootRecordType, String eventType)
focal_class.full_signature: private void setEvent(LootRecordType lootRecordType, String eventType)
focal_class.identifier: setEvent
focal_class.modifiers: private
focal_class.parameters: (LootRecordType lootRecordType, String eventType)
focal_class.return: void
focal_class.signature: void setEvent(LootRecordType lootRecordType, String eventType)
focal_class.class_method_signature: LootTrackerPlugin.resetEvent()
focal_class.full_signature: private void resetEvent()
focal_class.identifier: resetEvent
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void resetEvent()
focal_class.class_method_signature: LootTrackerPlugin.takeInventorySnapshot()
focal_class.full_signature: private void takeInventorySnapshot()
focal_class.identifier: takeInventorySnapshot
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void takeInventorySnapshot()
focal_class.class_method_signature: LootTrackerPlugin.processInventoryLoot(String event, LootRecordType lootRecordType, Object metadata, ItemContainer inventoryContainer, Collection<ItemStack> groundItems)
focal_class.full_signature: private void processInventoryLoot(String event, LootRecordType lootRecordType, Object metadata, ItemContainer inventoryContainer, Collection<ItemStack> groundItems)
focal_class.identifier: processInventoryLoot
focal_class.modifiers: private
focal_class.parameters: (String event, LootRecordType lootRecordType, Object metadata, ItemContainer inventoryContainer, Collection<ItemStack> groundItems)
focal_class.return: void
focal_class.signature: void processInventoryLoot(String event, LootRecordType lootRecordType, Object metadata, ItemContainer inventoryContainer, Collection<ItemStack> groundItems)
focal_class.class_method_signature: LootTrackerPlugin.processHerbiboarHerbSackLoot(int timestamp)
focal_class.full_signature: private boolean processHerbiboarHerbSackLoot(int timestamp)
focal_class.identifier: processHerbiboarHerbSackLoot
focal_class.modifiers: private
focal_class.parameters: (int timestamp)
focal_class.return: boolean
focal_class.signature: boolean processHerbiboarHerbSackLoot(int timestamp)
focal_class.class_method_signature: LootTrackerPlugin.toggleItem(String name, boolean ignore)
focal_class.full_signature:  void toggleItem(String name, boolean ignore)
focal_class.identifier: toggleItem
focal_class.parameters: (String name, boolean ignore)
focal_class.return: void
focal_class.signature: void toggleItem(String name, boolean ignore)
focal_class.class_method_signature: LootTrackerPlugin.isIgnored(String name)
focal_class.full_signature:  boolean isIgnored(String name)
focal_class.identifier: isIgnored
focal_class.parameters: (String name)
focal_class.return: boolean
focal_class.signature: boolean isIgnored(String name)
focal_class.class_method_signature: LootTrackerPlugin.toggleEvent(String name, boolean ignore)
focal_class.full_signature:  void toggleEvent(String name, boolean ignore)
focal_class.identifier: toggleEvent
focal_class.parameters: (String name, boolean ignore)
focal_class.return: void
focal_class.signature: void toggleEvent(String name, boolean ignore)
focal_class.class_method_signature: LootTrackerPlugin.isEventIgnored(String name)
focal_class.full_signature:  boolean isEventIgnored(String name)
focal_class.identifier: isEventIgnored
focal_class.parameters: (String name)
focal_class.return: boolean
focal_class.signature: boolean isEventIgnored(String name)
focal_class.class_method_signature: LootTrackerPlugin.buildLootTrackerItem(int itemId, int quantity)
focal_class.full_signature: private LootTrackerItem buildLootTrackerItem(int itemId, int quantity)
focal_class.identifier: buildLootTrackerItem
focal_class.modifiers: private
focal_class.parameters: (int itemId, int quantity)
focal_class.return: LootTrackerItem
focal_class.signature: LootTrackerItem buildLootTrackerItem(int itemId, int quantity)
focal_class.class_method_signature: LootTrackerPlugin.buildEntries(final Collection<ItemStack> itemStacks)
focal_class.full_signature: private LootTrackerItem[] buildEntries(final Collection<ItemStack> itemStacks)
focal_class.identifier: buildEntries
focal_class.modifiers: private
focal_class.parameters: (final Collection<ItemStack> itemStacks)
focal_class.return: LootTrackerItem[]
focal_class.signature: LootTrackerItem[] buildEntries(final Collection<ItemStack> itemStacks)
focal_class.class_method_signature: LootTrackerPlugin.toGameItems(Collection<ItemStack> items)
focal_class.full_signature: private static Collection<GameItem> toGameItems(Collection<ItemStack> items)
focal_class.identifier: toGameItems
focal_class.modifiers: private static
focal_class.parameters: (Collection<ItemStack> items)
focal_class.return: Collection<GameItem>
focal_class.signature: Collection<GameItem> toGameItems(Collection<ItemStack> items)
focal_class.class_method_signature: LootTrackerPlugin.convertToLootTrackerRecord(final Collection<LootAggregate> records)
focal_class.full_signature: private Collection<LootTrackerRecord> convertToLootTrackerRecord(final Collection<LootAggregate> records)
focal_class.identifier: convertToLootTrackerRecord
focal_class.modifiers: private
focal_class.parameters: (final Collection<LootAggregate> records)
focal_class.return: Collection<LootTrackerRecord>
focal_class.signature: Collection<LootTrackerRecord> convertToLootTrackerRecord(final Collection<LootAggregate> records)
focal_class.class_method_signature: LootTrackerPlugin.isPlayerWithinMapRegion(Set<Integer> definedMapRegions)
focal_class.full_signature: private boolean isPlayerWithinMapRegion(Set<Integer> definedMapRegions)
focal_class.identifier: isPlayerWithinMapRegion
focal_class.modifiers: private
focal_class.parameters: (Set<Integer> definedMapRegions)
focal_class.return: boolean
focal_class.signature: boolean isPlayerWithinMapRegion(Set<Integer> definedMapRegions)
focal_class.class_method_signature: LootTrackerPlugin.getTotalPrice(Collection<ItemStack> items)
focal_class.full_signature: private long getTotalPrice(Collection<ItemStack> items)
focal_class.identifier: getTotalPrice
focal_class.modifiers: private
focal_class.parameters: (Collection<ItemStack> items)
focal_class.return: long
focal_class.signature: long getTotalPrice(Collection<ItemStack> items)
focal_class.class_method_signature: LootTrackerPlugin.lootReceivedChatMessage(final Collection<ItemStack> items, final String name)
focal_class.full_signature: private void lootReceivedChatMessage(final Collection<ItemStack> items, final String name)
focal_class.identifier: lootReceivedChatMessage
focal_class.modifiers: private
focal_class.parameters: (final Collection<ItemStack> items, final String name)
focal_class.return: void
focal_class.signature: void lootReceivedChatMessage(final Collection<ItemStack> items, final String name)
focal_class.superclass: extends Plugin
focal_method.body: @Subscribe
  	public void onChatMessage(ChatMessage event)
  	{
  		if (event.getType() != ChatMessageType.GAMEMESSAGE && event.getType() != ChatMessageType.SPAM)
  		{
  			return;
  		}
  
  		final String message = event.getMessage();
  
  		if (message.equals(CHEST_LOOTED_MESSAGE) || message.equals(STONE_CHEST_LOOTED_MESSAGE)
  			|| message.equals(DORGESH_KAAN_CHEST_LOOTED_MESSAGE) || message.startsWith(GRUBBY_CHEST_LOOTED_MESSAGE)
  			|| LARRAN_LOOTED_PATTERN.matcher(message).matches())
  		{
  			final int regionID = client.getLocalPlayer().getWorldLocation().getRegionID();
  			if (!CHEST_EVENT_TYPES.containsKey(regionID))
  			{
  				return;
  			}
  
  			setEvent(LootRecordType.EVENT, CHEST_EVENT_TYPES.get(regionID));
  			takeInventorySnapshot();
  
  			return;
  		}
  
  		if (message.equals(COFFIN_LOOTED_MESSAGE) &&
  			isPlayerWithinMapRegion(HALLOWED_SEPULCHRE_MAP_REGIONS))
  		{
  			setEvent(LootRecordType.EVENT, HALLOWED_SEPULCHRE_COFFIN_EVENT);
  			takeInventorySnapshot();
  			return;
  		}
  
  		if (message.equals(HERBIBOAR_LOOTED_MESSAGE))
  		{
  			if (processHerbiboarHerbSackLoot(event.getTimestamp()))
  			{
  				return;
  			}
  
  			setEvent(LootRecordType.EVENT, HERBIBOAR_EVENT, client.getBoostedSkillLevel(Skill.HERBLORE));
  			takeInventorySnapshot();
  			return;
  		}
  
  		final int regionID = client.getLocalPlayer().getWorldLocation().getRegionID();
  		if (HESPORI_REGION == regionID && message.equals(HESPORI_LOOTED_MESSAGE))
  		{
  			setEvent(LootRecordType.EVENT, HESPORI_EVENT);
  			takeInventorySnapshot();
  			return;
  		}
  
  		final Matcher hamStoreroomMatcher = HAM_CHEST_LOOTED_PATTERN.matcher(message);
  		if (hamStoreroomMatcher.matches() && regionID == HAM_STOREROOM_REGION)
  		{
  			String keyType = hamStoreroomMatcher.group("key");
  			setEvent(LootRecordType.EVENT, String.format("H.A.M. chest (%s)", keyType));
  			takeInventorySnapshot();
  			return;
  		}
  
  		final Matcher pickpocketMatcher = PICKPOCKET_REGEX.matcher(message);
  		if (pickpocketMatcher.matches())
  		{
  			// Get the target's name as listed in the chat box
  			String pickpocketTarget = WordUtils.capitalize(pickpocketMatcher.group("target"));
  
  			// Occasional edge case where the pickpocket message doesn't list the correct name of the NPC (e.g. H.A.M. Members)
  			if (PICKPOCKET_DISAMBIGUATION_MAP.get(lastPickpocketTarget).contains(pickpocketTarget))
  			{
  				setEvent(LootRecordType.PICKPOCKET, lastPickpocketTarget);
  			}
  			else
  			{
  				setEvent(LootRecordType.PICKPOCKET, pickpocketTarget);
  			}
  
  			takeInventorySnapshot();
  			return;
  		}
  
  		// Check if message is for a clue scroll reward
  		final Matcher m = CLUE_SCROLL_PATTERN.matcher(Text.removeTags(message));
  		if (m.find())
  		{
  			final String type = m.group(1).toLowerCase();
  			switch (type)
  			{
  				case "beginner":
  					setEvent(LootRecordType.EVENT, "Clue Scroll (Beginner)");
  					return;
  				case "easy":
  					setEvent(LootRecordType.EVENT, "Clue Scroll (Easy)");
  					return;
  				case "medium":
  					setEvent(LootRecordType.EVENT, "Clue Scroll (Medium)");
  					return;
  				case "hard":
  					setEvent(LootRecordType.EVENT, "Clue Scroll (Hard)");
  					return;
  				case "elite":
  					setEvent(LootRecordType.EVENT, "Clue Scroll (Elite)");
  					return;
  				case "master":
  					setEvent(LootRecordType.EVENT, "Clue Scroll (Master)");
  					return;
  			}
  		}
  
  		if (SHADE_CHEST_NO_KEY_PATTERN.matcher(message).matches())
  		{
  			// Player didn't have the key they needed.
  			resetEvent();
  			return;
  		}
  
  		// Check if message is a birdhouse type
  		final Matcher matcher = BIRDHOUSE_PATTERN.matcher(message);
  		if (matcher.matches())
  		{
  			final int xp = Integer.parseInt(matcher.group(1));
  			final String type = BIRDHOUSE_XP_TO_TYPE.get(xp);
  			if (type == null)
  			{
  				log.debug("Unknown bird house type {}", xp);
  				return;
  			}
  
  			setEvent(LootRecordType.EVENT, type, client.getRealSkillLevel(Skill.HUNTER));
  			takeInventorySnapshot();
  		}
  	}
focal_method.class_method_signature: LootTrackerPlugin.onChatMessage(ChatMessage event)
focal_method.full_signature: @Subscribe public void onChatMessage(ChatMessage event)
focal_method.identifier: onChatMessage
focal_method.invocations: getType getType getMessage equals equals equals startsWith matches matcher getRegionID getWorldLocation getLocalPlayer containsKey setEvent get takeInventorySnapshot equals isPlayerWithinMapRegion setEvent takeInventorySnapshot equals processHerbiboarHerbSackLoot getTimestamp setEvent getBoostedSkillLevel takeInventorySnapshot getRegionID getWorldLocation getLocalPlayer equals setEvent takeInventorySnapshot matcher matches group setEvent format takeInventorySnapshot matcher matches capitalize group contains get setEvent setEvent takeInventorySnapshot matcher removeTags find toLowerCase group setEvent setEvent setEvent setEvent setEvent setEvent matches matcher resetEvent matcher matches parseInt group get debug setEvent getRealSkillLevel takeInventorySnapshot
focal_method.modifiers: @Subscribe public
focal_method.parameters: (ChatMessage event)
focal_method.return: void
focal_method.signature: void onChatMessage(ChatMessage event)