@@ -38,6 +38,12 @@ import net.runelite.api.coords.WorldPoint;
|
||||
*/
|
||||
public interface Actor extends Renderable
|
||||
{
|
||||
/**
|
||||
* Used by the "Tick Counter Plugin
|
||||
*/
|
||||
int getActionFrame();
|
||||
int getActionFrameCycle();
|
||||
|
||||
/**
|
||||
* Gets the combat level of the actor.
|
||||
*
|
||||
|
||||
@@ -154,10 +154,26 @@ public final class AnimationID
|
||||
public static final int PISCARILIUS_CRANE_REPAIR = 7199;
|
||||
public static final int HOME_MAKE_TABLET = 4067;
|
||||
|
||||
//block animations for players and perhaps npcs as well?
|
||||
public static final int BLOCK_DEFENDER = 4177;
|
||||
public static final int BLOCK_NO_SHIELD = 420;
|
||||
public static final int BLOCK_SHIELD = 1156;
|
||||
public static final int BLOCK_SWORD = 388;
|
||||
public static final int BLOCK_UNARMED = 424;
|
||||
|
||||
// NPC animations
|
||||
public static final int TZTOK_JAD_MAGIC_ATTACK = 2656;
|
||||
public static final int TZTOK_JAD_RANGE_ATTACK = 2652;
|
||||
public static final int HELLHOUND_DEFENCE = 6566;
|
||||
public static final int VORKATH_WAKE_UP = 7950;
|
||||
public static final int VORKATH_DEATH = 7949;
|
||||
public static final int VORKATH_SLASH_ATTACK = 7951;
|
||||
public static final int VORKATH_ATTACK = 7952;
|
||||
public static final int VORKATH_FIRE_BOMB_ATTACK = 7960;
|
||||
public static final int VORKATH_ACID_ATTACK = 7957;
|
||||
public static final int BLACKJACK_KO = 838;
|
||||
public static final int VETION_EARTHQUAKE = 5507;
|
||||
public static final int ZULRAH_DEATH = 5804;
|
||||
|
||||
// Farming
|
||||
public static final int FARMING_HARVEST_FRUIT_TREE = 2280;
|
||||
@@ -194,4 +210,31 @@ public final class AnimationID
|
||||
|
||||
// POH Animations
|
||||
public static final int INCENSE_BURNER = 3687;
|
||||
}
|
||||
|
||||
// Weapons
|
||||
public static final int LOW_LEVEL_MAGIC_ATTACK = 1162;
|
||||
public static final int HIGH_LEVEL_MAGIC_ATTACK = 1167;
|
||||
public static final int BLOWPIPE_ATTACK = 5061;
|
||||
|
||||
// Hydra
|
||||
public static final int HYDRA_POISON_1 = 8234;
|
||||
public static final int HYDRA_RANGED_1 = 8235;
|
||||
public static final int HYDRA_MAGIC_1 = 8236;
|
||||
public static final int HYDRA_1_1 = 8237;
|
||||
public static final int HYDRA_1_2 = 8238;
|
||||
public static final int HYDRA_LIGHTNING = 8241;
|
||||
public static final int HYDRA_RANGED_2 = 8242;
|
||||
public static final int HYDRA_MAGIC_2 = 8243;
|
||||
public static final int HYDRA_2_1 = 8244;
|
||||
public static final int HYDRA_2_2 = 8245;
|
||||
public static final int HYDRA_FIRE = 8248;
|
||||
public static final int HYDRA_RANGED_3 = 8249;
|
||||
public static final int HYDRA_MAGIC_3 = 8250;
|
||||
public static final int HYDRA_3_1 = 8251;
|
||||
public static final int HYDRA_3_2 = 8252;
|
||||
public static final int HYDRA_MAGIC_4 = 8254;
|
||||
public static final int HYDRA_POISON_4 = 8254;
|
||||
public static final int HYDRA_RANGED_4 = 8255;
|
||||
public static final int HYDRA_4_1 = 8257;
|
||||
public static final int HYDRA_4_2 = 8258;
|
||||
}
|
||||
@@ -39,43 +39,43 @@ public enum ClanMemberRank
|
||||
/**
|
||||
* Not in a clan.
|
||||
*/
|
||||
UNRANKED(-1),
|
||||
UNRANKED(-1, "", -1),
|
||||
/**
|
||||
* Friend rank.
|
||||
*/
|
||||
FRIEND(0),
|
||||
FRIEND(0, "https://cdn.discordapp.com/attachments/556184918770843649/557023638826778635/1004.png", SpriteID.CLAN_CHAT_RANK_SMILEY_FRIEND),
|
||||
/**
|
||||
* Recruit rank.
|
||||
*/
|
||||
RECRUIT(1),
|
||||
RECRUIT(1, "https://cdn.discordapp.com/attachments/556184918770843649/557023639111991306/1012-0.png", SpriteID.CLAN_CHAT_RANK_SINGLE_CHEVRON_RECRUIT),
|
||||
/**
|
||||
* Corporal rank.
|
||||
*/
|
||||
CORPORAL(2),
|
||||
CORPORAL(2, "https://cdn.discordapp.com/attachments/556184918770843649/557023638889431052/1011-0.png", SpriteID.CLAN_CHAT_RANK_DOUBLE_CHEVRON_CORPORAL),
|
||||
/**
|
||||
* Sergeant rank.
|
||||
*/
|
||||
SERGEANT(3),
|
||||
SERGEANT(3, "https://cdn.discordapp.com/attachments/556184918770843649/557023641968312321/1010-0.png", SpriteID.CLAN_CHAT_RANK_TRIPLE_CHEVRON_SERGEANT),
|
||||
/**
|
||||
* Lieutenant rank.
|
||||
*/
|
||||
LIEUTENANT(4),
|
||||
LIEUTENANT(4, "https://cdn.discordapp.com/attachments/556184918770843649/557023638893756416/1009-0.png", SpriteID.CLAN_CHAT_RANK_BRONZE_STAR_LIEUTENANT),
|
||||
/**
|
||||
* Captain rank.
|
||||
*/
|
||||
CAPTAIN(5),
|
||||
CAPTAIN(5, "https://cdn.discordapp.com/attachments/556184918770843649/557023638910664734/1008-0.png", SpriteID.CLAN_CHAT_RANK_SILVER_STAR_CAPTAIN),
|
||||
/**
|
||||
* General rank.
|
||||
*/
|
||||
GENERAL(6),
|
||||
GENERAL(6, "https://cdn.discordapp.com/attachments/556184918770843649/557023638835036170/1007-0.png", SpriteID.CLAN_CHAT_RANK_GOLD_STAR_GENERAL),
|
||||
/**
|
||||
* Channel owner rank.
|
||||
*/
|
||||
OWNER(7),
|
||||
OWNER(7, "https://cdn.discordapp.com/attachments/556184918770843649/557023638822453248/1006-0.png", SpriteID.CLAN_CHAT_RANK_KEY_CHANNEL_OWNER),
|
||||
/**
|
||||
* JMod rank.
|
||||
*/
|
||||
JMOD(127);
|
||||
JMOD(127, "", SpriteID.CLAN_CHAT_RANK_CROWN_JAGEX_MODERATOR);
|
||||
|
||||
private static final Map<Integer, ClanMemberRank> RANKS = new HashMap<>();
|
||||
|
||||
@@ -87,6 +87,8 @@ public enum ClanMemberRank
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Utility method that maps the rank value to its respective
|
||||
* {@link ClanMemberRank} value.
|
||||
@@ -99,8 +101,11 @@ public enum ClanMemberRank
|
||||
return RANKS.get(rank);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* The value of the clan rank.
|
||||
*/
|
||||
private final int value;
|
||||
private final String discavatar;
|
||||
private final int spriteID;
|
||||
}
|
||||
|
||||
@@ -57,6 +57,10 @@ public enum InventoryID
|
||||
* Chambers of Xeric chest inventory.
|
||||
*/
|
||||
CHAMBERS_OF_XERIC_CHEST(581),
|
||||
/**
|
||||
* Looting Bag inventory
|
||||
*/
|
||||
LOOTING_BAG(516),
|
||||
/**
|
||||
* Theater of Blood reward chest inventory (Raids 2)
|
||||
*/
|
||||
|
||||
@@ -44,7 +44,7 @@ public class ProjectileID
|
||||
public static final int VASA_RANGED_AOE = 1329;
|
||||
public static final int TEKTON_METEOR_AOE = 660;
|
||||
|
||||
public static final int OLM_FALLING_CRYSTAL_AOE = -1; //please help
|
||||
public static final int OLM_FALLING_CRYSTAL_AOE = 1357;
|
||||
public static final int OLM_BURNING_AOE = -1;
|
||||
|
||||
public static final int VORKATH_BOMB_AOE = 1481;
|
||||
@@ -84,4 +84,10 @@ public class ProjectileID
|
||||
public static final int VORKATH_PRAYER_DISABLE = 1471;
|
||||
public static final int VORKATH_VENOM = 1470;
|
||||
public static final int VORKATH_ICE = 350;
|
||||
|
||||
public static final int HYDRA_MAGIC = 1662;
|
||||
public static final int HYDRA_RANGED = 1663;
|
||||
public static final int HYDRA_POISON = 1644;
|
||||
public static final int HYDRA_LIGHTNING = 1664;
|
||||
public static final int HYDRA_LIGHTNING_2 = 1665;
|
||||
}
|
||||
|
||||
@@ -431,7 +431,7 @@ public final class SpriteID
|
||||
public static final int SPELL_FIRE_SURGE_DISABLED = 415;
|
||||
/* Unmapped: 416, 417, 418 */
|
||||
public static final int UNKNOWN_STANCE_ICON_1 = 419;
|
||||
public static final int UNKNOWN_STANCE_ICON_2 = 320;
|
||||
public static final int UNKNOWN_STANCE_ICON_2 = 420;
|
||||
public static final int UNKNOWN_STANCE_ICON_3 = 421;
|
||||
public static final int MINIMAP_DESTINATION_FLAG = 422;
|
||||
public static final int CHATBOX_BADGE_CROWN_PLAYER_MODERATOR = 423;
|
||||
@@ -1566,4 +1566,7 @@ public final class SpriteID
|
||||
public static final int MOBILE_YELLOW_TOUCH_ANIMATION_2 = 1626;
|
||||
public static final int TAB_MAGIC_SPELLBOOK_ARCEUUS_UNUSED = 1708;
|
||||
public static final int TAB_MAGIC_SPELLBOOK_ARCEUUS = 1711;
|
||||
public static final int BIG_ASS_GUTHIX_SPELL = 1774;
|
||||
public static final int BIG_SUPERHEAT = 1800;
|
||||
public static final int BIG_SPEC_TRANSFER = 1959;
|
||||
}
|
||||
|
||||
@@ -48,6 +48,12 @@ public enum VarClientInt
|
||||
|
||||
INVENTORY_TAB(171),
|
||||
|
||||
/**
|
||||
* -1 = player inventory closed
|
||||
* 3 = player inventory opened
|
||||
*/
|
||||
PLAYER_INVENTORY_OPENED(171),
|
||||
|
||||
WORLD_MAP_SEARCH_FOCUSED(190);
|
||||
|
||||
private final int index;
|
||||
|
||||
@@ -212,6 +212,9 @@ public enum Varbits
|
||||
* Barbarian Assault
|
||||
*/
|
||||
IN_GAME_BA(3923),
|
||||
COLL_BAG_EGG1(3259),
|
||||
COLL_BAG_EGG2(3260),
|
||||
COLL_BAG_EGG3(3269),
|
||||
|
||||
/**
|
||||
* 0 = Outside wilderness
|
||||
@@ -293,6 +296,7 @@ public enum Varbits
|
||||
*/
|
||||
NMZ_ABSORPTION(3956),
|
||||
NMZ_POINTS(3949),
|
||||
NMZ_OVERLOAD(3955),
|
||||
|
||||
/**
|
||||
* Blast Furnace
|
||||
@@ -349,17 +353,17 @@ public enum Varbits
|
||||
*/
|
||||
MULTICOMBAT_AREA(4605),
|
||||
|
||||
/**
|
||||
* Wilderness area
|
||||
*/
|
||||
WILDERNESS_AREA(5963),
|
||||
|
||||
/**
|
||||
* Kingdom Management
|
||||
*/
|
||||
KINGDOM_FAVOR(72),
|
||||
KINGDOM_COFFER(74),
|
||||
|
||||
/**
|
||||
* The Hand in the Sand quest status
|
||||
*/
|
||||
QUEST_THE_HAND_IN_THE_SAND(1527),
|
||||
|
||||
/**
|
||||
* Daily Tasks (Collection availability)
|
||||
*/
|
||||
@@ -470,6 +474,19 @@ public enum Varbits
|
||||
BANK_TAB_EIGHT_COUNT(4178),
|
||||
BANK_TAB_NINE_COUNT(4179),
|
||||
|
||||
/*
|
||||
* Spells being auto-casted
|
||||
* */
|
||||
AUTO_CAST_SPELL(276),
|
||||
|
||||
/**
|
||||
* Temple Trekking
|
||||
*/
|
||||
TREK_POINTS(1955),
|
||||
TREK_STARTED(1956),
|
||||
TREK_EVENT(1958),
|
||||
TREK_STATUS(6719),
|
||||
|
||||
/**
|
||||
* Type of GE offer currently being created
|
||||
* 0 = buy
|
||||
@@ -477,6 +494,95 @@ public enum Varbits
|
||||
*/
|
||||
GE_OFFER_CREATION_TYPE(4397),
|
||||
|
||||
/**
|
||||
* f2p Quest varbits, these don't hold the completion value.
|
||||
*/
|
||||
QUEST_DEMON_SLAYER(2561),
|
||||
QUEST_GOBLIN_DIPLOMACY(2378),
|
||||
QUEST_MISTHALIN_MYSTERY(3468),
|
||||
QUEST_THE_CORSAIR_CURSE(6071),
|
||||
QUEST_X_MARKS_THE_SPOT(8063),
|
||||
|
||||
/**
|
||||
* member Quest varbits, these don't hold the completion value.
|
||||
*/
|
||||
QUEST_ANIMAL_MAGNETISM(3185),
|
||||
QUEST_BETWEEN_A_ROCK(299),
|
||||
QUEST_CONTACT(3274),
|
||||
QUEST_ZOGRE_FLESH_EATERS(487),
|
||||
QUEST_DARKNESS_OF_HALLOWVALE(2573),
|
||||
QUEST_DEATH_TO_THE_DORGESHUUN(2258),
|
||||
QUEST_DESERT_TREASURE(358),
|
||||
QUEST_DEVIOUS_MINDS(1465),
|
||||
QUEST_EAGLES_PEAK(2780),
|
||||
QUEST_ELEMENTAL_WORKSHOP_II(2639),
|
||||
QUEST_ENAKHRAS_LAMENT(1560),
|
||||
QUEST_ENLIGHTENED_JOURNEY(2866),
|
||||
QUEST_THE_EYES_OF_GLOUPHRIE(2497),
|
||||
QUEST_FAIRYTALE_I_GROWING_PAINS(1803),
|
||||
QUEST_FAIRYTALE_II_CURE_A_QUEEN(2326),
|
||||
QUEST_THE_FEUD(334),
|
||||
QUEST_FORGETTABLE_TALE(822),
|
||||
QUEST_GARDEN_OF_TRANQUILLITY(961),
|
||||
QUEST_GHOSTS_AHOY(217),
|
||||
QUEST_THE_GIANT_DWARF(571),
|
||||
QUEST_THE_GOLEM(346),
|
||||
QUEST_THE_HAND_IN_THE_SAND(1527),
|
||||
QUEST_HORROR_FROM_THE_DEEP(34),
|
||||
QUEST_ICTHLARINS_LITTLE_HELPER(418),
|
||||
QUEST_IN_AID_OF_THE_MYREQUE(1990),
|
||||
QUEST_THE_LOST_TRIBE(532),
|
||||
QUEST_LUNAR_DIPLOMACY(2448),
|
||||
QUEST_MAKING_HISTORY(1383),
|
||||
QUEST_MOUNTAIN_DAUGHTER(260),
|
||||
QUEST_MOURNINGS_ENDS_PART_II(1103),
|
||||
QUEST_MY_ARMS_BIG_ADVENTURE(2790),
|
||||
QUEST_RATCATCHERS(1404),
|
||||
QUEST_RECIPE_FOR_DISASTER(1850),
|
||||
QUEST_RECRUITMENT_DRIVE(657),
|
||||
QUEST_ROYAL_TROUBLE(2140),
|
||||
QUEST_THE_SLUG_MENACE(2610),
|
||||
QUEST_SHADOW_OF_THE_STORM(1372),
|
||||
QUEST_A_SOULS_BANE(2011),
|
||||
QUEST_SPIRITS_OF_THE_ELID(1444),
|
||||
QUEST_SWAN_SONG(2098),
|
||||
QUEST_A_TAIL_OF_TWO_CATS(1028),
|
||||
QUEST_TEARS_OF_GUTHIX(451),
|
||||
QUEST_WANTED(1051),
|
||||
QUEST_COLD_WAR(3293),
|
||||
QUEST_THE_FREMENNIK_ISLES(3311),
|
||||
QUEST_TOWER_OF_LIFE(3337),
|
||||
QUEST_WHAT_LIES_BELOW(3523),
|
||||
QUEST_OLAFS_QUEST(3534),
|
||||
QUEST_ANOTHER_SLICE_OF_HAM(3550),
|
||||
QUEST_DREAM_MENTOR(3618),
|
||||
QUEST_GRIM_TALES(2783),
|
||||
QUEST_KINGS_RANSOM(3888),
|
||||
QUEST_MONKEY_MADNESS_II(5027),
|
||||
QUEST_CLIENT_OF_KOUREND(5619),
|
||||
QUEST_BONE_VOYAGE(5795),
|
||||
QUEST_THE_QUEEN_OF_THIEVES(6037),
|
||||
QUEST_THE_DEPTHS_OF_DESPAIR(6027),
|
||||
QUEST_DRAGON_SLAYER_II(6104),
|
||||
QUEST_TALE_OF_THE_RIGHTEOUS(6358),
|
||||
QUEST_A_TASTE_OF_HOPE(6396),
|
||||
QUEST_MAKING_FRIENDS_WITH_MY_ARM(6528),
|
||||
QUEST_THE_ASCENT_OF_ARCEUUS(7856),
|
||||
QUEST_THE_FORSAKEN_TOWER(7796),
|
||||
|
||||
/**
|
||||
* mini-quest varbits, these don't hold the completion value.
|
||||
*/
|
||||
QUEST_ARCHITECTURAL_ALLIANCE(4982),
|
||||
QUEST_BEAR_YOUR_SOUL(5078),
|
||||
QUEST_CURSE_OF_THE_EMPTY_LORD(821),
|
||||
QUEST_ENCHANTED_KEY(1391),
|
||||
QUEST_THE_GENERALS_SHADOW(3330),
|
||||
QUEST_SKIPPY_AND_THE_MOGRES(1344),
|
||||
QUEST_LAIR_OF_TARN_RAZORLOR(3290),
|
||||
QUEST_FAMILY_PEST(5347),
|
||||
QUEST_THE_MAGE_ARENA_II(6067),
|
||||
|
||||
/**
|
||||
* The active tab within the quest interface
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright (c) 2019, Davis Cook <https://github.com/daviscook477>
|
||||
* 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.api.events;
|
||||
|
||||
/**
|
||||
* an event posted when a cannonball is fired
|
||||
*/
|
||||
public class CannonballFired
|
||||
{
|
||||
}
|
||||
@@ -36,6 +36,7 @@ import net.runelite.api.PlayerComposition;
|
||||
*/
|
||||
public enum KitType
|
||||
{
|
||||
HELM(0),
|
||||
CAPE(1),
|
||||
AMULET(2),
|
||||
WEAPON(3),
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
/*
|
||||
* Copyright (c) 2017, Devin French <https://github.com/devinfrench>
|
||||
* 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.api.queries;
|
||||
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.api.widgets.WidgetItem;
|
||||
|
||||
import java.awt.Rectangle;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Objects;
|
||||
|
||||
public class BankItemQuery extends WidgetItemQuery
|
||||
{
|
||||
private static final int ITEM_EMPTY = 6512;
|
||||
|
||||
@Override
|
||||
public WidgetItem[] result(Client client)
|
||||
{
|
||||
Collection<WidgetItem> widgetItems = getBankItems(client);
|
||||
if (widgetItems != null)
|
||||
{
|
||||
return widgetItems.stream()
|
||||
.filter(Objects::nonNull)
|
||||
.filter(predicate)
|
||||
.toArray(WidgetItem[]::new);
|
||||
}
|
||||
return new WidgetItem[0];
|
||||
}
|
||||
|
||||
private Collection<WidgetItem> getBankItems(Client client)
|
||||
{
|
||||
Collection<WidgetItem> widgetItems = new ArrayList<>();
|
||||
Widget bank = client.getWidget(WidgetInfo.BANK_ITEM_CONTAINER);
|
||||
if (bank != null && !bank.isHidden())
|
||||
{
|
||||
Widget[] children = bank.getDynamicChildren();
|
||||
for (int i = 0; i < children.length; i++)
|
||||
{
|
||||
Widget child = children[i];
|
||||
if (child.getItemId() == ITEM_EMPTY || child.isSelfHidden())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
// set bounds to same size as default inventory
|
||||
Rectangle bounds = child.getBounds();
|
||||
bounds.setBounds(bounds.x - 1, bounds.y - 1, 32, 32);
|
||||
// Index is set to 0 because the widget's index does not correlate to the order in the bank
|
||||
widgetItems.add(new WidgetItem(child.getItemId(), child.getItemQuantity(), 0, bounds));
|
||||
}
|
||||
}
|
||||
return widgetItems;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
/*
|
||||
* Copyright (c) 2017, Devin French <https://github.com/devinfrench>
|
||||
* 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.api.queries;
|
||||
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.api.widgets.WidgetItem;
|
||||
|
||||
import java.awt.Rectangle;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Objects;
|
||||
|
||||
public class EquipmentItemQuery extends WidgetItemQuery
|
||||
{
|
||||
private static final WidgetInfo[] ALL_EQUIPMENT_WIDGET_INFOS =
|
||||
{
|
||||
WidgetInfo.EQUIPMENT_HELMET,
|
||||
WidgetInfo.EQUIPMENT_CAPE,
|
||||
WidgetInfo.EQUIPMENT_AMULET,
|
||||
WidgetInfo.EQUIPMENT_WEAPON,
|
||||
WidgetInfo.EQUIPMENT_BODY,
|
||||
WidgetInfo.EQUIPMENT_SHIELD,
|
||||
WidgetInfo.EQUIPMENT_LEGS,
|
||||
WidgetInfo.EQUIPMENT_GLOVES,
|
||||
WidgetInfo.EQUIPMENT_BOOTS,
|
||||
WidgetInfo.EQUIPMENT_RING,
|
||||
WidgetInfo.EQUIPMENT_AMMO,
|
||||
};
|
||||
|
||||
private final Collection<WidgetInfo> slots = new ArrayList<>();
|
||||
|
||||
public EquipmentItemQuery slotEquals(WidgetInfo... slotWidgetInfo)
|
||||
{
|
||||
slots.addAll(Arrays.asList(slotWidgetInfo));
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public WidgetItem[] result(Client client)
|
||||
{
|
||||
Collection<WidgetItem> widgetItems = getEquippedItems(client);
|
||||
if (widgetItems != null)
|
||||
{
|
||||
return widgetItems.stream()
|
||||
.filter(Objects::nonNull)
|
||||
.filter(predicate)
|
||||
.toArray(WidgetItem[]::new);
|
||||
}
|
||||
return new WidgetItem[0];
|
||||
}
|
||||
|
||||
private Collection<WidgetItem> getEquippedItems(Client client)
|
||||
{
|
||||
Collection<WidgetItem> widgetItems = new ArrayList<>();
|
||||
Widget equipment = client.getWidget(WidgetInfo.EQUIPMENT);
|
||||
if (equipment != null && !equipment.isHidden())
|
||||
{
|
||||
if (slots.isEmpty())
|
||||
{
|
||||
slots.addAll(Arrays.asList(ALL_EQUIPMENT_WIDGET_INFOS));
|
||||
}
|
||||
for (WidgetInfo slot : slots)
|
||||
{
|
||||
Widget parentWidget = client.getWidget(slot);
|
||||
Widget itemWidget = parentWidget.getChild(1);
|
||||
// Check if background icon is hidden. if hidden, item is equipped.
|
||||
boolean equipped = parentWidget.getChild(2).isSelfHidden();
|
||||
// set bounds to same size as default inventory
|
||||
Rectangle bounds = itemWidget.getBounds();
|
||||
bounds.setBounds(bounds.x - 1, bounds.y - 1, 32, 32);
|
||||
// Index is set to 0 because there is no set in stone order of equipment slots
|
||||
widgetItems.add(new WidgetItem(equipped ? itemWidget.getItemId() : -1, itemWidget.getItemQuantity(), 0, bounds));
|
||||
}
|
||||
}
|
||||
return widgetItems;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
/*
|
||||
* Copyright (c) 2017, Devin French <https://github.com/devinfrench>
|
||||
* 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.api.queries;
|
||||
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.api.widgets.WidgetItem;
|
||||
|
||||
import java.awt.Rectangle;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Objects;
|
||||
|
||||
public class InventoryWidgetItemQuery extends WidgetItemQuery
|
||||
{
|
||||
private static final WidgetInfo[] INVENTORY_WIDGET_INFOS =
|
||||
{
|
||||
WidgetInfo.DEPOSIT_BOX_INVENTORY_ITEMS_CONTAINER,
|
||||
WidgetInfo.BANK_INVENTORY_ITEMS_CONTAINER,
|
||||
WidgetInfo.SHOP_INVENTORY_ITEMS_CONTAINER,
|
||||
WidgetInfo.GRAND_EXCHANGE_INVENTORY_ITEMS_CONTAINER,
|
||||
WidgetInfo.GUIDE_PRICES_INVENTORY_ITEMS_CONTAINER,
|
||||
WidgetInfo.EQUIPMENT_INVENTORY_ITEMS_CONTAINER,
|
||||
WidgetInfo.INVENTORY
|
||||
};
|
||||
|
||||
@Override
|
||||
public WidgetItem[] result(Client client)
|
||||
{
|
||||
Collection<WidgetItem> widgetItems = getInventoryItems(client);
|
||||
if (widgetItems != null)
|
||||
{
|
||||
return widgetItems.stream()
|
||||
.filter(Objects::nonNull)
|
||||
.filter(predicate)
|
||||
.toArray(WidgetItem[]::new);
|
||||
}
|
||||
return new WidgetItem[0];
|
||||
}
|
||||
|
||||
private Collection<WidgetItem> getInventoryItems(Client client)
|
||||
{
|
||||
Collection<WidgetItem> widgetItems = new ArrayList<>();
|
||||
for (WidgetInfo widgetInfo : INVENTORY_WIDGET_INFOS)
|
||||
{
|
||||
Widget inventory = client.getWidget(widgetInfo);
|
||||
if (inventory == null || inventory.isHidden())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (widgetInfo == WidgetInfo.INVENTORY)
|
||||
{
|
||||
widgetItems.addAll(inventory.getWidgetItems());
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
Widget[] children = inventory.getDynamicChildren();
|
||||
for (int i = 0; i < children.length; i++)
|
||||
{
|
||||
Widget child = children[i];
|
||||
// set bounds to same size as default inventory
|
||||
Rectangle bounds = child.getBounds();
|
||||
bounds.setBounds(bounds.x - 1, bounds.y - 1, 32, 32);
|
||||
widgetItems.add(new WidgetItem(child.getItemId(), child.getItemQuantity(), i, bounds));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return widgetItems;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
/*
|
||||
* Copyright (c) 2017, Devin French <https://github.com/devinfrench>
|
||||
* 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.api.queries;
|
||||
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.api.widgets.WidgetItem;
|
||||
|
||||
import java.awt.Rectangle;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Objects;
|
||||
|
||||
public class ShopItemQuery extends WidgetItemQuery
|
||||
{
|
||||
@Override
|
||||
public WidgetItem[] result(Client client)
|
||||
{
|
||||
Collection<WidgetItem> widgetItems = getShopItems(client);
|
||||
if (widgetItems != null)
|
||||
{
|
||||
return widgetItems.stream()
|
||||
.filter(Objects::nonNull)
|
||||
.filter(predicate)
|
||||
.toArray(WidgetItem[]::new);
|
||||
}
|
||||
return new WidgetItem[0];
|
||||
}
|
||||
|
||||
private Collection<WidgetItem> getShopItems(Client client)
|
||||
{
|
||||
Collection<WidgetItem> widgetItems = new ArrayList<>();
|
||||
Widget shop = client.getWidget(WidgetInfo.SHOP_ITEMS_CONTAINER);
|
||||
if (shop != null && !shop.isHidden())
|
||||
{
|
||||
Widget[] children = shop.getDynamicChildren();
|
||||
for (int i = 1; i < children.length; i++)
|
||||
{
|
||||
Widget child = children[i];
|
||||
// set bounds to same size as default inventory
|
||||
Rectangle bounds = child.getBounds();
|
||||
bounds.setBounds(bounds.x - 1, bounds.y - 1, 32, 32);
|
||||
widgetItems.add(new WidgetItem(child.getItemId(), child.getItemQuantity(), i - 1, bounds));
|
||||
}
|
||||
}
|
||||
return widgetItems;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
/*
|
||||
* Copyright (c) 2017, Devin French <https://github.com/devinfrench>
|
||||
* 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.api.queries;
|
||||
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.Query;
|
||||
import net.runelite.api.widgets.WidgetItem;
|
||||
|
||||
public abstract class WidgetItemQuery extends Query<WidgetItem, WidgetItemQuery>
|
||||
{
|
||||
|
||||
public WidgetItemQuery idEquals(int... ids)
|
||||
{
|
||||
predicate = and(item ->
|
||||
{
|
||||
for (int id : ids)
|
||||
{
|
||||
if (item.getId() == id)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
});
|
||||
return this;
|
||||
}
|
||||
|
||||
public WidgetItemQuery indexEquals(int... indexes)
|
||||
{
|
||||
predicate = and(item ->
|
||||
{
|
||||
for (int index : indexes)
|
||||
{
|
||||
if (item.getIndex() == index)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
});
|
||||
return this;
|
||||
}
|
||||
|
||||
public WidgetItemQuery quantityEquals(int quantity)
|
||||
{
|
||||
predicate = and(item -> item.getQuantity() == quantity);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public abstract WidgetItem[] result(Client client);
|
||||
}
|
||||
@@ -129,6 +129,7 @@ public class WidgetID
|
||||
public static final int SKILLS_GROUP_ID = 320;
|
||||
public static final int QUESTTAB_GROUP_ID = 629;
|
||||
public static final int MUSIC_GROUP_ID = 239;
|
||||
public static final int MUSICTAB_GROUP_ID = 239;
|
||||
public static final int BARROWS_PUZZLE_GROUP_ID = 25;
|
||||
|
||||
static class WorldMap
|
||||
@@ -555,7 +556,7 @@ public class WidgetID
|
||||
static final int CURRENT_WAVE_WIDGET = 4;
|
||||
static final int CURRENT_WAVE = 5;
|
||||
static final int CALL_WIDGET = 6;
|
||||
static final int CALL_TEXT = 7;
|
||||
static final int HEARD_CALL = 7;
|
||||
static final int TO_CALL_WIDGET = 8;
|
||||
static final int TO_CALL = 9;
|
||||
static final int ROLE_SPRITE = 10;
|
||||
@@ -563,6 +564,7 @@ public class WidgetID
|
||||
static final int REWARD_TEXT = 57;
|
||||
}
|
||||
|
||||
|
||||
static class LevelUp
|
||||
{
|
||||
static final int SKILL = 1;
|
||||
@@ -701,16 +703,154 @@ public class WidgetID
|
||||
static class StandardSpellBook
|
||||
{
|
||||
static final int LUMBRIDGE_HOME_TELEPORT = 4;
|
||||
static final int WIND_STRIKE = 5;
|
||||
static final int CONFUSE = 6;
|
||||
static final int ENCHANT_CROSSBOW_BOLT = 7;
|
||||
static final int WATER_STRIKE = 8;
|
||||
static final int LVL_1_ENCHANT = 9;
|
||||
static final int EARTH_STRIKE = 10;
|
||||
static final int WEAKEN = 11;
|
||||
static final int FIRE_STRIKE = 12;
|
||||
static final int BONES_TO_BANANAS = 13;
|
||||
static final int WIND_BOLT = 14;
|
||||
static final int CURSE = 15;
|
||||
static final int BIND = 16;
|
||||
static final int LOW_LEVEL_ALCHEMY = 17;
|
||||
static final int WATER_BOLT = 18;
|
||||
static final int VARROCK_TELEPORT = 19;
|
||||
static final int LVL_2_ENCHANT = 20;
|
||||
static final int EARTH_BOLT = 21;
|
||||
static final int LUMBRIDGE_TELEPORT = 22;
|
||||
static final int TELEKINETIC_GRAB = 23;
|
||||
static final int FIRE_BOLT = 24;
|
||||
static final int FALADOR_TELEPORT = 25;
|
||||
static final int CRUMBLE_UNDEAD = 26;
|
||||
static final int TELEPORT_TO_HOUSE = 27;
|
||||
static final int WIND_BLAST = 28;
|
||||
static final int SUPERHEAT_ITEM = 29;
|
||||
static final int CAMELOT_TELEPORT = 30;
|
||||
static final int WATER_BLAST = 31;
|
||||
static final int LVL_3_ENCHANT = 32;
|
||||
static final int IBAN_BLAST = 33;
|
||||
static final int SNARE = 34;
|
||||
static final int MAGIC_DART = 35;
|
||||
static final int ARDOUGNE_TELEPORT = 36;
|
||||
static final int EARTH_BLAST = 37;
|
||||
static final int HIGH_LEVEL_ALCHEMY = 38;
|
||||
static final int CHARGE_WATER_ORB = 39;
|
||||
static final int LVL_4_ENCHANT = 40;
|
||||
static final int WATCHTOWER_TELEPORT = 41;
|
||||
static final int FIRE_BLAST = 42;
|
||||
static final int CHARGE_EARTH_ORB = 43;
|
||||
static final int BONES_TO_PEACHES = 44;
|
||||
static final int SARADOMIN_STRIKE = 45;
|
||||
static final int CLAWS_OF_GUTHIX = 46;
|
||||
static final int FLAMES_OF_ZAMORAK = 47;
|
||||
static final int TROLLHEIM_TELEPORT = 48;
|
||||
static final int WIND_WAVE = 49;
|
||||
static final int HARGE_FIRE_ORB = 50;
|
||||
static final int TELEPORT_TO_APE_ATOLL = 51;
|
||||
static final int WATER_WAVE = 52;
|
||||
static final int CHARGE_AIR_ORB = 53;
|
||||
static final int VULNERABILITY = 54;
|
||||
static final int LVL_5_ENCHANT = 55;
|
||||
static final int TELEPORT_TO_KOUREND = 56;
|
||||
static final int EARTH_WAVE = 57;
|
||||
static final int ENFEEBLE = 58;
|
||||
static final int TELEOTHER_LUMBRIDGE = 59;
|
||||
static final int FIRE_WAVE = 60;
|
||||
static final int ENTANGLE = 61;
|
||||
static final int STUN = 62;
|
||||
static final int CHARGE = 63;
|
||||
static final int WIND_SURGE = 64;
|
||||
static final int TELEOTHER_FALADOR = 65;
|
||||
static final int WATER_SURGE = 66;
|
||||
static final int TELE_BLOCK = 67;
|
||||
static final int BOUNTY_TARGET_TELEPORT = 68;
|
||||
static final int LVL_6_ENCHANT = 69;
|
||||
static final int TELEOTHER_CAMELOT = 70;
|
||||
static final int EARTH_SURGE = 71;
|
||||
static final int LVL_7_ENCHANT = 72;
|
||||
static final int FIRE_SURGE = 73;
|
||||
}
|
||||
|
||||
static class AncientSpellBook
|
||||
{
|
||||
static final int BOUNTY_TARGET_TELEPORT = 68;
|
||||
static final int ICE_RUSH = 74;
|
||||
static final int ICE_BLITZ = 75;
|
||||
static final int ICE_BURST = 76;
|
||||
static final int ICE_BARRAGE = 77;
|
||||
static final int BLOOD_RUSH = 78;
|
||||
static final int BLOOD_BLITZ = 79;
|
||||
static final int BLOOD_BURST = 80;
|
||||
static final int BLOOD_BARRAGE = 81;
|
||||
static final int SMOKE_RUSH = 82;
|
||||
static final int SMOKE_BLITZ = 83;
|
||||
static final int SMOKE_BURST = 84;
|
||||
static final int SMOKE_BARRAGE = 85;
|
||||
static final int SHADOW_RUSH = 86;
|
||||
static final int SHADOW_BLITZ = 87;
|
||||
static final int SHADOW_BURST = 88;
|
||||
static final int SHADOW_BARRAGE = 89;
|
||||
static final int PADDEWWA_TELEPORT = 90;
|
||||
static final int SENNTISTEN_TELEPORT = 91;
|
||||
static final int KHARYRLL_TELEPORT = 92;
|
||||
static final int LASSAR_TELEPORT = 93;
|
||||
static final int DAREEYAK_TELEPORT = 94;
|
||||
static final int CARRALLANGER_TELEPORT = 95;
|
||||
static final int ANNAKARL_TELEPORT = 96;
|
||||
static final int GHORROCK_TELEPORT = 97;
|
||||
static final int EDGEVILLE_HOME_TELEPORT = 98;
|
||||
}
|
||||
|
||||
static class LunarSpellBook
|
||||
{
|
||||
static final int BOUNTY_TARGET_TELEPORT = 68;
|
||||
static final int LUNAR_HOME_TELEPORT = 99;
|
||||
static final int BAKE_PIE = 100;
|
||||
static final int CURE_PLANT = 101;
|
||||
static final int MONSTER_EXAMINE = 102;
|
||||
static final int NPC_CONTACT = 103;
|
||||
static final int CURE_OTHER = 104;
|
||||
static final int HUMIDIFY = 105;
|
||||
static final int MOONCLAN_TELEPORT = 106;
|
||||
static final int TELE_GROUP_MOONCLAN = 107;
|
||||
static final int CURE_ME = 108;
|
||||
static final int HUNTER_KIT = 109;
|
||||
static final int WATERBIRTH_TELEPORT = 110;
|
||||
static final int TELE_GROUP_WATERBIRTH = 111;
|
||||
static final int CURE_GROUP = 112;
|
||||
static final int STAT_SPY = 113;
|
||||
static final int BARBARIAN_TELEPORT = 114;
|
||||
static final int TELE_GROUP_BARBARIAN = 115;
|
||||
static final int SUPERGLASS_MAKE = 116;
|
||||
static final int TAN_LEATHER = 117;
|
||||
static final int KHAZARD_TELEPORT = 118;
|
||||
static final int TELE_GROUP_KHAZARD = 119;
|
||||
static final int DREAM = 120;
|
||||
static final int STRING_JEWELLERY = 121;
|
||||
static final int STAT_RESTORE_POT_SHARE = 122;
|
||||
static final int MAGIC_IMBUE = 123;
|
||||
static final int FERTILE_SOIL = 124;
|
||||
static final int BOOST_POTION_SHARE = 125;
|
||||
static final int FISHING_GUILD_TELEPORT = 126;
|
||||
static final int TELE_GROUP_FISHING_GUILD = 127;
|
||||
static final int PLANK_MAKE = 128;
|
||||
static final int CATHERBY_TELEPORT = 129;
|
||||
static final int TELE_GROUP_CATHERBY = 130;
|
||||
static final int RECHARGE_DRAGONSTONE = 131;
|
||||
static final int ICE_PLATEAU_TELEPORT = 132;
|
||||
static final int TELE_GROUP_ICE_PLATEAU = 133;
|
||||
static final int ENERGY_TRANSFER = 134;
|
||||
static final int HEAL_OTHER = 135;
|
||||
static final int VENGEANCE_OTHER = 136;
|
||||
static final int VENGEANCE = 137;
|
||||
static final int HEAL_GROUP = 138;
|
||||
static final int SPELLBOOK_SWAP = 139;
|
||||
static final int GEOMANCY = 140;
|
||||
static final int SPIN_FLAX = 141;
|
||||
static final int OURANIA_TELEPORT = 142;
|
||||
}
|
||||
|
||||
static class ArceuusSpellBook
|
||||
|
||||
@@ -351,6 +351,7 @@ public enum WidgetInfo
|
||||
BA_COLL_WAVE_TEXT(WidgetID.BA_COLLECTOR_GROUP_ID, WidgetID.BarbarianAssault.CURRENT_WAVE),
|
||||
BA_COLL_CALL_TEXT(WidgetID.BA_COLLECTOR_GROUP_ID, WidgetID.BarbarianAssault.TO_CALL),
|
||||
BA_COLL_LISTEN_TEXT(WidgetID.BA_COLLECTOR_GROUP_ID, WidgetID.BarbarianAssault.CORRECT_STYLE),
|
||||
BA_COLL_HEARD_TEXT(WidgetID.BA_COLLECTOR_GROUP_ID, WidgetID.BarbarianAssault.HEARD_CALL),
|
||||
BA_COLL_ROLE_TEXT(WidgetID.BA_COLLECTOR_GROUP_ID, WidgetID.BarbarianAssault.ROLE),
|
||||
BA_COLL_ROLE_SPRITE(WidgetID.BA_COLLECTOR_GROUP_ID, WidgetID.BarbarianAssault.ROLE_SPRITE),
|
||||
|
||||
@@ -450,10 +451,56 @@ public enum WidgetInfo
|
||||
|
||||
MINIGAME_TELEPORT_BUTTON(WidgetID.MINIGAME_TAB_ID, WidgetID.Minigames.TELEPORT_BUTTON),
|
||||
|
||||
/* STANDARD SPELL BOOK WIDGETS*/
|
||||
SPELL_LUMBRIDGE_HOME_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.StandardSpellBook.LUMBRIDGE_HOME_TELEPORT),
|
||||
SPELL_EDGEVILLE_HOME_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.EDGEVILLE_HOME_TELEPORT),
|
||||
SPELL_BIND(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.StandardSpellBook.BIND),
|
||||
SPELL_SNARE(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.StandardSpellBook.SNARE),
|
||||
SPELL_ENTANGLE(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.StandardSpellBook.ENTANGLE),
|
||||
SPELL_TELE_BLOCK(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.StandardSpellBook.TELE_BLOCK),
|
||||
SPELL_FIRE_SURGE(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.StandardSpellBook.FIRE_SURGE),
|
||||
SPELL_BOUNTY_TARGET_TELEPORT2(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.StandardSpellBook.BOUNTY_TARGET_TELEPORT),
|
||||
/* END OF STANDARD SPELL BOOK WIDGETS*/
|
||||
|
||||
/* LUNAR SPELL BOOK WIDGETS*/
|
||||
SPELL_LUNAR_HOME_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.LunarSpellBook.LUNAR_HOME_TELEPORT),
|
||||
SPELL_VENGEANCE_OTHER(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.LunarSpellBook.VENGEANCE_OTHER),
|
||||
SPELL_VENGEANCE(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.LunarSpellBook.VENGEANCE),
|
||||
SPELL_BOUNTY_TARGET_TELEPORT3(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.LunarSpellBook.BOUNTY_TARGET_TELEPORT),
|
||||
/* LUNA SPELL BOOK WIDGETS*/
|
||||
|
||||
/* ARCEUUS SPELL BOOK WIDGETS*/
|
||||
SPELL_ARCEUUS_HOME_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.ArceuusSpellBook.ARCEUUS_HOME_TELEPORT),
|
||||
/* END OF ARCEUUS SPELL BOOK WIDGETS*/
|
||||
|
||||
/* ANCIENT SPELL BOOK WIDGETS*/
|
||||
SPELL_ICE_RUSH(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.ICE_RUSH),
|
||||
SPELL_ICE_BLITZ(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.ICE_BLITZ),
|
||||
SPELL_ICE_BURST(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.ICE_BURST),
|
||||
SPELL_ICE_BARRAGE(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.ICE_BARRAGE),
|
||||
SPELL_BLOOD_RUSH(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.BLOOD_RUSH),
|
||||
SPELL_BLOOD_BLITZ(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.BLOOD_BLITZ),
|
||||
SPELL_BLOOD_BURST(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.BLOOD_BURST),
|
||||
SPELL_BLOOD_BARRAGE(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.BLOOD_BARRAGE),
|
||||
SPELL_SMOKE_RUSH(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.SMOKE_RUSH),
|
||||
SPELL_SMOKE_BLITZ(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.SMOKE_BLITZ),
|
||||
SPELL_SMOKE_BURST(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.SMOKE_BURST),
|
||||
SPELL_SMOKE_BARRAGE(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.SMOKE_BARRAGE),
|
||||
SPELL_SHADOW_RUSH(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.SHADOW_RUSH),
|
||||
SPELL_SHADOW_BLITZ(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.SHADOW_BLITZ),
|
||||
SPELL_SHADOW_BURST(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.SHADOW_BURST),
|
||||
SPELL_SHADOW_BARRAGE(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.SHADOW_BARRAGE),
|
||||
SPELL_PADDEWWA_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.PADDEWWA_TELEPORT),
|
||||
SPELL_SENNTISTEN_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.SENNTISTEN_TELEPORT),
|
||||
SPELL_KHARYRLL_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.KHARYRLL_TELEPORT),
|
||||
SPELL_LASSAR_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.LASSAR_TELEPORT),
|
||||
SPELL_DAREEYAK_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.DAREEYAK_TELEPORT),
|
||||
SPELL_CARRALLANGER_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.CARRALLANGER_TELEPORT),
|
||||
SPELL_ANNAKARL_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.ANNAKARL_TELEPORT),
|
||||
SPELL_GHORROCK_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.GHORROCK_TELEPORT),
|
||||
SPELL_EDGEVILLE_HOME_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.EDGEVILLE_HOME_TELEPORT),
|
||||
SPELL_BOUNTY_TARGET_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.AncientSpellBook.BOUNTY_TARGET_TELEPORT),
|
||||
|
||||
/* END OF ANCIENT SPELL BOOK WIDGETS*/
|
||||
|
||||
PVP_SKULL_CONTAINER(WidgetID.PVP_GROUP_ID, WidgetID.Pvp.SKULL_CONTAINER),
|
||||
PVP_WORLD_SAFE_ZONE(WidgetID.PVP_GROUP_ID, WidgetID.Pvp.SAFE_ZONE),
|
||||
@@ -473,12 +520,25 @@ public enum WidgetInfo
|
||||
|
||||
QUESTLIST_BOX(WidgetID.QUESTLIST_GROUP_ID, WidgetID.QuestList.BOX),
|
||||
QUESTLIST_CONTAINER(WidgetID.QUESTLIST_GROUP_ID, WidgetID.QuestList.CONTAINER),
|
||||
QUESTLIST_SCROLLBAR(WidgetID.QUESTLIST_GROUP_ID, WidgetID.QuestList.SCROLLBAR),
|
||||
QUESTLIST_SCROLLBAR(WidgetID.QUESTLIST_GROUP_ID, WidgetID.QuestList.SCROLLBAR),
|
||||
QUESTLIST_FREE_CONTAINER(WidgetID.QUESTLIST_GROUP_ID, WidgetID.QuestList.FREE_CONTAINER),
|
||||
QUESTLIST_MEMBERS_CONTAINER(WidgetID.QUESTLIST_GROUP_ID, WidgetID.QuestList.MEMBERS_CONTAINER),
|
||||
QUESTLIST_MINIQUEST_CONTAINER(WidgetID.QUESTLIST_GROUP_ID, WidgetID.QuestList.MINIQUEST_CONTAINER),
|
||||
QUESTTAB_QUEST_TAB(WidgetID.QUESTTAB_GROUP_ID, WidgetID.QuestTab.QUEST_TAB),
|
||||
|
||||
QUESTTAB_QUEST_TAB(WidgetID.QUESTTAB_GROUP_ID, WidgetID.QuestTab.QUEST_TAB);
|
||||
MUSICTAB_INTERFACE(WidgetID.MUSICTAB_GROUP_ID, 1),
|
||||
MUSICTAB_SONG_BOX(WidgetID.MUSICTAB_GROUP_ID, 2),
|
||||
MUSICTAB_ALL_SONGS(WidgetID.MUSICTAB_GROUP_ID, 3),
|
||||
MUSICTAB_SCROLLBAR(WidgetID.MUSICTAB_GROUP_ID, 4),
|
||||
MUSICTAB_PLAYING(WidgetID.MUSICTAB_GROUP_ID, 5),
|
||||
MUSICTAB_CURRENT_SONG_NAME(WidgetID.MUSICTAB_GROUP_ID, 6),
|
||||
MUSICTAB_AUTO_BUTTON_LISTENER(WidgetID.MUSICTAB_GROUP_ID, 7),
|
||||
MUSICTAB_AUTO_BUTTON(WidgetID.MUSICTAB_GROUP_ID, 8),
|
||||
MUSICTAB_MANUAL_BUTTON_LISTENER(WidgetID.MUSICTAB_GROUP_ID, 9),
|
||||
MUSICTAB_MANUAL_BUTTON(WidgetID.MUSICTAB_GROUP_ID, 10),
|
||||
MUSICTAB_LOOP_BUTTON_LISTENER(WidgetID.MUSICTAB_GROUP_ID, 11),
|
||||
MUSICTAB_LOOP_BUTTON(WidgetID.MUSICTAB_GROUP_ID, 12),
|
||||
MUSICTAB_UNLOCKED_SONGS(WidgetID.MUSICTAB_GROUP_ID, 13);
|
||||
|
||||
private final int groupId;
|
||||
private final int childId;
|
||||
|
||||
Reference in New Issue
Block a user