From e8856ce4188cbd5d5083323c9c052c969c372fcc Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 16 Jan 2022 18:13:59 -0500 Subject: [PATCH 1/4] Revert "Merge pull request #14512 from wayne-li2/anagram-clue-builder" This reverts commit 72f55d8ce9542dde88efbe4345496d8afa87bbe7, reversing changes made to 82514e0c76ac69500eacd88dcf1404a2f529ed64. --- .../cluescrolls/clues/AnagramClue.java | 860 +++--------------- 1 file changed, 127 insertions(+), 733 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/AnagramClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/AnagramClue.java index 5592d08141..8a35abd738 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/AnagramClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/AnagramClue.java @@ -24,12 +24,11 @@ */ package net.runelite.client.plugins.cluescrolls.clues; -import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; import java.awt.Color; import java.awt.Graphics2D; -import java.util.List; +import java.util.Set; import javax.annotation.Nullable; -import lombok.Builder; import lombok.Getter; import net.runelite.api.NPC; import net.runelite.api.ObjectID; @@ -47,737 +46,111 @@ import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.ui.overlay.components.TitleComponent; @Getter -@Builder public class AnagramClue extends ClueScroll implements TextClueScroll, NpcClueScroll, ObjectClueScroll { private static final String ANAGRAM_TEXT = "This anagram reveals who to speak to next: "; private static final String ANAGRAM_TEXT_BEGINNER = "The anagram reveals who to speak to next: "; - private static final List CLUES = ImmutableList.of( - // Beginner - AnagramClue.builder() - .text("AN EARL") - .npc("Ranael") - .location(new WorldPoint(3315, 3163, 0)) - .area("Al Kharid skirt shop") - .build(), - AnagramClue.builder() - .text("CARPET AHOY") - .npc("Apothecary") - .location(new WorldPoint(3195, 3404, 0)) - .area("Southwest Varrock") - .build(), - AnagramClue.builder() - .text("DISORDER") - .npc("Sedridor") - .location(new WorldPoint(3102, 9570, 0)) - .area("Wizards' Tower basement") - .build(), - AnagramClue.builder() - .text("I CORD") - .npc("Doric") - .location(new WorldPoint(2951, 3450, 0)) - .area("Doric's house, north of Falador") - .build(), - AnagramClue.builder() - .text("IN BAR") - .npc("Brian") - .location(new WorldPoint(3026, 3246, 0)) - .area("Port Sarim battleaxe shop") - .build(), - AnagramClue.builder() - .text("RAIN COVE") - .npc("Veronica") - .location(new WorldPoint(3110, 3330, 0)) - .area("Outside Draynor Manor") - .build(), - AnagramClue.builder() - .text("RUG DETER") - .npc("Gertrude") - .location(new WorldPoint(3151, 3412, 0)) - .area("Gertrude's house, west of Varrock") - .build(), - AnagramClue.builder() - .text("SIR SHARE RED") - .npc("Hairdresser") - .location(new WorldPoint(2944, 3381, 0)) - .area("Falador hairdresser") - .build(), - AnagramClue.builder() - .text("TAUNT ROOF") - .npc("Fortunato") - .location(new WorldPoint(3080, 3250, 0)) - .area("Draynor Village market") - .build(), - - // Medium - AnagramClue.builder() - .text("A BAKER") - .npc("Baraek") - .location(new WorldPoint(3217, 3434, 0)) - .area("Varrock square") - .question("How many stalls are there in Varrock Square?") - .answer("5") - .build(), - AnagramClue.builder() - .text("A BAS") - .npc("Saba") - .location(new WorldPoint(2858, 3577, 0)) - .area("Death Plateau cave, north of the Warriors' Guild") - .build(), - AnagramClue.builder() - .text("A BASIC ANTI POT") - .npc("Captain Tobias") - .location(new WorldPoint(3026, 3216, 0)) - .area("Port Sarim docks") - .question("How many ships are there docked at Port Sarim currently?") - .answer("6") - .build(), - AnagramClue.builder() - .text("AHA JAR") - .npc("Jaraah") - .location(new WorldPoint(3359, 3276, 0)) - .area("Duel Arena hospital") - .build(), - AnagramClue.builder() - .text("A HEART") - .npc("Aretha") - .location(new WorldPoint(1814, 3851, 0)) - .area("Soul altar") - .question("32 - 5x = 22, what is x?") - .answer("2") - .build(), - AnagramClue.builder() - .text("ARC O LINE") - .npc("Caroline") - .location(new WorldPoint(2715, 3302, 0)) - .area("North of Witchaven, near row boat") - .question("How many fishermen are there on the fishing platform?") - .answer("11") - .build(), - AnagramClue.builder() - .text("AREA CHEF TREK") - .npc("Father Aereck") - .location(new WorldPoint(3243, 3208, 0)) - .area("Lumbridge Church") - .question("How many gravestones are in the church graveyard?") - .answer("19 or 20") - .build(), - AnagramClue.builder() - .text("ARE COL") - .npc("Oracle") - .location(new WorldPoint(3013, 3501, 0)) - .area("Ice Mountain") - .question("If x is 15 and y is 3 what is 3x + y?") - .answer("48") - .build(), - AnagramClue.builder() - .text("ARMCHAIR THE PELT") - .npc("Charlie the Tramp") - .location(new WorldPoint(3209, 3392, 0)) - .area("Varrock south entrance") - .question("How many coins would I have if I have 0 coins and attempt to buy 10 loaves of bread for 3 coins each?") - .answer("0") - .build(), - AnagramClue.builder() - .text("BAIL TRIMS") - .npc("Brimstail") - .location(new WorldPoint(2402, 3419, 0)) - .area("West of Stronghold Slayer Cave") - .build(), - AnagramClue.builder() - .text("CALAMARI MADE MUD") - .npc("Madame Caldarium") - .location(new WorldPoint(2553, 2868, 0)) - .area("Corsair Cove") - .question("What is 3(5-3)?") - .answer("6") - .build(), - AnagramClue.builder() - .text("CLASH ION") - .npc("Nicholas") - .location(new WorldPoint(1841, 3803, 0)) - .area("North of Port Piscarilius fishing shop") - .question("How many windows are in Tynan's shop?") - .answer("4") - .build(), - AnagramClue.builder() - .text("DT RUN B") - .npc("Brundt the Chieftain") - .location(new WorldPoint(2658, 3670, 0)) - .area("Rellekka main hall") - .question("How many people are waiting for the next bard to perform?") - .answer("4") - .build(), - AnagramClue.builder() - .text("EEK ZERO OP") - .npc("Zoo keeper") - .location(new WorldPoint(2613, 3269, 0)) - .area("Ardougne Zoo") - .question("How many animals in total are there in the zoo?") - .answer("40") - .build(), - AnagramClue.builder() - .text("EL OW") - .npc("Lowe") - .location(new WorldPoint(3233, 3423, 0)) - .area("Varrock archery store") - .build(), - AnagramClue.builder() - .text("GOBLETS ODD TOES") - .npc("Otto Godblessed") - .location(new WorldPoint(2501, 3487, 0)) - .area("Otto's Grotto") - .question("How many types of dragon are there beneath the whirlpool's cavern?") - .answer("2") - .build(), - AnagramClue.builder() - .text("GOBLIN KERN") - .npc("King Bolren") - .location(new WorldPoint(2541, 3170, 0)) - .area("Tree Gnome Village") - .build(), - AnagramClue.builder() - .text("GOT A BOY") - .npc("Gabooty") - .location(new WorldPoint(2790, 3066, 0)) - .area("Tai Bwo Wannai") - .question("How many buildings are in the village?") - .answer("11") - .build(), - AnagramClue.builder() - .text("HALT US") - .npc("Luthas") - .location(new WorldPoint(2938, 3152, 0)) - .area("Banana plantation, Karamja") - .build(), - AnagramClue.builder() - .text("HEORIC") - .npc("Eohric") - .location(new WorldPoint(2900, 3565, 1)) - .area("Burthorpe Castle, top floor") - .question("King Arthur and Merlin sit down at the Round Table with 8 knights. How many degrees does each get?") - .answer("36") - .build(), - AnagramClue.builder() - .text("HICK JET") - .npc("Jethick") - .location(new WorldPoint(2541, 3305, 0)) - .area("West Ardougne town square") - .question("How many graves are there in the city graveyard?") - .answer("38") - .build(), - AnagramClue.builder() - .text("HIS PHOR") - .npc("Horphis") - .location(new WorldPoint(1639, 3812, 0)) - .area("Arceuus Library") - .question("On a scale of 1-10, how helpful is Logosia?") - .answer("1") - .build(), - AnagramClue.builder() - .text("I AM SIR") - .npc("Marisi") - .location(new WorldPoint(1737, 3557, 0)) - .area("Hosidius allotment patch") - .question("How many cities form the Kingdom of Great Kourend?") - .answer("5") - .build(), - AnagramClue.builder() - .text("ICY FE") - .npc("Fycie") - .location(new WorldPoint(2630, 2997, 0)) - .area("East Feldip Hills") - .build(), - AnagramClue.builder() - .text("I DOOM ICON INN") - .npc("Dominic Onion") - .location(new WorldPoint(2609, 3116, 0)) - .area("Nightmare Zone") - .question("How many reward points does a herb box cost?") - .answer("9,500") - .build(), - AnagramClue.builder() - .text("I EVEN") - .npc("Nieve") - .location(new WorldPoint(2432, 3422, 0)) - .area("Gnome Stronghold, outside the Stronghold Slayer Cave") - .question("How many farming patches are there in Gnome stronghold?") - .answer("2") - .build(), - AnagramClue.builder() - .text("KAY SIR") - .npc("Sir Kay") - .location(new WorldPoint(2760, 3496, 0)) - .area("Camelot Castle courtyard") - .question("How many fountains are there within the grounds of Camelot castle?") - .answer("6") - .build(), - AnagramClue.builder() - .text("LARK IN DOG") - .npc("King Roald") - .location(new WorldPoint(3220, 3476, 0)) - .area("Varrock Castle, ground floor") - .question("How many bookcases are there in the palace library?") - .answer("24") - .build(), - AnagramClue.builder() - .text("LEAKEY") - .npc("Kaylee") - .location(new WorldPoint(2957, 3370, 0)) - .area("Falador pub") - .question("How many chairs are there in the Rising Sun?") - .answer("18") - .build(), - AnagramClue.builder() - .text("LOW LAG") - .npc("Gallow") - .location(new WorldPoint(1805, 3566, 0)) - .area("Hosidius vinery") - .question("How many vine patches can you find in this vinery?") - .answer("12") - .build(), - AnagramClue.builder() - .text("ME IF") - .npc("Femi") - .location(new WorldPoint(2461, 3382, 0)) - .area("Tree Gnome Stronghold entrance") - .build(), - AnagramClue.builder() - .text("NOD MED") - .npc("Edmond") - .location(new WorldPoint(2566, 3332, 0)) - .area("East Ardougne, north-west house") - .question("How many pigeon cages are there around the back of Jerico's house?") - .answer("3") - .build(), - AnagramClue.builder() - .text("OK CO") - .npc("Cook") - .location(new WorldPoint(3207, 3214, 0)) - .area("Lumbridge Castle, ground floor") - .question("How many cannons does Lumbridge Castle have?") - .answer("9") - .build(), - AnagramClue.builder() - .text("PACINNG A TAIE") - .npc("Captain Ginea") - .location(new WorldPoint(1504, 3632, 0)) - .area("East of the Shayzien Encampment war tent") - .question("1 soldier can deal with 6 lizardmen. How many soldiers do we need for an army of 678 lizardmen?") - .answer("113") - .build(), - AnagramClue.builder() - .text("PEAK REFLEX") - .npc("Flax keeper") - .location(new WorldPoint(2744, 3444, 0)) - .area("Seers' Village flax field") - .question("If I have 1014 flax, and I spin a third of them into bowstring, how many flax do I have left?") - .answer("676") - .build(), - AnagramClue.builder() - .text("PEATY PERT") - .npc("Party Pete") - .location(new WorldPoint(3047, 3376, 0)) - .area("Falador Party Room") - .build(), - AnagramClue.builder() - .text("QUE SIR") - .npc("Squire") - .location(new WorldPoint(2975, 3343, 0)) - .area("Falador Castle courtyard") - .question("White knights are superior to black knights. 2 white knights can handle 3 black knights. How many knights do we need for an army of 981 black knights?") - .answer("654") - .build(), - AnagramClue.builder() - .text("R AK MI") - .npc("Karim") - .location(new WorldPoint(3273, 3181, 0)) - .area("Al Kharid kebab shop") - .question("I have 16 kebabs, I eat one myself and then share the rest equally between 3 friends. How many do they have each?") - .answer("5") - .build(), - AnagramClue.builder() - .text("RATAI") - .npc("Taria") - .location(new WorldPoint(2940, 3223, 0)) - .area("Rimmington bush patch") - .question("How many buildings are there in Rimmington?") - .answer("7") - .build(), - AnagramClue.builder() - .text("R SLICER") - .npc("Clerris") - .location(new WorldPoint(1761, 3850, 0)) - .area("Arceuus mine") - .question("If I have 1,000 blood runes, and cast 131 ice barrage spells, how many blood runes do I have left?") - .answer("738") - .build(), - AnagramClue.builder() - .text("SAND NUT") - .npc("Dunstan") - .location(new WorldPoint(2919, 3574, 0)) - .area("Anvil, north-east Burthorpe") - .question("How much smithing experience does one receive for smelting a blurite bar?") - .answer("8") - .build(), - AnagramClue.builder() - .text("TAMED ROCKS") - .npc("Dockmaster") - .location(new WorldPoint(1822, 3739, 0)) - .area("Port Piscarilius, NE of General store") - .question("What is the cube root of 125?") - .answer("5") - .build(), - AnagramClue.builder() - .text("THICKNO") - .npc("Hickton") - .location(new WorldPoint(2822, 3442, 0)) - .area("Catherby ranging shop") - .question("How many ranges are there in Catherby?") - .answer("2") - .build(), - AnagramClue.builder() - .text("UESNKRL NRIEDDO") - .npc("Drunken soldier") - .location(new WorldPoint(1551, 3565, 0)) - .area("Shayzien pub") - .question("If 13 Shayzien Soldiers kill 46 Lizardmen each in a day, how many Lizardmen have they killed in total in a single day?") - .answer("598") - .build(), - AnagramClue.builder() - .text("VESTE") - .npc("Steve") - .location(new WorldPoint(2432, 3423, 0)) - .area("Upstairs Skeletal Wyvern area or Stronghold Slayer Cave (after Monkey Madness 2)") - .question("How many farming patches are there in Gnome stronghold?") - .answer("2") - .build(), - - // Hard - AnagramClue.builder() - .text("BAKER CLIMB") - .npc("Brambickle") - .location(new WorldPoint(2783, 3861, 0)) - .area("Trollweiss mountain") - .build(), - AnagramClue.builder() - .text("BLUE GRIM GUIDED") - .npc("Lumbridge Guide") - .location(new WorldPoint(3238, 3220, 0)) - .area("Lumbridge") - .build(), - AnagramClue.builder() - .text("BY LOOK") - .npc("Bolkoy") - .location(new WorldPoint(2529, 3162, 1)) - .area("Tree Gnome Village general store") - .question("How many flowers are there in the clearing below this platform?") - .answer("13") - .build(), - AnagramClue.builder() - .text("C ON GAME HOC") - .npc("Gnome Coach") - .location(new WorldPoint(2395, 3486, 0)) - .area("Circling the Gnome Ball course") - .question("How many gnomes on the Gnome ball field have red patches on their uniforms?") - .answer("6") - .build(), - AnagramClue.builder() - .text("COPPER ORE CRYPTS") - .npc("Prospector Percy") - .location(new WorldPoint(3756, 5666, 0)) - .area("Motherlode Mine") - .question("During a party, everyone shook hands with everybody else. There were 66 handshakes. How many people were at the party?") - .answer("12") - .build(), - AnagramClue.builder() - .text("DARN DRAKE") - .npc("Daer Krand") - .location(new WorldPoint(3821, 9778, 2)) - .area("Sisterhood Sanctuary, northeast of the Nightmare Arena") - .build(), - AnagramClue.builder() - .text("DEKAGRAM") - .npc("Dark mage") - .location(new WorldPoint(3039, 4835, 0)) - .area("Centre of the Abyss") - .question("How many rifts are found here in the abyss?") - .answer("13") - .build(), - AnagramClue.builder() - .text("DO SAY MORE") - .npc("Doomsayer") - .location(new WorldPoint(3232, 3223, 0)) - .area("East of Lumbridge Castle") - .question("What is 40 divided by 1/2 plus 15?") - .answer("95") - .build(), - AnagramClue.builder() - .text("DRAGONS LAMENT") - .npc("Strange Old Man") - .location(new WorldPoint(3564, 3288, 0)) - .area("Barrows") - .question("One pipe fills a barrel in 1 hour while another pipe can fill the same barrel in 2 hours. How many minutes will it take to fill the tank if both pipes are used?") - .answer("40") - .build(), - AnagramClue.builder() - .text("DR WARDEN FUNK") - .npc("Drunken Dwarf") - .location(new WorldPoint(2913, 10221, 0)) - .area("East Keldagrim") - .build(), - AnagramClue.builder() - .text("MOTHERBOARD") - .npc("Brother Omad") - .location(new WorldPoint(2606, 3211, 0)) - .area("Ardougne Monastery") - .question("What is the next number? 12, 13, 15, 17, 111, 113, 117, 119, 123....?") - .answer("129") - .build(), - AnagramClue.builder() - .text("MY MANGLE LAL") - .npc("Lammy Langle") - .location(new WorldPoint(1688, 3540, 0)) - .area("Hosidius spirit tree patch") - .build(), - AnagramClue.builder() - .text("O BIRDZ A ZANY EN PC") - .npc("Cap'n Izzy No-Beard") - .location(new WorldPoint(2807, 3191, 0)) - .area("Brimhaven Agility Arena") - .question("How many Banana Trees are there in the plantation?") - .answer("33") - .build(), - AnagramClue.builder() - .text("QUIT HORRIBLE TYRANT") - .npc("Brother Tranquility") - .location(new WorldPoint(3681, 2963, 0)) - .area("Mos Le'Harmless or Harmony Island") - .question("If I have 49 bottles of rum to share between 7 pirates, how many would each pirate get?") - .answer("7") - .build(), - AnagramClue.builder() - .text("RAT MAT WITHIN") - .npc("Martin Thwait") - .location(new WorldPoint(2906, 3537, 0)) - .area("Rogues' Den") - .question("How many natural fires burn in Rogue's Den?") - .answer("2") - .build(), - AnagramClue.builder() - .text("SLIDE WOMAN") - .npc("Wise Old Man") - .location(new WorldPoint(3088, 3253, 0)) - .area("Draynor Village") - .question("How many bookcases are in the Wise Old Man's house?") - .answer("28") - .build(), - AnagramClue.builder() - .text("VEIL VEDA") - .npc("Evil Dave") - .location(new WorldPoint(3079, 9892, 0)) - .area("Doris' basement, Edgeville") - .question("What is 333 multiplied by 2?") - .answer("666") - .build(), - AnagramClue.builder() - .text("WOO AN EGG KIWI") - .npc("Awowogei") - .objectId(ObjectID.AWOWOGEI) - .location(new WorldPoint(2802, 2765, 0)) - .area("Ape Atoll") - .question("If I have 303 bananas, and share them between 31 friends evenly, only handing out full bananas. How many will I have left over?") - .answer("24") - .build(), - - // Elite - AnagramClue.builder() - .text("AT HERG") - .npc("Regath") - .location(new WorldPoint(1719, 3723, 0)) - .area("Arceuus general store") - .question("What is -5 to the power of 2?") - .answer("25") - .build(), - AnagramClue.builder() - .text("CAREER IN MOON") - .npc("Oneiromancer") - .location(new WorldPoint(2150, 3866, 0)) - .area("Astral altar") - .question("How many Suqah inhabit Lunar isle?") - .answer("25") - .build(), - AnagramClue.builder() - .text("COOL NERD") - .npc("Old crone") - .location(new WorldPoint(3462, 3557, 0)) - .area("East of the Slayer Tower") - .question("What is the combined combat level of each species that live in Slayer tower?") - .answer("619") - .build(), - AnagramClue.builder() - .text("DR HITMAN") - .npc("Mandrith") - .location(new WorldPoint(3182, 3946, 0)) - .area("Wilderness Resource Area") - .question("How many scorpions live under the pit?") - .answer("28") - .build(), - AnagramClue.builder() - .text("LADDER MEMO GUV") - .npc("Guard Vemmeldo") - .location(new WorldPoint(2447, 3418, 1)) - .area("Gnome Stronghold Bank") - .question("How many magic trees can you find inside the Gnome Stronghold?") - .answer("3") - .build(), - AnagramClue.builder() - .text("MACHETE CLAM") - .npc("Cam the Camel") - .location(new WorldPoint(3300, 3231, 0)) - .area("West of the Duel Arena entrance") - .question("How many items can carry water in Gielinor?") - .answer("6") - .build(), - AnagramClue.builder() - .text("MAJORS LAVA BADS AIR") - .npc("Ambassador Alvijar") - .location(new WorldPoint(2736, 5351, 1)) - .area("Dorgesh-Kaan, NE Middle Level") - .question("Double the miles before the initial Dorgeshuun veteran.") - .answer("2505") - .build(), - AnagramClue.builder() - .text("NO OWNER") - .npc("Oronwen") - .location(new WorldPoint(1162, 3178, 0)) - .area("Lletya seamstress shop") - .question("What is the minimum amount of quest points required to reach Lletya?") - .answer("20") - .build(), - AnagramClue.builder() - .text("OUR OWN NEEDS") - .npc("Nurse Wooned") - .location(new WorldPoint(1511, 3619, 0)) - .area("Shayzien Infirmary") - .question("How many wounded soldiers are there in the camp?") - .answer("16") - .build(), - AnagramClue.builder() - .text("SNAKES SO I SAIL") - .npc("Lisse Isaakson") - .location(new WorldPoint(2351, 3801, 0)) - .area("Neitiznot") - .question("How many arctic logs are required to make a large fremennik round shield?") - .answer("2") - .build(), - AnagramClue.builder() - .text("UNLEASH NIGHT MIST") - .npc("Sigli the Huntsman") - .location(new WorldPoint(2660, 3654, 0)) - .area("Rellekka entrance") - .question("What is the combined slayer requirement of every monster in the slayer cave?") - .answer("302") - .build(), - - // Master - AnagramClue.builder() - .text("A ELF KNOWS") - .npc("Snowflake") - .location(new WorldPoint(2872, 3934, 0)) - .area("Weiss") - .build(), - AnagramClue.builder() - .text("BRUCIE CATNAP") - .npc("Captain Bruce") - .location(new WorldPoint(1520, 3558, 0)) - .area("Shayzien") - .build(), - AnagramClue.builder() - .text("CAR IF ICES") - .npc("Sacrifice") - .location(new WorldPoint(2209, 3056, 0)) - .area("Zul-Andra") - .build(), - AnagramClue.builder() - .text("DED WAR") - .npc("Edward") - .location(new WorldPoint(3284, 3943, 0)) - .area("Around or within Rogues' Castle") - .build(), - AnagramClue.builder() - .text("DIM THARN") - .npc("Mandrith") - .location(new WorldPoint(3182, 3946, 0)) - .area("Wilderness Resource Area") - .build(), - AnagramClue.builder() - .text("DUO PLUG") - .npc("Dugopul") - .location(new WorldPoint(2803, 2744, 0)) - .area("Ape Atoll graveyard") - .build(), - AnagramClue.builder() - .text("FORLUN") - .npc("Runolf") - .location(new WorldPoint(2512, 10256, 0)) - .area("Miscellania Dungeon") - .build(), - AnagramClue.builder() - .text("IM N ZEZIM") - .npc("Immenizz") - .location(new WorldPoint(2592, 4324, 0)) - .area("Puro-Puro") - .build(), - AnagramClue.builder() - .text("MAL IN TAU") - .npc("Luminata") - .location(new WorldPoint(3508, 3237, 0)) - .area("Burgh de Rott, near general store") - .build(), - AnagramClue.builder() - .text("MOLD LA RAN") - .npc("Old Man Ral") - .location(new WorldPoint(3602, 3209, 0)) - .area("Meiyerditch") - .build(), - AnagramClue.builder() - .text("MUS KIL READER") - .npc("Radimus Erkle") - .location(new WorldPoint(2726, 3368, 0)) - .area("Legends' Guild") - .build(), - AnagramClue.builder() - .text("RIP MAUL") - .npc("Primula") - .location(new WorldPoint(2454, 2853, 1)) - .area("Myths' Guild, first floor") - .build(), - AnagramClue.builder() - .text("RUE GO") - .npc("Goreu") - .location(new WorldPoint(2335, 3162, 0)) - .area("Lletya") - .build(), - AnagramClue.builder() - .text("SLAM DUSTER GRAIL") - .npc("Guildmaster Lars") - .location(new WorldPoint(1649, 3498, 0)) - .area("Woodcutting Guild, Hosidius") - .build(), - AnagramClue.builder() - .text("TEN WIGS ON") - .npc("Wingstone") - .location(new WorldPoint(3389, 2877, 0)) - .area("North of Agility Pyramid") - .build(), - AnagramClue.builder() - .text("TWENTY CURE IRON") - .npc("New Recruit Tony") - .location(new WorldPoint(1503, 3553, 0)) - .area("Shayzien Graveyard") - .build() + private static final Set CLUES = ImmutableSet.of( + new AnagramClue("A BAKER", "Baraek", new WorldPoint(3217, 3434, 0), "Varrock square", "How many stalls are there in Varrock Square?", "5"), + new AnagramClue("A BASIC ANTI POT", "Captain Tobias", new WorldPoint(3026, 3216, 0), "Port Sarim", "How many ships are there docked at Port Sarim currently?", "6"), + new AnagramClue("A ELF KNOWS", "Snowflake", new WorldPoint(2872, 3934, 0), "Weiss"), + new AnagramClue("A HEART", "Aretha", new WorldPoint(1814, 3851, 0), "Soul altar", "32 - 5x = 22, what is x?", "2"), + new AnagramClue("AHA JAR", "Jaraah", new WorldPoint(3359, 3276, 0), "Duel Arena hospital"), + new AnagramClue("ARC O LINE", "Caroline", new WorldPoint(2715, 3302, 0), "North Witchaven next to the row boat", "How many fishermen are there on the fishing platform?", "11"), + new AnagramClue("ARE COL", "Oracle", new WorldPoint(3013, 3501, 0), "Ice Mountain West of Edgeville", "If x is 15 and y is 3 what is 3x + y?", "48"), + new AnagramClue("ARMCHAIR THE PELT", "Charlie the Tramp", new WorldPoint(3209, 3392, 0), "South entrance of Varrock", "How many coins would I have if I have 0 coins and attempt to buy 10 loaves of bread for 3 coins each?", "0"), + new AnagramClue("AT HERG", "Regath", new WorldPoint(1719, 3723, 0), "General Store, Arceuus, Zeah", "What is -5 to the power of 2?", "25"), + new AnagramClue("A BAS", "Saba", new WorldPoint(2858, 3577, 0), "Death Plateau"), + new AnagramClue("AREA CHEF TREK", "Father Aereck", new WorldPoint(3243, 3208, 0), "Lumbridge Church", "How many gravestones are in the church graveyard?", "19 or 20"), + new AnagramClue("BAIL TRIMS", "Brimstail", new WorldPoint(2402, 3419, 0), "West of Stronghold Slayer Cave"), + new AnagramClue("BAKER CLIMB", "Brambickle", new WorldPoint(2783, 3861, 0), "Trollweiss mountain"), + new AnagramClue("BLUE GRIM GUIDED", "Lumbridge Guide", new WorldPoint(3238, 3220, 0), "Lumbridge"), + new AnagramClue("BY LOOK", "Bolkoy", new WorldPoint(2529, 3162, 0), "Tree Gnome Village general store", "How many flowers are there in the clearing below this platform?", "13"), + new AnagramClue("CALAMARI MADE MUD", "Madame Caldarium", new WorldPoint(2553, 2868, 0), "Corsair Cove", "What is 3(5-3)?", "6"), + new AnagramClue("CAR IF ICES", "Sacrifice", new WorldPoint(2209, 3056, 0), "Zul-Andra"), + new AnagramClue("CAREER IN MOON", "Oneiromancer", new WorldPoint(2150, 3866, 0), "Astral altar", "How many Suqah inhabit Lunar isle?", "25"), + new AnagramClue("CLASH ION", "Nicholas", new WorldPoint(1841, 3803, 0), "North of Port Piscarilius fishing shop", "How many windows are in Tynan's shop?", "4"), + new AnagramClue("C ON GAME HOC", "Gnome Coach", new WorldPoint(2395, 3486, 0), "Gnome Ball course", "How many gnomes on the Gnome ball field have red patches on their uniforms?", "6"), + new AnagramClue("COOL NERD", "Old crone", new WorldPoint(3462, 3557, 0), "East of the Slayer Tower", "What is the combined combat level of each species that live in Slayer tower?", "619"), + new AnagramClue("COPPER ORE CRYPTS", "Prospector Percy", new WorldPoint(3061, 3377, 0), "Motherlode Mine", "During a party, everyone shook hands with everybody else. There were 66 handshakes. How many people were at the party?", "12"), + new AnagramClue("DARN DRAKE", "Daer Krand", new WorldPoint(3728, 3302, 0), "Sisterhood Sanctuary (Slepe Dungeon, northeast of Nightmare Arena)"), + new AnagramClue("DED WAR", "Edward", new WorldPoint(3284, 3943, 0), "Inside Rogue's Castle"), + new AnagramClue("DEKAGRAM", "Dark mage", new WorldPoint(3039, 4835, 0), "Centre of the Abyss", "How many rifts are found here in the abyss?", "13"), + new AnagramClue("DO SAY MORE", "Doomsayer", new WorldPoint(3230, 3230, 0), "East of Lumbridge Castle", "What is 40 divided by 1/2 plus 15?", "95"), + new AnagramClue("DIM THARN", "Mandrith", new WorldPoint(3182, 3946, 0), "Wilderness Resource Area"), + new AnagramClue("DR HITMAN", "Mandrith", new WorldPoint(3182, 3946, 0), "Wilderness Resource Area", "How many scorpions live under the pit?", "28"), + new AnagramClue("DR WARDEN FUNK", "Drunken Dwarf", new WorldPoint(2913, 10221, 0), "East Side of Keldagrim"), + new AnagramClue("DRAGONS LAMENT", "Strange Old Man", new WorldPoint(3564, 3288, 0), "Barrows", "One pipe fills a barrel in 1 hour while another pipe can fill the same barrel in 2 hours. How many minutes will it take to fill the tank if both pipes are used?", "40"), + new AnagramClue("DT RUN B", "Brundt the Chieftain", new WorldPoint(2658, 3670, 0), "Rellekka, main hall", "How many people are waiting for the next bard to perform?", "4"), + new AnagramClue("DUO PLUG", "Dugopul", new WorldPoint(2803, 2744, 0), "Graveyard on Ape Atoll"), + new AnagramClue("EEK ZERO OP", "Zoo keeper", new WorldPoint(2613, 3269, 0), "Ardougne Zoo", "How many animals in total are there in the zoo?", "40"), + new AnagramClue("EL OW", "Lowe", new WorldPoint(3233, 3423, 0), "Varrock archery store"), + new AnagramClue("FORLUN", "Runolf", new WorldPoint(2512, 10256, 0), "Miscellania & Etceteria Dungeon"), + new AnagramClue("GOBLIN KERN", "King Bolren", new WorldPoint(2541, 3170, 0), "Tree Gnome Village"), + new AnagramClue("GOT A BOY", "Gabooty", new WorldPoint(2790, 3066, 0), "Centre of Tai Bwo Wannai", "How many buildings are in the village?", "11"), + new AnagramClue("GOBLETS ODD TOES", "Otto Godblessed", new WorldPoint(2501, 3487, 0), "Otto's Grotto", "How many types of dragon are there beneath the whirlpool's cavern?", "2"), + new AnagramClue("HALT US", "Luthas", new WorldPoint(2938, 3152, 0), "Banana plantation, Karamja"), + new AnagramClue("HEORIC", "Eohric", new WorldPoint(2900, 3565, 0), "Top floor of Burthorpe Castle", "King Arthur and Merlin sit down at the Round Table with 8 knights. How many degrees does each get?", "36"), + new AnagramClue("HIS PHOR", "Horphis", new WorldPoint(1639, 3812, 0), "Arceuus Library, Zeah", "On a scale of 1-10, how helpful is Logosia?", "1"), + new AnagramClue("I AM SIR", "Marisi", new WorldPoint(1737, 3557, 0), "Allotment patch, South of Hosidius chapel", "How many cities form the Kingdom of Great Kourend?", "5"), + new AnagramClue("ICY FE", "Fycie", new WorldPoint(2630, 2997, 0), "East Feldip Hills"), + new AnagramClue("I DOOM ICON INN", "Dominic Onion", new WorldPoint(2609, 3116, 0), "Nightmare Zone", "How many reward points does a herb box cost?", "9,500"), + new AnagramClue("I EVEN", "Nieve", new WorldPoint(2432, 3422, 0), "The slayer master in Gnome Stronghold", "How many farming patches are there in Gnome stronghold?", "2"), + new AnagramClue("IM N ZEZIM", "Immenizz", new WorldPoint(2592, 4324, 0), "The Imp inside Puro-Puro"), + new AnagramClue("KAY SIR", "Sir Kay", new WorldPoint(2760, 3496, 0), "The courtyard in Camelot Castle", "How many fountains are there within the grounds of Camelot castle?", "6"), + new AnagramClue("LEAKEY", "Kaylee", new WorldPoint(2957, 3370, 0), "Rising Sun Inn in Falador", "How many chairs are there in the Rising Sun?", "18"), + new AnagramClue("LARK IN DOG", "King Roald", new WorldPoint(3220, 3476, 0), "Ground floor of Varrock castle", "How many bookcases are there in the palace library?", "24"), + new AnagramClue("LOW LAG", "Gallow", new WorldPoint(1805, 3566, 0), "Vinery in the Great Kourend", "How many vine patches can you find in this vinery?", "12"), + new AnagramClue("LADDER MEMO GUV", "Guard Vemmeldo", new WorldPoint(2447, 3418, 1), "Gnome Stronghold Bank", "How many magic trees can you find inside the Gnome Stronghold?", "3"), + new AnagramClue("MAL IN TAU", "Luminata", new WorldPoint(3508, 3237, 0), "Near Burgh de Rott entrance"), + new AnagramClue("MACHETE CLAM", "Cam the Camel", new WorldPoint(3300, 3231, 0), "Outside Duel Arena", "How many items can carry water in Gielinor?", "6"), + new AnagramClue("ME IF", "Femi", new WorldPoint(2461, 3382, 0), "Gates of Tree Gnome Stronghold"), + new AnagramClue("MOLD LA RAN", "Old Man Ral", new WorldPoint(3602, 3209, 0), "Meiyerditch"), + new AnagramClue("MOTHERBOARD", "Brother Omad", new WorldPoint(2606, 3211, 0), "Monastery south of Ardougne", "What is the next number? 12, 13, 15, 17, 111, 113, 117, 119, 123....?", "129"), + new AnagramClue("MUS KIL READER", "Radimus Erkle", new WorldPoint(2726, 3368, 0), "Legends' Guild"), + new AnagramClue("MY MANGLE LAL", "Lammy Langle", new WorldPoint(1688, 3540, 0), "Hosidius spirit tree patch"), + new AnagramClue("NO OWNER", "Oronwen", new WorldPoint(1162, 3178, 0), "Lletya Seamstress shop in Lletya", "What is the minimum amount of quest points required to reach Lletya?", "20"), + new AnagramClue("NOD MED", "Edmond", new WorldPoint(2566, 3332, 0), "Behind the most NW house in East Ardougne", "How many pigeon cages are there around the back of Jerico's house?", "3"), + new AnagramClue("O BIRDZ A ZANY EN PC", "Cap'n Izzy No-Beard", new WorldPoint(2807, 3191, 0), "Brimhaven Agility Arena", "How many Banana Trees are there in the plantation?", "33"), + new AnagramClue("OK CO", "Cook", new WorldPoint(3207, 3214, 0), "Ground floor of Lumbridge Castle", "How many cannons does Lumbridge Castle have?", "9"), + new AnagramClue("OUR OWN NEEDS", "Nurse Wooned", new WorldPoint(1511, 3619, 0), "Shayzien Infirmary", "How many wounded soldiers are there in the camp?", "16"), + new AnagramClue("PACINNG A TAIE", "Captain Ginea", new WorldPoint(1504, 3632, 0), "Tent east of Shayzien Encampment war tent", "1 soldier can deal with 6 lizardmen. How many soldiers do we need for an army of 678 lizardmen?", "113"), + new AnagramClue("PEAK REFLEX", "Flax keeper", new WorldPoint(2744, 3444, 0), "Flax field south of Seers Village", "If I have 1014 flax, and I spin a third of them into bowstring, how many flax do I have left?", "676"), + new AnagramClue("PEATY PERT", "Party Pete", new WorldPoint(3047, 3376, 0), "Falador Party Room"), + new AnagramClue("QUIT HORRIBLE TYRANT", "Brother Tranquility", new WorldPoint(3681, 2963, 0), "Mos Le'Harmless or Harmony Island", "If I have 49 bottles of rum to share between 7 pirates, how many would each pirate get?", "7"), + new AnagramClue("QUE SIR", "Squire", new WorldPoint(2975, 3343, 0), "Falador Castle Courtyard", "White knights are superior to black knights. 2 white knights can handle 3 black knights. How many knights do we need for an army of 981 black knights?", "654"), + new AnagramClue("R AK MI", "Karim", new WorldPoint(3273, 3181, 0), "Al Kharid Kebab shop", "I have 16 kebabs, I eat one myself and then share the rest equally between 3 friends. How many do they have each?", "5"), + new AnagramClue("RAT MAT WITHIN", "Martin Thwait", new WorldPoint(2906, 3537, 0), "Rogues' Den", "How many natural fires burn in Rogue's Den?", "2"), + new AnagramClue("RATAI", "Taria", new WorldPoint(2940, 3223, 0), "Rimmington bush patch", "How many buildings are there in Rimmington?", "7"), + new AnagramClue("R SLICER", "Clerris", new WorldPoint(1761, 3850, 0), "Arceuus mine, Zeah", "If I have 1,000 blood runes, and cast 131 ice barrage spells, how many blood runes do I have left?", "738"), + new AnagramClue("RIP MAUL", "Primula", new WorldPoint(2454, 2853, 1), "Myth's Guild, first floor"), + new AnagramClue("SAND NUT", "Dunstan", new WorldPoint(2919, 3574, 0), "Anvil in north east Burthorpe", "How much smithing experience does one receive for smelting a blurite bar?", "8"), + new AnagramClue("SLAM DUSTER GRAIL", "Guildmaster Lars", new WorldPoint(1649, 3498, 0), "Woodcutting guild, Zeah"), + new AnagramClue("SLIDE WOMAN", "Wise Old Man", new WorldPoint(3088, 3253, 0), "Draynor Village", "How many bookcases are in the Wise Old Man's house?", "28"), + new AnagramClue("SNAKES SO I SAIL", "Lisse Isaakson", new WorldPoint(2351, 3801, 0), "Neitiznot", "How many arctic logs are required to make a large fremennik round shield?", "2"), + new AnagramClue("TAMED ROCKS", "Dockmaster", new WorldPoint(1822, 3739, 0), "Port Piscarilius, NE of General store", "What is the cube root of 125?", "5"), + new AnagramClue("TEN WIGS ON", "Wingstone", new WorldPoint(3389, 2877, 0), "Between Nardah & Agility Pyramid"), + new AnagramClue("THICKNO", "Hickton", new WorldPoint(2822, 3442, 0), "Catherby fletching shop", "How many ranges are there in Catherby?", "2"), + new AnagramClue("TWENTY CURE IRON", "New Recruit Tony", new WorldPoint(1503, 3553, 0), "Shayzien Graveyard"), + new AnagramClue("UNLEASH NIGHT MIST", "Sigli the Huntsman", new WorldPoint(2660, 3654, 0), "Rellekka", "What is the combined slayer requirement of every monster in the slayer cave?", "302"), + new AnagramClue("VESTE", "Steve", new WorldPoint(2432, 3423, 0), "Upstairs Wyvern Area or Stronghold Slayer Cave", "How many farming patches are there in Gnome stronghold?", "2"), + new AnagramClue("VEIL VEDA", "Evil Dave", new WorldPoint(3079, 9892, 0), "Doris' basement, Edgeville", "What is 333 multiplied by 2?", "666"), + new AnagramClue("WOO AN EGG KIWI", "Awowogei", ObjectID.AWOWOGEI, new WorldPoint(2802, 2765, 0), "Ape Atoll", "If I have 303 bananas, and share them between 31 friends evenly, only handing out full bananas. How many will I have left over?", "24"), + new AnagramClue("MAJORS LAVA BADS AIR", "Ambassador Alvijar", new WorldPoint(2736, 5351, 1), "Dorgesh-Kaan, NE Middle Level", "Double the miles before the initial Dorgeshuun veteran.", "2505"), + new AnagramClue("AN EARL", "Ranael", new WorldPoint(3315, 3163, 0), "Al Kharid skirt shop"), + new AnagramClue("CARPET AHOY", "Apothecary", new WorldPoint(3195, 3404, 0), "Southwest Varrock"), + new AnagramClue("DISORDER", "Sedridor", new WorldPoint(3102, 9570, 0), "Wizards' Tower basement"), + new AnagramClue("I CORD", "Doric", new WorldPoint(2951, 3450, 0), "North of Falador"), + new AnagramClue("IN BAR", "Brian", new WorldPoint(3026, 3246, 0), "Port Sarim battleaxe shop"), + new AnagramClue("RAIN COVE", "Veronica", new WorldPoint(3110, 3330, 0), "Outside Draynor Manor"), + new AnagramClue("RUG DETER", "Gertrude", new WorldPoint(3151, 3412, 0), "West of Varrock, south of the Cooks' Guild"), + new AnagramClue("SIR SHARE RED", "Hairdresser", new WorldPoint(2944, 3381, 0), "Western Falador"), + new AnagramClue("TAUNT ROOF", "Fortunato", new WorldPoint(3080, 3250, 0), "Draynor Village Market"), + new AnagramClue("HICK JET", "Jethick", new WorldPoint(2541, 3305, 0), "West Ardougne", "How many graves are there in the city graveyard?", "38"), + new AnagramClue("RUE GO", "Goreu", new WorldPoint(2335, 3162, 0), "Lletya"), + new AnagramClue("BRUCIE CATNAP", "Captain Bruce", new WorldPoint(1520, 3558, 0), "Graveyard of Heroes"), + new AnagramClue("UESNKRL NRIEDDO", "Drunken soldier", new WorldPoint(1551, 3565, 0), "Shayzien pub", "If 13 Shayzien Soldiers kill 46 Lizardmen each in a day, how many Lizardmen have they killed in total in a single day?", "598") ); private final String text; @@ -788,8 +161,29 @@ public class AnagramClue extends ClueScroll implements TextClueScroll, NpcClueSc private final String question; @Nullable private final String answer; - @Builder.Default - private final int objectId = -1; + private int objectId; + + private AnagramClue(String text, String npc, WorldPoint location, String area) + { + this(text, npc, location, area, null, null); + } + + private AnagramClue(String text, String npc, WorldPoint location, String area, @Nullable String question, @Nullable String answer) + { + this.text = text; + this.npc = npc; + this.location = location; + this.area = area; + this.question = question; + this.answer = answer; + this.objectId = -1; + } + + private AnagramClue(String text, String npc, int objectId, WorldPoint location, String area, String question, String answer) + { + this(text, npc, location, area, question, answer); + this.objectId = objectId; + } @Override public void makeOverlayHint(PanelComponent panelComponent, ClueScrollPlugin plugin) @@ -867,12 +261,12 @@ public class AnagramClue extends ClueScroll implements TextClueScroll, NpcClueSc @Override public String[] getNpcs() { - return new String[]{npc}; + return new String[] {npc}; } @Override public int[] getObjectIds() { - return new int[]{objectId}; + return new int[] {objectId}; } } From 22c02e4055722db427a7e1035f491e60b6f2c537 Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 16 Jan 2022 18:40:22 -0500 Subject: [PATCH 2/4] anagram clue: use builder pattern --- .../cluescrolls/clues/AnagramClue.java | 851 +++++++++++++++--- 1 file changed, 724 insertions(+), 127 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/AnagramClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/AnagramClue.java index 8a35abd738..33cc38e477 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/AnagramClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/AnagramClue.java @@ -24,11 +24,12 @@ */ package net.runelite.client.plugins.cluescrolls.clues; -import com.google.common.collect.ImmutableSet; +import com.google.common.collect.ImmutableList; import java.awt.Color; import java.awt.Graphics2D; -import java.util.Set; +import java.util.List; import javax.annotation.Nullable; +import lombok.Builder; import lombok.Getter; import net.runelite.api.NPC; import net.runelite.api.ObjectID; @@ -46,111 +47,728 @@ import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.ui.overlay.components.TitleComponent; @Getter +@Builder public class AnagramClue extends ClueScroll implements TextClueScroll, NpcClueScroll, ObjectClueScroll { private static final String ANAGRAM_TEXT = "This anagram reveals who to speak to next: "; private static final String ANAGRAM_TEXT_BEGINNER = "The anagram reveals who to speak to next: "; - private static final Set CLUES = ImmutableSet.of( - new AnagramClue("A BAKER", "Baraek", new WorldPoint(3217, 3434, 0), "Varrock square", "How many stalls are there in Varrock Square?", "5"), - new AnagramClue("A BASIC ANTI POT", "Captain Tobias", new WorldPoint(3026, 3216, 0), "Port Sarim", "How many ships are there docked at Port Sarim currently?", "6"), - new AnagramClue("A ELF KNOWS", "Snowflake", new WorldPoint(2872, 3934, 0), "Weiss"), - new AnagramClue("A HEART", "Aretha", new WorldPoint(1814, 3851, 0), "Soul altar", "32 - 5x = 22, what is x?", "2"), - new AnagramClue("AHA JAR", "Jaraah", new WorldPoint(3359, 3276, 0), "Duel Arena hospital"), - new AnagramClue("ARC O LINE", "Caroline", new WorldPoint(2715, 3302, 0), "North Witchaven next to the row boat", "How many fishermen are there on the fishing platform?", "11"), - new AnagramClue("ARE COL", "Oracle", new WorldPoint(3013, 3501, 0), "Ice Mountain West of Edgeville", "If x is 15 and y is 3 what is 3x + y?", "48"), - new AnagramClue("ARMCHAIR THE PELT", "Charlie the Tramp", new WorldPoint(3209, 3392, 0), "South entrance of Varrock", "How many coins would I have if I have 0 coins and attempt to buy 10 loaves of bread for 3 coins each?", "0"), - new AnagramClue("AT HERG", "Regath", new WorldPoint(1719, 3723, 0), "General Store, Arceuus, Zeah", "What is -5 to the power of 2?", "25"), - new AnagramClue("A BAS", "Saba", new WorldPoint(2858, 3577, 0), "Death Plateau"), - new AnagramClue("AREA CHEF TREK", "Father Aereck", new WorldPoint(3243, 3208, 0), "Lumbridge Church", "How many gravestones are in the church graveyard?", "19 or 20"), - new AnagramClue("BAIL TRIMS", "Brimstail", new WorldPoint(2402, 3419, 0), "West of Stronghold Slayer Cave"), - new AnagramClue("BAKER CLIMB", "Brambickle", new WorldPoint(2783, 3861, 0), "Trollweiss mountain"), - new AnagramClue("BLUE GRIM GUIDED", "Lumbridge Guide", new WorldPoint(3238, 3220, 0), "Lumbridge"), - new AnagramClue("BY LOOK", "Bolkoy", new WorldPoint(2529, 3162, 0), "Tree Gnome Village general store", "How many flowers are there in the clearing below this platform?", "13"), - new AnagramClue("CALAMARI MADE MUD", "Madame Caldarium", new WorldPoint(2553, 2868, 0), "Corsair Cove", "What is 3(5-3)?", "6"), - new AnagramClue("CAR IF ICES", "Sacrifice", new WorldPoint(2209, 3056, 0), "Zul-Andra"), - new AnagramClue("CAREER IN MOON", "Oneiromancer", new WorldPoint(2150, 3866, 0), "Astral altar", "How many Suqah inhabit Lunar isle?", "25"), - new AnagramClue("CLASH ION", "Nicholas", new WorldPoint(1841, 3803, 0), "North of Port Piscarilius fishing shop", "How many windows are in Tynan's shop?", "4"), - new AnagramClue("C ON GAME HOC", "Gnome Coach", new WorldPoint(2395, 3486, 0), "Gnome Ball course", "How many gnomes on the Gnome ball field have red patches on their uniforms?", "6"), - new AnagramClue("COOL NERD", "Old crone", new WorldPoint(3462, 3557, 0), "East of the Slayer Tower", "What is the combined combat level of each species that live in Slayer tower?", "619"), - new AnagramClue("COPPER ORE CRYPTS", "Prospector Percy", new WorldPoint(3061, 3377, 0), "Motherlode Mine", "During a party, everyone shook hands with everybody else. There were 66 handshakes. How many people were at the party?", "12"), - new AnagramClue("DARN DRAKE", "Daer Krand", new WorldPoint(3728, 3302, 0), "Sisterhood Sanctuary (Slepe Dungeon, northeast of Nightmare Arena)"), - new AnagramClue("DED WAR", "Edward", new WorldPoint(3284, 3943, 0), "Inside Rogue's Castle"), - new AnagramClue("DEKAGRAM", "Dark mage", new WorldPoint(3039, 4835, 0), "Centre of the Abyss", "How many rifts are found here in the abyss?", "13"), - new AnagramClue("DO SAY MORE", "Doomsayer", new WorldPoint(3230, 3230, 0), "East of Lumbridge Castle", "What is 40 divided by 1/2 plus 15?", "95"), - new AnagramClue("DIM THARN", "Mandrith", new WorldPoint(3182, 3946, 0), "Wilderness Resource Area"), - new AnagramClue("DR HITMAN", "Mandrith", new WorldPoint(3182, 3946, 0), "Wilderness Resource Area", "How many scorpions live under the pit?", "28"), - new AnagramClue("DR WARDEN FUNK", "Drunken Dwarf", new WorldPoint(2913, 10221, 0), "East Side of Keldagrim"), - new AnagramClue("DRAGONS LAMENT", "Strange Old Man", new WorldPoint(3564, 3288, 0), "Barrows", "One pipe fills a barrel in 1 hour while another pipe can fill the same barrel in 2 hours. How many minutes will it take to fill the tank if both pipes are used?", "40"), - new AnagramClue("DT RUN B", "Brundt the Chieftain", new WorldPoint(2658, 3670, 0), "Rellekka, main hall", "How many people are waiting for the next bard to perform?", "4"), - new AnagramClue("DUO PLUG", "Dugopul", new WorldPoint(2803, 2744, 0), "Graveyard on Ape Atoll"), - new AnagramClue("EEK ZERO OP", "Zoo keeper", new WorldPoint(2613, 3269, 0), "Ardougne Zoo", "How many animals in total are there in the zoo?", "40"), - new AnagramClue("EL OW", "Lowe", new WorldPoint(3233, 3423, 0), "Varrock archery store"), - new AnagramClue("FORLUN", "Runolf", new WorldPoint(2512, 10256, 0), "Miscellania & Etceteria Dungeon"), - new AnagramClue("GOBLIN KERN", "King Bolren", new WorldPoint(2541, 3170, 0), "Tree Gnome Village"), - new AnagramClue("GOT A BOY", "Gabooty", new WorldPoint(2790, 3066, 0), "Centre of Tai Bwo Wannai", "How many buildings are in the village?", "11"), - new AnagramClue("GOBLETS ODD TOES", "Otto Godblessed", new WorldPoint(2501, 3487, 0), "Otto's Grotto", "How many types of dragon are there beneath the whirlpool's cavern?", "2"), - new AnagramClue("HALT US", "Luthas", new WorldPoint(2938, 3152, 0), "Banana plantation, Karamja"), - new AnagramClue("HEORIC", "Eohric", new WorldPoint(2900, 3565, 0), "Top floor of Burthorpe Castle", "King Arthur and Merlin sit down at the Round Table with 8 knights. How many degrees does each get?", "36"), - new AnagramClue("HIS PHOR", "Horphis", new WorldPoint(1639, 3812, 0), "Arceuus Library, Zeah", "On a scale of 1-10, how helpful is Logosia?", "1"), - new AnagramClue("I AM SIR", "Marisi", new WorldPoint(1737, 3557, 0), "Allotment patch, South of Hosidius chapel", "How many cities form the Kingdom of Great Kourend?", "5"), - new AnagramClue("ICY FE", "Fycie", new WorldPoint(2630, 2997, 0), "East Feldip Hills"), - new AnagramClue("I DOOM ICON INN", "Dominic Onion", new WorldPoint(2609, 3116, 0), "Nightmare Zone", "How many reward points does a herb box cost?", "9,500"), - new AnagramClue("I EVEN", "Nieve", new WorldPoint(2432, 3422, 0), "The slayer master in Gnome Stronghold", "How many farming patches are there in Gnome stronghold?", "2"), - new AnagramClue("IM N ZEZIM", "Immenizz", new WorldPoint(2592, 4324, 0), "The Imp inside Puro-Puro"), - new AnagramClue("KAY SIR", "Sir Kay", new WorldPoint(2760, 3496, 0), "The courtyard in Camelot Castle", "How many fountains are there within the grounds of Camelot castle?", "6"), - new AnagramClue("LEAKEY", "Kaylee", new WorldPoint(2957, 3370, 0), "Rising Sun Inn in Falador", "How many chairs are there in the Rising Sun?", "18"), - new AnagramClue("LARK IN DOG", "King Roald", new WorldPoint(3220, 3476, 0), "Ground floor of Varrock castle", "How many bookcases are there in the palace library?", "24"), - new AnagramClue("LOW LAG", "Gallow", new WorldPoint(1805, 3566, 0), "Vinery in the Great Kourend", "How many vine patches can you find in this vinery?", "12"), - new AnagramClue("LADDER MEMO GUV", "Guard Vemmeldo", new WorldPoint(2447, 3418, 1), "Gnome Stronghold Bank", "How many magic trees can you find inside the Gnome Stronghold?", "3"), - new AnagramClue("MAL IN TAU", "Luminata", new WorldPoint(3508, 3237, 0), "Near Burgh de Rott entrance"), - new AnagramClue("MACHETE CLAM", "Cam the Camel", new WorldPoint(3300, 3231, 0), "Outside Duel Arena", "How many items can carry water in Gielinor?", "6"), - new AnagramClue("ME IF", "Femi", new WorldPoint(2461, 3382, 0), "Gates of Tree Gnome Stronghold"), - new AnagramClue("MOLD LA RAN", "Old Man Ral", new WorldPoint(3602, 3209, 0), "Meiyerditch"), - new AnagramClue("MOTHERBOARD", "Brother Omad", new WorldPoint(2606, 3211, 0), "Monastery south of Ardougne", "What is the next number? 12, 13, 15, 17, 111, 113, 117, 119, 123....?", "129"), - new AnagramClue("MUS KIL READER", "Radimus Erkle", new WorldPoint(2726, 3368, 0), "Legends' Guild"), - new AnagramClue("MY MANGLE LAL", "Lammy Langle", new WorldPoint(1688, 3540, 0), "Hosidius spirit tree patch"), - new AnagramClue("NO OWNER", "Oronwen", new WorldPoint(1162, 3178, 0), "Lletya Seamstress shop in Lletya", "What is the minimum amount of quest points required to reach Lletya?", "20"), - new AnagramClue("NOD MED", "Edmond", new WorldPoint(2566, 3332, 0), "Behind the most NW house in East Ardougne", "How many pigeon cages are there around the back of Jerico's house?", "3"), - new AnagramClue("O BIRDZ A ZANY EN PC", "Cap'n Izzy No-Beard", new WorldPoint(2807, 3191, 0), "Brimhaven Agility Arena", "How many Banana Trees are there in the plantation?", "33"), - new AnagramClue("OK CO", "Cook", new WorldPoint(3207, 3214, 0), "Ground floor of Lumbridge Castle", "How many cannons does Lumbridge Castle have?", "9"), - new AnagramClue("OUR OWN NEEDS", "Nurse Wooned", new WorldPoint(1511, 3619, 0), "Shayzien Infirmary", "How many wounded soldiers are there in the camp?", "16"), - new AnagramClue("PACINNG A TAIE", "Captain Ginea", new WorldPoint(1504, 3632, 0), "Tent east of Shayzien Encampment war tent", "1 soldier can deal with 6 lizardmen. How many soldiers do we need for an army of 678 lizardmen?", "113"), - new AnagramClue("PEAK REFLEX", "Flax keeper", new WorldPoint(2744, 3444, 0), "Flax field south of Seers Village", "If I have 1014 flax, and I spin a third of them into bowstring, how many flax do I have left?", "676"), - new AnagramClue("PEATY PERT", "Party Pete", new WorldPoint(3047, 3376, 0), "Falador Party Room"), - new AnagramClue("QUIT HORRIBLE TYRANT", "Brother Tranquility", new WorldPoint(3681, 2963, 0), "Mos Le'Harmless or Harmony Island", "If I have 49 bottles of rum to share between 7 pirates, how many would each pirate get?", "7"), - new AnagramClue("QUE SIR", "Squire", new WorldPoint(2975, 3343, 0), "Falador Castle Courtyard", "White knights are superior to black knights. 2 white knights can handle 3 black knights. How many knights do we need for an army of 981 black knights?", "654"), - new AnagramClue("R AK MI", "Karim", new WorldPoint(3273, 3181, 0), "Al Kharid Kebab shop", "I have 16 kebabs, I eat one myself and then share the rest equally between 3 friends. How many do they have each?", "5"), - new AnagramClue("RAT MAT WITHIN", "Martin Thwait", new WorldPoint(2906, 3537, 0), "Rogues' Den", "How many natural fires burn in Rogue's Den?", "2"), - new AnagramClue("RATAI", "Taria", new WorldPoint(2940, 3223, 0), "Rimmington bush patch", "How many buildings are there in Rimmington?", "7"), - new AnagramClue("R SLICER", "Clerris", new WorldPoint(1761, 3850, 0), "Arceuus mine, Zeah", "If I have 1,000 blood runes, and cast 131 ice barrage spells, how many blood runes do I have left?", "738"), - new AnagramClue("RIP MAUL", "Primula", new WorldPoint(2454, 2853, 1), "Myth's Guild, first floor"), - new AnagramClue("SAND NUT", "Dunstan", new WorldPoint(2919, 3574, 0), "Anvil in north east Burthorpe", "How much smithing experience does one receive for smelting a blurite bar?", "8"), - new AnagramClue("SLAM DUSTER GRAIL", "Guildmaster Lars", new WorldPoint(1649, 3498, 0), "Woodcutting guild, Zeah"), - new AnagramClue("SLIDE WOMAN", "Wise Old Man", new WorldPoint(3088, 3253, 0), "Draynor Village", "How many bookcases are in the Wise Old Man's house?", "28"), - new AnagramClue("SNAKES SO I SAIL", "Lisse Isaakson", new WorldPoint(2351, 3801, 0), "Neitiznot", "How many arctic logs are required to make a large fremennik round shield?", "2"), - new AnagramClue("TAMED ROCKS", "Dockmaster", new WorldPoint(1822, 3739, 0), "Port Piscarilius, NE of General store", "What is the cube root of 125?", "5"), - new AnagramClue("TEN WIGS ON", "Wingstone", new WorldPoint(3389, 2877, 0), "Between Nardah & Agility Pyramid"), - new AnagramClue("THICKNO", "Hickton", new WorldPoint(2822, 3442, 0), "Catherby fletching shop", "How many ranges are there in Catherby?", "2"), - new AnagramClue("TWENTY CURE IRON", "New Recruit Tony", new WorldPoint(1503, 3553, 0), "Shayzien Graveyard"), - new AnagramClue("UNLEASH NIGHT MIST", "Sigli the Huntsman", new WorldPoint(2660, 3654, 0), "Rellekka", "What is the combined slayer requirement of every monster in the slayer cave?", "302"), - new AnagramClue("VESTE", "Steve", new WorldPoint(2432, 3423, 0), "Upstairs Wyvern Area or Stronghold Slayer Cave", "How many farming patches are there in Gnome stronghold?", "2"), - new AnagramClue("VEIL VEDA", "Evil Dave", new WorldPoint(3079, 9892, 0), "Doris' basement, Edgeville", "What is 333 multiplied by 2?", "666"), - new AnagramClue("WOO AN EGG KIWI", "Awowogei", ObjectID.AWOWOGEI, new WorldPoint(2802, 2765, 0), "Ape Atoll", "If I have 303 bananas, and share them between 31 friends evenly, only handing out full bananas. How many will I have left over?", "24"), - new AnagramClue("MAJORS LAVA BADS AIR", "Ambassador Alvijar", new WorldPoint(2736, 5351, 1), "Dorgesh-Kaan, NE Middle Level", "Double the miles before the initial Dorgeshuun veteran.", "2505"), - new AnagramClue("AN EARL", "Ranael", new WorldPoint(3315, 3163, 0), "Al Kharid skirt shop"), - new AnagramClue("CARPET AHOY", "Apothecary", new WorldPoint(3195, 3404, 0), "Southwest Varrock"), - new AnagramClue("DISORDER", "Sedridor", new WorldPoint(3102, 9570, 0), "Wizards' Tower basement"), - new AnagramClue("I CORD", "Doric", new WorldPoint(2951, 3450, 0), "North of Falador"), - new AnagramClue("IN BAR", "Brian", new WorldPoint(3026, 3246, 0), "Port Sarim battleaxe shop"), - new AnagramClue("RAIN COVE", "Veronica", new WorldPoint(3110, 3330, 0), "Outside Draynor Manor"), - new AnagramClue("RUG DETER", "Gertrude", new WorldPoint(3151, 3412, 0), "West of Varrock, south of the Cooks' Guild"), - new AnagramClue("SIR SHARE RED", "Hairdresser", new WorldPoint(2944, 3381, 0), "Western Falador"), - new AnagramClue("TAUNT ROOF", "Fortunato", new WorldPoint(3080, 3250, 0), "Draynor Village Market"), - new AnagramClue("HICK JET", "Jethick", new WorldPoint(2541, 3305, 0), "West Ardougne", "How many graves are there in the city graveyard?", "38"), - new AnagramClue("RUE GO", "Goreu", new WorldPoint(2335, 3162, 0), "Lletya"), - new AnagramClue("BRUCIE CATNAP", "Captain Bruce", new WorldPoint(1520, 3558, 0), "Graveyard of Heroes"), - new AnagramClue("UESNKRL NRIEDDO", "Drunken soldier", new WorldPoint(1551, 3565, 0), "Shayzien pub", "If 13 Shayzien Soldiers kill 46 Lizardmen each in a day, how many Lizardmen have they killed in total in a single day?", "598") + private static final List CLUES = ImmutableList.of( + AnagramClue.builder() + .text("A BAKER") + .npc("Baraek") + .location(new WorldPoint(3217, 3434, 0)) + .area("Varrock square") + .question("How many stalls are there in Varrock Square?") + .answer("5") + .build(), + AnagramClue.builder() + .text("A BASIC ANTI POT") + .npc("Captain Tobias") + .location(new WorldPoint(3026, 3216, 0)) + .area("Port Sarim") + .question("How many ships are there docked at Port Sarim currently?") + .answer("6") + .build(), + AnagramClue.builder() + .text("A ELF KNOWS") + .npc("Snowflake") + .location(new WorldPoint(2872, 3934, 0)) + .area("Weiss") + .build(), + AnagramClue.builder() + .text("A HEART") + .npc("Aretha") + .location(new WorldPoint(1814, 3851, 0)) + .area("Soul altar") + .question("32 - 5x = 22, what is x?") + .answer("2") + .build(), + AnagramClue.builder() + .text("AHA JAR") + .npc("Jaraah") + .location(new WorldPoint(3359, 3276, 0)) + .area("Duel Arena hospital") + .build(), + AnagramClue.builder() + .text("ARC O LINE") + .npc("Caroline") + .location(new WorldPoint(2715, 3302, 0)) + .area("North Witchaven next to the row boat") + .question("How many fishermen are there on the fishing platform?") + .answer("11") + .build(), + AnagramClue.builder() + .text("ARE COL") + .npc("Oracle") + .location(new WorldPoint(3013, 3501, 0)) + .area("Ice Mountain West of Edgeville") + .question("If x is 15 and y is 3 what is 3x + y?") + .answer("48") + .build(), + AnagramClue.builder() + .text("ARMCHAIR THE PELT") + .npc("Charlie the Tramp") + .location(new WorldPoint(3209, 3392, 0)) + .area("South entrance of Varrock") + .question("How many coins would I have if I have 0 coins and attempt to buy 10 loaves of bread for 3 coins each?") + .answer("0") + .build(), + AnagramClue.builder() + .text("AT HERG") + .npc("Regath") + .location(new WorldPoint(1719, 3723, 0)) + .area("General Store, Arceuus, Zeah") + .question("What is -5 to the power of 2?") + .answer("25") + .build(), + AnagramClue.builder() + .text("A BAS") + .npc("Saba") + .location(new WorldPoint(2858, 3577, 0)) + .area("Death Plateau") + .build(), + AnagramClue.builder() + .text("AREA CHEF TREK") + .npc("Father Aereck") + .location(new WorldPoint(3243, 3208, 0)) + .area("Lumbridge Church") + .question("How many gravestones are in the church graveyard?") + .answer("19 or 20") + .build(), + AnagramClue.builder() + .text("BAIL TRIMS") + .npc("Brimstail") + .location(new WorldPoint(2402, 3419, 0)) + .area("West of Stronghold Slayer Cave") + .build(), + AnagramClue.builder() + .text("BAKER CLIMB") + .npc("Brambickle") + .location(new WorldPoint(2783, 3861, 0)) + .area("Trollweiss mountain") + .build(), + AnagramClue.builder() + .text("BLUE GRIM GUIDED") + .npc("Lumbridge Guide") + .location(new WorldPoint(3238, 3220, 0)) + .area("Lumbridge") + .build(), + AnagramClue.builder() + .text("BY LOOK") + .npc("Bolkoy") + .location(new WorldPoint(2529, 3162, 0)) + .area("Tree Gnome Village general store") + .question("How many flowers are there in the clearing below this platform?") + .answer("13") + .build(), + AnagramClue.builder() + .text("CALAMARI MADE MUD") + .npc("Madame Caldarium") + .location(new WorldPoint(2553, 2868, 0)) + .area("Corsair Cove") + .question("What is 3(5-3)?") + .answer("6") + .build(), + AnagramClue.builder() + .text("CAR IF ICES") + .npc("Sacrifice") + .location(new WorldPoint(2209, 3056, 0)) + .area("Zul-Andra") + .build(), + AnagramClue.builder() + .text("CAREER IN MOON") + .npc("Oneiromancer") + .location(new WorldPoint(2150, 3866, 0)) + .area("Astral altar") + .question("How many Suqah inhabit Lunar isle?") + .answer("25") + .build(), + AnagramClue.builder() + .text("CLASH ION") + .npc("Nicholas") + .location(new WorldPoint(1841, 3803, 0)) + .area("North of Port Piscarilius fishing shop") + .question("How many windows are in Tynan's shop?") + .answer("4") + .build(), + AnagramClue.builder() + .text("C ON GAME HOC") + .npc("Gnome Coach") + .location(new WorldPoint(2395, 3486, 0)) + .area("Gnome Ball course") + .question("How many gnomes on the Gnome ball field have red patches on their uniforms?") + .answer("6") + .build(), + AnagramClue.builder() + .text("COOL NERD") + .npc("Old crone") + .location(new WorldPoint(3462, 3557, 0)) + .area("East of the Slayer Tower") + .question("What is the combined combat level of each species that live in Slayer tower?") + .answer("619") + .build(), + AnagramClue.builder() + .text("COPPER ORE CRYPTS") + .npc("Prospector Percy") + .location(new WorldPoint(3061, 3377, 0)) + .area("Motherlode Mine") + .question("During a party, everyone shook hands with everybody else. There were 66 handshakes. How many people were at the party?") + .answer("12") + .build(), + AnagramClue.builder() + .text("DARN DRAKE") + .npc("Daer Krand") + .location(new WorldPoint(3728, 3302, 0)) + .area("Sisterhood Sanctuary (Slepe Dungeon, northeast of Nightmare Arena)") + .build(), + AnagramClue.builder() + .text("DED WAR") + .npc("Edward") + .location(new WorldPoint(3284, 3943, 0)) + .area("Inside Rogue's Castle") + .build(), + AnagramClue.builder() + .text("DEKAGRAM") + .npc("Dark mage") + .location(new WorldPoint(3039, 4835, 0)) + .area("Centre of the Abyss") + .question("How many rifts are found here in the abyss?") + .answer("13") + .build(), + AnagramClue.builder() + .text("DO SAY MORE") + .npc("Doomsayer") + .location(new WorldPoint(3230, 3230, 0)) + .area("East of Lumbridge Castle") + .question("What is 40 divided by 1/2 plus 15?") + .answer("95") + .build(), + AnagramClue.builder() + .text("DIM THARN") + .npc("Mandrith") + .location(new WorldPoint(3182, 3946, 0)) + .area("Wilderness Resource Area") + .build(), + AnagramClue.builder() + .text("DR HITMAN") + .npc("Mandrith") + .location(new WorldPoint(3182, 3946, 0)) + .area("Wilderness Resource Area") + .question("How many scorpions live under the pit?") + .answer("28") + .build(), + AnagramClue.builder() + .text("DR WARDEN FUNK") + .npc("Drunken Dwarf") + .location(new WorldPoint(2913, 10221, 0)) + .area("East Side of Keldagrim") + .build(), + AnagramClue.builder() + .text("DRAGONS LAMENT") + .npc("Strange Old Man") + .location(new WorldPoint(3564, 3288, 0)) + .area("Barrows") + .question("One pipe fills a barrel in 1 hour while another pipe can fill the same barrel in 2 hours. How many minutes will it take to fill the tank if both pipes are used?") + .answer("40") + .build(), + AnagramClue.builder() + .text("DT RUN B") + .npc("Brundt the Chieftain") + .location(new WorldPoint(2658, 3670, 0)) + .area("Rellekka, main hall") + .question("How many people are waiting for the next bard to perform?") + .answer("4") + .build(), + AnagramClue.builder() + .text("DUO PLUG") + .npc("Dugopul") + .location(new WorldPoint(2803, 2744, 0)) + .area("Graveyard on Ape Atoll") + .build(), + AnagramClue.builder() + .text("EEK ZERO OP") + .npc("Zoo keeper") + .location(new WorldPoint(2613, 3269, 0)) + .area("Ardougne Zoo") + .question("How many animals in total are there in the zoo?") + .answer("40") + .build(), + AnagramClue.builder() + .text("EL OW") + .npc("Lowe") + .location(new WorldPoint(3233, 3423, 0)) + .area("Varrock archery store") + .build(), + AnagramClue.builder() + .text("FORLUN") + .npc("Runolf") + .location(new WorldPoint(2512, 10256, 0)) + .area("Miscellania & Etceteria Dungeon") + .build(), + AnagramClue.builder() + .text("GOBLIN KERN") + .npc("King Bolren") + .location(new WorldPoint(2541, 3170, 0)) + .area("Tree Gnome Village") + .build(), + AnagramClue.builder() + .text("GOT A BOY") + .npc("Gabooty") + .location(new WorldPoint(2790, 3066, 0)) + .area("Centre of Tai Bwo Wannai") + .question("How many buildings are in the village?") + .answer("11") + .build(), + AnagramClue.builder() + .text("GOBLETS ODD TOES") + .npc("Otto Godblessed") + .location(new WorldPoint(2501, 3487, 0)) + .area("Otto's Grotto") + .question("How many types of dragon are there beneath the whirlpool's cavern?") + .answer("2") + .build(), + AnagramClue.builder() + .text("HALT US") + .npc("Luthas") + .location(new WorldPoint(2938, 3152, 0)) + .area("Banana plantation, Karamja") + .build(), + AnagramClue.builder() + .text("HEORIC") + .npc("Eohric") + .location(new WorldPoint(2900, 3565, 0)) + .area("Top floor of Burthorpe Castle") + .question("King Arthur and Merlin sit down at the Round Table with 8 knights. How many degrees does each get?") + .answer("36") + .build(), + AnagramClue.builder() + .text("HIS PHOR") + .npc("Horphis") + .location(new WorldPoint(1639, 3812, 0)) + .area("Arceuus Library, Zeah") + .question("On a scale of 1-10, how helpful is Logosia?") + .answer("1") + .build(), + AnagramClue.builder() + .text("I AM SIR") + .npc("Marisi") + .location(new WorldPoint(1737, 3557, 0)) + .area("Allotment patch, South of Hosidius chapel") + .question("How many cities form the Kingdom of Great Kourend?") + .answer("5") + .build(), + AnagramClue.builder() + .text("ICY FE") + .npc("Fycie") + .location(new WorldPoint(2630, 2997, 0)) + .area("East Feldip Hills") + .build(), + AnagramClue.builder() + .text("I DOOM ICON INN") + .npc("Dominic Onion") + .location(new WorldPoint(2609, 3116, 0)) + .area("Nightmare Zone") + .question("How many reward points does a herb box cost?") + .answer("9,500") + .build(), + AnagramClue.builder() + .text("I EVEN") + .npc("Nieve") + .location(new WorldPoint(2432, 3422, 0)) + .area("The slayer master in Gnome Stronghold") + .question("How many farming patches are there in Gnome stronghold?") + .answer("2") + .build(), + AnagramClue.builder() + .text("IM N ZEZIM") + .npc("Immenizz") + .location(new WorldPoint(2592, 4324, 0)) + .area("The Imp inside Puro-Puro") + .build(), + AnagramClue.builder() + .text("KAY SIR") + .npc("Sir Kay") + .location(new WorldPoint(2760, 3496, 0)) + .area("The courtyard in Camelot Castle") + .question("How many fountains are there within the grounds of Camelot castle?") + .answer("6") + .build(), + AnagramClue.builder() + .text("LEAKEY") + .npc("Kaylee") + .location(new WorldPoint(2957, 3370, 0)) + .area("Rising Sun Inn in Falador") + .question("How many chairs are there in the Rising Sun?") + .answer("18") + .build(), + AnagramClue.builder() + .text("LARK IN DOG") + .npc("King Roald") + .location(new WorldPoint(3220, 3476, 0)) + .area("Ground floor of Varrock castle") + .question("How many bookcases are there in the palace library?") + .answer("24") + .build(), + AnagramClue.builder() + .text("LOW LAG") + .npc("Gallow") + .location(new WorldPoint(1805, 3566, 0)) + .area("Vinery in the Great Kourend") + .question("How many vine patches can you find in this vinery?") + .answer("12") + .build(), + AnagramClue.builder() + .text("LADDER MEMO GUV") + .npc("Guard Vemmeldo") + .location(new WorldPoint(2447, 3418, 1)) + .area("Gnome Stronghold Bank") + .question("How many magic trees can you find inside the Gnome Stronghold?") + .answer("3") + .build(), + AnagramClue.builder() + .text("MAL IN TAU") + .npc("Luminata") + .location(new WorldPoint(3508, 3237, 0)) + .area("Near Burgh de Rott entrance") + .build(), + AnagramClue.builder() + .text("MACHETE CLAM") + .npc("Cam the Camel") + .location(new WorldPoint(3300, 3231, 0)) + .area("Outside Duel Arena") + .question("How many items can carry water in Gielinor?") + .answer("6") + .build(), + AnagramClue.builder() + .text("ME IF") + .npc("Femi") + .location(new WorldPoint(2461, 3382, 0)) + .area("Gates of Tree Gnome Stronghold") + .build(), + AnagramClue.builder() + .text("MOLD LA RAN") + .npc("Old Man Ral") + .location(new WorldPoint(3602, 3209, 0)) + .area("Meiyerditch") + .build(), + AnagramClue.builder() + .text("MOTHERBOARD") + .npc("Brother Omad") + .location(new WorldPoint(2606, 3211, 0)) + .area("Monastery south of Ardougne") + .question("What is the next number? 12, 13, 15, 17, 111, 113, 117, 119, 123....?") + .answer("129") + .build(), + AnagramClue.builder() + .text("MUS KIL READER") + .npc("Radimus Erkle") + .location(new WorldPoint(2726, 3368, 0)) + .area("Legends' Guild") + .build(), + AnagramClue.builder() + .text("MY MANGLE LAL") + .npc("Lammy Langle") + .location(new WorldPoint(1688, 3540, 0)) + .area("Hosidius spirit tree patch") + .build(), + AnagramClue.builder() + .text("NO OWNER") + .npc("Oronwen") + .location(new WorldPoint(1162, 3178, 0)) + .area("Lletya Seamstress shop in Lletya") + .question("What is the minimum amount of quest points required to reach Lletya?") + .answer("20") + .build(), + AnagramClue.builder() + .text("NOD MED") + .npc("Edmond") + .location(new WorldPoint(2566, 3332, 0)) + .area("Behind the most NW house in East Ardougne") + .question("How many pigeon cages are there around the back of Jerico's house?") + .answer("3") + .build(), + AnagramClue.builder() + .text("O BIRDZ A ZANY EN PC") + .npc("Cap'n Izzy No-Beard") + .location(new WorldPoint(2807, 3191, 0)) + .area("Brimhaven Agility Arena") + .question("How many Banana Trees are there in the plantation?") + .answer("33") + .build(), + AnagramClue.builder() + .text("OK CO") + .npc("Cook") + .location(new WorldPoint(3207, 3214, 0)) + .area("Ground floor of Lumbridge Castle") + .question("How many cannons does Lumbridge Castle have?") + .answer("9") + .build(), + AnagramClue.builder() + .text("OUR OWN NEEDS") + .npc("Nurse Wooned") + .location(new WorldPoint(1511, 3619, 0)) + .area("Shayzien Infirmary") + .question("How many wounded soldiers are there in the camp?") + .answer("16") + .build(), + AnagramClue.builder() + .text("PACINNG A TAIE") + .npc("Captain Ginea") + .location(new WorldPoint(1504, 3632, 0)) + .area("Tent east of Shayzien Encampment war tent") + .question("1 soldier can deal with 6 lizardmen. How many soldiers do we need for an army of 678 lizardmen?") + .answer("113") + .build(), + AnagramClue.builder() + .text("PEAK REFLEX") + .npc("Flax keeper") + .location(new WorldPoint(2744, 3444, 0)) + .area("Flax field south of Seers Village") + .question("If I have 1014 flax, and I spin a third of them into bowstring, how many flax do I have left?") + .answer("676") + .build(), + AnagramClue.builder() + .text("PEATY PERT") + .npc("Party Pete") + .location(new WorldPoint(3047, 3376, 0)) + .area("Falador Party Room") + .build(), + AnagramClue.builder() + .text("QUIT HORRIBLE TYRANT") + .npc("Brother Tranquility") + .location(new WorldPoint(3681, 2963, 0)) + .area("Mos Le'Harmless or Harmony Island") + .question("If I have 49 bottles of rum to share between 7 pirates, how many would each pirate get?") + .answer("7") + .build(), + AnagramClue.builder() + .text("QUE SIR") + .npc("Squire") + .location(new WorldPoint(2975, 3343, 0)) + .area("Falador Castle Courtyard") + .question("White knights are superior to black knights. 2 white knights can handle 3 black knights. How many knights do we need for an army of 981 black knights?") + .answer("654") + .build(), + AnagramClue.builder() + .text("R AK MI") + .npc("Karim") + .location(new WorldPoint(3273, 3181, 0)) + .area("Al Kharid Kebab shop") + .question("I have 16 kebabs, I eat one myself and then share the rest equally between 3 friends. How many do they have each?") + .answer("5") + .build(), + AnagramClue.builder() + .text("RAT MAT WITHIN") + .npc("Martin Thwait") + .location(new WorldPoint(2906, 3537, 0)) + .area("Rogues' Den") + .question("How many natural fires burn in Rogue's Den?") + .answer("2") + .build(), + AnagramClue.builder() + .text("RATAI") + .npc("Taria") + .location(new WorldPoint(2940, 3223, 0)) + .area("Rimmington bush patch") + .question("How many buildings are there in Rimmington?") + .answer("7") + .build(), + AnagramClue.builder() + .text("R SLICER") + .npc("Clerris") + .location(new WorldPoint(1761, 3850, 0)) + .area("Arceuus mine, Zeah") + .question("If I have 1,000 blood runes, and cast 131 ice barrage spells, how many blood runes do I have left?") + .answer("738") + .build(), + AnagramClue.builder() + .text("RIP MAUL") + .npc("Primula") + .location(new WorldPoint(2454, 2853, 1)) + .area("Myth's Guild, first floor") + .build(), + AnagramClue.builder() + .text("SAND NUT") + .npc("Dunstan") + .location(new WorldPoint(2919, 3574, 0)) + .area("Anvil in north east Burthorpe") + .question("How much smithing experience does one receive for smelting a blurite bar?") + .answer("8") + .build(), + AnagramClue.builder() + .text("SLAM DUSTER GRAIL") + .npc("Guildmaster Lars") + .location(new WorldPoint(1649, 3498, 0)) + .area("Woodcutting guild, Zeah") + .build(), + AnagramClue.builder() + .text("SLIDE WOMAN") + .npc("Wise Old Man") + .location(new WorldPoint(3088, 3253, 0)) + .area("Draynor Village") + .question("How many bookcases are in the Wise Old Man's house?") + .answer("28") + .build(), + AnagramClue.builder() + .text("SNAKES SO I SAIL") + .npc("Lisse Isaakson") + .location(new WorldPoint(2351, 3801, 0)) + .area("Neitiznot") + .question("How many arctic logs are required to make a large fremennik round shield?") + .answer("2") + .build(), + AnagramClue.builder() + .text("TAMED ROCKS") + .npc("Dockmaster") + .location(new WorldPoint(1822, 3739, 0)) + .area("Port Piscarilius, NE of General store") + .question("What is the cube root of 125?") + .answer("5") + .build(), + AnagramClue.builder() + .text("TEN WIGS ON") + .npc("Wingstone") + .location(new WorldPoint(3389, 2877, 0)) + .area("Between Nardah & Agility Pyramid") + .build(), + AnagramClue.builder() + .text("THICKNO") + .npc("Hickton") + .location(new WorldPoint(2822, 3442, 0)) + .area("Catherby fletching shop") + .question("How many ranges are there in Catherby?") + .answer("2") + .build(), + AnagramClue.builder() + .text("TWENTY CURE IRON") + .npc("New Recruit Tony") + .location(new WorldPoint(1503, 3553, 0)) + .area("Shayzien Graveyard") + .build(), + AnagramClue.builder() + .text("UNLEASH NIGHT MIST") + .npc("Sigli the Huntsman") + .location(new WorldPoint(2660, 3654, 0)) + .area("Rellekka") + .question("What is the combined slayer requirement of every monster in the slayer cave?") + .answer("302") + .build(), + AnagramClue.builder() + .text("VESTE") + .npc("Steve") + .location(new WorldPoint(2432, 3423, 0)) + .area("Upstairs Wyvern Area or Stronghold Slayer Cave") + .question("How many farming patches are there in Gnome stronghold?") + .answer("2") + .build(), + AnagramClue.builder() + .text("VEIL VEDA") + .npc("Evil Dave") + .location(new WorldPoint(3079, 9892, 0)) + .area("Doris' basement, Edgeville") + .question("What is 333 multiplied by 2?") + .answer("666") + .build(), + AnagramClue.builder() + .text("WOO AN EGG KIWI") + .npc("Awowogei") + .objectId(ObjectID.AWOWOGEI) + .location(new WorldPoint(2802, 2765, 0)) + .area("Ape Atoll") + .question("If I have 303 bananas, and share them between 31 friends evenly, only handing out full bananas. How many will I have left over?") + .answer("24") + .build(), + AnagramClue.builder() + .text("MAJORS LAVA BADS AIR") + .npc("Ambassador Alvijar") + .location(new WorldPoint(2736, 5351, 1)) + .area("Dorgesh-Kaan, NE Middle Level") + .question("Double the miles before the initial Dorgeshuun veteran.") + .answer("2505") + .build(), + AnagramClue.builder() + .text("AN EARL") + .npc("Ranael") + .location(new WorldPoint(3315, 3163, 0)) + .area("Al Kharid skirt shop") + .build(), + AnagramClue.builder() + .text("CARPET AHOY") + .npc("Apothecary") + .location(new WorldPoint(3195, 3404, 0)) + .area("Southwest Varrock") + .build(), + AnagramClue.builder() + .text("DISORDER") + .npc("Sedridor") + .location(new WorldPoint(3102, 9570, 0)) + .area("Wizards' Tower basement") + .build(), + AnagramClue.builder() + .text("I CORD") + .npc("Doric") + .location(new WorldPoint(2951, 3450, 0)) + .area("North of Falador") + .build(), + AnagramClue.builder() + .text("IN BAR") + .npc("Brian") + .location(new WorldPoint(3026, 3246, 0)) + .area("Port Sarim battleaxe shop") + .build(), + AnagramClue.builder() + .text("RAIN COVE") + .npc("Veronica") + .location(new WorldPoint(3110, 3330, 0)) + .area("Outside Draynor Manor") + .build(), + AnagramClue.builder() + .text("RUG DETER") + .npc("Gertrude") + .location(new WorldPoint(3151, 3412, 0)) + .area("West of Varrock, south of the Cooks' Guild") + .build(), + AnagramClue.builder() + .text("SIR SHARE RED") + .npc("Hairdresser") + .location(new WorldPoint(2944, 3381, 0)) + .area("Western Falador") + .build(), + AnagramClue.builder() + .text("TAUNT ROOF") + .npc("Fortunato") + .location(new WorldPoint(3080, 3250, 0)) + .area("Draynor Village Market") + .build(), + AnagramClue.builder() + .text("HICK JET") + .npc("Jethick") + .location(new WorldPoint(2541, 3305, 0)) + .area("West Ardougne") + .question("How many graves are there in the city graveyard?") + .answer("38") + .build(), + AnagramClue.builder() + .text("RUE GO") + .npc("Goreu") + .location(new WorldPoint(2335, 3162, 0)) + .area("Lletya") + .build(), + AnagramClue.builder() + .text("BRUCIE CATNAP") + .npc("Captain Bruce") + .location(new WorldPoint(1520, 3558, 0)) + .area("Graveyard of Heroes") + .build(), + AnagramClue.builder() + .text("UESNKRL NRIEDDO") + .npc("Drunken soldier") + .location(new WorldPoint(1551, 3565, 0)) + .area("Shayzien pub") + .question("If 13 Shayzien Soldiers kill 46 Lizardmen each in a day, how many Lizardmen have they killed in total in a single day?") + .answer("598") + .build() ); private final String text; @@ -161,29 +779,8 @@ public class AnagramClue extends ClueScroll implements TextClueScroll, NpcClueSc private final String question; @Nullable private final String answer; - private int objectId; - - private AnagramClue(String text, String npc, WorldPoint location, String area) - { - this(text, npc, location, area, null, null); - } - - private AnagramClue(String text, String npc, WorldPoint location, String area, @Nullable String question, @Nullable String answer) - { - this.text = text; - this.npc = npc; - this.location = location; - this.area = area; - this.question = question; - this.answer = answer; - this.objectId = -1; - } - - private AnagramClue(String text, String npc, int objectId, WorldPoint location, String area, String question, String answer) - { - this(text, npc, location, area, question, answer); - this.objectId = objectId; - } + @Builder.Default + private final int objectId = -1; @Override public void makeOverlayHint(PanelComponent panelComponent, ClueScrollPlugin plugin) @@ -261,12 +858,12 @@ public class AnagramClue extends ClueScroll implements TextClueScroll, NpcClueSc @Override public String[] getNpcs() { - return new String[] {npc}; + return new String[]{npc}; } @Override public int[] getObjectIds() { - return new int[] {objectId}; + return new int[]{objectId}; } } From f859ec9dc84d1afefaa0520e131871bb00228abf Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 16 Jan 2022 18:57:58 -0500 Subject: [PATCH 3/4] clues: use lists instead of sets for clues --- .../client/plugins/cluescrolls/clues/CipherClue.java | 6 +++--- .../client/plugins/cluescrolls/clues/CrypticClue.java | 6 +++--- .../client/plugins/cluescrolls/clues/EmoteClue.java | 6 +++--- .../client/plugins/cluescrolls/clues/FairyRingClue.java | 6 +++--- .../runelite/client/plugins/cluescrolls/clues/MapClue.java | 6 +++--- .../plugins/cluescrolls/clues/SkillChallengeClue.java | 5 ++--- 6 files changed, 17 insertions(+), 18 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CipherClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CipherClue.java index e9fc62186f..1c9bb01b7c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CipherClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CipherClue.java @@ -24,10 +24,10 @@ */ package net.runelite.client.plugins.cluescrolls.clues; -import com.google.common.collect.ImmutableSet; +import com.google.common.collect.ImmutableList; import java.awt.Color; import java.awt.Graphics2D; -import java.util.Set; +import java.util.List; import javax.annotation.Nullable; import lombok.Getter; import net.runelite.api.NPC; @@ -43,7 +43,7 @@ import net.runelite.client.ui.overlay.components.TitleComponent; @Getter public class CipherClue extends ClueScroll implements TextClueScroll, NpcClueScroll, LocationClueScroll { - private static final Set CLUES = ImmutableSet.of( + private static final List CLUES = ImmutableList.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"), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java index 7c4b03c4c8..fc64ab21ed 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java @@ -24,10 +24,10 @@ */ package net.runelite.client.plugins.cluescrolls.clues; -import com.google.common.collect.ImmutableSet; +import com.google.common.collect.ImmutableList; import java.awt.Color; import java.awt.Graphics2D; -import java.util.Set; +import java.util.List; import javax.annotation.Nullable; import lombok.Getter; import net.runelite.api.NPC; @@ -51,7 +51,7 @@ import net.runelite.client.ui.overlay.components.TitleComponent; @Getter public class CrypticClue extends ClueScroll implements TextClueScroll, NpcClueScroll, ObjectClueScroll { - public static final Set CLUES = ImmutableSet.of( + public static final List CLUES = ImmutableList.of( new CrypticClue("Show this to Sherlock.", "Sherlock", new WorldPoint(2733, 3415, 0), "Sherlock is located to the east of the Sorcerer's tower in Seers' Village."), new CrypticClue("Talk to the bartender of the Rusty Anchor in Port Sarim.", "Bartender", new WorldPoint(3045, 3256, 0), "The Rusty Anchor is located in the north of Port Sarim."), new CrypticClue("The keeper of Melzars... Spare? Skeleton? Anar?", "Oziach", new WorldPoint(3068, 3516, 0), "Speak to Oziach in Edgeville."), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/EmoteClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/EmoteClue.java index 50178bb1a8..f2f552ad68 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/EmoteClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/EmoteClue.java @@ -24,11 +24,11 @@ */ package net.runelite.client.plugins.cluescrolls.clues; -import com.google.common.collect.ImmutableSet; +import com.google.common.collect.ImmutableList; import java.awt.Color; import java.awt.Graphics2D; import java.awt.Polygon; -import java.util.Set; +import java.util.List; import javax.annotation.Nonnull; import javax.annotation.Nullable; import lombok.Getter; @@ -100,7 +100,7 @@ public class EmoteClue extends ClueScroll implements TextClueScroll, LocationClu item(TZKAL_SLAYER_HELMET_I_25914) ); - private static final Set CLUES = ImmutableSet.of( + private static final List CLUES = ImmutableList.of( new EmoteClue("Beckon on the east coast of the Kharazi Jungle. Beware of double agents! Equip any vestment stole and a heraldic rune shield.", "Kharazi Jungle", NORTHEAST_CORNER_OF_THE_KHARAZI_JUNGLE, new WorldPoint(2954, 2933, 0), DOUBLE_AGENT_108, BECKON, any("Any stole", item(GUTHIX_STOLE), item(SARADOMIN_STOLE), item(ZAMORAK_STOLE), item(ARMADYL_STOLE), item(BANDOS_STOLE), item(ANCIENT_STOLE)), any("Any heraldic rune shield", item(RUNE_SHIELD_H1), item(RUNE_SHIELD_H2), item(RUNE_SHIELD_H3), item(RUNE_SHIELD_H4), item(RUNE_SHIELD_H5))), new EmoteClue("Cheer in the Barbarian Agility Arena. Headbang before you talk to me. Equip a steel platebody, maple shortbow and a Wilderness cape.", "Barbarian Outpost", BARBARIAN_OUTPOST_OBSTACLE_COURSE, new WorldPoint(2552, 3556, 0), CHEER, HEADBANG, item(STEEL_PLATEBODY), item(MAPLE_SHORTBOW), range("Any team cape", TEAM1_CAPE, TEAM50_CAPE)), new EmoteClue("Bow upstairs in the Edgeville Monastery. Equip a completed prayer book.", "Edgeville Monastery", SOUTHEAST_CORNER_OF_THE_MONASTERY, new WorldPoint(3056, 3484, 1), BOW, any("Any god book", item(HOLY_BOOK), item(BOOK_OF_BALANCE), item(UNHOLY_BOOK), item(BOOK_OF_LAW), item(BOOK_OF_WAR), item(BOOK_OF_DARKNESS))), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/FairyRingClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/FairyRingClue.java index 6fc915db54..baf0ce8752 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/FairyRingClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/FairyRingClue.java @@ -24,10 +24,10 @@ */ package net.runelite.client.plugins.cluescrolls.clues; -import com.google.common.collect.ImmutableSet; +import com.google.common.collect.ImmutableList; import java.awt.Color; import java.awt.Graphics2D; -import java.util.Set; +import java.util.List; import lombok.Getter; import net.runelite.api.coords.LocalPoint; import net.runelite.api.coords.WorldPoint; @@ -41,7 +41,7 @@ import net.runelite.client.ui.overlay.components.TitleComponent; @Getter public class FairyRingClue extends ClueScroll implements TextClueScroll, LocationClueScroll { - private static final Set CLUES = ImmutableSet.of( + private static final List CLUES = ImmutableList.of( new FairyRingClue("A I R 2 3 3 1", new WorldPoint(2702, 3246, 0)), new FairyRingClue("A I Q 0 4 4 0", new WorldPoint(3000, 3110, 0)), new FairyRingClue("A L P 1 1 4 0", new WorldPoint(2504, 3633, 0)), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/MapClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/MapClue.java index fcc6153f89..7b32258b23 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/MapClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/MapClue.java @@ -24,10 +24,10 @@ */ package net.runelite.client.plugins.cluescrolls.clues; -import com.google.common.collect.ImmutableSet; +import com.google.common.collect.ImmutableList; import java.awt.Color; import java.awt.Graphics2D; -import java.util.Set; +import java.util.List; import lombok.Getter; import static net.runelite.api.ItemID.*; import net.runelite.api.ObjectComposition; @@ -58,7 +58,7 @@ public class MapClue extends ClueScroll implements ObjectClueScroll public static final String WIZARDS_TOWER_DIS = "On the south side of the Wizard's Tower (DIS)"; public static final String SOUTH_OF_DRAYNOR_BANK = "South of Draynor Village Bank"; - private static final Set CLUES = ImmutableSet.of( + private static final List CLUES = ImmutableList.of( new MapClue(CLUE_SCROLL_EASY_12179, new WorldPoint(3300, 3291, 0), "Al Kharid mine"), new MapClue(CLUE_SCROLL_EASY_2713, new WorldPoint(3166, 3361, 0), CHAMPIONS_GUILD), new MapClue(CLUE_SCROLL_EASY_2716, new WorldPoint(3290, 3374, 0), VARROCK_EAST_MINE), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/SkillChallengeClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/SkillChallengeClue.java index 1b7925b380..aaf8006d5a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/SkillChallengeClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/SkillChallengeClue.java @@ -24,12 +24,11 @@ */ package net.runelite.client.plugins.cluescrolls.clues; -import com.google.common.collect.ImmutableSet; +import com.google.common.collect.ImmutableList; import java.awt.Color; import java.awt.Graphics2D; import java.util.ArrayList; import java.util.List; -import java.util.Set; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.Setter; @@ -129,7 +128,7 @@ public class SkillChallengeClue extends ClueScroll implements NpcClueScroll, Nam item(ItemID.IMCANDO_HAMMER) ); - private static final Set CLUES = ImmutableSet.of( + private static final List CLUES = ImmutableList.of( // Charlie Tasks new SkillChallengeClue("Cook a Pike", "i need to cook charlie a pike.", "i need to take the cooked pike to charlie.", item(ItemID.PIKE), item(ItemID.RAW_PIKE)), new SkillChallengeClue("Cook a Trout", "i need to cook charlie a trout.", "i need to take the cooked trout to charlie.", item(ItemID.TROUT), item(ItemID.RAW_TROUT)), From 4410e173e32f3cb992790dd0cc78cc6147236ed5 Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Mon, 17 Jan 2022 19:26:02 +0100 Subject: [PATCH 4/4] discord: accept animated avatars in matcher Discord avatarId can contain underscores when the image is animated (it has prefix a_ when that happens). Fixes #14594 Signed-off-by: Tomas Slusny --- .../net/runelite/client/plugins/discord/DiscordPlugin.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordPlugin.java index a4bb4c7d1e..031ba10941 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordPlugin.java @@ -233,8 +233,10 @@ public class DiscordPlugin extends Plugin return; } - CharMatcher matcher = CharMatcher.anyOf("abcdef0123456789"); - if (!matcher.matchesAllOf(event.getUserId()) || !matcher.matchesAllOf(event.getAvatarId())) + final CharMatcher matcher = CharMatcher.anyOf("abcdef0123456789"); + + // animated avatars contain a_ as prefix so we need to get rid of that first to check against matcher + if (!matcher.matchesAllOf(event.getUserId()) || !matcher.matchesAllOf(event.getAvatarId().replace("a_", ""))) { // userid is actually a snowflake, but the matcher is sufficient return;