test_class.file: runelite-client/src/test/java/net/runelite/client/plugins/cluescrolls/clues/CipherClueTest.java
test_class.identifier: CipherClueTest
test_case.body: @Test
  	public void forTextEmptyString()
  	{
  		assertNull(CipherClue.forText(""));
  	}
test_case.class_method_signature: CipherClueTest.forTextEmptyString()
test_case.full_signature: @Test public void forTextEmptyString()
test_case.identifier: forTextEmptyString
test_case.invocations: assertNull forText
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void forTextEmptyString()
focal_class.declarator: CLUES = ImmutableSet.of(
  		new CipherClue("BMJ UIF LFCBC TFMMFS", "Ali the Kebab seller", new WorldPoint(3354, 2974, 0), "Pollnivneach", "How many coins would you need to purchase 133 kebabs from me?", "399"),
  		new CipherClue("GUHCHO", "Drezel", new WorldPoint(3440, 9895, 0), "Paterdomus", "Please solve this for x: 7x - 28=21", "7"),
  		new CipherClue("HQNM LZM STSNQ", "Iron Man tutor", new WorldPoint(3227, 3227, 0), "Outside Lumbridge castle", "How many snakeskins are needed in order to craft 44 boots, 29 vambraces and 34 bandanas?", "666"),
  		new CipherClue("ZHLUG ROG PDQ", "Weird Old Man", new WorldPoint(3224, 3112, 0), "Kalphite Lair entrance. Fairy ring BIQ", "SIX LEGS! All of them have 6! There are 25 of them! How many legs?", "150"),
  		new CipherClue("ECRVCKP MJCNGF", "Captain Khaled", new WorldPoint(1845, 3754, 0), "Large eastern building in Port Piscarilius", "How many fishing cranes can you find around here?", "5"),
  		new CipherClue("OVEXON", "Eluned", new WorldPoint(2289, 3144, 0), "Outside Lletya or in Prifddinas after Song of the Elves", "A question on elven crystal math. I have 5 and 3 crystals, large and small respectively. A large crystal is worth 10,000 coins and a small is worth but 1,000. How much are all my crystals worth?", "53,000"),
  		new CipherClue("VTYR APCNTGLW", "King Percival", new WorldPoint(2634, 4682, 1), "Fisher Realm, first floor. Fairy ring BJR", "How many cannons are on this here castle?", "5"),
  		new CipherClue("UZZU MUJHRKYYKJ", "Otto Godblessed", new WorldPoint(2501, 3487, 0), "Otto's Grotto", "How many pyre sites are found around this lake?", "3"),
  		new CipherClue("USBJCPSO", "Traiborn", new WorldPoint(3112, 3162, 0), "First floor of Wizards Tower", "How many air runes would I need to cast 630 wind waves?", "3150"),
  		new CipherClue("HCKTA IQFHCVJGT", "Fairy Godfather", new WorldPoint(2446, 4428, 0), "Zanaris throne room", "There are 3 inputs and 4 letters on each ring How many total individual fairy ring codes are possible?", "64"),
  		new CipherClue("ZSBKDO ZODO", "Pirate Pete", new WorldPoint(3680, 3537, 0), "Dock northeast of the Ectofunctus"),
  		new CipherClue("GBJSZ RVFFO", "Fairy Queen", new WorldPoint(2347, 4435, 0), "Fairy Resistance Hideout"),
  		new CipherClue("QSPGFTTPS HSBDLMFCPOF", "Professor Gracklebone", new WorldPoint(1625, 3802, 0), "Ground floor of Arceuus Library", "How many round tables can be found on this floor of the library?", "9"),
  		new CipherClue("IWPPLQTP", "Gunnjorn", new WorldPoint(2541, 3548, 0), "Barbarian Outpost Agility course"),
  		new CipherClue("BSOPME MZETQPS", "Arnold Lydspor", new WorldPoint(2329, 3689, 0), "Piscatoris Fishing Colony general store/bank")
  	)
focal_class.modifier: private static final
focal_class.original_string: private static final Set<CipherClue> CLUES = ImmutableSet.of(
  		new CipherClue("BMJ UIF LFCBC TFMMFS", "Ali the Kebab seller", new WorldPoint(3354, 2974, 0), "Pollnivneach", "How many coins would you need to purchase 133 kebabs from me?", "399"),
  		new CipherClue("GUHCHO", "Drezel", new WorldPoint(3440, 9895, 0), "Paterdomus", "Please solve this for x: 7x - 28=21", "7"),
  		new CipherClue("HQNM LZM STSNQ", "Iron Man tutor", new WorldPoint(3227, 3227, 0), "Outside Lumbridge castle", "How many snakeskins are needed in order to craft 44 boots, 29 vambraces and 34 bandanas?", "666"),
  		new CipherClue("ZHLUG ROG PDQ", "Weird Old Man", new WorldPoint(3224, 3112, 0), "Kalphite Lair entrance. Fairy ring BIQ", "SIX LEGS! All of them have 6! There are 25 of them! How many legs?", "150"),
  		new CipherClue("ECRVCKP MJCNGF", "Captain Khaled", new WorldPoint(1845, 3754, 0), "Large eastern building in Port Piscarilius", "How many fishing cranes can you find around here?", "5"),
  		new CipherClue("OVEXON", "Eluned", new WorldPoint(2289, 3144, 0), "Outside Lletya or in Prifddinas after Song of the Elves", "A question on elven crystal math. I have 5 and 3 crystals, large and small respectively. A large crystal is worth 10,000 coins and a small is worth but 1,000. How much are all my crystals worth?", "53,000"),
  		new CipherClue("VTYR APCNTGLW", "King Percival", new WorldPoint(2634, 4682, 1), "Fisher Realm, first floor. Fairy ring BJR", "How many cannons are on this here castle?", "5"),
  		new CipherClue("UZZU MUJHRKYYKJ", "Otto Godblessed", new WorldPoint(2501, 3487, 0), "Otto's Grotto", "How many pyre sites are found around this lake?", "3"),
  		new CipherClue("USBJCPSO", "Traiborn", new WorldPoint(3112, 3162, 0), "First floor of Wizards Tower", "How many air runes would I need to cast 630 wind waves?", "3150"),
  		new CipherClue("HCKTA IQFHCVJGT", "Fairy Godfather", new WorldPoint(2446, 4428, 0), "Zanaris throne room", "There are 3 inputs and 4 letters on each ring How many total individual fairy ring codes are possible?", "64"),
  		new CipherClue("ZSBKDO ZODO", "Pirate Pete", new WorldPoint(3680, 3537, 0), "Dock northeast of the Ectofunctus"),
  		new CipherClue("GBJSZ RVFFO", "Fairy Queen", new WorldPoint(2347, 4435, 0), "Fairy Resistance Hideout"),
  		new CipherClue("QSPGFTTPS HSBDLMFCPOF", "Professor Gracklebone", new WorldPoint(1625, 3802, 0), "Ground floor of Arceuus Library", "How many round tables can be found on this floor of the library?", "9"),
  		new CipherClue("IWPPLQTP", "Gunnjorn", new WorldPoint(2541, 3548, 0), "Barbarian Outpost Agility course"),
  		new CipherClue("BSOPME MZETQPS", "Arnold Lydspor", new WorldPoint(2329, 3689, 0), "Piscatoris Fishing Colony general store/bank")
  	);
focal_class.type: Set<CipherClue>
focal_class.var_name: CLUES
focal_class.declarator: text
focal_class.modifier: private
focal_class.original_string: private String text;
focal_class.type: String
focal_class.var_name: text
focal_class.declarator: npc
focal_class.modifier: private
focal_class.original_string: private String npc;
focal_class.type: String
focal_class.var_name: npc
focal_class.declarator: location
focal_class.modifier: private
focal_class.original_string: private WorldPoint location;
focal_class.type: WorldPoint
focal_class.var_name: location
focal_class.declarator: area
focal_class.modifier: private
focal_class.original_string: private String area;
focal_class.type: String
focal_class.var_name: area
focal_class.declarator: question
focal_class.modifier: @Nullable
  	private
focal_class.original_string: @Nullable
  	private String question;
focal_class.type: String
focal_class.var_name: question
focal_class.declarator: answer
focal_class.modifier: @Nullable
  	private
focal_class.original_string: @Nullable
  	private String answer;
focal_class.type: String
focal_class.var_name: answer
focal_class.file: runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CipherClue.java
focal_class.identifier: CipherClue
focal_class.interfaces: implements TextClueScroll, NpcClueScroll, LocationClueScroll
focal_class.class_method_signature: CipherClue.CipherClue(String text, String npc, WorldPoint location, String area)
focal_class.full_signature: private  CipherClue(String text, String npc, WorldPoint location, String area)
focal_class.identifier: CipherClue
focal_class.modifiers: private
focal_class.parameters: (String text, String npc, WorldPoint location, String area)
focal_class.signature:  CipherClue(String text, String npc, WorldPoint location, String area)
focal_class.class_method_signature: CipherClue.CipherClue(String text, String npc, WorldPoint location, String area, @Nullable String question, @Nullable String answer)
focal_class.full_signature: private  CipherClue(String text, String npc, WorldPoint location, String area, @Nullable String question, @Nullable String answer)
focal_class.identifier: CipherClue
focal_class.modifiers: private
focal_class.parameters: (String text, String npc, WorldPoint location, String area, @Nullable String question, @Nullable String answer)
focal_class.signature:  CipherClue(String text, String npc, WorldPoint location, String area, @Nullable String question, @Nullable String answer)
focal_class.class_method_signature: CipherClue.makeOverlayHint(PanelComponent panelComponent, ClueScrollPlugin plugin)
focal_class.full_signature: @Override public void makeOverlayHint(PanelComponent panelComponent, ClueScrollPlugin plugin)
focal_class.identifier: makeOverlayHint
focal_class.modifiers: @Override public
focal_class.parameters: (PanelComponent panelComponent, ClueScrollPlugin plugin)
focal_class.return: void
focal_class.signature: void makeOverlayHint(PanelComponent panelComponent, ClueScrollPlugin plugin)
focal_class.class_method_signature: CipherClue.makeWorldOverlayHint(Graphics2D graphics, ClueScrollPlugin plugin)
focal_class.full_signature: @Override public void makeWorldOverlayHint(Graphics2D graphics, ClueScrollPlugin plugin)
focal_class.identifier: makeWorldOverlayHint
focal_class.modifiers: @Override public
focal_class.parameters: (Graphics2D graphics, ClueScrollPlugin plugin)
focal_class.return: void
focal_class.signature: void makeWorldOverlayHint(Graphics2D graphics, ClueScrollPlugin plugin)
focal_class.class_method_signature: CipherClue.forText(String text)
focal_class.full_signature: public static CipherClue forText(String text)
focal_class.identifier: forText
focal_class.modifiers: public static
focal_class.parameters: (String text)
focal_class.return: CipherClue
focal_class.signature: CipherClue forText(String text)
focal_class.class_method_signature: CipherClue.getNpcs()
focal_class.full_signature: public String[] getNpcs()
focal_class.identifier: getNpcs
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String[]
focal_class.signature: String[] getNpcs()
focal_class.superclass: extends ClueScroll
focal_method.body: public static CipherClue forText(String text)
  	{
  		for (CipherClue clue : CLUES)
  		{
  			if (text.equalsIgnoreCase(clue.text) || text.equalsIgnoreCase(clue.question))
  			{
  				return clue;
  			}
  		}
  
  		return null;
  	}
focal_method.class_method_signature: CipherClue.forText(String text)
focal_method.full_signature: public static CipherClue forText(String text)
focal_method.identifier: forText
focal_method.invocations: equalsIgnoreCase equalsIgnoreCase
focal_method.modifiers: public static
focal_method.parameters: (String text)
focal_method.return: CipherClue
focal_method.signature: CipherClue forText(String text)