Merge remote-tracking branch 'runelite/master'
This commit is contained in:
@@ -94,7 +94,7 @@ public enum HiscoreSkill
|
|||||||
KALPHITE_QUEEN("Kalphite Queen", BOSS),
|
KALPHITE_QUEEN("Kalphite Queen", BOSS),
|
||||||
KING_BLACK_DRAGON("King Black Dragon", BOSS),
|
KING_BLACK_DRAGON("King Black Dragon", BOSS),
|
||||||
KRAKEN("Kraken", BOSS),
|
KRAKEN("Kraken", BOSS),
|
||||||
KREEARRA("Kree'Arra", BOSS),
|
KREEARRA("Kree'arra", BOSS),
|
||||||
KRIL_TSUTSAROTH("K'ril Tsutsaroth", BOSS),
|
KRIL_TSUTSAROTH("K'ril Tsutsaroth", BOSS),
|
||||||
MIMIC("Mimic", BOSS),
|
MIMIC("Mimic", BOSS),
|
||||||
NEX("Nex", BOSS),
|
NEX("Nex", BOSS),
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ public interface BoostsConfig extends Config
|
|||||||
)
|
)
|
||||||
default DisplayBoosts displayBoosts()
|
default DisplayBoosts displayBoosts()
|
||||||
{
|
{
|
||||||
return DisplayBoosts.BOTH;
|
return DisplayBoosts.COMBAT;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
@@ -76,7 +76,7 @@ public interface BoostsConfig extends Config
|
|||||||
)
|
)
|
||||||
default boolean displayInfoboxes()
|
default boolean displayInfoboxes()
|
||||||
{
|
{
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
|
|||||||
@@ -1339,13 +1339,8 @@ public class ChatCommandsPlugin extends Plugin
|
|||||||
search = message.substring(LEVEL_COMMAND_STRING.length() + 1);
|
search = message.substring(LEVEL_COMMAND_STRING.length() + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
search = SkillAbbreviations.getFullName(search);
|
final HiscoreSkill skill = findHiscoreSkill(search);
|
||||||
final HiscoreSkill skill;
|
if (skill == null)
|
||||||
try
|
|
||||||
{
|
|
||||||
skill = HiscoreSkill.valueOf(search.toUpperCase());
|
|
||||||
}
|
|
||||||
catch (IllegalArgumentException i)
|
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1967,11 +1962,6 @@ public class ChatCommandsPlugin extends Plugin
|
|||||||
case "hmt":
|
case "hmt":
|
||||||
return "Theatre of Blood Hard Mode";
|
return "Theatre of Blood Hard Mode";
|
||||||
|
|
||||||
// agility course
|
|
||||||
case "prif":
|
|
||||||
case "prifddinas":
|
|
||||||
return "Prifddinas Agility Course";
|
|
||||||
|
|
||||||
// The Gauntlet
|
// The Gauntlet
|
||||||
case "gaunt":
|
case "gaunt":
|
||||||
case "gauntlet":
|
case "gauntlet":
|
||||||
@@ -2022,6 +2012,26 @@ public class ChatCommandsPlugin extends Plugin
|
|||||||
case "hs 5":
|
case "hs 5":
|
||||||
return "Hallowed Sepulchre Floor 5";
|
return "Hallowed Sepulchre Floor 5";
|
||||||
|
|
||||||
|
// Prifddinas Agility Course
|
||||||
|
case "prif":
|
||||||
|
case "prifddinas":
|
||||||
|
return "Prifddinas Agility Course";
|
||||||
|
|
||||||
|
// Shayzien Basic Agility Course
|
||||||
|
case "shayb":
|
||||||
|
case "sbac":
|
||||||
|
case "shayzienbasic":
|
||||||
|
case "shayzien basic":
|
||||||
|
return "Shayzien Basic Agility Course";
|
||||||
|
|
||||||
|
// Shayzien Advanced Agility Course
|
||||||
|
case "shaya":
|
||||||
|
case "saac":
|
||||||
|
case "shayadv":
|
||||||
|
case "shayadvanced":
|
||||||
|
case "shayzien advanced":
|
||||||
|
return "Shayzien Advanced Agility Course";
|
||||||
|
|
||||||
// Ape Atoll Agility
|
// Ape Atoll Agility
|
||||||
case "aa":
|
case "aa":
|
||||||
case "ape atoll":
|
case "ape atoll":
|
||||||
@@ -2156,4 +2166,94 @@ public class ChatCommandsPlugin extends Plugin
|
|||||||
return WordUtils.capitalize(boss);
|
return WordUtils.capitalize(boss);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static String longSkillName(String skill)
|
||||||
|
{
|
||||||
|
switch (skill.toUpperCase())
|
||||||
|
{
|
||||||
|
case "ATK":
|
||||||
|
case "ATT":
|
||||||
|
return net.runelite.api.Skill.ATTACK.getName();
|
||||||
|
case "DEF":
|
||||||
|
return net.runelite.api.Skill.DEFENCE.getName();
|
||||||
|
case "STR":
|
||||||
|
return net.runelite.api.Skill.STRENGTH.getName();
|
||||||
|
case "HEALTH":
|
||||||
|
case "HIT":
|
||||||
|
case "HITPOINT":
|
||||||
|
case "HP":
|
||||||
|
return net.runelite.api.Skill.HITPOINTS.getName();
|
||||||
|
case "RANGE":
|
||||||
|
case "RANGING":
|
||||||
|
case "RNG":
|
||||||
|
return net.runelite.api.Skill.RANGED.getName();
|
||||||
|
case "PRAY":
|
||||||
|
return net.runelite.api.Skill.PRAYER.getName();
|
||||||
|
case "MAG":
|
||||||
|
case "MAGE":
|
||||||
|
return net.runelite.api.Skill.MAGIC.getName();
|
||||||
|
case "COOK":
|
||||||
|
return net.runelite.api.Skill.COOKING.getName();
|
||||||
|
case "WC":
|
||||||
|
case "WOOD":
|
||||||
|
case "WOODCUT":
|
||||||
|
return net.runelite.api.Skill.WOODCUTTING.getName();
|
||||||
|
case "FLETCH":
|
||||||
|
return net.runelite.api.Skill.FLETCHING.getName();
|
||||||
|
case "FISH":
|
||||||
|
return net.runelite.api.Skill.FISHING.getName();
|
||||||
|
case "FM":
|
||||||
|
case "FIRE":
|
||||||
|
return net.runelite.api.Skill.FIREMAKING.getName();
|
||||||
|
case "CRAFT":
|
||||||
|
return net.runelite.api.Skill.CRAFTING.getName();
|
||||||
|
case "SMITH":
|
||||||
|
return net.runelite.api.Skill.SMITHING.getName();
|
||||||
|
case "MINE":
|
||||||
|
return net.runelite.api.Skill.MINING.getName();
|
||||||
|
case "HL":
|
||||||
|
case "HERB":
|
||||||
|
return net.runelite.api.Skill.HERBLORE.getName();
|
||||||
|
case "AGI":
|
||||||
|
case "AGIL":
|
||||||
|
return net.runelite.api.Skill.AGILITY.getName();
|
||||||
|
case "THIEF":
|
||||||
|
return net.runelite.api.Skill.THIEVING.getName();
|
||||||
|
case "SLAY":
|
||||||
|
return net.runelite.api.Skill.SLAYER.getName();
|
||||||
|
case "FARM":
|
||||||
|
return net.runelite.api.Skill.FARMING.getName();
|
||||||
|
case "RC":
|
||||||
|
case "RUNE":
|
||||||
|
case "RUNECRAFTING":
|
||||||
|
return net.runelite.api.Skill.RUNECRAFT.getName();
|
||||||
|
case "HUNT":
|
||||||
|
return net.runelite.api.Skill.HUNTER.getName();
|
||||||
|
case "CON":
|
||||||
|
case "CONSTRUCT":
|
||||||
|
return net.runelite.api.Skill.CONSTRUCTION.getName();
|
||||||
|
case "ALL":
|
||||||
|
case "TOTAL":
|
||||||
|
return net.runelite.api.Skill.OVERALL.getName();
|
||||||
|
default:
|
||||||
|
return skill;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static HiscoreSkill findHiscoreSkill(String search)
|
||||||
|
{
|
||||||
|
String s = longSkillName(search);
|
||||||
|
if (s == search)
|
||||||
|
{
|
||||||
|
s = longBossName(search);
|
||||||
|
}
|
||||||
|
for (HiscoreSkill skill : HiscoreSkill.values())
|
||||||
|
{
|
||||||
|
if (skill.getName().equals(s))
|
||||||
|
{
|
||||||
|
return skill;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,92 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2017, Adam <Adam@sigterm.info>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
*
|
|
||||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
||||||
* list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
* this list of conditions and the following disclaimer in the documentation
|
|
||||||
* and/or other materials provided with the distribution.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
package net.runelite.client.plugins.chatcommands;
|
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import net.runelite.api.Skill;
|
|
||||||
|
|
||||||
class SkillAbbreviations
|
|
||||||
{
|
|
||||||
private static final Map<String, String> MAP;
|
|
||||||
|
|
||||||
static
|
|
||||||
{
|
|
||||||
ImmutableMap.Builder<String, String> builder = new ImmutableMap.Builder<>();
|
|
||||||
builder.put("ATK", Skill.ATTACK.getName());
|
|
||||||
builder.put("ATT", Skill.ATTACK.getName());
|
|
||||||
builder.put("DEF", Skill.DEFENCE.getName());
|
|
||||||
builder.put("STR", Skill.STRENGTH.getName());
|
|
||||||
builder.put("HEALTH", Skill.HITPOINTS.getName());
|
|
||||||
builder.put("HIT", Skill.HITPOINTS.getName());
|
|
||||||
builder.put("HITPOINT", Skill.HITPOINTS.getName());
|
|
||||||
builder.put("HP", Skill.HITPOINTS.getName());
|
|
||||||
builder.put("RANGE", Skill.RANGED.getName());
|
|
||||||
builder.put("RANGING", Skill.RANGED.getName());
|
|
||||||
builder.put("RNG", Skill.RANGED.getName());
|
|
||||||
builder.put("PRAY", Skill.PRAYER.getName());
|
|
||||||
builder.put("MAG", Skill.MAGIC.getName());
|
|
||||||
builder.put("MAGE", Skill.MAGIC.getName());
|
|
||||||
builder.put("COOK", Skill.COOKING.getName());
|
|
||||||
builder.put("WC", Skill.WOODCUTTING.getName());
|
|
||||||
builder.put("WOOD", Skill.WOODCUTTING.getName());
|
|
||||||
builder.put("WOODCUT", Skill.WOODCUTTING.getName());
|
|
||||||
builder.put("FLETCH", Skill.FLETCHING.getName());
|
|
||||||
builder.put("FISH", Skill.FISHING.getName());
|
|
||||||
builder.put("FM", Skill.FIREMAKING.getName());
|
|
||||||
builder.put("FIRE", Skill.FIREMAKING.getName());
|
|
||||||
builder.put("CRAFT", Skill.CRAFTING.getName());
|
|
||||||
builder.put("SMITH", Skill.SMITHING.getName());
|
|
||||||
builder.put("MINE", Skill.MINING.getName());
|
|
||||||
builder.put("HL", Skill.HERBLORE.getName());
|
|
||||||
builder.put("HERB", Skill.HERBLORE.getName());
|
|
||||||
builder.put("AGI", Skill.AGILITY.getName());
|
|
||||||
builder.put("AGIL", Skill.AGILITY.getName());
|
|
||||||
builder.put("THIEF", Skill.THIEVING.getName());
|
|
||||||
builder.put("SLAY", Skill.SLAYER.getName());
|
|
||||||
builder.put("FARM", Skill.FARMING.getName());
|
|
||||||
builder.put("RC", Skill.RUNECRAFT.getName());
|
|
||||||
builder.put("RUNE", Skill.RUNECRAFT.getName());
|
|
||||||
builder.put("RUNECRAFTING", Skill.RUNECRAFT.getName());
|
|
||||||
builder.put("HUNT", Skill.HUNTER.getName());
|
|
||||||
builder.put("CON", Skill.CONSTRUCTION.getName());
|
|
||||||
builder.put("CONSTRUCT", Skill.CONSTRUCTION.getName());
|
|
||||||
builder.put("ALL", Skill.OVERALL.getName());
|
|
||||||
builder.put("TOTAL", Skill.OVERALL.getName());
|
|
||||||
MAP = builder.build();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Takes a string representing the name of a skill, and if abbreviated,
|
|
||||||
* expands it into its full canonical name. Case-insensitive.
|
|
||||||
*
|
|
||||||
* @param abbrev Skill name that may be abbreviated.
|
|
||||||
* @return Full skill name if recognized, else the original string.
|
|
||||||
*/
|
|
||||||
static String getFullName(String abbrev)
|
|
||||||
{
|
|
||||||
return MAP.getOrDefault(abbrev.toUpperCase(), abbrev);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -52,7 +52,7 @@ public class CipherClue extends ClueScroll implements TextClueScroll, NpcClueScr
|
|||||||
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("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("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("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. Fairy ring DIS", "How many air runes would I need to cast 630 wind waves?", "3150"),
|
new CipherClue("USBJCPSO", "Wizard Traiborn", new WorldPoint(3112, 3162, 0), "First floor of Wizards Tower. Fairy ring DIS", "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("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("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("GBJSZ RVFFO", "Fairy Queen", new WorldPoint(2347, 4435, 0), "Fairy Resistance Hideout"),
|
||||||
|
|||||||
@@ -103,8 +103,8 @@ public class EmoteClue extends ClueScroll implements TextClueScroll, LocationClu
|
|||||||
private static final List<EmoteClue> CLUES = ImmutableList.of(
|
private static final List<EmoteClue> 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("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("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))),
|
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), item(HOLY_BOOK_OR), item(BOOK_OF_BALANCE_OR), item(UNHOLY_BOOK_OR), item(BOOK_OF_LAW_OR), item(BOOK_OF_WAR_OR), item(BOOK_OF_DARKNESS_OR))),
|
||||||
new EmoteClue("Cheer in the Shadow dungeon. Equip a rune crossbow, climbing boots and any mitre.", "Shadow dungeon", ENTRANCE_OF_THE_CAVE_OF_DAMIS, new WorldPoint(2629, 5071, 0), CHEER, any("Any mitre", item(GUTHIX_MITRE), item(SARADOMIN_MITRE), item(ZAMORAK_MITRE), item(ANCIENT_MITRE), item(BANDOS_MITRE), item(ARMADYL_MITRE)), item(RUNE_CROSSBOW), item(CLIMBING_BOOTS), item(RING_OF_VISIBILITY)),
|
new EmoteClue("Cheer in the Shadow dungeon. Equip a rune crossbow, climbing boots and any mitre.", "Shadow dungeon", ENTRANCE_OF_THE_CAVE_OF_DAMIS, new WorldPoint(2629, 5071, 0), CHEER, any("Any mitre", item(GUTHIX_MITRE), item(SARADOMIN_MITRE), item(ZAMORAK_MITRE), item(ANCIENT_MITRE), item(BANDOS_MITRE), item(ARMADYL_MITRE)), any("Rune crossbow", item(RUNE_CROSSBOW), item(RUNE_CROSSBOW_OR)), item(CLIMBING_BOOTS), item(RING_OF_VISIBILITY)),
|
||||||
new EmoteClue("Cheer at the top of the agility pyramid. Beware of double agents! Equip a blue mystic robe top, and any rune heraldic shield.", "Agility Pyramid", AGILITY_PYRAMID, new WorldPoint(3043, 4697, 3), DOUBLE_AGENT_108, CHEER, item(MYSTIC_ROBE_TOP), any("Any rune heraldic shield", item(RUNE_SHIELD_H1), item(RUNE_SHIELD_H2), item(RUNE_SHIELD_H3), item(RUNE_SHIELD_H4), item(RUNE_SHIELD_H5))),
|
new EmoteClue("Cheer at the top of the agility pyramid. Beware of double agents! Equip a blue mystic robe top, and any rune heraldic shield.", "Agility Pyramid", AGILITY_PYRAMID, new WorldPoint(3043, 4697, 3), DOUBLE_AGENT_108, CHEER, item(MYSTIC_ROBE_TOP), any("Any rune heraldic shield", item(RUNE_SHIELD_H1), item(RUNE_SHIELD_H2), item(RUNE_SHIELD_H3), item(RUNE_SHIELD_H4), item(RUNE_SHIELD_H5))),
|
||||||
new EmoteClue("Dance in Iban's temple. Beware of double agents! Equip Iban's staff, a black mystic top and a black mystic bottom.", "Iban's temple", WELL_OF_VOYAGE, new WorldPoint(2011, 4712, 0), DOUBLE_AGENT_141, DANCE, any("Any iban's staff", item(IBANS_STAFF), item(IBANS_STAFF_U)), item(MYSTIC_ROBE_TOP_DARK), item(MYSTIC_ROBE_BOTTOM_DARK)),
|
new EmoteClue("Dance in Iban's temple. Beware of double agents! Equip Iban's staff, a black mystic top and a black mystic bottom.", "Iban's temple", WELL_OF_VOYAGE, new WorldPoint(2011, 4712, 0), DOUBLE_AGENT_141, DANCE, any("Any iban's staff", item(IBANS_STAFF), item(IBANS_STAFF_U)), item(MYSTIC_ROBE_TOP_DARK), item(MYSTIC_ROBE_BOTTOM_DARK)),
|
||||||
new EmoteClue("Dance on the Fishing Platform. Equip barrows gloves, an amulet of glory and a dragon med helm.", "Fishing Platform", SOUTHEAST_CORNER_OF_THE_FISHING_PLATFORM, new WorldPoint(2782, 3273, 0), DANCE, any("Any amulet of glory", item(AMULET_OF_GLORY), item(AMULET_OF_GLORY1), item(AMULET_OF_GLORY2), item(AMULET_OF_GLORY3), item(AMULET_OF_GLORY4), item(AMULET_OF_GLORY5), item(AMULET_OF_GLORY6)), item(BARROWS_GLOVES), item(DRAGON_MED_HELM)),
|
new EmoteClue("Dance on the Fishing Platform. Equip barrows gloves, an amulet of glory and a dragon med helm.", "Fishing Platform", SOUTHEAST_CORNER_OF_THE_FISHING_PLATFORM, new WorldPoint(2782, 3273, 0), DANCE, any("Any amulet of glory", item(AMULET_OF_GLORY), item(AMULET_OF_GLORY1), item(AMULET_OF_GLORY2), item(AMULET_OF_GLORY3), item(AMULET_OF_GLORY4), item(AMULET_OF_GLORY5), item(AMULET_OF_GLORY6)), item(BARROWS_GLOVES), item(DRAGON_MED_HELM)),
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class FaloTheBardClue extends ClueScroll implements TextClueScroll, NpcCl
|
|||||||
{
|
{
|
||||||
private static final List<FaloTheBardClue> CLUES = ImmutableList.of(
|
private static final List<FaloTheBardClue> CLUES = ImmutableList.of(
|
||||||
new FaloTheBardClue("A blood red weapon, a strong curved sword, found on the island of primate lords.", any("Dragon scimitar", item(DRAGON_SCIMITAR), item(DRAGON_SCIMITAR_OR))),
|
new FaloTheBardClue("A blood red weapon, a strong curved sword, found on the island of primate lords.", any("Dragon scimitar", item(DRAGON_SCIMITAR), item(DRAGON_SCIMITAR_OR))),
|
||||||
new FaloTheBardClue("A book that preaches of some great figure, lending strength, might and vigour.", any("Any god book (must be complete)", item(HOLY_BOOK), item(BOOK_OF_BALANCE), item(UNHOLY_BOOK), item(BOOK_OF_LAW), item(BOOK_OF_WAR), item(BOOK_OF_DARKNESS))),
|
new FaloTheBardClue("A book that preaches of some great figure, lending strength, might and vigour.", any("Any god book (must be complete)", item(HOLY_BOOK), item(BOOK_OF_BALANCE), item(UNHOLY_BOOK), item(BOOK_OF_LAW), item(BOOK_OF_WAR), item(BOOK_OF_DARKNESS), item(HOLY_BOOK_OR), item(BOOK_OF_BALANCE_OR), item(UNHOLY_BOOK_OR), item(BOOK_OF_LAW_OR), item(BOOK_OF_WAR_OR), item(BOOK_OF_DARKNESS_OR))),
|
||||||
new FaloTheBardClue("A bow of elven craft was made, it shimmers bright, but will soon fade.", any("Crystal Bow", item(CRYSTAL_BOW), item(CRYSTAL_BOW_24123))),
|
new FaloTheBardClue("A bow of elven craft was made, it shimmers bright, but will soon fade.", any("Crystal Bow", item(CRYSTAL_BOW), item(CRYSTAL_BOW_24123))),
|
||||||
new FaloTheBardClue("A fiery axe of great inferno, when you use it, you'll wonder where the logs go.", any("Infernal axe", item(INFERNAL_AXE), item(INFERNAL_AXE_OR))),
|
new FaloTheBardClue("A fiery axe of great inferno, when you use it, you'll wonder where the logs go.", any("Infernal axe", item(INFERNAL_AXE), item(INFERNAL_AXE_OR))),
|
||||||
new FaloTheBardClue("A mark used to increase one's grace, found atop a seer's place.", item(MARK_OF_GRACE)),
|
new FaloTheBardClue("A mark used to increase one's grace, found atop a seer's place.", item(MARK_OF_GRACE)),
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ import net.runelite.api.Item;
|
|||||||
import net.runelite.api.ItemComposition;
|
import net.runelite.api.ItemComposition;
|
||||||
import net.runelite.api.ItemContainer;
|
import net.runelite.api.ItemContainer;
|
||||||
import net.runelite.api.VarClientInt;
|
import net.runelite.api.VarClientInt;
|
||||||
|
import net.runelite.api.widgets.WidgetInfo;
|
||||||
import net.runelite.client.game.ItemManager;
|
import net.runelite.client.game.ItemManager;
|
||||||
import net.runelite.client.ui.overlay.OverlayPanel;
|
import net.runelite.client.ui.overlay.OverlayPanel;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
@@ -75,7 +76,8 @@ class InventoryViewerOverlay extends OverlayPanel
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (client.getVar(VarClientInt.INVENTORY_TAB) == 3 && config.hideIfInventoryActive())
|
if ((client.getVar(VarClientInt.INVENTORY_TAB) == 3 || client.getWidget(WidgetInfo.BANK_CONTAINER) != null)
|
||||||
|
&& config.hideIfInventoryActive())
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -389,6 +389,46 @@ public class ChatCommandsPluginTest
|
|||||||
verify(configManager).setRSProfileConfiguration("personalbest", "prifddinas agility course", 61.2);
|
verify(configManager).setRSProfileConfiguration("personalbest", "prifddinas agility course", 61.2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testShayzienAdvancedAgilityLap()
|
||||||
|
{
|
||||||
|
// This sets lastBoss
|
||||||
|
ChatMessage chatMessage = new ChatMessage(null, GAMEMESSAGE, "", "Your Shayzien Advanced Agility Course lap count is: <col=ff0000>2</col>.", null, 0);
|
||||||
|
chatCommandsPlugin.onChatMessage(chatMessage);
|
||||||
|
|
||||||
|
chatMessage = new ChatMessage(null, GAMEMESSAGE, "", "Lap duration: <col=ff0000>1:01</col> (new personal best).", null, 0);
|
||||||
|
chatCommandsPlugin.onChatMessage(chatMessage);
|
||||||
|
|
||||||
|
verify(configManager).setRSProfileConfiguration("personalbest", "shayzien advanced agility course", 61.0);
|
||||||
|
verify(configManager).setRSProfileConfiguration("killcount", "shayzien advanced agility course", 2);
|
||||||
|
|
||||||
|
// Precise times
|
||||||
|
chatMessage = new ChatMessage(null, GAMEMESSAGE, "", "Lap duration: <col=ff0000>1:01.20</col> (new personal best).", null, 0);
|
||||||
|
chatCommandsPlugin.onChatMessage(chatMessage);
|
||||||
|
|
||||||
|
verify(configManager).setRSProfileConfiguration("personalbest", "shayzien advanced agility course", 61.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testShayzienBasicAgilityLap()
|
||||||
|
{
|
||||||
|
// This sets lastBoss
|
||||||
|
ChatMessage chatMessage = new ChatMessage(null, GAMEMESSAGE, "", "Your Shayzien Basic Agility Course lap count is: <col=ff0000>2</col>.", null, 0);
|
||||||
|
chatCommandsPlugin.onChatMessage(chatMessage);
|
||||||
|
|
||||||
|
chatMessage = new ChatMessage(null, GAMEMESSAGE, "", "Lap duration: <col=ff0000>1:01</col> (new personal best).", null, 0);
|
||||||
|
chatCommandsPlugin.onChatMessage(chatMessage);
|
||||||
|
|
||||||
|
verify(configManager).setRSProfileConfiguration("personalbest", "shayzien basic agility course", 61.0);
|
||||||
|
verify(configManager).setRSProfileConfiguration("killcount", "shayzien basic agility course", 2);
|
||||||
|
|
||||||
|
// Precise times
|
||||||
|
chatMessage = new ChatMessage(null, GAMEMESSAGE, "", "Lap duration: <col=ff0000>1:01.20</col> (new personal best).", null, 0);
|
||||||
|
chatCommandsPlugin.onChatMessage(chatMessage);
|
||||||
|
|
||||||
|
verify(configManager).setRSProfileConfiguration("personalbest", "shayzien basic agility course", 61.2);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testZukNewPb()
|
public void testZukNewPb()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user