@@ -27,7 +27,7 @@ object ProjectVersions {
|
||||
const val launcherVersion = "2.2.0"
|
||||
const val rlVersion = "1.6.38"
|
||||
|
||||
const val openosrsVersion = "3.5.4"
|
||||
const val openosrsVersion = "4.0.0"
|
||||
|
||||
const val rsversion = 193
|
||||
const val cacheversion = 165
|
||||
|
||||
@@ -251,257 +251,4 @@ public final class AnimationID
|
||||
|
||||
// POH Animations
|
||||
public static final int INCENSE_BURNER = 3687;
|
||||
|
||||
//OPENOSRS
|
||||
|
||||
// NPC animations
|
||||
public static final int FISHING_TRAILBLAZER_HARPOON_2 = 8785;
|
||||
|
||||
public static final int CRYSTALLINE_RAT_DEATH = 8334;
|
||||
public static final int CRYSTALLINE_BAT_DEATH = 4917;
|
||||
public static final int CRYSTALLINE_WOLF_DEATH = 8335;
|
||||
public static final int CRYSTALLINE_SPIDER_DEATH = 8338;
|
||||
public static final int CRYSTALLINE_UNICORN_DEATH = 6377;
|
||||
public static final int CRYSTALLINE_DRAGON_DEATH = 92;
|
||||
public static final int CRYSTALLINE_BEAR_DEATH = 4929;
|
||||
public static final int CRYSTALLINE_DARK_BEAST_DEATH = 2733;
|
||||
public static final int CORRUPTED_SCORPION_DEATH = 6256;
|
||||
|
||||
public static final int TABLET_TELEPORT = 4069;
|
||||
|
||||
public static final int THIEVING_STALL = 832;
|
||||
public static final int PICKPOCKET_SUCCESS = 881;
|
||||
public static final int PULL_LEVER = 2140;
|
||||
public static final int STANDARD_PURPLE_TELEPORT = 714;
|
||||
public static final int ECTOPHIAL_TELEPORT = 878;
|
||||
public static final int FAIRY_RING_TELEPORT = 3265;
|
||||
public static final int SCROLL_TELEPORT = 3864;
|
||||
public static final int XERICS_TALISMAN_TELEPORT = 3865;
|
||||
public static final int WILDERNESS_OBELISK_TELEPORT = 3945;
|
||||
public static final int SEED_POD_TELEPORT = 4544;
|
||||
|
||||
//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; // Same Animation as failed pickpocked
|
||||
|
||||
public static final int NIGHTMARE_DEATH = 8612;
|
||||
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;
|
||||
|
||||
// NPC animations
|
||||
public static final int BLACKJACK_KO = 838;
|
||||
|
||||
// Fight Caves
|
||||
public static final int TZTOK_JAD_MELEE_ATTACK = 2655;
|
||||
public static final int TOK_XIL_RANGE_ATTACK = 2633;
|
||||
public static final int TOK_XIL_MELEE_ATTACK = 2628;
|
||||
public static final int KET_ZEK_MELEE_ATTACK = 2644;
|
||||
public static final int KET_ZEK_MAGE_ATTACK = 2647;
|
||||
public static final int MEJ_KOT_MELEE_ATTACK = 2637;
|
||||
public static final int MEJ_KOT_HEAL_ATTACK = 2639;
|
||||
|
||||
// Vorkath
|
||||
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_OR_SPAWN_ATTACK = 7960;
|
||||
public static final int VORKATH_ACID_ATTACK = 7957;
|
||||
|
||||
// Tekton
|
||||
public static final int TEKTON_ANVIL = 7475;
|
||||
public static final int TEKTON_AUTO1 = 7482;
|
||||
public static final int TEKTON_AUTO2 = 7483;
|
||||
public static final int TEKTON_AUTO3 = 7484;
|
||||
public static final int TEKTON_FAST_AUTO1 = 7478;
|
||||
public static final int TEKTON_FAST_AUTO2 = 7488;
|
||||
public static final int TEKTON_ENRAGE_AUTO1 = 7492;
|
||||
public static final int TEKTON_ENRAGE_AUTO2 = 7493;
|
||||
public static final int TEKTON_ENRAGE_AUTO3 = 7494;
|
||||
|
||||
// Hydra
|
||||
public static final int HYDRA_WALKING = 8232;
|
||||
public static final int HYDRA_IDLE = 8233;
|
||||
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_RANGED_OR_POISON_ATTACK = 8256;
|
||||
public static final int HYDRA_4_1 = 8257;
|
||||
public static final int HYDRA_4_2 = 8258;
|
||||
|
||||
// Inferno animations
|
||||
public static final int JAL_NIB = 7574;
|
||||
public static final int JAL_MEJRAH = 7578;
|
||||
public static final int JAL_MEJRAH_STAND = 7577;
|
||||
public static final int JAL_AK_RANGE_ATTACK = 7581;
|
||||
public static final int JAL_AK_MELEE_ATTACK = 7582;
|
||||
public static final int JAL_AK_MAGIC_ATTACK = 7583;
|
||||
public static final int JAL_IMKOT = 7597;
|
||||
public static final int JAL_XIL_MELEE_ATTACK = 7604;
|
||||
public static final int JAL_XIL_RANGE_ATTACK = 7605;
|
||||
public static final int JAL_ZEK_MAGE_ATTACK = 7610;
|
||||
public static final int JAL_ZEK_MELEE_ATTACK = 7612;
|
||||
public static final int JALTOK_JAD_MELEE_ATTACK = 7590;
|
||||
public static final int JALTOK_JAD_MAGE_ATTACK = 7592;
|
||||
public static final int JALTOK_JAD_RANGE_ATTACK = 7593;
|
||||
public static final int TZKAL_ZUK = 7566;
|
||||
public static final int JAL_MEJJAK = 2858;
|
||||
|
||||
// General Graardor
|
||||
public static final int MINION_AUTO1 = 6154;
|
||||
public static final int MINION_AUTO2 = 6156;
|
||||
public static final int MINION_AUTO3 = 7071;
|
||||
public static final int MINION_AUTO4 = 7073;
|
||||
public static final int GENERAL_AUTO1 = 7018;
|
||||
public static final int GENERAL_AUTO2 = 7020;
|
||||
public static final int GENERAL_AUTO3 = 7021;
|
||||
|
||||
// Kr'il Tsutsaroth
|
||||
public static final int ZAMMY_GENERIC_AUTO = 64;
|
||||
public static final int KRIL_AUTO = 6948;
|
||||
public static final int KRIL_SPEC = 6950;
|
||||
public static final int ZAKL_AUTO = 7077;
|
||||
public static final int BALFRUG_AUTO = 4630;
|
||||
|
||||
// Commander Zilyana
|
||||
public static final int ZILYANA_MELEE_AUTO = 6964;
|
||||
public static final int ZILYANA_AUTO = 6967;
|
||||
public static final int ZILYANA_SPEC = 6970;
|
||||
public static final int STARLIGHT_AUTO = 6376;
|
||||
public static final int BREE_AUTO = 7026;
|
||||
public static final int GROWLER_AUTO = 7037;
|
||||
|
||||
// Kree'arra
|
||||
public static final int KREE_RANGED = 6978;
|
||||
public static final int SKREE_AUTO = 6955;
|
||||
public static final int GEERIN_AUTO = 6956;
|
||||
public static final int GEERIN_FLINCH = 6958;
|
||||
public static final int KILISA_AUTO = 6957;
|
||||
|
||||
// Vetion
|
||||
public static final int VETION_EARTHQUAKE = 5507;
|
||||
|
||||
// Zulrah
|
||||
public static final int ZULRAH_DEATH = 5804;
|
||||
public static final int ZULRAH_PHASE = 5072;
|
||||
|
||||
//Dagannoth Kings
|
||||
public static final int DAG_REX = 2853;
|
||||
public static final int DAG_PRIME = 2854;
|
||||
public static final int DAG_SUPREME = 2855;
|
||||
|
||||
// Lizardman shaman
|
||||
public static final int LIZARDMAN_SHAMAN_SPAWN = 7157;
|
||||
public static final int LIZARDMAN_SHAMAN_SPAWN_EXPLOSION = 7159;
|
||||
|
||||
// Cerberus
|
||||
public static final int CERBERUS_MAGIC_ATTACK = 4489;
|
||||
public static final int CERBERUS_RANGED_ATTACK = 4490;
|
||||
public static final int CERBERUS_MELEE_ATTACK = 4491;
|
||||
public static final int CERBERUS_LAVA_ATTACK = 4493;
|
||||
public static final int CERBERUS_SUMMON_GHOSTS = 4494;
|
||||
|
||||
// Gauntlet Hunleff
|
||||
public static final int HUNLEFF_TRAMPLE = 8420;
|
||||
public static final int HUNLEFF_ATTACK = 8419;
|
||||
public static final int HUNLEFF_TORNADO = 8418;
|
||||
public static final int HUNLLEF_SWITCH_TO_MAGIC = 8754;
|
||||
public static final int HUNLLEF_SWITCH_TO_RANGED = 8755;
|
||||
|
||||
//Zalcano
|
||||
public static final int ZALCANO_KNOCKED_DOWN = 8437;
|
||||
public static final int ZALCANO_WAKEUP = 8439;
|
||||
public static final int ZALCANO_ROCK_GLOWING = 8448;
|
||||
|
||||
// Theatre of Blood - Sugadinti Maiden
|
||||
public static final int SUGADINTI_MAIDEN_BLOOD_SPLAT_ATTACK = 8091;
|
||||
public static final int SUGADINTI_MAIDEN_MAGIC_ATTACK = 8092;
|
||||
public static final int SUGADINTI_MAIDEN_DEATH = 8094;
|
||||
|
||||
// Theatre of Blood - Pestilent Bloat
|
||||
public static final int BLOAT_SLEEP = 8082;
|
||||
|
||||
// Theatre of Blood - Sotetseg
|
||||
public static final int SOTETSEG_MELEE_ATTACK = 8138;
|
||||
public static final int SOTETSEG_REGULAR_PROJECTILE_ATTACK = 8139;
|
||||
|
||||
// Theatre of Blood - Verzik Vitur
|
||||
public static final int VERZIK_PHASE_1_MAGIC_ATTACK = 8109;
|
||||
public static final int VERZIK_PHASE_1_MAGIC_ATTACK_CHANNEL = 8110;
|
||||
public static final int VERZIK_CHANGE_TO_PHASE_2 = 8111;
|
||||
public static final int VERZIK_PHASE_2_MAGIC_ATTACK = 8114;
|
||||
public static final int VERZIK_PHASE_2_BELLY_FLOP_ATTACK_1 = 8116;
|
||||
public static final int VERZIK_PHASE_2_HEALING_CHANNEL = 8117;
|
||||
public static final int VERZIK_PHASE_2_BELLY_FLOP_ATTACK_2 = 8118;
|
||||
public static final int VERZIK_CHANGE_TO_PHASE_3 = 8119;
|
||||
public static final int VERZIK_PHASE_3_MELEE_ATTACK = 8123;
|
||||
public static final int VERZIK_PHASE_3_MAGIC_ATTACK = 8124;
|
||||
public static final int VERZIK_PHASE_3_RANGED_ATTACK = 8125;
|
||||
public static final int VERZIK_PHASE_3_GREEN_POOL_ATTACK = 8126;
|
||||
public static final int VERZIK_PHASE_3_WEB_ATTACK = 8127;
|
||||
public static final int VERZIK_DEATH_1 = 8128;
|
||||
public static final int VERZIK_DEATH_2 = 8129;
|
||||
|
||||
// The Nightmare of Ashihama
|
||||
public static final int NIGHTMARE_SPAWN_SLEEPWALKERS = 8572;
|
||||
public static final int NIGHTMARE_FLOATY = 8592;
|
||||
public static final int NIGHTMARE_WALKING = 8592;
|
||||
public static final int NIGHTMARE_IDLE = 8593;
|
||||
public static final int NIGHTMARE_MELEE_ATTACK = 8594;
|
||||
public static final int NIGHTMARE_MAGIC_ATTACK = 8595;
|
||||
public static final int NIGHTMARE_RANGED_ATTACK = 8596;
|
||||
public static final int NIGHTMARE_SURGE_ATTACK = 8597;
|
||||
public static final int NIGHTMARE_GHOST_AOE_ATTACK = 8598;
|
||||
public static final int NIGHTMARE_CURSE_PRAYERS_ATTACK = 8599;
|
||||
public static final int NIGHTMARE_SPAWN_INFECTIOUS_SPORES = 8600;
|
||||
public static final int NIGHTMARE_SPAWN_ROOM_SECTION_FLOWERS = 8601;
|
||||
public static final int NIGHTMARE_CHANNEL_DEVASTATING_ATTACK = 8604;
|
||||
public static final int NIGHTMARE_SWITCH_TO_DEVIL_PHASE = 8605;
|
||||
public static final int NIGHTMARE_PARASITE_ATTACK = 8606;
|
||||
public static final int NIGHTMARE_JUMP_DOWN = 8607;
|
||||
public static final int NIGHTMARE_SINK_DOWN = 8608;
|
||||
public static final int NIGHTMARE_JUMP_UP = 8609;
|
||||
public static final int NIGHTMARE_JUMP_UP_2 = 8610;
|
||||
public static final int NIGHTMARE_WAKE_UP = 8611;
|
||||
|
||||
//Supplies Tracker
|
||||
public static final int ONEHAND_SLASH_SWORD_ANIMATION = 390;
|
||||
public static final int ONEHAND_STAB_SWORD_ANIMATION = 386;
|
||||
public static final int SCYTHE_OF_VITUR_ANIMATION = 8056;
|
||||
public static final int LOW_LEVEL_STANDARD_SPELLS = 711;
|
||||
public static final int WAVE_SPELL_ANIMATION = 727;
|
||||
public static final int SURGE_SPELL_ANIMATION = 7855;
|
||||
public static final int HIGH_ALCH_ANIMATION = 713;
|
||||
public static final int LUNAR_HUMIDIFY = 6294;
|
||||
public static final int PRAY_AT_ALTAR = 645;
|
||||
public static final int ENSOULED_HEADS_ANIMATION = 7198;
|
||||
|
||||
// Weapon attack animations
|
||||
public static final int ONEHAND_SLASH_AXE_ANIMATION = 395;
|
||||
public static final int ONEHAND_CRUSH_PICKAXE_ANIMATION = 400;
|
||||
public static final int ONEHAND_CRUSH_AXE_ANIMATION = 401;
|
||||
public static final int UNARMED_PUNCH_ANIMATION = 422;
|
||||
public static final int UNARMED_KICK_ANIMATION = 423;
|
||||
public static final int BOW_ATTACK_ANIMATION = 426;
|
||||
public static final int ONEHAND_STAB_HALBERD_ANIMATION = 428;
|
||||
public static final int ONEHAND_SLASH_HALBERD_ANIMATION = 440;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -821,7 +821,7 @@ public interface Client extends GameEngine
|
||||
* @param varps passed varps
|
||||
* @param varpId the VarpPlayer id
|
||||
* @return the value
|
||||
* @see VarPlayer#id
|
||||
* @see VarPlayer#getId()
|
||||
*/
|
||||
int getVarpValue(int[] varps, int varpId);
|
||||
|
||||
|
||||
@@ -101,6 +101,10 @@ public enum Varbits
|
||||
PRAYER_RIGOUR(5464),
|
||||
PRAYER_AUGURY(5465),
|
||||
|
||||
RIGOUR_UNLOCKED(5451),
|
||||
AUGURY_UNLOCKED(5452),
|
||||
PRESERVE_UNLOCKED(5453),
|
||||
|
||||
/**
|
||||
* Diary Entries
|
||||
*/
|
||||
@@ -182,6 +186,10 @@ public enum Varbits
|
||||
* Defensive casting mode
|
||||
*/
|
||||
DEFENSIVE_CASTING_MODE(2668),
|
||||
/**
|
||||
* Spells being auto-casted
|
||||
*/
|
||||
AUTO_CAST_SPELL(276),
|
||||
|
||||
/**
|
||||
* Options
|
||||
@@ -397,6 +405,19 @@ public enum Varbits
|
||||
*/
|
||||
QUEST_THE_HAND_IN_THE_SAND(1527),
|
||||
|
||||
/**
|
||||
* 0 = Sir Bedivere
|
||||
* 1 = Sir Pelleas
|
||||
* 2 = Sir Tristram
|
||||
* 3 = Sir Palomedes
|
||||
* 4 = Sir Lucan
|
||||
* 5 = Sir Gawain
|
||||
* 6 = Sir Kay
|
||||
* 7 = Sir Lancelot
|
||||
* 8 = Completed (Chivalry and Piety are unlocked)
|
||||
*/
|
||||
CAMELOT_TRAINING_ROOM_STATUS(3909),
|
||||
|
||||
/**
|
||||
* Daily Tasks (Collection availability)
|
||||
*/
|
||||
@@ -546,6 +567,7 @@ public enum Varbits
|
||||
* 1 = sell
|
||||
*/
|
||||
GE_OFFER_CREATION_TYPE(4397),
|
||||
GE_OFFER_PRICE_PER_ITEM(4398),
|
||||
|
||||
/**
|
||||
* The active tab within the quest interface
|
||||
@@ -596,298 +618,10 @@ public enum Varbits
|
||||
*
|
||||
* @see <a href="https://oldschool.runescape.wiki/w/Minimap#Special_attack_orb">The OSRS Wiki's Minimap page</a>
|
||||
*/
|
||||
PVP_SPEC_ORB(8121),
|
||||
|
||||
//OPENOSRS
|
||||
/*
|
||||
* Kharedst's Memoirs Teleport Item
|
||||
*/
|
||||
KHAREDSTS_MEMOIRS_CHARGES(6035),
|
||||
|
||||
/**
|
||||
* Grand Exchange
|
||||
*/
|
||||
GRAND_EXCHANGE_PRICE_PER_ITEM(4398),
|
||||
|
||||
|
||||
/**
|
||||
* Locked Prayers
|
||||
* 0-7 = Locked
|
||||
* 8 = Unlocked
|
||||
*/
|
||||
CHIVPIETY_UNLOCKED(3909),
|
||||
|
||||
/**
|
||||
* Locked Prayers
|
||||
* 0 = Locked
|
||||
* 1 = Unlocked
|
||||
*/
|
||||
|
||||
RIGOUR_UNLOCKED(5451),
|
||||
AUGURY_UNLOCKED(5452),
|
||||
PRESERVE_UNLOCKED(5453),
|
||||
|
||||
/**
|
||||
* Theatre of Blood 1=In Party, 2=Inside/Spectator, 3=Dead Spectating
|
||||
*/
|
||||
BLOAT_DOOR(6447),
|
||||
|
||||
/**
|
||||
* Theatre of Blood orb varbits each number stands for the player's health on a scale of 1-27 (I think), 0 hides the orb
|
||||
*/
|
||||
THEATRE_OF_BLOOD_ORB_1(6442),
|
||||
THEATRE_OF_BLOOD_ORB_2(6443),
|
||||
THEATRE_OF_BLOOD_ORB_3(6444),
|
||||
THEATRE_OF_BLOOD_ORB_4(6445),
|
||||
THEATRE_OF_BLOOD_ORB_5(6446),
|
||||
|
||||
/**
|
||||
* Nightmare Zone
|
||||
*/
|
||||
NMZ_OVERLOAD(3955),
|
||||
|
||||
/**
|
||||
* Pyramid plunder
|
||||
*/
|
||||
PYRAMID_PLUNDER_SARCO_OPEN(2362),
|
||||
PYRAMID_PLUNDER_CHEST_OPEN(2363),
|
||||
|
||||
/**
|
||||
* In the Wilderness
|
||||
*/
|
||||
IN_THE_WILDERNESS(5963),
|
||||
|
||||
/**
|
||||
* Kingdom Management
|
||||
*/
|
||||
KINGDOM_WORKERS_WOOD(81),
|
||||
KINGDOM_WORKERS_HERBS(82),
|
||||
KINGDOM_WORKERS_FISHING(83),
|
||||
KINGDOM_WORKERS_MINING(84),
|
||||
KINGDOM_WORKERS_FISH_COOKED_BUTTON(135), // 0 - Raw, 1 - Cooked
|
||||
KINGDOM_WORKERS_HARDWOOD(2131),
|
||||
KINGDOM_WORKERS_FARM(2132),
|
||||
KINGDOM_WORKERS_HARDWOOD_BUTTON(2133), // 0 - Mahogany, 1 - Teak, 2 - Both
|
||||
KINGDOM_WORKERS_HERBS_BUTTON(2134), // 0 - Herbs, 1 - Flax
|
||||
|
||||
/**
|
||||
* Varbit used for Slayer reward points
|
||||
*/
|
||||
SLAYER_REWARD_POINTS(4068),
|
||||
|
||||
/**
|
||||
* 0 = standard
|
||||
* 1 = ancients
|
||||
* 2 = lunars
|
||||
* 3 = arrceus
|
||||
**/
|
||||
SPELLBOOK(4070),
|
||||
|
||||
/**
|
||||
* Bank settings/flags
|
||||
**/
|
||||
BANK_NOTE_FLAG(3958),
|
||||
|
||||
|
||||
/**
|
||||
* Spells being auto-casted
|
||||
*/
|
||||
AUTO_CAST_SPELL(276),
|
||||
|
||||
/**
|
||||
* Temple Trekking
|
||||
*/
|
||||
TREK_POINTS(1955),
|
||||
TREK_STARTED(1956),
|
||||
TREK_EVENT(1958),
|
||||
TREK_STATUS(6719),
|
||||
BLOAT_ENTERED_ROOM(6447),
|
||||
|
||||
/**
|
||||
* 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),
|
||||
QUEST_ERNEST_LEVER_A(1788),
|
||||
QUEST_ERNEST_LEVER_B(1789),
|
||||
QUEST_ERNEST_LEVER_C(1790),
|
||||
QUEST_ERNEST_LEVER_D(1791),
|
||||
QUEST_ERNEST_LEVER_E(1792),
|
||||
QUEST_ERNEST_LEVER_F(1793),
|
||||
|
||||
/**
|
||||
* 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), // 14 = able to pickpocket
|
||||
QUEST_FORGETTABLE_TALE(822),
|
||||
QUEST_GARDEN_OF_TRANQUILLITY(961),
|
||||
QUEST_GHOSTS_AHOY(217),
|
||||
QUEST_THE_GIANT_DWARF(571),
|
||||
QUEST_THE_GOLEM(346),
|
||||
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_END_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),
|
||||
//TODO
|
||||
QUEST_SONG_OF_THE_ELVES(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),
|
||||
//TODO
|
||||
QUEST_IN_SEARCH_OF_KNOWLEDGE(6067),
|
||||
|
||||
/**
|
||||
* Spellbook filtering (1 = unfiltered, 0 = filtered)
|
||||
*/
|
||||
FILTER_SPELLBOOK(6718),
|
||||
|
||||
/**
|
||||
* POH Building mode (1 = yes, 0 = no)
|
||||
*/
|
||||
BUILDING_MODE(2176),
|
||||
|
||||
/**
|
||||
* 1 if in game, 0 if not
|
||||
*/
|
||||
LMS_IN_GAME(5314),
|
||||
|
||||
/**
|
||||
* Amount of pvp kills in current game
|
||||
*/
|
||||
LMS_KILLS(5315),
|
||||
|
||||
/**
|
||||
* The x coordinate of the final safespace (world coord)
|
||||
*/
|
||||
LMS_SAFE_X(5316),
|
||||
|
||||
LMS_POISON_PROGRESS(5317),
|
||||
|
||||
/**
|
||||
* The y coordinate of the final safespace (world coord)
|
||||
*/
|
||||
LMS_SAFE_Y(5320),
|
||||
|
||||
/**
|
||||
* 1 is true, 0 is false.
|
||||
*/
|
||||
GAUNTLET_FINAL_ROOM_ENTERED(9177),
|
||||
|
||||
/**
|
||||
* 1 is true, 0 is false.
|
||||
*/
|
||||
GAUNTLET_ENTERED(9178),
|
||||
|
||||
WITHDRAW_X_AMOUNT(3960),
|
||||
|
||||
IN_PVP_AREA(8121),
|
||||
|
||||
/**
|
||||
* Value of hotkey varbits can be 0-13
|
||||
* 0 corresponds to no hotkey set
|
||||
* 1-12 correspond to F1-F12 respectively
|
||||
* 13 corresponds to escape
|
||||
*/
|
||||
COMBAT_TAB_HOTKEY(4675),
|
||||
STATS_TAB_HOTKEY(4676),
|
||||
QUESTS_TAB_HOTKEY(4677),
|
||||
INVENTORY_TAB_HOTKEY(4678),
|
||||
EQUIPMENT_TAB_HOTKEY(4679),
|
||||
PRAYER_TAB_HOTKEY(4680),
|
||||
SPELLBOOK_TAB_HOTKEY(4682),
|
||||
FRIENDS_TAB_HOTKEY(4684),
|
||||
ACCOUNT_MANAGEMENT_TAB_HOTKEY(6517),
|
||||
LOGOUT_TAB_HOTKEY(4689),
|
||||
OPTIONS_TAB_HOTKEY(4686),
|
||||
EMOTES_TAB_HOTKEY(4687),
|
||||
CLAN_TAB_HOTKEY(4683),
|
||||
MUSIC_TAB_HOTKEY(4688),
|
||||
|
||||
/**
|
||||
* Chat Notifications settings
|
||||
* <br>
|
||||
* LOOT_DROP_NOTIFICATIONS: 1 is true, 0 is false
|
||||
* LOOT_DROP_NOTIFICATIONS_VALUE: gp value
|
||||
* UNTRADEABLE_LOOT_NOTIFICATIONS: 1 is true, 0 is false
|
||||
* BOSS_KILL_COUNT_UPDATES: 1 is filtered, 0 is unfiltered
|
||||
* DROP_ITEM_WARNINGS: 1 is true, 0 is false
|
||||
* DROP_ITEM_WARNINGS_VALUE: gp value
|
||||
*/
|
||||
LOOT_DROP_NOTIFICATIONS(5399),
|
||||
LOOT_DROP_NOTIFICATIONS_VALUE(5400),
|
||||
UNTRADEABLE_LOOT_NOTIFICATIONS(5402),
|
||||
BOSS_KILL_COUNT_UPDATES(4930),
|
||||
DROP_ITEM_WARNINGS(5411),
|
||||
DROP_ITEM_WARNINGS_VALUE(5412),
|
||||
;
|
||||
PVP_SPEC_ORB(8121);
|
||||
|
||||
/**
|
||||
* The raw varbit ID.
|
||||
*/
|
||||
private final int id;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ import net.runelite.api.Actor;
|
||||
* An event fired when an actor dies.
|
||||
*/
|
||||
@Value
|
||||
public class ActorDeath implements Event
|
||||
public class ActorDeath
|
||||
{
|
||||
Actor actor;
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ import lombok.Data;
|
||||
* @see net.runelite.api.AnimationID
|
||||
*/
|
||||
@Data
|
||||
public class AnimationChanged implements Event
|
||||
public class AnimationChanged
|
||||
{
|
||||
/**
|
||||
* The actor that has entered a new animation.
|
||||
|
||||
@@ -29,7 +29,7 @@ import lombok.Data;
|
||||
import net.runelite.api.Actor;
|
||||
|
||||
@Data
|
||||
public class AreaSoundEffectPlayed implements Event
|
||||
public class AreaSoundEffectPlayed
|
||||
{
|
||||
@Nullable
|
||||
private final Actor source;
|
||||
|
||||
@@ -27,7 +27,7 @@ package net.runelite.api.events;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class BeforeMenuRender implements Event
|
||||
public class BeforeMenuRender
|
||||
{
|
||||
private boolean consumed;
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ package net.runelite.api.events;
|
||||
/**
|
||||
* Posted at the start of every frame
|
||||
*/
|
||||
public class BeforeRender implements Event
|
||||
public class BeforeRender
|
||||
{
|
||||
public static final BeforeRender INSTANCE = new BeforeRender();
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ import lombok.Value;
|
||||
* an event posted when a cannonball is fired
|
||||
*/
|
||||
@Value
|
||||
public class CannonChanged implements Event
|
||||
public class CannonChanged
|
||||
{
|
||||
/**
|
||||
* The projectile id.
|
||||
|
||||
@@ -33,7 +33,7 @@ import net.runelite.api.coords.WorldPoint;
|
||||
* an event posted when a cannonball is fired
|
||||
*/
|
||||
@Value
|
||||
public class CannonPlaced implements Event
|
||||
public class CannonPlaced
|
||||
{
|
||||
/**
|
||||
* Cannon placed or picked up.
|
||||
|
||||
@@ -27,7 +27,7 @@ package net.runelite.api.events;
|
||||
/**
|
||||
* An event posted when the canvas size might have changed.
|
||||
*/
|
||||
public class CanvasSizeChanged implements Event
|
||||
public class CanvasSizeChanged
|
||||
{
|
||||
public static final CanvasSizeChanged INSTANCE = new CanvasSizeChanged();
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ import lombok.NoArgsConstructor;
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class ChatMessage implements Event
|
||||
public class ChatMessage
|
||||
{
|
||||
/**
|
||||
* The underlying MessageNode for the message.
|
||||
|
||||
@@ -27,7 +27,7 @@ package net.runelite.api.events;
|
||||
/**
|
||||
* Posted every client tick
|
||||
*/
|
||||
public class ClientTick implements Event
|
||||
public class ClientTick
|
||||
{
|
||||
public static final ClientTick INSTANCE = new ClientTick();
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ import lombok.Value;
|
||||
* will set command to "" and arguments to ["hello", "world!"].
|
||||
*/
|
||||
@Value
|
||||
public class CommandExecuted implements Event
|
||||
public class CommandExecuted
|
||||
{
|
||||
/**
|
||||
* The name of the command entered.
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
package net.runelite.api.events;
|
||||
|
||||
import lombok.Data;
|
||||
import net.runelite.api.events.Event;
|
||||
|
||||
@Data
|
||||
public class ConfigButtonClicked implements Event
|
||||
public class ConfigButtonClicked
|
||||
{
|
||||
private String group, key;
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ import lombok.Data;
|
||||
* has been modified.
|
||||
*/
|
||||
@Data
|
||||
public class DecorativeObjectChanged implements Event
|
||||
public class DecorativeObjectChanged
|
||||
{
|
||||
/**
|
||||
* The affected tile.
|
||||
|
||||
@@ -33,7 +33,7 @@ import lombok.Data;
|
||||
* is removed.
|
||||
*/
|
||||
@Data
|
||||
public class DecorativeObjectDespawned implements Event
|
||||
public class DecorativeObjectDespawned
|
||||
{
|
||||
/**
|
||||
* The affected tile.
|
||||
|
||||
@@ -32,7 +32,7 @@ import lombok.Data;
|
||||
* An event where a {@link DecorativeObject} is attached to a {@link Tile}.
|
||||
*/
|
||||
@Data
|
||||
public class DecorativeObjectSpawned implements Event
|
||||
public class DecorativeObjectSpawned
|
||||
{
|
||||
/**
|
||||
* The affected tile.
|
||||
|
||||
@@ -4,7 +4,7 @@ import lombok.Value;
|
||||
import net.runelite.api.DialogOption;
|
||||
|
||||
@Value
|
||||
public class DialogProcessed implements Event
|
||||
public class DialogProcessed
|
||||
{
|
||||
DialogOption dialogOption;
|
||||
}
|
||||
@@ -31,7 +31,7 @@ import lombok.Data;
|
||||
* the cursor.
|
||||
*/
|
||||
@Data
|
||||
public class DraggingWidgetChanged implements Event
|
||||
public class DraggingWidgetChanged
|
||||
{
|
||||
/**
|
||||
* Whether a widget is currently being dragged.
|
||||
|
||||
@@ -3,7 +3,7 @@ package net.runelite.api.events;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class DynamicObjectAnimationChanged implements Event
|
||||
public class DynamicObjectAnimationChanged
|
||||
{
|
||||
/**
|
||||
* The object that has entered a new animation.
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
package net.runelite.api.events;
|
||||
|
||||
public interface Event {}
|
||||
@@ -28,7 +28,7 @@ import lombok.Value;
|
||||
import net.runelite.api.Skill;
|
||||
|
||||
@Value
|
||||
public class FakeXpDrop implements Event
|
||||
public class FakeXpDrop
|
||||
{
|
||||
Skill skill;
|
||||
int xp;
|
||||
|
||||
@@ -37,7 +37,7 @@ import lombok.Data;
|
||||
* </ul>
|
||||
*/
|
||||
@Data
|
||||
public class FocusChanged implements Event
|
||||
public class FocusChanged
|
||||
{
|
||||
/**
|
||||
* The new focus state.
|
||||
|
||||
@@ -6,7 +6,7 @@ import lombok.Value;
|
||||
* An event where a request to add a friend is sent to the server.
|
||||
*/
|
||||
@Value
|
||||
public class FriendAdded implements Event
|
||||
public class FriendAdded
|
||||
{
|
||||
/**
|
||||
* The name of the added friend.
|
||||
|
||||
@@ -30,7 +30,7 @@ import lombok.Value;
|
||||
* An event where the client has joined or left a friends chat.
|
||||
*/
|
||||
@Value
|
||||
public class FriendsChatChanged implements Event
|
||||
public class FriendsChatChanged
|
||||
{
|
||||
/**
|
||||
* Whether or not the client is now in a friends chat.
|
||||
|
||||
@@ -28,7 +28,7 @@ import lombok.Value;
|
||||
import net.runelite.api.FriendsChatMember;
|
||||
|
||||
@Value
|
||||
public class FriendsChatMemberJoined implements Event
|
||||
public class FriendsChatMemberJoined
|
||||
{
|
||||
/**
|
||||
* The member that joined
|
||||
|
||||
@@ -28,7 +28,7 @@ import lombok.Value;
|
||||
import net.runelite.api.FriendsChatMember;
|
||||
|
||||
@Value
|
||||
public class FriendsChatMemberLeft implements Event
|
||||
public class FriendsChatMemberLeft
|
||||
{
|
||||
/**
|
||||
* The member that left
|
||||
|
||||
@@ -32,7 +32,7 @@ import net.runelite.api.Tile;
|
||||
* An event where a {@link GameObject} on a {@link Tile} has been replaced.
|
||||
*/
|
||||
@Data
|
||||
public class GameObjectChanged implements Event
|
||||
public class GameObjectChanged
|
||||
{
|
||||
/**
|
||||
* The affected tile.
|
||||
|
||||
@@ -32,7 +32,7 @@ import lombok.Data;
|
||||
* An event where a {@link GameObject} on a {@link Tile} is removed.
|
||||
*/
|
||||
@Data
|
||||
public class GameObjectDespawned implements Event
|
||||
public class GameObjectDespawned
|
||||
{
|
||||
/**
|
||||
* The affected tile.
|
||||
|
||||
@@ -32,7 +32,7 @@ import net.runelite.api.Tile;
|
||||
* An event where a {@link GameObject} is added to a {@link Tile}.
|
||||
*/
|
||||
@Data
|
||||
public class GameObjectSpawned implements Event
|
||||
public class GameObjectSpawned
|
||||
{
|
||||
/**
|
||||
* The affected tile.
|
||||
|
||||
@@ -31,7 +31,7 @@ import lombok.Data;
|
||||
* An event where the clients game state has changed.
|
||||
*/
|
||||
@Data
|
||||
public class GameStateChanged implements Event
|
||||
public class GameStateChanged
|
||||
{
|
||||
/**
|
||||
* The new game state.
|
||||
|
||||
@@ -41,7 +41,7 @@ package net.runelite.api.events;
|
||||
* Note that occurrences that take place purely on the client, such as right
|
||||
* click menus, are independent of the game tick.
|
||||
*/
|
||||
public class GameTick implements Event
|
||||
public class GameTick
|
||||
{
|
||||
public static final GameTick INSTANCE = new GameTick();
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ import lombok.Data;
|
||||
* can change into.
|
||||
*/
|
||||
@Data
|
||||
public class GrandExchangeOfferChanged implements Event
|
||||
public class GrandExchangeOfferChanged
|
||||
{
|
||||
/**
|
||||
* The offer that has been modified.
|
||||
|
||||
@@ -31,7 +31,7 @@ import lombok.Data;
|
||||
* An event where the Grand Exchange has been searched.
|
||||
*/
|
||||
@Data
|
||||
public class GrandExchangeSearched implements Event
|
||||
public class GrandExchangeSearched
|
||||
{
|
||||
/**
|
||||
* Whether or not the event has been consumed by a subscriber.
|
||||
|
||||
@@ -19,7 +19,7 @@ import net.runelite.api.Actor;
|
||||
* @see net.runelite.api.GraphicID
|
||||
*/
|
||||
@Data
|
||||
public class GraphicChanged implements Event
|
||||
public class GraphicChanged
|
||||
{
|
||||
/**
|
||||
* The actor that has had their graphic changed.
|
||||
|
||||
@@ -31,7 +31,7 @@ import lombok.Value;
|
||||
* An event where a new {@link GraphicsObject} has been created.
|
||||
*/
|
||||
@Value
|
||||
public class GraphicsObjectCreated implements Event
|
||||
public class GraphicsObjectCreated
|
||||
{
|
||||
/**
|
||||
* The newly created graphics object.
|
||||
|
||||
@@ -32,7 +32,7 @@ import lombok.Data;
|
||||
* An event where the {@link GroundObject} on a {@link Tile} has been changed.
|
||||
*/
|
||||
@Data
|
||||
public class GroundObjectChanged implements Event
|
||||
public class GroundObjectChanged
|
||||
{
|
||||
/**
|
||||
* The affected tile.
|
||||
|
||||
@@ -32,7 +32,7 @@ import lombok.Data;
|
||||
* An event where a {@link GroundObject} on a {@link Tile} has been removed.
|
||||
*/
|
||||
@Data
|
||||
public class GroundObjectDespawned implements Event
|
||||
public class GroundObjectDespawned
|
||||
{
|
||||
/**
|
||||
* The affected tile.
|
||||
|
||||
@@ -32,7 +32,7 @@ import lombok.Data;
|
||||
* An event where a {@link GroundObject} is added to a {@link Tile}.
|
||||
*/
|
||||
@Data
|
||||
public class GroundObjectSpawned implements Event
|
||||
public class GroundObjectSpawned
|
||||
{
|
||||
/**
|
||||
* The affected tile.
|
||||
|
||||
@@ -36,7 +36,7 @@ import lombok.Data;
|
||||
* visible hitsplats.
|
||||
*/
|
||||
@Data
|
||||
public class HitsplatApplied implements Event
|
||||
public class HitsplatApplied
|
||||
{
|
||||
/**
|
||||
* The actor the hitsplat was applied to.
|
||||
|
||||
@@ -28,7 +28,7 @@ import net.runelite.api.Actor;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class InteractChanged implements Event
|
||||
public class InteractChanged
|
||||
{
|
||||
private Actor actor;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import lombok.Value;
|
||||
* An event called when the actor an actor is interacting with changes
|
||||
*/
|
||||
@Value
|
||||
public class InteractingChanged implements Event
|
||||
public class InteractingChanged
|
||||
{
|
||||
Actor source;
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ import lombok.Value;
|
||||
* </ul>
|
||||
*/
|
||||
@Value
|
||||
public class ItemContainerChanged implements Event
|
||||
public class ItemContainerChanged
|
||||
{
|
||||
/**
|
||||
* The modified container's ID.
|
||||
|
||||
@@ -34,7 +34,7 @@ import lombok.Value;
|
||||
* all item piles are implicitly despawned, and despawn events will not be sent.
|
||||
*/
|
||||
@Value
|
||||
public class ItemDespawned implements Event
|
||||
public class ItemDespawned
|
||||
{
|
||||
Tile tile;
|
||||
TileItem item;
|
||||
|
||||
@@ -33,7 +33,7 @@ import lombok.Value;
|
||||
* Called when the quantity of an item pile changes.
|
||||
*/
|
||||
@Value
|
||||
public class ItemQuantityChanged implements Event
|
||||
public class ItemQuantityChanged
|
||||
{
|
||||
TileItem item;
|
||||
Tile tile;
|
||||
|
||||
@@ -34,7 +34,7 @@ import lombok.Value;
|
||||
* all item piles are implicitly reset and a new spawn event will be sent.
|
||||
*/
|
||||
@Value
|
||||
public class ItemSpawned implements Event
|
||||
public class ItemSpawned
|
||||
{
|
||||
Tile tile;
|
||||
TileItem item;
|
||||
|
||||
@@ -4,7 +4,7 @@ package net.runelite.api.events;
|
||||
* Gets sent before menu handling code is ran, once per client tick.
|
||||
* Can be consumed, skipping this method this tick.
|
||||
*/
|
||||
public class Menu implements Event
|
||||
public class Menu
|
||||
{
|
||||
public static final Menu MENU = new Menu();
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ import net.runelite.api.MenuEntry;
|
||||
/**
|
||||
* An event when a new entry is added to a right-click menu.
|
||||
*/
|
||||
public class MenuEntryAdded extends MenuEntry implements Event
|
||||
public class MenuEntryAdded extends MenuEntry
|
||||
{
|
||||
public MenuEntryAdded(String option, String target, int identifier, int opcode, int param0, int param1, boolean forceLeftClick)
|
||||
{
|
||||
|
||||
@@ -34,7 +34,7 @@ import lombok.Data;
|
||||
* An event where a menu has been opened.
|
||||
*/
|
||||
@Data
|
||||
public class MenuOpened implements Event, Iterable<MenuEntry>
|
||||
public class MenuOpened implements Iterable<MenuEntry>
|
||||
{
|
||||
/**
|
||||
* This should be set to true if anything about the menu
|
||||
|
||||
@@ -24,10 +24,8 @@
|
||||
*/
|
||||
package net.runelite.api.events;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import net.runelite.api.MenuEntry;
|
||||
import lombok.Data;
|
||||
import net.runelite.api.MenuAction;
|
||||
|
||||
/**
|
||||
* An event where a menu option has been clicked.
|
||||
@@ -40,22 +38,35 @@ import net.runelite.api.MenuEntry;
|
||||
* By default, when there is no action performed when left-clicking,
|
||||
* it seems that this event still triggers with the "Cancel" action.
|
||||
*/
|
||||
@Getter
|
||||
public class MenuOptionClicked extends MenuEntry implements Event
|
||||
@Data
|
||||
public class MenuOptionClicked
|
||||
{
|
||||
public MenuOptionClicked(String option, String target, int identifier, int opcode, int param0, int param1, boolean forceLeftClick)
|
||||
{
|
||||
super(option, target, identifier, opcode, param0, param1, forceLeftClick);
|
||||
authentic = true;
|
||||
}
|
||||
|
||||
public MenuOptionClicked(String option, String target, int identifier, int opcode, int param0, int param1, boolean forceLeftClick, boolean authentic, int mouseButton)
|
||||
{
|
||||
super(option, target, identifier, opcode, param0, param1, forceLeftClick);
|
||||
this.authentic = authentic;
|
||||
this.mouseButton = mouseButton;
|
||||
}
|
||||
|
||||
/**
|
||||
* The action parameter used in the click.
|
||||
*/
|
||||
private int actionParam;
|
||||
/**
|
||||
* The option text added to the menu.
|
||||
*/
|
||||
private String menuOption;
|
||||
/**
|
||||
* The target of the action.
|
||||
*/
|
||||
private String menuTarget;
|
||||
/**
|
||||
* The action performed.
|
||||
*/
|
||||
private MenuAction menuAction;
|
||||
/**
|
||||
* The ID of the object, actor, or item that the interaction targets.
|
||||
*/
|
||||
private int id;
|
||||
/**
|
||||
* The ID of the widget where the menu was clicked.
|
||||
*
|
||||
* @see net.runelite.api.widgets.WidgetID
|
||||
*/
|
||||
private int widgetId;
|
||||
/**
|
||||
* The selected item index at the time of the option click.
|
||||
*/
|
||||
@@ -65,11 +76,6 @@ public class MenuOptionClicked extends MenuEntry implements Event
|
||||
*/
|
||||
private boolean consumed;
|
||||
|
||||
/**
|
||||
* The mouse button will be 1 if a non draggable widget was clicked,
|
||||
*/
|
||||
private int mouseButton;
|
||||
|
||||
/**
|
||||
* Marks the event as having been consumed.
|
||||
* <p>
|
||||
@@ -81,36 +87,4 @@ public class MenuOptionClicked extends MenuEntry implements Event
|
||||
{
|
||||
this.consumed = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether or not the event is authentic.
|
||||
*/
|
||||
@Setter(AccessLevel.NONE)
|
||||
private final boolean authentic;
|
||||
|
||||
public void setMenuEntry(MenuEntry e)
|
||||
{
|
||||
setOption(e.getOption());
|
||||
setTarget(e.getTarget());
|
||||
setIdentifier(e.getIdentifier());
|
||||
setOpcode(e.getOpcode());
|
||||
setActionParam(e.getActionParam());
|
||||
setActionParam1(e.getActionParam1());
|
||||
setForceLeftClick(e.isForceLeftClick());
|
||||
}
|
||||
|
||||
public int getWidgetId()
|
||||
{
|
||||
return getActionParam1();
|
||||
}
|
||||
|
||||
public String getMenuTarget()
|
||||
{
|
||||
return getTarget();
|
||||
}
|
||||
|
||||
public String getMenuOption()
|
||||
{
|
||||
return getOption();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ import lombok.Data;
|
||||
* opened on left click.
|
||||
*/
|
||||
@Data
|
||||
public class MenuShouldLeftClick implements Event
|
||||
public class MenuShouldLeftClick
|
||||
{
|
||||
/**
|
||||
* If set to true, the menu will open on left click.
|
||||
|
||||
@@ -31,7 +31,7 @@ import lombok.Value;
|
||||
* An event where a {@link Nameable} has had their name changed.
|
||||
*/
|
||||
@Value
|
||||
public class NameableNameChanged implements Event
|
||||
public class NameableNameChanged
|
||||
{
|
||||
/**
|
||||
* The nameable that changed names.
|
||||
|
||||
@@ -31,7 +31,7 @@ import net.runelite.api.NPCComposition;
|
||||
* An event where an action of an {@link NPCComposition} has changed.
|
||||
*/
|
||||
@Data
|
||||
public class NpcActionChanged implements Event
|
||||
public class NpcActionChanged
|
||||
{
|
||||
/**
|
||||
* The NPC composition that has been changed.
|
||||
|
||||
@@ -32,7 +32,7 @@ import net.runelite.api.NPCComposition;
|
||||
* Fires after the composition of an {@link NPC} changes.
|
||||
*/
|
||||
@Value
|
||||
public class NpcChanged implements Event
|
||||
public class NpcChanged
|
||||
{
|
||||
/**
|
||||
* The NPC of which the composition changed.
|
||||
|
||||
@@ -32,7 +32,7 @@ import lombok.Value;
|
||||
* An event where an {@link NPC} has despawned.
|
||||
*/
|
||||
@Value
|
||||
public class NpcDespawned implements Event
|
||||
public class NpcDespawned
|
||||
{
|
||||
/**
|
||||
* The despawned NPC.
|
||||
|
||||
@@ -32,7 +32,7 @@ import lombok.Value;
|
||||
* An event where an {@link NPC} has spawned.
|
||||
*/
|
||||
@Value
|
||||
public class NpcSpawned implements Event
|
||||
public class NpcSpawned
|
||||
{
|
||||
/**
|
||||
* The spawned NPC.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2019, TheStonedTurtle <https://github.com/TheStonedTurtle>
|
||||
* Copyright (c) 2021, ThatGamerBlue <thatgamerblue@gmail.com>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -22,17 +22,19 @@
|
||||
* (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 com.openosrs.client.ui.overlay.components.table;
|
||||
|
||||
import java.awt.Color;
|
||||
import lombok.Builder;
|
||||
package net.runelite.api.events;
|
||||
|
||||
import lombok.Data;
|
||||
import net.runelite.api.HeadIcon;
|
||||
import net.runelite.api.Player;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
public class TableElement
|
||||
public class OverheadPrayerChanged
|
||||
{
|
||||
TableAlignment alignment;
|
||||
Color color;
|
||||
String content;
|
||||
private final Player player;
|
||||
|
||||
private final HeadIcon oldHeadIcon;
|
||||
|
||||
private final HeadIcon newHeadIcon;
|
||||
}
|
||||
@@ -4,7 +4,7 @@ import net.runelite.api.Actor;
|
||||
import lombok.Value;
|
||||
|
||||
@Value
|
||||
public class OverheadTextChanged implements Event
|
||||
public class OverheadTextChanged
|
||||
{
|
||||
Actor actor;
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ import lombok.Value;
|
||||
* Note: This event does not get called for the local player.
|
||||
*/
|
||||
@Value
|
||||
public class PlayerDespawned implements Event
|
||||
public class PlayerDespawned
|
||||
{
|
||||
/**
|
||||
* The despawned player.
|
||||
|
||||
@@ -31,7 +31,7 @@ import lombok.Data;
|
||||
* been clicked (ie. HiScore Lookup).
|
||||
*/
|
||||
@Data
|
||||
public class PlayerMenuOptionClicked implements Event
|
||||
public class PlayerMenuOptionClicked
|
||||
{
|
||||
/**
|
||||
* The menu option clicked.
|
||||
|
||||
@@ -27,7 +27,7 @@ package net.runelite.api.events;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class PlayerMenuOptionsChanged implements Event
|
||||
public class PlayerMenuOptionsChanged
|
||||
{
|
||||
/**
|
||||
* Index in playerOptions which changed.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2019 Owain van Brakel <https://github.com/Owain94>
|
||||
* Copyright (c) 2021, ThatGamerBlue <thatgamerblue@gmail.com>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -22,11 +22,19 @@
|
||||
* (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 com.openosrs.client.events;
|
||||
|
||||
package net.runelite.api.events;
|
||||
|
||||
import lombok.Data;
|
||||
import net.runelite.api.events.Event;
|
||||
import net.runelite.api.Player;
|
||||
import net.runelite.api.SkullIcon;
|
||||
|
||||
@Data
|
||||
public class ExternalPluginsLoaded implements Event
|
||||
{}
|
||||
public class PlayerSkullChanged
|
||||
{
|
||||
private final Player player;
|
||||
|
||||
private final SkullIcon oldSkullIcon;
|
||||
|
||||
private final SkullIcon newSkullIcon;
|
||||
}
|
||||
@@ -32,7 +32,7 @@ import lombok.Value;
|
||||
* An event where a {@link Player} has spawned.
|
||||
*/
|
||||
@Value
|
||||
public class PlayerSpawned implements Event
|
||||
public class PlayerSpawned
|
||||
{
|
||||
/**
|
||||
* The spawned player.
|
||||
|
||||
@@ -28,7 +28,7 @@ import net.runelite.api.HealthBar;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class PostHealthBar implements Event
|
||||
public class PostHealthBar
|
||||
{
|
||||
private HealthBar healthBar;
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ import net.runelite.api.ItemComposition;
|
||||
* its data is initialized.
|
||||
*/
|
||||
@Data
|
||||
public class PostItemComposition implements Event
|
||||
public class PostItemComposition
|
||||
{
|
||||
/**
|
||||
* The newly created item.
|
||||
|
||||
@@ -35,7 +35,7 @@ import lombok.Data;
|
||||
* once (ie. AoE from Lizardman Shaman).
|
||||
*/
|
||||
@Data
|
||||
public class ProjectileMoved implements Event
|
||||
public class ProjectileMoved
|
||||
{
|
||||
/**
|
||||
* The projectile being moved.
|
||||
|
||||
@@ -32,7 +32,7 @@ import lombok.Data;
|
||||
* An event called whenever a {@link Projectile} has spawned.
|
||||
*/
|
||||
@Data
|
||||
public class ProjectileSpawned implements Event
|
||||
public class ProjectileSpawned
|
||||
{
|
||||
/**
|
||||
* The spawned projectile.
|
||||
|
||||
@@ -32,7 +32,7 @@ import lombok.Data;
|
||||
* An event where the game has changed from fixed to resizable mode or vice versa.
|
||||
*/
|
||||
@Data
|
||||
public class ResizeableChanged implements Event
|
||||
public class ResizeableChanged
|
||||
{
|
||||
/**
|
||||
* Whether the game is in resizable mode.
|
||||
|
||||
@@ -31,7 +31,7 @@ import lombok.Data;
|
||||
* A callback from a runelite_callback opcode in a cs2
|
||||
*/
|
||||
@Data
|
||||
public class ScriptCallbackEvent implements Event
|
||||
public class ScriptCallbackEvent
|
||||
{
|
||||
/**
|
||||
* The script that is currently being executed
|
||||
|
||||
@@ -30,7 +30,7 @@ import lombok.Value;
|
||||
* An event that is fired after the designated script is ran
|
||||
*/
|
||||
@Value
|
||||
public class ScriptPostFired implements Event
|
||||
public class ScriptPostFired
|
||||
{
|
||||
/**
|
||||
* The script id of the invoked script
|
||||
|
||||
@@ -31,7 +31,7 @@ import net.runelite.api.ScriptEvent;
|
||||
* An event that is fired before the designated script is ran
|
||||
*/
|
||||
@Value
|
||||
public class ScriptPreFired implements Event
|
||||
public class ScriptPreFired
|
||||
{
|
||||
/**
|
||||
* The script id of the invoked script
|
||||
|
||||
@@ -29,7 +29,7 @@ import lombok.Data;
|
||||
import net.runelite.api.Actor;
|
||||
|
||||
@Data
|
||||
public class SoundEffectPlayed implements Event
|
||||
public class SoundEffectPlayed
|
||||
{
|
||||
@Nullable
|
||||
private final Actor source;
|
||||
|
||||
@@ -31,7 +31,7 @@ import net.runelite.api.Skill;
|
||||
* An event where the experience, level, or boosted level of a {@link Skill} has been modified.
|
||||
*/
|
||||
@Value
|
||||
public class StatChanged implements Event
|
||||
public class StatChanged
|
||||
{
|
||||
Skill skill;
|
||||
int xp;
|
||||
|
||||
@@ -30,7 +30,7 @@ package net.runelite.api.events;
|
||||
* This event triggers for every character change to the username
|
||||
* in the login screen.
|
||||
*/
|
||||
public class UsernameChanged implements Event
|
||||
public class UsernameChanged
|
||||
{
|
||||
public static final UsernameChanged INSTANCE = new UsernameChanged();
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ import lombok.Value;
|
||||
* @see net.runelite.api.VarClientInt
|
||||
*/
|
||||
@Value
|
||||
public class VarClientIntChanged implements Event
|
||||
public class VarClientIntChanged
|
||||
{
|
||||
int index;
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ import lombok.Value;
|
||||
* @see net.runelite.api.VarClientStr
|
||||
*/
|
||||
@Value
|
||||
public class VarClientStrChanged implements Event
|
||||
public class VarClientStrChanged
|
||||
{
|
||||
int index;
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ import lombok.Data;
|
||||
* if the VarPlayer has special engine behavior assigned to it.
|
||||
*/
|
||||
@Data
|
||||
public class VarbitChanged implements Event
|
||||
public class VarbitChanged
|
||||
{
|
||||
/**
|
||||
* Index in the varp array that was changed.
|
||||
|
||||
@@ -28,7 +28,7 @@ package net.runelite.api.events;
|
||||
import lombok.Value;
|
||||
|
||||
@Value
|
||||
public class VolumeChanged implements Event
|
||||
public class VolumeChanged
|
||||
{
|
||||
public enum Type
|
||||
{
|
||||
|
||||
@@ -32,7 +32,7 @@ import lombok.Data;
|
||||
* An event where the {@link WallObject} of a {@link Tile} has been changed.
|
||||
*/
|
||||
@Data
|
||||
public class WallObjectChanged implements Event
|
||||
public class WallObjectChanged
|
||||
{
|
||||
/**
|
||||
* The affected tile.
|
||||
|
||||
@@ -32,7 +32,7 @@ import lombok.Data;
|
||||
* An event where a {@link WallObject} on a {@link Tile} has been removed.
|
||||
*/
|
||||
@Data
|
||||
public class WallObjectDespawned implements Event
|
||||
public class WallObjectDespawned
|
||||
{
|
||||
/**
|
||||
* The affected tile.
|
||||
|
||||
@@ -32,7 +32,7 @@ import lombok.Data;
|
||||
* An event where a {@link WallObject} is added to a {@link Tile}.
|
||||
*/
|
||||
@Data
|
||||
public class WallObjectSpawned implements Event
|
||||
public class WallObjectSpawned
|
||||
{
|
||||
/**
|
||||
* The affected tile.
|
||||
|
||||
@@ -31,7 +31,7 @@ import lombok.Data;
|
||||
* An event where the hidden state of a {@link Widget} has been modified.
|
||||
*/
|
||||
@Data
|
||||
public class WidgetHiddenChanged implements Event
|
||||
public class WidgetHiddenChanged
|
||||
{
|
||||
/**
|
||||
* The affected widget.
|
||||
|
||||
@@ -30,7 +30,7 @@ import lombok.Data;
|
||||
* An event where a {@link net.runelite.api.widgets.Widget} has been loaded.
|
||||
*/
|
||||
@Data
|
||||
public class WidgetLoaded implements Event
|
||||
public class WidgetLoaded
|
||||
{
|
||||
/**
|
||||
* The group ID of the loaded widget.
|
||||
|
||||
@@ -31,7 +31,7 @@ import lombok.Data;
|
||||
* A MenuManager widget menu was clicked. This event is NOT fired for non-MenuManager menu options
|
||||
*/
|
||||
@Data
|
||||
public class WidgetMenuOptionClicked implements Event
|
||||
public class WidgetMenuOptionClicked
|
||||
{
|
||||
/**
|
||||
* The clicked menu option.
|
||||
|
||||
@@ -28,7 +28,7 @@ package net.runelite.api.events;
|
||||
* An event where the position of a {@link net.runelite.api.widgets.Widget}
|
||||
* relative to its parent has changed.
|
||||
*/
|
||||
public class WidgetPositioned implements Event
|
||||
public class WidgetPositioned
|
||||
{
|
||||
public static final WidgetPositioned INSTANCE = new WidgetPositioned();
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ import lombok.Data;
|
||||
* An event where a draggable widget has been pressed.
|
||||
*/
|
||||
@Data
|
||||
public class WidgetPressed implements Event
|
||||
public class WidgetPressed
|
||||
{
|
||||
public static final WidgetPressed INSTANCE = new WidgetPressed();
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ import lombok.Value;
|
||||
* Event when the world list is loaded for the world switcher
|
||||
*/
|
||||
@Value
|
||||
public class WorldListLoad implements Event
|
||||
public class WorldListLoad
|
||||
{
|
||||
World[] worlds;
|
||||
}
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
package net.runelite.api.events.player.headicon;
|
||||
|
||||
import lombok.Data;
|
||||
import net.runelite.api.HeadIcon;
|
||||
import net.runelite.api.Player;
|
||||
import net.runelite.api.events.Event;
|
||||
|
||||
@Data
|
||||
public class OverheadPrayerChanged implements Event
|
||||
{
|
||||
private final Player player;
|
||||
|
||||
private final HeadIcon oldHeadIcon;
|
||||
|
||||
private final HeadIcon newHeadIcon;
|
||||
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package net.runelite.api.events.player.headicon;
|
||||
|
||||
import lombok.Data;
|
||||
import net.runelite.api.Player;
|
||||
import net.runelite.api.SkullIcon;
|
||||
import net.runelite.api.events.Event;
|
||||
|
||||
@Data
|
||||
public class PlayerSkullChanged implements Event
|
||||
{
|
||||
private final Player player;
|
||||
|
||||
private final SkullIcon oldSkullIcon;
|
||||
|
||||
private final SkullIcon newSkullIcon;
|
||||
|
||||
}
|
||||
@@ -26,7 +26,6 @@ package net.runelite.api.kit;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
|
||||
/**
|
||||
* Represents an equipment slot in a players composition.
|
||||
@@ -40,27 +39,30 @@ import net.runelite.api.widgets.WidgetInfo;
|
||||
@AllArgsConstructor
|
||||
public enum KitType
|
||||
{
|
||||
HEAD("Head", 0, WidgetInfo.EQUIPMENT_HELMET),
|
||||
CAPE("Cape", 1, WidgetInfo.EQUIPMENT_CAPE),
|
||||
AMULET("Amulet", 2, WidgetInfo.EQUIPMENT_AMULET),
|
||||
WEAPON("Weapon", 3, WidgetInfo.EQUIPMENT_WEAPON),
|
||||
TORSO("Torso", 4, WidgetInfo.EQUIPMENT_BODY),
|
||||
SHIELD("Shield", 5, WidgetInfo.EQUIPMENT_SHIELD),
|
||||
ARMS("Arms", 6, null),
|
||||
LEGS("Legs", 7, WidgetInfo.EQUIPMENT_LEGS),
|
||||
HAIR("Hair", 8, null),
|
||||
HANDS("Hands", 9, WidgetInfo.EQUIPMENT_GLOVES),
|
||||
BOOTS("Boots", 10, WidgetInfo.EQUIPMENT_BOOTS),
|
||||
JAW("Jaw", 11, null),
|
||||
RING("Ring", 12, WidgetInfo.EQUIPMENT_RING),
|
||||
AMMUNITION("Ammo", 13, WidgetInfo.EQUIPMENT_AMMO);
|
||||
HEAD("Head"),
|
||||
CAPE("Cape"),
|
||||
AMULET("Amulet"),
|
||||
WEAPON("Weapon"),
|
||||
TORSO("Torso"),
|
||||
SHIELD("Shield"),
|
||||
ARMS("Arms"),
|
||||
LEGS("Legs"),
|
||||
HAIR("Hair"),
|
||||
HANDS("Hands"),
|
||||
BOOTS("Boots"),
|
||||
JAW("Jaw"),
|
||||
RING("Ring"),
|
||||
AMMUNITION("Ammo");
|
||||
|
||||
private final String name;
|
||||
|
||||
/**
|
||||
* Gets the raw equipment index for use in {PlayerAppearance#getEquipmentIds()}.
|
||||
* Gets the raw equipment index for use in {@link net.runelite.api.PlayerComposition#getEquipmentIds()}.
|
||||
*
|
||||
* @return raw equipment index
|
||||
*/
|
||||
private final int index;
|
||||
|
||||
private final WidgetInfo widgetInfo;
|
||||
public int getIndex()
|
||||
{
|
||||
return ordinal();
|
||||
}
|
||||
}
|
||||
@@ -32,7 +32,6 @@ import java.util.stream.Collectors;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.QueryResults;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.api.widgets.WidgetItem;
|
||||
|
||||
public class ShopItemQuery extends WidgetItemQuery
|
||||
@@ -50,7 +49,7 @@ public class ShopItemQuery extends WidgetItemQuery
|
||||
private Collection<WidgetItem> getShopItems(Client client)
|
||||
{
|
||||
Collection<WidgetItem> widgetItems = new ArrayList<>();
|
||||
Widget shop = client.getWidget(WidgetInfo.SHOP_ITEMS_CONTAINER);
|
||||
Widget shop = client.getWidget(300, 2);
|
||||
if (shop != null && !shop.isHidden())
|
||||
{
|
||||
Widget[] children = shop.getDynamicChildren();
|
||||
|
||||
@@ -1,27 +1,33 @@
|
||||
package com.openosrs.client;
|
||||
|
||||
import com.openosrs.client.game.NPCStats;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Properties;
|
||||
import java.util.UUID;
|
||||
|
||||
public class OpenOSRS
|
||||
{
|
||||
public static final File OPENOSRS_DIR = new File(System.getProperty("user.home"), ".openosrs");
|
||||
public static final File EXTERNALPLUGIN_DIR = new File(OPENOSRS_DIR, "plugins");
|
||||
public static final String SYSTEM_VERSION = "0.0.1";
|
||||
public static final String SYSTEM_VERSION;
|
||||
|
||||
public static String uuid = UUID.randomUUID().toString();
|
||||
|
||||
public static void init()
|
||||
static
|
||||
{
|
||||
Properties properties = new Properties();
|
||||
try
|
||||
{
|
||||
NPCStats.loadStats();
|
||||
properties.load(OpenOSRS.class.getResourceAsStream("/openosrs.properties"));
|
||||
}
|
||||
catch (Exception e)
|
||||
catch (IOException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
SYSTEM_VERSION = properties.getProperty("oprs.version", "0.0.0");
|
||||
}
|
||||
|
||||
public static void preload()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ import net.runelite.client.config.ConfigItem;
|
||||
import net.runelite.client.config.Keybind;
|
||||
import net.runelite.client.config.Range;
|
||||
import net.runelite.client.config.Units;
|
||||
import com.openosrs.client.plugins.ExternalPluginManager;
|
||||
import net.runelite.client.plugins.OPRSExternalPluginManager;
|
||||
|
||||
@ConfigGroup("openosrs")
|
||||
public interface OpenOSRSConfig extends Config
|
||||
@@ -106,22 +106,11 @@ public interface OpenOSRSConfig extends Config
|
||||
return true;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "keyboardPin",
|
||||
name = "Keyboard bank pin",
|
||||
description = "Enables you to type your bank pin",
|
||||
position = 22
|
||||
)
|
||||
default boolean keyboardPin()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "detachHotkey",
|
||||
name = "Detach Cam",
|
||||
description = "Detach Camera hotkey, press this and it will activate detatched camera.",
|
||||
position = 23
|
||||
description = "Detach Camera hotkey, press this and it will activate detached camera.",
|
||||
position = 22
|
||||
)
|
||||
default Keybind detachHotkey()
|
||||
{
|
||||
@@ -136,7 +125,7 @@ public interface OpenOSRSConfig extends Config
|
||||
)
|
||||
default String getExternalRepositories()
|
||||
{
|
||||
return ExternalPluginManager.DEFAULT_PLUGIN_REPOS;
|
||||
return OPRSExternalPluginManager.DEFAULT_PLUGIN_REPOS;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
|
||||
@@ -25,11 +25,10 @@
|
||||
package com.openosrs.client.events;
|
||||
|
||||
import lombok.Data;
|
||||
import net.runelite.api.events.Event;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
|
||||
@Data
|
||||
public class ExternalPluginChanged implements Event
|
||||
public class OPRSPluginChanged
|
||||
{
|
||||
private final String pluginId;
|
||||
private final Plugin plugin;
|
||||
@@ -25,10 +25,9 @@
|
||||
package com.openosrs.client.events;
|
||||
|
||||
import lombok.Data;
|
||||
import net.runelite.api.events.Event;
|
||||
|
||||
@Data
|
||||
public class ExternalRepositoryChanged implements Event
|
||||
public class OPRSRepositoryChanged
|
||||
{
|
||||
private final String owner;
|
||||
private final boolean added;
|
||||
@@ -1,237 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2019, TheStonedTurtle <https://github.com/TheStonedTurtle>
|
||||
* 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 com.openosrs.client.game;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.gson.TypeAdapter;
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Value;
|
||||
|
||||
@Value
|
||||
@Builder(builderClassName = "Builder")
|
||||
public class NPCStats
|
||||
{
|
||||
public static ImmutableMap<Integer, NPCStats> statsMap;
|
||||
|
||||
String name;
|
||||
|
||||
int hitpoints;
|
||||
int combatLevel;
|
||||
int slayerLevel;
|
||||
int attackSpeed;
|
||||
|
||||
int attackLevel;
|
||||
int strengthLevel;
|
||||
int defenceLevel;
|
||||
int rangeLevel;
|
||||
int magicLevel;
|
||||
|
||||
int stab;
|
||||
int slash;
|
||||
int crush;
|
||||
int range;
|
||||
int magic;
|
||||
|
||||
int stabDef;
|
||||
int slashDef;
|
||||
int crushDef;
|
||||
int rangeDef;
|
||||
int magicDef;
|
||||
|
||||
int bonusAttack;
|
||||
int bonusStrength;
|
||||
int bonusRangeStrength;
|
||||
int bonusMagicDamage;
|
||||
|
||||
boolean poisonImmune;
|
||||
boolean venomImmune;
|
||||
|
||||
boolean dragon;
|
||||
boolean demon;
|
||||
boolean undead;
|
||||
|
||||
/**
|
||||
* Based off the formula found here: http://services.runescape.com/m=forum/c=PLuJ4cy6gtA/forums.ws?317,318,712,65587452,209,337584542#209
|
||||
*
|
||||
* @return bonus XP modifier
|
||||
*/
|
||||
public double calculateXpModifier()
|
||||
{
|
||||
final double averageLevel = Math.floor((attackLevel + strengthLevel + defenceLevel + hitpoints) / 4);
|
||||
final double averageDefBonus = Math.floor((stabDef + slashDef + crushDef) / 3);
|
||||
|
||||
return (1 + Math.floor(averageLevel * (averageDefBonus + bonusStrength + bonusAttack) / 5120) / 40);
|
||||
}
|
||||
|
||||
// Because this class is here we can't add the TypeAdapter to gson (easily)
|
||||
// doesn't mean we can't use one to do it a bit quicker
|
||||
public static final TypeAdapter<NPCStats> NPC_STATS_TYPE_ADAPTER = new TypeAdapter<NPCStats>()
|
||||
{
|
||||
@Override
|
||||
public void write(JsonWriter out, NPCStats value)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported");
|
||||
}
|
||||
|
||||
@Override
|
||||
public NPCStats read(JsonReader in) throws IOException
|
||||
{
|
||||
in.beginObject();
|
||||
NPCStats.Builder builder = NPCStats.builder();
|
||||
|
||||
// Name is the only one that's guaranteed
|
||||
in.skipValue();
|
||||
builder.name(in.nextString());
|
||||
|
||||
while (in.hasNext())
|
||||
{
|
||||
switch (in.nextName())
|
||||
{
|
||||
case "hitpoints":
|
||||
builder.hitpoints(in.nextInt());
|
||||
break;
|
||||
case "combatLevel":
|
||||
builder.combatLevel(in.nextInt());
|
||||
break;
|
||||
case "slayerLevel":
|
||||
builder.slayerLevel(in.nextInt());
|
||||
break;
|
||||
case "attackSpeed":
|
||||
builder.attackSpeed(in.nextInt());
|
||||
break;
|
||||
case "attackLevel":
|
||||
builder.attackLevel(in.nextInt());
|
||||
break;
|
||||
case "strengthLevel":
|
||||
builder.strengthLevel(in.nextInt());
|
||||
break;
|
||||
case "defenceLevel":
|
||||
builder.defenceLevel(in.nextInt());
|
||||
break;
|
||||
case "rangeLevel":
|
||||
builder.rangeLevel(in.nextInt());
|
||||
break;
|
||||
case "magicLevel":
|
||||
builder.magicLevel(in.nextInt());
|
||||
break;
|
||||
case "stab":
|
||||
builder.stab(in.nextInt());
|
||||
break;
|
||||
case "slash":
|
||||
builder.slash(in.nextInt());
|
||||
break;
|
||||
case "crush":
|
||||
builder.crush(in.nextInt());
|
||||
break;
|
||||
case "range":
|
||||
builder.range(in.nextInt());
|
||||
break;
|
||||
case "magic":
|
||||
builder.magic(in.nextInt());
|
||||
break;
|
||||
case "stabDef":
|
||||
builder.stabDef(in.nextInt());
|
||||
break;
|
||||
case "slashDef":
|
||||
builder.slashDef(in.nextInt());
|
||||
break;
|
||||
case "crushDef":
|
||||
builder.crushDef(in.nextInt());
|
||||
break;
|
||||
case "rangeDef":
|
||||
builder.rangeDef(in.nextInt());
|
||||
break;
|
||||
case "magicDef":
|
||||
builder.magicDef(in.nextInt());
|
||||
break;
|
||||
case "bonusAttack":
|
||||
builder.bonusAttack(in.nextInt());
|
||||
break;
|
||||
case "bonusStrength":
|
||||
builder.bonusStrength(in.nextInt());
|
||||
break;
|
||||
case "bonusRangeStrength":
|
||||
builder.bonusRangeStrength(in.nextInt());
|
||||
break;
|
||||
case "bonusMagicDamage":
|
||||
builder.bonusMagicDamage(in.nextInt());
|
||||
break;
|
||||
case "poisonImmune":
|
||||
builder.poisonImmune(in.nextBoolean());
|
||||
break;
|
||||
case "venomImmune":
|
||||
builder.venomImmune(in.nextBoolean());
|
||||
break;
|
||||
case "dragon":
|
||||
builder.dragon(in.nextBoolean());
|
||||
break;
|
||||
case "demon":
|
||||
builder.demon(in.nextBoolean());
|
||||
break;
|
||||
case "undead":
|
||||
builder.undead(in.nextBoolean());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
in.endObject();
|
||||
return builder.build();
|
||||
}
|
||||
};
|
||||
|
||||
public static int getAttackSpeed(int npcId)
|
||||
{
|
||||
if (statsMap != null)
|
||||
if (statsMap.get(npcId) != null)
|
||||
return statsMap.get(npcId).getAttackSpeed();
|
||||
return -1;
|
||||
}
|
||||
|
||||
public static void loadStats() throws IOException
|
||||
{
|
||||
try (JsonReader reader = new JsonReader(new InputStreamReader(NPCStats.class.getResourceAsStream("npc_stats.json"), StandardCharsets.UTF_8)))
|
||||
{
|
||||
ImmutableMap.Builder<Integer, NPCStats> builder = ImmutableMap.builderWithExpectedSize(2821);
|
||||
reader.beginObject();
|
||||
|
||||
while (reader.hasNext())
|
||||
{
|
||||
builder.put(
|
||||
Integer.parseInt(reader.nextName()),
|
||||
NPCStats.NPC_STATS_TYPE_ADAPTER.read(reader)
|
||||
);
|
||||
}
|
||||
|
||||
reader.endObject();
|
||||
statsMap = builder.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,42 +1,67 @@
|
||||
/*
|
||||
* Copyright (c) 2021, ThatGamerBlue <thatgamerblue@gmail.com>
|
||||
* 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 com.openosrs.client.game;
|
||||
|
||||
public enum Sound
|
||||
import java.io.File;
|
||||
import java.net.URL;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.Value;
|
||||
import net.runelite.client.RuneLite;
|
||||
|
||||
public abstract class Sound
|
||||
{
|
||||
FIFTEEN_SECONDS(1, "net/runelite/client/game/sounds/15seconds.wav"),
|
||||
FIVE_SECONDS(2, "net/runelite/client/game/sounds/5seconds.wav"),
|
||||
ATTACK_WITH_MAGIC(3, "net/runelite/client/game/sounds/attackmagic.wav"),
|
||||
ATTACK_WITH_MELEE(4, "net/runelite/client/game/sounds/attackmelee.wav"),
|
||||
ATTACK_WITH_RANGED(5, "net/runelite/client/game/sounds/attackranged.wav"),
|
||||
INCOMING(6, "net/runelite/client/game/sounds/incoming.wav"),
|
||||
MOVE(7, "net/runelite/client/game/sounds/move.wav"),
|
||||
PRAY_MAGIC(8, "net/runelite/client/game/sounds/praymagic.wav"),
|
||||
PRAY_MELEE(9, "net/runelite/client/game/sounds/praymelee.wav"),
|
||||
PRAY_RANGED(10, "net/runelite/client/game/sounds/prayranged.wav"),
|
||||
REENABLE_PRAYER(11, "net/runelite/client/game/sounds/reenableprayer.wav"),
|
||||
RUNAWAY(12, "net/runelite/client/game/sounds/runaway.wav"),
|
||||
LOW_HEATLH(13, "net/runelite/client/game/sounds/lowhealth.wav"),
|
||||
LOW_PRAYER(14, "net/runelite/client/game/sounds/lowprayer.wav"),
|
||||
OUT_OF_COMBAT(15, "net/runelite/client/game/sounds/outofcombat.wav"),
|
||||
RESTORED_SPECIAL_ATTACK(16, "net/runelite/client/game/sounds/restorespec.wav"),
|
||||
IDLE(17, "net/runelite/client/game/sounds/idle.wav"),
|
||||
BREAK(18, "net/runelite/client/game/sounds/break.wav");
|
||||
public abstract URL getPath();
|
||||
|
||||
private final String filePath;
|
||||
private final int id;
|
||||
// TODO: these inner classes should probably be removed
|
||||
|
||||
Sound(int id, String filePath)
|
||||
@Value
|
||||
@EqualsAndHashCode(callSuper = true) // stop the warning
|
||||
static class SoundJarResource extends Sound
|
||||
{
|
||||
this.id = id;
|
||||
this.filePath = filePath;
|
||||
String path;
|
||||
|
||||
@Override
|
||||
public URL getPath()
|
||||
{
|
||||
return RuneLite.class.getResource(path);
|
||||
}
|
||||
}
|
||||
|
||||
public String getFilePath()
|
||||
@Value
|
||||
@EqualsAndHashCode(callSuper = true) // stop the warning
|
||||
static class SoundFileResource extends Sound
|
||||
{
|
||||
return this.filePath;
|
||||
}
|
||||
File file;
|
||||
|
||||
public int getId()
|
||||
{
|
||||
return this.id;
|
||||
@Override
|
||||
@SneakyThrows
|
||||
public URL getPath()
|
||||
{
|
||||
return file.toURI().toURL();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,30 @@
|
||||
/*
|
||||
* Copyright (c) 2021, ThatGamerBlue <thatgamerblue@gmail.com>
|
||||
* 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 com.openosrs.client.game;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
import java.io.IOException;
|
||||
import javax.inject.Singleton;
|
||||
import javax.sound.sampled.AudioFormat;
|
||||
@@ -12,36 +36,20 @@ import javax.sound.sampled.FloatControl;
|
||||
import javax.sound.sampled.LineUnavailableException;
|
||||
import javax.sound.sampled.SourceDataLine;
|
||||
import javax.sound.sampled.UnsupportedAudioFileException;
|
||||
import net.runelite.client.config.RuneLiteConfig;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@Singleton
|
||||
public class SoundManager
|
||||
{
|
||||
private static final Logger log = LoggerFactory.getLogger(SoundManager.class);
|
||||
private final RuneLiteConfig runeliteConfig;
|
||||
|
||||
@Inject
|
||||
private SoundManager(RuneLiteConfig runeLiteConfig)
|
||||
public void play(final Sound sound)
|
||||
{
|
||||
this.runeliteConfig = runeLiteConfig;
|
||||
}
|
||||
|
||||
public void playSound(final Sound sound)
|
||||
{
|
||||
new Thread(new Runnable()
|
||||
new Thread(() ->
|
||||
{
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
try (AudioInputStream in = AudioSystem.getAudioInputStream(sound.getPath()))
|
||||
{
|
||||
try
|
||||
AudioFormat outFormat = SoundManager.this.getOutFormat(in.getFormat());
|
||||
DataLine.Info info = new DataLine.Info(SourceDataLine.class, outFormat);
|
||||
try (SourceDataLine line = (SourceDataLine) AudioSystem.getLine(info))
|
||||
{
|
||||
AudioInputStream in = AudioSystem.getAudioInputStream(this.getClass().getClassLoader().getResource(sound.getFilePath()));
|
||||
AudioFormat outFormat = SoundManager.this.getOutFormat(in.getFormat());
|
||||
DataLine.Info info = new DataLine.Info(SourceDataLine.class, outFormat);
|
||||
SourceDataLine line = (SourceDataLine) AudioSystem.getLine(info);
|
||||
if (line != null)
|
||||
{
|
||||
line.open(outFormat, 2200);
|
||||
@@ -50,26 +58,19 @@ public class SoundManager
|
||||
int volume = 50;
|
||||
FloatControl gainControl = (FloatControl) line.getControl(FloatControl.Type.MASTER_GAIN);
|
||||
BooleanControl muteControl = (BooleanControl) line.getControl(BooleanControl.Type.MUTE);
|
||||
if (volume == 0)
|
||||
{
|
||||
muteControl.setValue(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
muteControl.setValue(false);
|
||||
gainControl.setValue((float) (Math.log((double) volume / 100.0) / Math.log(10.0) * 20.0));
|
||||
}
|
||||
muteControl.setValue(false);
|
||||
gainControl.setValue((float) (Math.log((double) volume / 100.0) / Math.log(10.0) * 20.0));
|
||||
}
|
||||
line.start();
|
||||
SoundManager.this.stream(AudioSystem.getAudioInputStream(outFormat, in), line);
|
||||
stream(AudioSystem.getAudioInputStream(outFormat, in), line);
|
||||
line.drain();
|
||||
line.stop();
|
||||
}
|
||||
}
|
||||
catch (IOException | LineUnavailableException | UnsupportedAudioFileException e)
|
||||
{
|
||||
throw new IllegalStateException(e);
|
||||
}
|
||||
}
|
||||
catch (IOException | LineUnavailableException | UnsupportedAudioFileException e)
|
||||
{
|
||||
throw new IllegalStateException(e);
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user