diff --git a/cache/pom.xml b/cache/pom.xml index 355bccc2077..d81d11c04a1 100644 --- a/cache/pom.xml +++ b/cache/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.11.14-SNAPSHOT + 1.11.15-SNAPSHOT cache diff --git a/pom.xml b/pom.xml index 5d4f95448a9..ff02504fa44 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ net.runelite runelite-parent - 1.11.14-SNAPSHOT + 1.11.15-SNAPSHOT pom RuneLite diff --git a/runelite-api/pom.xml b/runelite-api/pom.xml index 7d7069e7845..b413a3ff48f 100644 --- a/runelite-api/pom.xml +++ b/runelite-api/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.11.14-SNAPSHOT + 1.11.15-SNAPSHOT runelite-api diff --git a/runelite-api/src/main/interfaces/interfaces.toml b/runelite-api/src/main/interfaces/interfaces.toml index f054057cdce..c553f669d85 100644 --- a/runelite-api/src/main/interfaces/interfaces.toml +++ b/runelite-api/src/main/interfaces/interfaces.toml @@ -813,7 +813,7 @@ container=2 [slayer_rewards] id=426 -top_bar=12 +top_bar=13 [smithing] id=312 diff --git a/runelite-api/src/main/java/net/runelite/api/Client.java b/runelite-api/src/main/java/net/runelite/api/Client.java index bb7bcff7083..f310f388416 100644 --- a/runelite-api/src/main/java/net/runelite/api/Client.java +++ b/runelite-api/src/main/java/net/runelite/api/Client.java @@ -1008,6 +1008,11 @@ public interface Client extends OAuthApi, GameEngine */ List getDBRowsByValue(int table, int column, int tupleIndex, Object value); + /** + * Gets all rows in a DBTable + */ + List getDBTableRows(int table); + /** * Get a map element config by id * diff --git a/runelite-api/src/main/java/net/runelite/api/EnumID.java b/runelite-api/src/main/java/net/runelite/api/EnumID.java index 9e8643051ef..6f204cbf450 100644 --- a/runelite-api/src/main/java/net/runelite/api/EnumID.java +++ b/runelite-api/src/main/java/net/runelite/api/EnumID.java @@ -31,12 +31,6 @@ */ public final class EnumID { - /** - * key: int - * val: string creature name - */ - public static final int SLAYER_TASK_CREATURE = 693; - /** * key: int 1-n+1 * val: namedobj @@ -68,12 +62,6 @@ public final class EnumID public static final int CLAN_RANK_NAME = 3797; public static final int CLAN_RANK_GRAPHIC = 3798; - /** - * key: int - * val: string location name - */ - public static final int SLAYER_TASK_LOCATION = 4064; - public static final int PRAYERS_NORMAL = 4956; public static final int PRAYERS_RUINOUS = 4959; public static final int PRAYERS_NORMAL_DEADEYE = 3341; @@ -82,12 +70,6 @@ public final class EnumID public static final int WORLD_LOCATIONS = 4992; - /** - * key: int - * val: struct slayer task - */ - public static final int SLAYER_TASK = 5008; - /** * key: weapon type * val: enum diff --git a/runelite-api/src/main/java/net/runelite/api/ItemID.java b/runelite-api/src/main/java/net/runelite/api/ItemID.java index 21e53ba953d..63c2d1b54d7 100644 --- a/runelite-api/src/main/java/net/runelite/api/ItemID.java +++ b/runelite-api/src/main/java/net/runelite/api/ItemID.java @@ -7219,7 +7219,7 @@ public final class ItemID public static final int STEAM_BATTLESTAFF = 11787; public static final int MYSTIC_STEAM_STAFF = 11789; public static final int STAFF_OF_THE_DEAD = 11791; - public static final int AGILITY_JUMP_11793 = 11793; + public static final int AGILITY_STRENGTH = 11793; public static final int GODSWORD_SHARDS_1__2 = 11794; public static final int GODSWORD_SHARDS_1__3 = 11796; public static final int GODSWORD_BLADE = 11798; @@ -14849,5 +14849,21 @@ public final class ItemID public static final int TOKEN_31127 = 31127; public static final int BLUEBERRY_MUFFIN = 31128; public static final int DOM = 31130; + public static final int DINHS_BLAZING_BULWARK_31132 = 31132; + public static final int VENATOR_BOW_31133 = 31133; + public static final int AGILITY_SWING = 31134; + public static final int AGILITY_SWING_31135 = 31135; + public static final int BLOOD_MOON_ARMOUR_SET = 31136; + public static final int BLUE_MOON_ARMOUR_SET = 31139; + public static final int ECLIPSE_MOON_ARMOUR_SET = 31142; + public static final int TORVA_ARMOUR_SET = 31145; + public static final int VIRTUS_ARMOUR_SET = 31148; + public static final int ROCKSHELL_ARMOUR_SET = 31151; + public static final int SKELETAL_ARMOUR_SET = 31154; + public static final int SPINED_ARMOUR_SET = 31157; + public static final int SWAMPBARK_ARMOUR_SET = 31160; + public static final int BLOODBARK_ARMOUR_SET = 31163; + public static final int MIXED_HIDE_ARMOUR_SET = 31166; + public static final int HUEYCOATL_HIDE_ARMOUR_SET = 31169; /* This file is automatically generated. Do not edit. */ } \ No newline at end of file diff --git a/runelite-api/src/main/java/net/runelite/api/NpcID.java b/runelite-api/src/main/java/net/runelite/api/NpcID.java index f77a814fdbf..42c02a3d9ab 100644 --- a/runelite-api/src/main/java/net/runelite/api/NpcID.java +++ b/runelite-api/src/main/java/net/runelite/api/NpcID.java @@ -12352,5 +12352,8 @@ public final class NpcID public static final int OBOR_CHEST = 14787; public static final int GIANT_DEMONIC_RANGE_LARVA = 14788; public static final int GIANT_DEMONIC_MAGIC_LARVA = 14789; + public static final int HARVESTER = 14790; + public static final int HARVESTER_14791 = 14791; + public static final int WIZGUARD = 14792; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/NullItemID.java b/runelite-api/src/main/java/net/runelite/api/NullItemID.java index e436dbadaab..38d2c3664b0 100644 --- a/runelite-api/src/main/java/net/runelite/api/NullItemID.java +++ b/runelite-api/src/main/java/net/runelite/api/NullItemID.java @@ -16081,5 +16081,29 @@ public final class NullItemID public static final int NULL_31122 = 31122; public static final int NULL_31129 = 31129; public static final int NULL_31131 = 31131; + public static final int NULL_31137 = 31137; + public static final int NULL_31138 = 31138; + public static final int NULL_31140 = 31140; + public static final int NULL_31141 = 31141; + public static final int NULL_31143 = 31143; + public static final int NULL_31144 = 31144; + public static final int NULL_31146 = 31146; + public static final int NULL_31147 = 31147; + public static final int NULL_31149 = 31149; + public static final int NULL_31150 = 31150; + public static final int NULL_31152 = 31152; + public static final int NULL_31153 = 31153; + public static final int NULL_31155 = 31155; + public static final int NULL_31156 = 31156; + public static final int NULL_31158 = 31158; + public static final int NULL_31159 = 31159; + public static final int NULL_31161 = 31161; + public static final int NULL_31162 = 31162; + public static final int NULL_31164 = 31164; + public static final int NULL_31165 = 31165; + public static final int NULL_31167 = 31167; + public static final int NULL_31168 = 31168; + public static final int NULL_31170 = 31170; + public static final int NULL_31171 = 31171; /* This file is automatically generated. Do not edit. */ } \ No newline at end of file diff --git a/runelite-api/src/main/java/net/runelite/api/NullObjectID.java b/runelite-api/src/main/java/net/runelite/api/NullObjectID.java index fe2d4078700..8422421e077 100644 --- a/runelite-api/src/main/java/net/runelite/api/NullObjectID.java +++ b/runelite-api/src/main/java/net/runelite/api/NullObjectID.java @@ -29818,5 +29818,10 @@ public final class NullObjectID public static final int NULL_57660 = 57660; public static final int NULL_57661 = 57661; public static final int NULL_57662 = 57662; + public static final int NULL_57669 = 57669; + public static final int NULL_57670 = 57670; + public static final int NULL_57674 = 57674; + public static final int NULL_57675 = 57675; + public static final int NULL_57676 = 57676; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/ObjectID.java b/runelite-api/src/main/java/net/runelite/api/ObjectID.java index 7b3468ff7c7..b2ab3b28598 100644 --- a/runelite-api/src/main/java/net/runelite/api/ObjectID.java +++ b/runelite-api/src/main/java/net/runelite/api/ObjectID.java @@ -27839,5 +27839,16 @@ public final class ObjectID public static final int RACK_57649 = 57649; public static final int DEBUG_WALL = 57656; public static final int DRAGONS_HEAD_57663 = 57663; + public static final int INCONSPICUOUS_ROCKS_MASTER_57664 = 57664; + public static final int STASH_MASTER_57665 = 57665; + public static final int ROCKS_57666 = 57666; + public static final int ZIP_LINE_57667 = 57667; + public static final int SPIKE_57668 = 57668; + public static final int ZIP_LINE_57671 = 57671; + public static final int ZIP_LINE_57672 = 57672; + public static final int ZIP_LINE_57673 = 57673; + public static final int IVY = 57677; + public static final int BROKEN_WINDOW_57678 = 57678; + public static final int BROKEN_WINDOW_57679 = 57679; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/ParamID.java b/runelite-api/src/main/java/net/runelite/api/ParamID.java index 34ea6124aea..a50b1c162c8 100644 --- a/runelite-api/src/main/java/net/runelite/api/ParamID.java +++ b/runelite-api/src/main/java/net/runelite/api/ParamID.java @@ -225,8 +225,6 @@ public final class ParamID public static final int NPC_DEATH_HIDER_EXCLUDE = 1799; - public static final int SLAYER_TASK_NAME = 1801; - public static final int ATTACK_STYLE_NAME = 1407; public static final int SPELL_BUTTON = 596; diff --git a/runelite-api/src/main/java/net/runelite/api/VarPlayer.java b/runelite-api/src/main/java/net/runelite/api/VarPlayer.java index 6881f8f0afd..88c7798641b 100644 --- a/runelite-api/src/main/java/net/runelite/api/VarPlayer.java +++ b/runelite-api/src/main/java/net/runelite/api/VarPlayer.java @@ -238,12 +238,11 @@ public final class VarPlayer /** * Currently assigned slayer task if SLAYER_TASK_SIZE is greater than 0. - * Mapping of value to name can be found in {@link EnumID#SLAYER_TASK_CREATURE}. */ public static final int SLAYER_TASK_CREATURE = 395; /** - * Assigned slayer task location. The mapping of value to name can be found in {@link EnumID#SLAYER_TASK_LOCATION} + * Assigned slayer task location. */ public static final int SLAYER_TASK_LOCATION = 2096; diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/AnimationID.java b/runelite-api/src/main/java/net/runelite/api/gameval/AnimationID.java index 13c23c7d33c..85d1b06b1ad 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/AnimationID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/AnimationID.java @@ -2761,6 +2761,7 @@ public final class AnimationID public static final int STARJUMP = 2754; public static final int VFX_DOOM_HOLE_IDLE_UNIQUE = 2755; public static final int PUSHUPS = 2756; + public static final int HUMAN_LEDGE_WALK_LEFT_LOOPED = 2757; public static final int SITUPS_GETDOWN = 2758; public static final int SITUPS = 2759; public static final int SITUPS_GETUP = 2760; @@ -7145,6 +7146,9 @@ public final class AnimationID public static final int HUMAN_MINING_DRAGON_PICKAXE = 7139; public static final int HUMAN_MINING_DRAGON_PICKAXE_NOREACHFORWARD = 7140; public static final int SUROK_RUNE_COMBINE_LOOP = 7141; + public static final int HUMAN_LEDGE_WALK_RIGHT_LOOPED = 7142; + public static final int KASTORI_HARVESTER_WALK_F = 7143; + public static final int KASTORI_HARVESTER_READY = 7144; public static final int LORE_POLAR_BEAR_ARC_BLAST_SPOT = 7147; public static final int LORE_POLAR_BEAR_ARC_BLAST_PROJ = 7148; public static final int LORE_POLAR_BEAR_ARC_BLAST_IMPACT = 7149; @@ -12503,7 +12507,6 @@ public final class AnimationID public static final int NPC_ENT_ATTACK_01 = 12506; public static final int NPC_ENT_ATTACK_02 = 12507; public static final int NPC_ENT_DEATH_01 = 12508; - public static final int NPC_ENT_DEATH_02 = 12509; public static final int NPC_ENT_WORSHIP_01 = 12510; public static final int NPC_ENT_WORSHIP_02 = 12511; public static final int VFX_ENT_AUBURN_REWARD_SPAWN_01 = 12512; diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/DBTableID.java b/runelite-api/src/main/java/net/runelite/api/gameval/DBTableID.java index d23fca23088..7eb589d9721 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/DBTableID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/DBTableID.java @@ -2787,7 +2787,6 @@ public static final class Row public static final int CLUEHELPER_TARGET_COORD_0_39_60_41_41 = 500; public static final int CLUEHELPER_TARGET_COORD_0_44_50_12_34 = 501; public static final int CLUEHELPER_TARGET_COORD_0_19_58_31_14 = 502; - public static final int CLUEHELPER_TARGET_COORD_0_58_60_58_58 = 503; public static final int CLUEHELPER_TARGET_COORD_0_34_49_33_25 = 504; public static final int CLUEHELPER_TARGET_COORD_0_34_50_5_6 = 505; public static final int CLUEHELPER_TARGET_COORD_0_48_50_9_9 = 506; @@ -2829,7 +2828,6 @@ public static final class Row public static final int CLUEHELPER_TARGET_COORD_0_47_60_5_6 = 542; public static final int CLUEHELPER_TARGET_COORD_0_47_60_50_44 = 543; public static final int CLUEHELPER_TARGET_COORD_0_51_60_26_49 = 544; - public static final int CLUEHELPER_TARGET_COORD_0_58_60_58_57 = 545; public static final int CLUEHELPER_TARGET_COORD_0_39_60_9_59 = 546; public static final int CLUEHELPER_TARGET_COORD_0_51_61_21_38 = 547; public static final int CLUEHELPER_TARGET_COORD_0_49_61_23_55 = 548; @@ -2994,6 +2992,8 @@ public static final class Row public static final int CLUEHELPER_TARGET_COORD_1_25_83_40_54 = 3936; public static final int CLUEHELPER_TARGET_COORD_VARLAMORE_RAINFOREST_CENTRE = 5172; public static final int CLUEHELPER_TARGET_COORD_0_20_51_41_59 = 5173; + public static final int CLUEHELPER_TARGET_COORD_0_58_60_52_60 = 6152; + public static final int CLUEHELPER_TARGET_COORD_0_58_60_53_59 = 6153; } } @@ -6789,181 +6789,6 @@ public static final class Row } } - public static final class LeagueSlayerTaskData - { - public static final int ID = 84; - - /** - * integer - */ - public static final int COL_MIN_COMLEVEL = 1; - - /** - * (integer, stat) - */ - public static final int COL_MIN_STAT_REQUIREMENT_ALL = 2; - - /** - * (integer, stat) - */ - public static final int COL_MIN_STAT_REQUIREMENT_ANY = 3; - - /** - * integer - */ - public static final int COL_LEAGUES_MIN_COMLEVEL = 4; - - /** - * integer - */ - public static final int COL_LEAGUES_MAX_COMLEVEL = 5; - - /** - * integer - */ - public static final int COL_REGIONS = 8; - - /** - * string - */ - public static final int COL_NAME_LOWERCASE = 9; - - /** - * string - */ - public static final int COL_NAME_UPPERCASE = 10; - - /** - * (npc, integer, integer, integer) - */ - public static final int COL_MASTER_WEIGHT_MINAMOUNT_MAXAMOUNT = 12; - - public static final class Row - { - public static final int LEAGUE_SLAYER_TASK_MONKEYS = 4097; - public static final int LEAGUE_SLAYER_TASK_GOBLINS = 4098; - public static final int LEAGUE_SLAYER_TASK_RATS = 4099; - public static final int LEAGUE_SLAYER_TASK_SPIDERS = 4100; - public static final int LEAGUE_SLAYER_TASK_BIRDS = 4101; - public static final int LEAGUE_SLAYER_TASK_COWS = 4102; - public static final int LEAGUE_SLAYER_TASK_SCORPIONS = 4103; - public static final int LEAGUE_SLAYER_TASK_BATS = 4104; - public static final int LEAGUE_SLAYER_TASK_WOLVES = 4105; - public static final int LEAGUE_SLAYER_TASK_ZOMBIES = 4106; - public static final int LEAGUE_SLAYER_TASK_SKELETONS = 4107; - public static final int LEAGUE_SLAYER_TASK_GHOSTS = 4108; - public static final int LEAGUE_SLAYER_TASK_BEARS = 4109; - public static final int LEAGUE_SLAYER_TASK_HILLGIANTS = 4110; - public static final int LEAGUE_SLAYER_TASK_ICEGIANTS = 4111; - public static final int LEAGUE_SLAYER_TASK_FIREGIANTS = 4112; - public static final int LEAGUE_SLAYER_TASK_MOSSGIANTS = 4113; - public static final int LEAGUE_SLAYER_TASK_TROLLS = 4114; - public static final int LEAGUE_SLAYER_TASK_ICEWARRIORS = 4115; - public static final int LEAGUE_SLAYER_TASK_OGRES = 4116; - public static final int LEAGUE_SLAYER_TASK_HOBGOBLINS = 4117; - public static final int LEAGUE_SLAYER_TASK_DOGS = 4118; - public static final int LEAGUE_SLAYER_TASK_GHOULS = 4119; - public static final int LEAGUE_SLAYER_TASK_GREENDRAGONS = 4120; - public static final int LEAGUE_SLAYER_TASK_BLUEDRAGONS = 4121; - public static final int LEAGUE_SLAYER_TASK_REDDRAGONS = 4122; - public static final int LEAGUE_SLAYER_TASK_BLACKDRAGONS = 4123; - public static final int LEAGUE_SLAYER_TASK_LESSERDEMONS = 4124; - public static final int LEAGUE_SLAYER_TASK_GREATERDEMONS = 4125; - public static final int LEAGUE_SLAYER_TASK_BLACKDEMONS = 4126; - public static final int LEAGUE_SLAYER_TASK_HELLHOUNDS = 4127; - public static final int LEAGUE_SLAYER_TASK_SHADOWWARRIORS = 4128; - public static final int LEAGUE_SLAYER_TASK_WEREWOLVES = 4129; - public static final int LEAGUE_SLAYER_TASK_VAMPYRES = 4130; - public static final int LEAGUE_SLAYER_TASK_DAGANNOTH = 4131; - public static final int LEAGUE_SLAYER_TASK_TUROTH = 4132; - public static final int LEAGUE_SLAYER_TASK_CAVECRAWLERS = 4133; - public static final int LEAGUE_SLAYER_TASK_BANSHEES = 4134; - public static final int LEAGUE_SLAYER_TASK_CRAWLINGHANDS = 4135; - public static final int LEAGUE_SLAYER_TASK_INFERNALMAGES = 4136; - public static final int LEAGUE_SLAYER_TASK_ABERRANTSPECTRES = 4137; - public static final int LEAGUE_SLAYER_TASK_ABYSSALDEMONS = 4138; - public static final int LEAGUE_SLAYER_TASK_BASILISKS = 4139; - public static final int LEAGUE_SLAYER_TASK_COCKATRICE = 4140; - public static final int LEAGUE_SLAYER_TASK_KURASK = 4141; - public static final int LEAGUE_SLAYER_TASK_GARGOYLES = 4142; - public static final int LEAGUE_SLAYER_TASK_PYREFIENDS = 4143; - public static final int LEAGUE_SLAYER_TASK_BLOODVELD = 4144; - public static final int LEAGUE_SLAYER_TASK_DUSTDEVILS = 4145; - public static final int LEAGUE_SLAYER_TASK_JELLIES = 4146; - public static final int LEAGUE_SLAYER_TASK_ROCKSLUGS = 4147; - public static final int LEAGUE_SLAYER_TASK_NECHRYAEL = 4148; - public static final int LEAGUE_SLAYER_TASK_KALPHITE = 4149; - public static final int LEAGUE_SLAYER_TASK_EARTHWARRIORS = 4150; - public static final int LEAGUE_SLAYER_TASK_OTHERWORLDLYBEINGS = 4151; - public static final int LEAGUE_SLAYER_TASK_ELVES = 4152; - public static final int LEAGUE_SLAYER_TASK_DWARVES = 4153; - public static final int LEAGUE_SLAYER_TASK_BRONZEDRAGONS = 4154; - public static final int LEAGUE_SLAYER_TASK_IRONDRAGONS = 4155; - public static final int LEAGUE_SLAYER_TASK_STEELDRAGONS = 4156; - public static final int LEAGUE_SLAYER_TASK_WALLBEASTS = 4157; - public static final int LEAGUE_SLAYER_TASK_CAVESLIMES = 4158; - public static final int LEAGUE_SLAYER_TASK_CAVEBUGS = 4159; - public static final int LEAGUE_SLAYER_TASK_SHADES = 4160; - public static final int LEAGUE_SLAYER_TASK_CROCODILES = 4161; - public static final int LEAGUE_SLAYER_TASK_DARKBEASTS = 4162; - public static final int LEAGUE_SLAYER_TASK_MOGRES = 4163; - public static final int LEAGUE_SLAYER_TASK_LIZARDS = 4164; - public static final int LEAGUE_SLAYER_TASK_FEVERSPIDERS = 4165; - public static final int LEAGUE_SLAYER_TASK_HARPIEBUGSWARMS = 4166; - public static final int LEAGUE_SLAYER_TASK_SEASNAKES = 4167; - public static final int LEAGUE_SLAYER_TASK_SKELETALWYVERNS = 4168; - public static final int LEAGUE_SLAYER_TASK_KILLERWATTS = 4169; - public static final int LEAGUE_SLAYER_TASK_MUTATEDZYGOMITES = 4170; - public static final int LEAGUE_SLAYER_TASK_ICEFIENDS = 4171; - public static final int LEAGUE_SLAYER_TASK_MINOTAURS = 4172; - public static final int LEAGUE_SLAYER_TASK_FLESHCRAWLERS = 4173; - public static final int LEAGUE_SLAYER_TASK_CATABLEPON = 4174; - public static final int LEAGUE_SLAYER_TASK_ANKOU = 4175; - public static final int LEAGUE_SLAYER_TASK_CAVEHORRORS = 4176; - public static final int LEAGUE_SLAYER_TASK_JUNGLEHORRORS = 4177; - public static final int LEAGUE_SLAYER_TASK_SUQAHS = 4178; - public static final int LEAGUE_SLAYER_TASK_BRINERATS = 4179; - public static final int LEAGUE_SLAYER_TASK_SCABARITES = 4180; - public static final int LEAGUE_SLAYER_TASK_TERRORDOGS = 4181; - public static final int LEAGUE_SLAYER_TASK_MOLANISKS = 4182; - public static final int LEAGUE_SLAYER_TASK_WATERFIENDS = 4183; - public static final int LEAGUE_SLAYER_TASK_SPIRITUALGWD = 4184; - public static final int LEAGUE_SLAYER_TASK_LIZARDMEN = 4185; - public static final int LEAGUE_SLAYER_TASK_MAGICAXES = 4186; - public static final int LEAGUE_SLAYER_TASK_CAVEKRAKEN = 4187; - public static final int LEAGUE_SLAYER_TASK_MITHRILDRAGONS = 4188; - public static final int LEAGUE_SLAYER_TASK_AVIANSIES = 4189; - public static final int LEAGUE_SLAYER_TASK_SMOKEDEVIL = 4190; - public static final int LEAGUE_SLAYER_TASK_TZHAAR = 4191; - public static final int LEAGUE_SLAYER_TASK_BOSS = 4192; - public static final int LEAGUE_SLAYER_TASK_MAMMOTHS = 4193; - public static final int LEAGUE_SLAYER_TASK_ROGUES = 4194; - public static final int LEAGUE_SLAYER_TASK_ENTS = 4195; - public static final int LEAGUE_SLAYER_TASK_BANDITS = 4196; - public static final int LEAGUE_SLAYER_TASK_DARKWARRIORS = 4197; - public static final int LEAGUE_SLAYER_TASK_LAVADRAGONS = 4198; - public static final int LEAGUE_SLAYER_TASK_FOSSILWYVERNS = 4199; - public static final int LEAGUE_SLAYER_TASK_REVENANTS = 4200; - public static final int LEAGUE_SLAYER_TASK_ADAMANTDRAGONS = 4201; - public static final int LEAGUE_SLAYER_TASK_RUNEDRAGONS = 4202; - public static final int LEAGUE_SLAYER_TASK_CHAOSDRUIDS = 4203; - public static final int LEAGUE_SLAYER_TASK_WYRMS = 4204; - public static final int LEAGUE_SLAYER_TASK_DRAKES = 4205; - public static final int LEAGUE_SLAYER_TASK_HYDRAS = 4206; - public static final int LEAGUE_SLAYER_TASK_TEMPLESPIDERS = 4207; - public static final int LEAGUE_SLAYER_TASK_UNDEADDRUIDS = 4208; - public static final int LEAGUE_SLAYER_TASK_SULPHURLIZARDS = 4209; - public static final int LEAGUE_SLAYER_TASK_BRUTALBLACKDRAGONS = 4210; - public static final int LEAGUE_SLAYER_TASK_SANDCRABS = 4211; - public static final int LEAGUE_SLAYER_TASK_BLACKKNIGHT = 4212; - public static final int LEAGUE_SLAYER_TASK_PIRATES = 4213; - public static final int LEAGUE_SLAYER_TASK_SOURHOGS = 4214; - public static final int LEAGUE_SLAYER_TASK_WARPEDCREATURES = 4215; - public static final int LEAGUE_SLAYER_TASK_LESSER_NAGUA = 4216; - public static final int LEAGUE_SLAYER_TASK_ARAXYTES = 4217; - } - } - public static final class LeaguesEchoBosses { public static final int ID = 85; @@ -9319,5 +9144,820 @@ public static final class Row public static final int LEAGUE_ACCOMPLISHMENT_HOTSPOT = 6151; } } + + public static final class SlayerTask + { + public static final int ID = 113; + + /** + * integer + */ + public static final int COL_ID = 0; + + /** + * integer + */ + public static final int COL_MIN_COMLEVEL = 1; + + /** + * (integer, stat) + */ + public static final int COL_MIN_STAT_REQUIREMENT_ALL = 2; + + /** + * (integer, stat) + */ + public static final int COL_MIN_STAT_REQUIREMENT_ANY = 3; + + /** + * integer + */ + public static final int COL_LEAGUES_MIN_COMLEVEL = 4; + + /** + * integer + */ + public static final int COL_LEAGUES_MAX_COMLEVEL = 5; + + /** + * integer + */ + public static final int COL_REGIONS = 8; + + /** + * string + */ + public static final int COL_NAME_LOWERCASE = 9; + + /** + * string + */ + public static final int COL_NAME_UPPERCASE = 10; + + /** + * (dbrow, integer, integer) + */ + public static final int COL_EXTENSION_MIN_MAX = 15; + + /** + * dbrow + */ + public static final int COL_BLOCK_UNLOCK = 16; + + public static final class Row + { + public static final int SLAYER_TASK_KREEARRA = 545; + public static final int SLAYER_TASK_ZILYANA = 6155; + public static final int SLAYER_TASK_GRAARDOR = 6157; + public static final int SLAYER_TASK_KRILTSUTSAROTH = 6159; + public static final int SLAYER_TASK_DAGANNOTHKINGS = 6161; + public static final int SLAYER_TASK_MOLE = 6163; + public static final int SLAYER_TASK_KQ = 6165; + public static final int SLAYER_TASK_KBD = 6167; + public static final int SLAYER_TASK_CALLISTO = 6169; + public static final int SLAYER_TASK_VENENATIS = 6171; + public static final int SLAYER_TASK_VETION = 6173; + public static final int SLAYER_TASK_CHAOSELEMENTAL = 6175; + public static final int SLAYER_TASK_CHAOSFANATIC = 6177; + public static final int SLAYER_TASK_CRAZYARCHAEOLOGIST = 6179; + public static final int SLAYER_TASK_SCORPIA = 6181; + public static final int SLAYER_TASK_ZULRAH = 6183; + public static final int SLAYER_TASK_BARROWSBROTHERS = 6185; + public static final int SLAYER_TASK_CAVEKRAKENBOSS = 6187; + public static final int SLAYER_TASK_SMOKEDEVILBOSS = 6189; + public static final int SLAYER_TASK_CERBERUS = 6191; + public static final int SLAYER_TASK_ABYSSALSIRE = 6193; + public static final int SLAYER_TASK_GROTESQUEGUARDIANS = 6195; + public static final int SLAYER_TASK_VORKATH = 6197; + public static final int SLAYER_TASK_HYDRABOSS = 6199; + public static final int SLAYER_TASK_SARACHNIS = 6201; + public static final int SLAYER_TASK_MUSPAH = 6203; + public static final int SLAYER_TASK_VARDORVIS = 6205; + public static final int SLAYER_TASK_DUKESUCELLUS = 6207; + public static final int SLAYER_TASK_WHISPERER = 6209; + public static final int SLAYER_TASK_LEVIATHAN = 6211; + public static final int SLAYER_TASK_ARAXXOR = 6213; + public static final int SLAYER_TARGET_MONKEYS = 6214; + public static final int SLAYER_TARGET_GOBLINS = 6215; + public static final int SLAYER_TARGET_RATS = 6216; + public static final int SLAYER_TARGET_SPIDERS = 6217; + public static final int SLAYER_TARGET_BIRDS = 6218; + public static final int SLAYER_TARGET_COWS = 6219; + public static final int SLAYER_TARGET_SCORPIONS = 6220; + public static final int SLAYER_TARGET_BATS = 6221; + public static final int SLAYER_TARGET_WOLVES = 6222; + public static final int SLAYER_TARGET_ZOMBIES = 6223; + public static final int SLAYER_TARGET_SKELETONS = 6224; + public static final int SLAYER_TARGET_GHOSTS = 6225; + public static final int SLAYER_TARGET_BEARS = 6226; + public static final int SLAYER_TARGET_HILLGIANTS = 6227; + public static final int SLAYER_TARGET_ICEGIANTS = 6228; + public static final int SLAYER_TARGET_FIREGIANTS = 6229; + public static final int SLAYER_TARGET_MOSSGIANTS = 6230; + public static final int SLAYER_TARGET_TROLLS = 6231; + public static final int SLAYER_TARGET_ICEWARRIORS = 6232; + public static final int SLAYER_TARGET_OGRES = 6233; + public static final int SLAYER_TARGET_HOBGOBLINS = 6234; + public static final int SLAYER_TARGET_DOGS = 6235; + public static final int SLAYER_TARGET_GHOULS = 6236; + public static final int SLAYER_TARGET_GREENDRAGONS = 6237; + public static final int SLAYER_TARGET_BLUEDRAGONS = 6238; + public static final int SLAYER_TARGET_REDDRAGONS = 6239; + public static final int SLAYER_TARGET_BLACKDRAGONS = 6240; + public static final int SLAYER_TARGET_LESSERDEMONS = 6241; + public static final int SLAYER_TARGET_GREATERDEMONS = 6242; + public static final int SLAYER_TARGET_BLACKDEMONS = 6243; + public static final int SLAYER_TARGET_HELLHOUNDS = 6244; + public static final int SLAYER_TARGET_SHADOWWARRIORS = 6245; + public static final int SLAYER_TARGET_WEREWOLVES = 6246; + public static final int SLAYER_TARGET_VAMPYRES = 6247; + public static final int SLAYER_TARGET_DAGANNOTH = 6248; + public static final int SLAYER_TARGET_TUROTH = 6249; + public static final int SLAYER_TARGET_CAVECRAWLERS = 6250; + public static final int SLAYER_TARGET_BANSHEES = 6251; + public static final int SLAYER_TARGET_CRAWLINGHANDS = 6252; + public static final int SLAYER_TARGET_INFERNALMAGES = 6253; + public static final int SLAYER_TARGET_ABERRANTSPECTRES = 6254; + public static final int SLAYER_TARGET_ABYSSALDEMONS = 6255; + public static final int SLAYER_TARGET_BASILISKS = 6256; + public static final int SLAYER_TARGET_COCKATRICE = 6257; + public static final int SLAYER_TARGET_KURASK = 6258; + public static final int SLAYER_TARGET_GARGOYLES = 6259; + public static final int SLAYER_TARGET_PYREFIENDS = 6260; + public static final int SLAYER_TARGET_BLOODVELD = 6261; + public static final int SLAYER_TARGET_DUSTDEVILS = 6262; + public static final int SLAYER_TARGET_JELLIES = 6263; + public static final int SLAYER_TARGET_ROCKSLUGS = 6264; + public static final int SLAYER_TARGET_NECHRYAEL = 6265; + public static final int SLAYER_TARGET_KALPHITE = 6266; + public static final int SLAYER_TARGET_EARTHWARRIORS = 6267; + public static final int SLAYER_TARGET_OTHERWORLDLYBEINGS = 6268; + public static final int SLAYER_TARGET_ELVES = 6269; + public static final int SLAYER_TARGET_DWARVES = 6270; + public static final int SLAYER_TARGET_BRONZEDRAGONS = 6271; + public static final int SLAYER_TARGET_IRONDRAGONS = 6272; + public static final int SLAYER_TARGET_STEELDRAGONS = 6273; + public static final int SLAYER_TARGET_WALLBEASTS = 6274; + public static final int SLAYER_TARGET_CAVESLIMES = 6275; + public static final int SLAYER_TARGET_CAVEBUGS = 6276; + public static final int SLAYER_TARGET_SHADES = 6277; + public static final int SLAYER_TARGET_CROCODILES = 6278; + public static final int SLAYER_TARGET_DARKBEASTS = 6279; + public static final int SLAYER_TARGET_MOGRES = 6280; + public static final int SLAYER_TARGET_LIZARDS = 6281; + public static final int SLAYER_TARGET_FEVERSPIDERS = 6282; + public static final int SLAYER_TARGET_HARPIEBUGSWARMS = 6283; + public static final int SLAYER_TARGET_SEASNAKES = 6284; + public static final int SLAYER_TARGET_SKELETALWYVERNS = 6285; + public static final int SLAYER_TARGET_KILLERWATTS = 6286; + public static final int SLAYER_TARGET_MUTATEDZYGOMITES = 6287; + public static final int SLAYER_TARGET_ICEFIENDS = 6288; + public static final int SLAYER_TARGET_MINOTAURS = 6289; + public static final int SLAYER_TARGET_FLESHCRAWLERS = 6290; + public static final int SLAYER_TARGET_CATABLEPON = 6291; + public static final int SLAYER_TARGET_ANKOU = 6292; + public static final int SLAYER_TARGET_CAVEHORRORS = 6293; + public static final int SLAYER_TARGET_JUNGLEHORRORS = 6294; + public static final int SLAYER_TARGET_SUQAHS = 6295; + public static final int SLAYER_TARGET_BRINERATS = 6296; + public static final int SLAYER_TARGET_SCABARITES = 6297; + public static final int SLAYER_TARGET_TERRORDOGS = 6298; + public static final int SLAYER_TARGET_MOLANISKS = 6299; + public static final int SLAYER_TARGET_WATERFIENDS = 6300; + public static final int SLAYER_TARGET_SPIRITUALGWD = 6301; + public static final int SLAYER_TARGET_LIZARDMEN = 6302; + public static final int SLAYER_TARGET_MAGICAXES = 6303; + public static final int SLAYER_TARGET_CAVEKRAKEN = 6304; + public static final int SLAYER_TARGET_MITHRILDRAGONS = 6305; + public static final int SLAYER_TARGET_AVIANSIES = 6306; + public static final int SLAYER_TARGET_SMOKEDEVIL = 6307; + public static final int SLAYER_TARGET_TZHAAR = 6308; + public static final int SLAYER_TARGET_ZUK = 6309; + public static final int SLAYER_TARGET_JAD = 6310; + public static final int SLAYER_TARGET_BOSS = 6311; + public static final int SLAYER_TARGET_MAMMOTHS = 6312; + public static final int SLAYER_TARGET_ROGUES = 6313; + public static final int SLAYER_TARGET_ENTS = 6314; + public static final int SLAYER_TARGET_BANDITS = 6315; + public static final int SLAYER_TARGET_DARKWARRIORS = 6316; + public static final int SLAYER_TARGET_LAVADRAGONS = 6317; + public static final int SLAYER_TARGET_FOSSILWYVERNS = 6318; + public static final int SLAYER_TARGET_REVENANTS = 6319; + public static final int SLAYER_TARGET_ADAMANTDRAGONS = 6320; + public static final int SLAYER_TARGET_RUNEDRAGONS = 6321; + public static final int SLAYER_TARGET_METALDRAGONS = 6322; + public static final int SLAYER_TARGET_CHAOSDRUIDS = 6323; + public static final int SLAYER_TARGET_WYRMS = 6324; + public static final int SLAYER_TARGET_DRAKES = 6325; + public static final int SLAYER_TARGET_HYDRAS = 6326; + public static final int SLAYER_TARGET_TEMPLESPIDERS = 6327; + public static final int SLAYER_TARGET_UNDEADDRUIDS = 6328; + public static final int SLAYER_TARGET_SULPHURLIZARDS = 6329; + public static final int SLAYER_TARGET_BRUTALBLACKDRAGONS = 6330; + public static final int SLAYER_TARGET_BRUTALDRAGONS = 6331; + public static final int SLAYER_TARGET_SANDCRABS = 6332; + public static final int SLAYER_TARGET_CRABS = 6333; + public static final int SLAYER_TARGET_BLACKKNIGHT = 6334; + public static final int SLAYER_TARGET_PIRATES = 6335; + public static final int SLAYER_TARGET_SOURHOGS = 6336; + public static final int SLAYER_TARGET_WARPEDCREATURES = 6337; + public static final int SLAYER_TARGET_LESSER_NAGUA = 6338; + public static final int SLAYER_TARGET_ARAXYTES = 6339; + public static final int SLAYER_TARGET_CUSTODIANS = 6340; + } + } + + public static final class SlayerMasterTask + { + public static final int ID = 114; + + /** + * integer + */ + public static final int COL_MASTER_ID = 0; + + /** + * dbrow + */ + public static final int COL_TASK = 1; + + /** + * integer + */ + public static final int COL_WEIGHT = 2; + + /** + * integer + */ + public static final int COL_MIN_AMOUNT = 3; + + /** + * integer + */ + public static final int COL_MAX_AMOUNT = 4; + + /** + * dbrow + */ + public static final int COL_AREAS = 5; + + /** + * dbrow + */ + public static final int COL_TASK_UNLOCK = 6; + + public static final class Row + { + public static final int CHAELDAR_CUSTODIANS = 4097; + public static final int NIEVE_CUSTODIANS = 4098; + public static final int KONAR_LESSER_NAGUA = 6450; + public static final int KONAR_WARPEDCREATURES = 6451; + public static final int KONAR_VAMPYRES = 6452; + public static final int KONAR_BASILISKS = 6453; + public static final int KONAR_MUTATEDZYGOMITES = 6454; + public static final int KONAR_BRINERATS = 6455; + public static final int KONAR_WATERFIENDS = 6456; + public static final int KONAR_TUROTH = 6457; + public static final int KONAR_KURASK = 6458; + public static final int KONAR_BLUEDRAGONS = 6459; + public static final int KONAR_SKELETALWYVERNS = 6460; + public static final int KONAR_FOSSILWYVERNS = 6461; + public static final int KONAR_ANKOU = 6462; + public static final int KONAR_REDDRAGONS = 6463; + public static final int KONAR_DARKBEASTS = 6464; + public static final int KONAR_BLACKDRAGONS = 6465; + public static final int KONAR_JELLIES = 6466; + public static final int KONAR_TROLLS = 6467; + public static final int KONAR_ABERRANTSPECTRES = 6468; + public static final int KONAR_DUSTDEVILS = 6469; + public static final int KONAR_GARGOYLES = 6470; + public static final int KONAR_AVIANSIES = 6471; + public static final int KONAR_GREATERDEMONS = 6472; + public static final int KONAR_SMOKEDEVIL = 6473; + public static final int KONAR_NECHRYAEL = 6474; + public static final int KONAR_LIZARDMEN = 6475; + public static final int KONAR_HELLHOUNDS = 6476; + public static final int KONAR_DAGANNOTH = 6477; + public static final int KONAR_BOSS = 6478; + public static final int KONAR_WYRMS = 6479; + public static final int KONAR_DRAKES = 6480; + public static final int KONAR_HYDRAS = 6481; + public static final int KONAR_CAVEKRAKEN = 6482; + public static final int KONAR_FIREGIANTS = 6483; + public static final int KONAR_KALPHITE = 6484; + public static final int KONAR_BLOODVELD = 6485; + public static final int KONAR_BLACKDEMONS = 6486; + public static final int KONAR_ABYSSALDEMONS = 6487; + public static final int KONAR_METALDRAGONS = 6488; + public static final int DURADEL_ARAXYTES = 6489; + public static final int DURADEL_WARPEDCREATURES = 6490; + public static final int DURADEL_VAMPYRES = 6491; + public static final int DURADEL_BASILISKS = 6492; + public static final int DURADEL_DRAKES = 6493; + public static final int DURADEL_WYRMS = 6494; + public static final int DURADEL_REDDRAGONS = 6495; + public static final int DURADEL_LIZARDMEN = 6496; + public static final int DURADEL_ELVES = 6497; + public static final int DURADEL_BLUEDRAGONS = 6498; + public static final int DURADEL_WATERFIENDS = 6499; + public static final int DURADEL_CAVEHORRORS = 6500; + public static final int DURADEL_TROLLS = 6501; + public static final int DURADEL_DUSTDEVILS = 6502; + public static final int DURADEL_KURASK = 6503; + public static final int DURADEL_ANKOU = 6504; + public static final int DURADEL_MUTATEDZYGOMITES = 6505; + public static final int DURADEL_HELLHOUNDS = 6506; + public static final int DURADEL_DAGANNOTH = 6507; + public static final int DURADEL_FIREGIANTS = 6508; + public static final int DURADEL_SUQAHS = 6509; + public static final int DURADEL_SKELETALWYVERNS = 6510; + public static final int DURADEL_FOSSILWYVERNS = 6511; + public static final int DURADEL_GREATERDEMONS = 6512; + public static final int DURADEL_BLACKDRAGONS = 6513; + public static final int DURADEL_AVIANSIES = 6514; + public static final int DURADEL_SPIRITUALGWD = 6515; + public static final int DURADEL_BLOODVELD = 6516; + public static final int DURADEL_BLACKDEMONS = 6517; + public static final int DURADEL_GARGOYLES = 6518; + public static final int DURADEL_ABERRANTSPECTRES = 6519; + public static final int DURADEL_CAVEKRAKEN = 6520; + public static final int DURADEL_SMOKEDEVIL = 6521; + public static final int DURADEL_NECHRYAEL = 6522; + public static final int DURADEL_KALPHITE = 6523; + public static final int DURADEL_ABYSSALDEMONS = 6524; + public static final int DURADEL_DARKBEASTS = 6525; + public static final int DURADEL_BOSS = 6526; + public static final int DURADEL_TZHAAR = 6527; + public static final int DURADEL_METALDRAGONS = 6528; + public static final int VANNAKA_CRABS = 6529; + public static final int VANNAKA_SPIRITUALGWD = 6530; + public static final int VANNAKA_ABYSSALDEMONS = 6531; + public static final int VANNAKA_NECHRYAEL = 6532; + public static final int VANNAKA_GARGOYLES = 6533; + public static final int VANNAKA_HOBGOBLINS = 6534; + public static final int VANNAKA_HILLGIANTS = 6535; + public static final int VANNAKA_GHOULS = 6536; + public static final int VANNAKA_ICEWARRIORS = 6537; + public static final int VANNAKA_OTHERWORLDLYBEINGS = 6538; + public static final int VANNAKA_COCKATRICE = 6539; + public static final int VANNAKA_SHADES = 6540; + public static final int VANNAKA_PYREFIENDS = 6541; + public static final int VANNAKA_MOGRES = 6542; + public static final int VANNAKA_MOLANISKS = 6543; + public static final int VANNAKA_VAMPYRES = 6544; + public static final int VANNAKA_BASILISKS = 6545; + public static final int VANNAKA_FEVERSPIDERS = 6546; + public static final int VANNAKA_BRINERATS = 6547; + public static final int VANNAKA_INFERNALMAGES = 6548; + public static final int VANNAKA_JELLIES = 6549; + public static final int VANNAKA_ICEGIANTS = 6550; + public static final int VANNAKA_ANKOU = 6551; + public static final int VANNAKA_TUROTH = 6552; + public static final int VANNAKA_JUNGLEHORRORS = 6553; + public static final int VANNAKA_LESSERDEMONS = 6554; + public static final int VANNAKA_TERRORDOGS = 6555; + public static final int VANNAKA_ABERRANTSPECTRES = 6556; + public static final int VANNAKA_BLUEDRAGONS = 6557; + public static final int VANNAKA_DUSTDEVILS = 6558; + public static final int VANNAKA_HELLHOUNDS = 6559; + public static final int VANNAKA_TROLLS = 6560; + public static final int VANNAKA_MOSSGIANTS = 6561; + public static final int VANNAKA_SEASNAKES = 6562; + public static final int VANNAKA_OGRES = 6563; + public static final int VANNAKA_CROCODILES = 6564; + public static final int VANNAKA_FIREGIANTS = 6565; + public static final int VANNAKA_KALPHITE = 6566; + public static final int VANNAKA_KURASK = 6567; + public static final int VANNAKA_BLOODVELD = 6568; + public static final int VANNAKA_WEREWOLVES = 6569; + public static final int VANNAKA_SHADOWWARRIORS = 6570; + public static final int VANNAKA_ELVES = 6571; + public static final int VANNAKA_DAGANNOTH = 6572; + public static final int VANNAKA_HARPIEBUGSWARMS = 6573; + public static final int KRYSTILLIA_ABYSSALDEMONS = 6574; + public static final int KRYSTILLIA_DUSTDEVILS = 6575; + public static final int KRYSTILLIA_NECHRYAEL = 6576; + public static final int KRYSTILLIA_JELLIES = 6577; + public static final int KRYSTILLIA_PIRATES = 6578; + public static final int KRYSTILLIA_BLACKKNIGHT = 6579; + public static final int KRYSTILLIA_ZOMBIES = 6580; + public static final int KRYSTILLIA_MOSSGIANTS = 6581; + public static final int KRYSTILLIA_HILLGIANTS = 6582; + public static final int KRYSTILLIA_BLOODVELD = 6583; + public static final int KRYSTILLIA_CHAOSDRUIDS = 6584; + public static final int KRYSTILLIA_LESSERDEMONS = 6585; + public static final int KRYSTILLIA_REVENANTS = 6586; + public static final int KRYSTILLIA_LAVADRAGONS = 6587; + public static final int KRYSTILLIA_GREENDRAGONS = 6588; + public static final int KRYSTILLIA_DARKWARRIORS = 6589; + public static final int KRYSTILLIA_BLACKDRAGONS = 6590; + public static final int KRYSTILLIA_BANDITS = 6591; + public static final int KRYSTILLIA_ENTS = 6592; + public static final int KRYSTILLIA_SKELETONS = 6593; + public static final int KRYSTILLIA_ROGUES = 6594; + public static final int KRYSTILLIA_MAMMOTHS = 6595; + public static final int KRYSTILLIA_SPIDERS = 6596; + public static final int KRYSTILLIA_SCORPIONS = 6597; + public static final int KRYSTILLIA_BEARS = 6598; + public static final int KRYSTILLIA_EARTHWARRIORS = 6599; + public static final int KRYSTILLIA_ANKOU = 6600; + public static final int KRYSTILLIA_ICEGIANTS = 6601; + public static final int KRYSTILLIA_SPIRITUALGWD = 6602; + public static final int KRYSTILLIA_MAGICAXES = 6603; + public static final int KRYSTILLIA_HELLHOUNDS = 6604; + public static final int KRYSTILLIA_BLACKDEMONS = 6605; + public static final int KRYSTILLIA_AVIANSIES = 6606; + public static final int KRYSTILLIA_ICEWARRIORS = 6607; + public static final int KRYSTILLIA_FIREGIANTS = 6608; + public static final int KRYSTILLIA_BOSS = 6609; + public static final int KRYSTILLIA_GREATERDEMONS = 6610; + public static final int MAZCHNA_CRABS = 6611; + public static final int MAZCHNA_SCORPIONS = 6612; + public static final int MAZCHNA_BATS = 6613; + public static final int MAZCHNA_CAVEBUGS = 6614; + public static final int MAZCHNA_ICEWARRIORS = 6615; + public static final int MAZCHNA_ZOMBIES = 6616; + public static final int MAZCHNA_BEARS = 6617; + public static final int MAZCHNA_GHOSTS = 6618; + public static final int MAZCHNA_CAVECRAWLERS = 6619; + public static final int MAZCHNA_KALPHITE = 6620; + public static final int MAZCHNA_WALLBEASTS = 6621; + public static final int MAZCHNA_CATABLEPON = 6622; + public static final int MAZCHNA_FLESHCRAWLERS = 6623; + public static final int MAZCHNA_DOGS = 6624; + public static final int MAZCHNA_WOLVES = 6625; + public static final int MAZCHNA_HOBGOBLINS = 6626; + public static final int MAZCHNA_CAVESLIMES = 6627; + public static final int MAZCHNA_LIZARDS = 6628; + public static final int MAZCHNA_ROCKSLUGS = 6629; + public static final int MAZCHNA_HILLGIANTS = 6630; + public static final int MAZCHNA_COCKATRICE = 6631; + public static final int MAZCHNA_SHADES = 6632; + public static final int MAZCHNA_KILLERWATTS = 6633; + public static final int MAZCHNA_PYREFIENDS = 6634; + public static final int MAZCHNA_MOGRES = 6635; + public static final int MAZCHNA_SKELETONS = 6636; + public static final int MAZCHNA_CRAWLINGHANDS = 6637; + public static final int MAZCHNA_BANSHEES = 6638; + public static final int MAZCHNA_GHOULS = 6639; + public static final int MAZCHNA_VAMPYRES = 6640; + public static final int CHAELDAR_CRABS = 6641; + public static final int CHAELDAR_LESSER_NAGUA = 6642; + public static final int CHAELDAR_WARPEDCREATURES = 6643; + public static final int CHAELDAR_VAMPYRES = 6644; + public static final int CHAELDAR_WYRMS = 6645; + public static final int CHAELDAR_TZHAAR = 6646; + public static final int CHAELDAR_LIZARDMEN = 6647; + public static final int CHAELDAR_BASILISKS = 6648; + public static final int CHAELDAR_FEVERSPIDERS = 6649; + public static final int CHAELDAR_BRINERATS = 6650; + public static final int CHAELDAR_MUTATEDZYGOMITES = 6651; + public static final int CHAELDAR_SKELETALWYVERNS = 6652; + public static final int CHAELDAR_FOSSILWYVERNS = 6653; + public static final int CHAELDAR_BLOODVELD = 6654; + public static final int CHAELDAR_SHADOWWARRIORS = 6655; + public static final int CHAELDAR_ABERRANTSPECTRES = 6656; + public static final int CHAELDAR_ELVES = 6657; + public static final int CHAELDAR_BLUEDRAGONS = 6658; + public static final int CHAELDAR_DUSTDEVILS = 6659; + public static final int CHAELDAR_HELLHOUNDS = 6660; + public static final int CHAELDAR_GREATERDEMONS = 6661; + public static final int CHAELDAR_LESSERDEMONS = 6662; + public static final int CHAELDAR_JELLIES = 6663; + public static final int CHAELDAR_CAVEHORRORS = 6664; + public static final int CHAELDAR_TUROTH = 6665; + public static final int CHAELDAR_BLACKDEMONS = 6666; + public static final int CHAELDAR_JUNGLEHORRORS = 6667; + public static final int CHAELDAR_TROLLS = 6668; + public static final int CHAELDAR_AVIANSIES = 6669; + public static final int CHAELDAR_SPIRITUALGWD = 6670; + public static final int CHAELDAR_DAGANNOTH = 6671; + public static final int CHAELDAR_KALPHITE = 6672; + public static final int CHAELDAR_GARGOYLES = 6673; + public static final int CHAELDAR_FIREGIANTS = 6674; + public static final int CHAELDAR_KURASK = 6675; + public static final int CHAELDAR_CAVEKRAKEN = 6676; + public static final int CHAELDAR_NECHRYAEL = 6677; + public static final int CHAELDAR_ABYSSALDEMONS = 6678; + public static final int NIEVE_ARAXYTES = 6679; + public static final int NIEVE_WARPEDCREATURES = 6680; + public static final int NIEVE_VAMPYRES = 6681; + public static final int NIEVE_BASILISKS = 6682; + public static final int NIEVE_DRAKES = 6683; + public static final int NIEVE_WYRMS = 6684; + public static final int NIEVE_REDDRAGONS = 6685; + public static final int NIEVE_LIZARDMEN = 6686; + public static final int NIEVE_MUTATEDZYGOMITES = 6687; + public static final int NIEVE_BRINERATS = 6688; + public static final int NIEVE_BLACKDRAGONS = 6689; + public static final int NIEVE_SKELETALWYVERNS = 6690; + public static final int NIEVE_FOSSILWYVERNS = 6691; + public static final int NIEVE_CAVEHORRORS = 6692; + public static final int NIEVE_TUROTH = 6693; + public static final int NIEVE_KURASK = 6694; + public static final int NIEVE_SCABARITES = 6695; + public static final int NIEVE_SUQAHS = 6696; + public static final int NIEVE_FIREGIANTS = 6697; + public static final int NIEVE_TROLLS = 6698; + public static final int NIEVE_ANKOU = 6699; + public static final int NIEVE_ABERRANTSPECTRES = 6700; + public static final int NIEVE_BLUEDRAGONS = 6701; + public static final int NIEVE_DARKBEASTS = 6702; + public static final int NIEVE_GREATERDEMONS = 6703; + public static final int NIEVE_DUSTDEVILS = 6704; + public static final int NIEVE_ELVES = 6705; + public static final int NIEVE_KALPHITE = 6706; + public static final int NIEVE_SMOKEDEVIL = 6707; + public static final int NIEVE_CAVEKRAKEN = 6708; + public static final int NIEVE_BLOODVELD = 6709; + public static final int NIEVE_GARGOYLES = 6710; + public static final int NIEVE_HELLHOUNDS = 6711; + public static final int NIEVE_AVIANSIES = 6712; + public static final int NIEVE_SPIRITUALGWD = 6713; + public static final int NIEVE_DAGANNOTH = 6714; + public static final int NIEVE_BLACKDEMONS = 6715; + public static final int NIEVE_NECHRYAEL = 6716; + public static final int NIEVE_ABYSSALDEMONS = 6717; + public static final int NIEVE_BOSS = 6718; + public static final int NIEVE_TZHAAR = 6719; + public static final int NIEVE_METALDRAGONS = 6720; + public static final int TURAEL_RATS = 6721; + public static final int TURAEL_MONKEYS = 6722; + public static final int TURAEL_COWS = 6723; + public static final int TURAEL_BIRDS = 6724; + public static final int TURAEL_SPIDERS = 6725; + public static final int TURAEL_DWARVES = 6726; + public static final int TURAEL_LIZARDS = 6727; + public static final int TURAEL_CAVEBUGS = 6728; + public static final int TURAEL_SCORPIONS = 6729; + public static final int TURAEL_ZOMBIES = 6730; + public static final int TURAEL_BATS = 6731; + public static final int TURAEL_BEARS = 6732; + public static final int TURAEL_GHOSTS = 6733; + public static final int TURAEL_CAVECRAWLERS = 6734; + public static final int TURAEL_MINOTAURS = 6735; + public static final int TURAEL_ICEFIENDS = 6736; + public static final int TURAEL_KALPHITE = 6737; + public static final int TURAEL_CAVESLIMES = 6738; + public static final int TURAEL_DOGS = 6739; + public static final int TURAEL_GOBLINS = 6740; + public static final int TURAEL_WOLVES = 6741; + public static final int TURAEL_SKELETONS = 6742; + public static final int TURAEL_CRAWLINGHANDS = 6743; + public static final int TURAEL_BANSHEES = 6744; + public static final int SPRIA_SOURHOGS = 6745; + public static final int SPRIA_RATS = 6746; + public static final int SPRIA_MONKEYS = 6747; + public static final int SPRIA_COWS = 6748; + public static final int SPRIA_BIRDS = 6749; + public static final int SPRIA_SPIDERS = 6750; + public static final int SPRIA_DWARVES = 6751; + public static final int SPRIA_LIZARDS = 6752; + public static final int SPRIA_CAVEBUGS = 6753; + public static final int SPRIA_SCORPIONS = 6754; + public static final int SPRIA_ZOMBIES = 6755; + public static final int SPRIA_BATS = 6756; + public static final int SPRIA_BEARS = 6757; + public static final int SPRIA_GHOSTS = 6758; + public static final int SPRIA_CAVECRAWLERS = 6759; + public static final int SPRIA_MINOTAURS = 6760; + public static final int SPRIA_ICEFIENDS = 6761; + public static final int SPRIA_KALPHITE = 6762; + public static final int SPRIA_CAVESLIMES = 6763; + public static final int SPRIA_DOGS = 6764; + public static final int SPRIA_GOBLINS = 6765; + public static final int SPRIA_WOLVES = 6766; + public static final int SPRIA_SKELETONS = 6767; + public static final int SPRIA_CRAWLINGHANDS = 6768; + public static final int SPRIA_BANSHEES = 6769; + } + } + + public static final class SlayerArea + { + public static final int ID = 115; + + /** + * integer + */ + public static final int COL_AREA_ID = 0; + + /** + * string + */ + public static final int COL_AREA_NAME_IN_HELPER = 3; + + public static final class Row + { + public static final int SLAYERAREA_ZEAHCATACOMBS = 6341; + public static final int SLAYERAREA_SMOKEDUNGEON = 6342; + public static final int SLAYERAREA_SMOKEDEVILDUNGEON = 6343; + public static final int SLAYERAREA_BRIMSTONEDUNGEON = 6344; + public static final int SLAYERAREA_STRONGHOLDDUNGEON = 6345; + public static final int SLAYERAREA_WATERFALLDUNGEON = 6346; + public static final int SLAYERAREA_BRIMHAVENDUNGEON = 6347; + public static final int SLAYERAREA_ISLEOFSOULS = 6348; + public static final int SLAYERAREA_GIANTSDEN = 6349; + public static final int SLAYERAREA_CHASMOFFIRE = 6350; + public static final int SLAYERAREA_TAVERLEYDUNGEON = 6351; + public static final int SLAYERAREA_WITCHHAVENDUNGEON = 6352; + public static final int SLAYERAREA_SLAYERTOWER = 6353; + public static final int SLAYERAREA_GODWARS = 6354; + public static final int SLAYERAREA_KALPHITELAIR = 6355; + public static final int SLAYERAREA_KALPHITECAVE = 6356; + public static final int SLAYERAREA_KRAKENCOVE = 6357; + public static final int SLAYERAREA_LIGHTHOUSE = 6358; + public static final int SLAYERAREA_WATERBIRTHISLAND = 6359; + public static final int SLAYERAREA_LIZARDMANCANYON = 6360; + public static final int SLAYERAREA_MOLCH = 6361; + public static final int SLAYERAREA_LIZARDMANSETTLEMENT = 6362; + public static final int SLAYERAREA_DEATHPLATEAU = 6363; + public static final int SLAYERAREA_TROLLSTRONGHOLD = 6364; + public static final int SLAYERAREA_KELDAGRIM = 6365; + public static final int SLAYERAREA_SOUTHQUIDAMORTEM = 6366; + public static final int SLAYERAREA_JATNEIT = 6367; + public static final int SLAYERAREA_FREMDUNGEON = 6368; + public static final int SLAYERAREA_MYTHSGUILD = 6369; + public static final int SLAYERAREA_MOURNERTUNNELS = 6370; + public static final int SLAYERAREA_LITHKRENVAULT = 6371; + public static final int SLAYERAREA_ANCIENTCAVERN = 6372; + public static final int SLAYERAREA_SECURITYSTRONGHOLD = 6373; + public static final int SLAYERAREA_FOSSILISLAND = 6374; + public static final int SLAYERAREA_OGREENCLAVE = 6375; + public static final int SLAYERAREA_BRINERATCAVERN = 6376; + public static final int SLAYERAREA_ZANARIS = 6377; + public static final int SLAYERAREA_EVILCHICKENLAIR = 6378; + public static final int SLAYERAREA_ABYSS = 6379; + public static final int SLAYERAREA_KEBOSSWAMP = 6380; + public static final int SLAYERAREA_KEBOSBATTLEFRONT = 6381; + public static final int SLAYERAREA_HOSIDIUSDUNGEON = 6382; + public static final int SLAYERAREA_IORWERTHDUNGEON = 6383; + public static final int SLAYERAREA_JORMUNGANDPRISON = 6384; + public static final int SLAYERAREA_DARKMEYER = 6385; + public static final int SLAYERAREA_SLEPE = 6386; + public static final int SLAYERAREA_MEIYERDITCHLABS = 6387; + public static final int SLAYERAREA_POISONWASTEDUNGEON = 6388; + public static final int SLAYERAREA_PERILOUSMOONSDUNGEON = 6389; + public static final int SLAYERAREA_TAPOYAUIK = 6390; + public static final int SLAYERAREA_ICEDUNGEON = 6391; + } + } + + public static final class SlayerTaskSublist + { + public static final int ID = 116; + + /** + * integer + */ + public static final int COL_SUBTABLE_ID = 0; + + /** + * integer + */ + public static final int COL_TASK_SUBTABLE_ID = 1; + + /** + * dbrow + */ + public static final int COL_TASK = 4; + + public static final class Row + { + public static final int SLAYER_BOSS_TASK_KREEARRA = 503; + public static final int SLAYER_BOSS_TASK_ZILYANA = 6154; + public static final int SLAYER_BOSS_TASK_GRAARDOR = 6156; + public static final int SLAYER_BOSS_TASK_KRILTSUTSAROTH = 6158; + public static final int SLAYER_BOSS_TASK_DAGANNOTHKINGS = 6160; + public static final int SLAYER_BOSS_TASK_MOLE = 6162; + public static final int SLAYER_BOSS_TASK_KQ = 6164; + public static final int SLAYER_BOSS_TASK_KBD = 6166; + public static final int SLAYER_BOSS_TASK_CALLISTO = 6168; + public static final int SLAYER_BOSS_TASK_VENENATIS = 6170; + public static final int SLAYER_BOSS_TASK_VETION = 6172; + public static final int SLAYER_BOSS_TASK_CHAOSELEMENTAL = 6174; + public static final int SLAYER_BOSS_TASK_CHAOSFANATIC = 6176; + public static final int SLAYER_BOSS_TASK_CRAZYARCHAEOLOGIST = 6178; + public static final int SLAYER_BOSS_TASK_SCORPIA = 6180; + public static final int SLAYER_BOSS_TASK_ZULRAH = 6182; + public static final int SLAYER_BOSS_TASK_BARROWSBROTHERS = 6184; + public static final int SLAYER_BOSS_TASK_CAVEKRAKENBOSS = 6186; + public static final int SLAYER_BOSS_TASK_SMOKEDEVILBOSS = 6188; + public static final int SLAYER_BOSS_TASK_CERBERUS = 6190; + public static final int SLAYER_BOSS_TASK_ABYSSALSIRE = 6192; + public static final int SLAYER_BOSS_TASK_GROTESQUEGUARDIANS = 6194; + public static final int SLAYER_BOSS_TASK_VORKATH = 6196; + public static final int SLAYER_BOSS_TASK_HYDRABOSS = 6198; + public static final int SLAYER_BOSS_TASK_SARACHNIS = 6200; + public static final int SLAYER_BOSS_TASK_MUSPAH = 6202; + public static final int SLAYER_BOSS_TASK_VARDORVIS = 6204; + public static final int SLAYER_BOSS_TASK_DUKESUCELLUS = 6206; + public static final int SLAYER_BOSS_TASK_WHISPERER = 6208; + public static final int SLAYER_BOSS_TASK_LEVIATHAN = 6210; + public static final int SLAYER_BOSS_TASK_ARAXXOR = 6212; + } + } + + public static final class SlayerUnlock + { + public static final int ID = 117; + + /** + * integer + */ + public static final int COL_BIT = 0; + + /** + * integer + */ + public static final int COL_COST = 1; + + /** + * obj + */ + public static final int COL_ICON = 2; + + /** + * string + */ + public static final int COL_NAME = 3; + + /** + * string + */ + public static final int COL_DESCRIPTION = 4; + + /** + * boolean + */ + public static final int COL_REFUNDABLE = 5; + + /** + * (integer, integer) + */ + public static final int COL_LIST_POSITION = 6; + + public static final class Row + { + public static final int SLAYER_REWARDS_AUTOKILL_GARGOYLES = 6392; + public static final int SLAYER_REWARDS_AUTOKILL_ROCKSLUGS = 6393; + public static final int SLAYER_REWARDS_AUTOKILL_DESERTLIZARDS = 6394; + public static final int SLAYER_REWARDS_AUTOKILL_ZYGOMITES = 6395; + public static final int SLAYER_HELM_UNLOCKED = 6396; + public static final int SLAYER_RING_UNLOCKED = 6397; + public static final int SLAYER_AMMO_UNLOCKED = 6398; + public static final int SLAYER_REWARDS_LONGER_DARKBEASTS = 6399; + public static final int SLAYER_REWARDS_LONGER_ANKOU = 6400; + public static final int SLAYER_REWARDS_LONGER_SUQAH = 6401; + public static final int SLAYER_REWARDS_LONGER_BLACKDRAGONS = 6402; + public static final int SLAYER_REWARDS_LONGER_METALDRAGONS = 6403; + public static final int SLAYER_REWARDS_LONGER_SPIRITUALGWD = 6404; + public static final int SLAYER_REWARDS_LONGER_ABYSSALDEMONS = 6405; + public static final int SLAYER_REWARDS_LONGER_BLACKDEMONS = 6406; + public static final int SLAYER_REWARDS_LONGER_GREATERDEMONS = 6407; + public static final int SLAYER_REWARDS_UNLOCK_REDDRAGONS = 6408; + public static final int SLAYER_REWARDS_UNLOCK_MITHRILDRAGONS = 6409; + public static final int SLAYER_REWARDS_UNLOCK_AVIANSIES = 6410; + public static final int SLAYER_REWARDS_UNLOCK_TZHAAR = 6411; + public static final int SLAYER_REWARDS_UNLOCK_BOSSES = 6412; + public static final int SLAYER_REWARDS_LONGER_BLOODVELD = 6413; + public static final int SLAYER_REWARDS_LONGER_ABERRANTSPECTRES = 6414; + public static final int SLAYER_REWARDS_LONGER_AVIANSIES = 6415; + public static final int SLAYER_REWARDS_LONGER_MITHRILDRAGONS = 6416; + public static final int SLAYER_REWARDS_LONGER_CAVEHORRORS = 6417; + public static final int SLAYER_REWARDS_LONGER_DUSTDEVILS = 6418; + public static final int SLAYER_REWARDS_LONGER_SKELETALWYVERNS = 6419; + public static final int SLAYER_REWARDS_LONGER_GARGOYLES = 6420; + public static final int SLAYER_REWARDS_LONGER_NECHRYAEL = 6421; + public static final int SLAYER_REWARDS_LONGER_CAVEKRAKEN = 6422; + public static final int SLAYER_REWARDS_UNLOCK_LIZARDMEN = 6423; + public static final int SLAYER_REWARDS_UNLOCK_HELM_BLACK = 6424; + public static final int SLAYER_REWARDS_UNLOCK_HELM_GREEN = 6425; + public static final int SLAYER_REWARDS_UNLOCK_HELM_RED = 6426; + public static final int SLAYER_REWARDS_UNLOCK_HELM_PURPLE = 6427; + public static final int SLAYER_REWARDS_UNLOCK_SUPERIORMOBS = 6428; + public static final int SLAYER_REWARDS_LONGER_SCABARITES = 6429; + public static final int SLAYER_REWARDS_UNLOCK_NOTEDMITHRILBARS = 6430; + public static final int SLAYER_REWARDS_LONGER_FOSSILWYVERNS = 6431; + public static final int SLAYER_REWARDS_LONGER_ADAMANTDRAGONS = 6432; + public static final int SLAYER_REWARDS_LONGER_RUNEDRAGONS = 6433; + public static final int SLAYER_REWARDS_UNLOCK_HELM_TURQUOISE = 6434; + public static final int SLAYER_REWARDS_UNLOCK_FOSSILWYVERNBLOCK = 6435; + public static final int SLAYER_REWARDS_UNLOCK_GROTESQUEKILLS = 6436; + public static final int SLAYER_REWARDS_UNLOCK_HELM_HYDRA = 6437; + public static final int SLAYER_REWARDS_UNLOCK_HELM_ARAXYTE = 6438; + public static final int SLAYER_REWARDS_LONGER_BASILISK = 6439; + public static final int SLAYER_REWARDS_UNLOCK_BASILISK = 6440; + public static final int SLAYER_REWARDS_UNLOCK_HELM_TWISTED = 6441; + public static final int SLAYER_REWARDS_LONGER_VAMPYRES = 6442; + public static final int SLAYER_REWARDS_UNLOCK_VAMPYRES = 6443; + public static final int SLAYER_REWARDS_UNLOCK_STORAGE = 6444; + public static final int SLAYER_REWARDS_UNLOCK_WILDERNESS_NEWTASKS = 6445; + public static final int SLAYER_REWARDS_LONGER_REVENANTS = 6446; + public static final int SLAYER_REWARDS_UNLOCK_WARPED_CREATURES = 6447; + public static final int SLAYER_REWARDS_LONGER_ARAXYTES = 6448; + public static final int SLAYER_REWARDS_LONGER_CUSTODIANS = 6449; + } + } /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/InterfaceID.java b/runelite-api/src/main/java/net/runelite/api/gameval/InterfaceID.java index e8beced1d09..642af3f255d 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/InterfaceID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/InterfaceID.java @@ -928,6 +928,7 @@ public final class InterfaceID public static final int MAGIC_HUNTER = 921; public static final int JIGSAW = 922; public static final int MESSAGEBOX_TITLED = 923; + public static final int SLAYER_REWARDS_TASK_LIST = 924; public static final class _100GuideEggsOverlay { @@ -5527,29 +5528,31 @@ public static final class Settings public static final int CLOSE = 0x0086_0004; public static final int TOOLTIP_INSIDE_IF_CLICKZONE = 0x0086_0005; public static final int TOOLTIP_INSIDE_IF = 0x0086_0006; - public static final int CONTENT = 0x0086_0007; - public static final int POPUP = 0x0086_0008; - public static final int SEARCHBAR_CONTAINER = 0x0086_0009; - public static final int SEARCHBAR_IMAGE = 0x0086_000a; - public static final int SEARCH_TEXT = 0x0086_000b; - public static final int SEARCH_TITLE = 0x0086_000c; - public static final int SETTINGS = 0x0086_000d; - public static final int SETTINGS_FRAME = 0x0086_000e; - public static final int CATEGORIES_FRAME = 0x0086_000f; - public static final int CATEGORIES = 0x0086_0010; - public static final int SETTINGS_SLIDERZONE = 0x0086_0011; - public static final int SETTINGS_CONTENT = 0x0086_0012; - public static final int SETTINGS_CLICKZONE = 0x0086_0013; - public static final int SCROLLBAR = 0x0086_0014; - public static final int SETTINGS_SLIDERCLICKZONE = 0x0086_0015; - public static final int DROPDOWN_CONTAINER = 0x0086_0016; - public static final int CATEGORIES_CLICKZONE = 0x0086_0017; - public static final int CATEGORIES_TABS = 0x0086_0018; - public static final int DROPDOWN_CLOSE = 0x0086_0019; - public static final int DROPDOWN_PANEL = 0x0086_001a; - public static final int BACKGROUND = 0x0086_001b; - public static final int DROPDOWN_BUTTONS = 0x0086_001c; - public static final int DROPDOWN_SCROLLBAR = 0x0086_001d; + public static final int DECLUTTER_BUTTON_CLICKZONE = 0x0086_0007; + public static final int CONTENT = 0x0086_0008; + public static final int POPUP = 0x0086_0009; + public static final int SEARCHBAR_CONTAINER = 0x0086_000a; + public static final int SEARCHBAR_IMAGE = 0x0086_000b; + public static final int SEARCH_TEXT = 0x0086_000c; + public static final int SEARCH_TITLE = 0x0086_000d; + public static final int SETTINGS = 0x0086_000e; + public static final int SETTINGS_FRAME = 0x0086_000f; + public static final int CATEGORIES_FRAME = 0x0086_0010; + public static final int CATEGORIES = 0x0086_0011; + public static final int SETTINGS_SLIDERZONE = 0x0086_0012; + public static final int SETTINGS_CONTENT = 0x0086_0013; + public static final int SETTINGS_CLICKZONE = 0x0086_0014; + public static final int SCROLLBAR = 0x0086_0015; + public static final int SETTINGS_SLIDERCLICKZONE = 0x0086_0016; + public static final int DROPDOWN_CONTAINER = 0x0086_0017; + public static final int CATEGORIES_CLICKZONE = 0x0086_0018; + public static final int CATEGORIES_TABS = 0x0086_0019; + public static final int DROPDOWN_CLOSE = 0x0086_001a; + public static final int DROPDOWN_PANEL = 0x0086_001b; + public static final int BACKGROUND = 0x0086_001c; + public static final int DROPDOWN_BUTTONS = 0x0086_001d; + public static final int DROPDOWN_SCROLLBAR = 0x0086_001e; + public static final int DECLUTTER_BUTTON = 0x0086_001f; } public static final class AideCompass @@ -15983,50 +15986,52 @@ public static final class SlayerRewards public static final int UNIVERSE = 0x01aa_0000; public static final int BORDER = 0x01aa_0001; public static final int CONFIRM = 0x01aa_0002; - public static final int CONFIRM_GRAPHIC0 = 0x01aa_0003; - public static final int CONFIRM_INFO = 0x01aa_0004; - public static final int BACK_BUTTON = 0x01aa_0005; - public static final int BACK_BUTTON_GRAPHIC0 = 0x01aa_0006; - public static final int BACK_TEXT = 0x01aa_0007; - public static final int CONFIRM_BUTTON = 0x01aa_0008; - public static final int CONFIRM_BUTTON_GRAPHIC0 = 0x01aa_0009; - public static final int CONFIRM_TEXT = 0x01aa_000a; - public static final int MAIN = 0x01aa_000b; - public static final int TABS = 0x01aa_000c; - public static final int CONTENTS = 0x01aa_000d; - public static final int UNLOCK = 0x01aa_000e; - public static final int UNLOCK_CONTENTS = 0x01aa_000f; - public static final int UNLOCK_SCROLLBAR = 0x01aa_0010; - public static final int EXTEND = 0x01aa_0011; - public static final int EXTEND_CONTENTS = 0x01aa_0012; - public static final int EXTEND_SCROLLBAR = 0x01aa_0013; - public static final int EXTEND_ETCETERA = 0x01aa_0014; - public static final int BUY = 0x01aa_0015; - public static final int BUY_CONTENTS = 0x01aa_0016; - public static final int BUY_ITEMS = 0x01aa_0017; - public static final int BUY_PRICES = 0x01aa_0018; - public static final int BUY_SCROLLBAR = 0x01aa_0019; - public static final int TASKS = 0x01aa_001a; - public static final int TASKS_STORED_CONTAINER = 0x01aa_001b; - public static final int TASKS_STORED_CONTAINER_RECT0 = 0x01aa_001c; - public static final int TASKS_INTRODUCTION = 0x01aa_001d; - public static final int TASKS_CURRENT_CONTAINER = 0x01aa_001e; - public static final int TASKS_CURRENT_CONTAINER_RECT0 = 0x01aa_001f; - public static final int TASKS_CURRENT_CONTAINER_RECT1 = 0x01aa_0020; - public static final int TASKS_CURRENT_CONTAINER_RECT2 = 0x01aa_0021; - public static final int TASKS_CURRENT_CONTAINER_TEXT3 = 0x01aa_0022; - public static final int TASKS_CURRENT = 0x01aa_0023; - public static final int TASKS_TEXT3 = 0x01aa_0024; - public static final int TASKS_SLOT_1 = 0x01aa_0025; - public static final int TASKS_SLOT_2 = 0x01aa_0026; - public static final int TASKS_SLOT_3 = 0x01aa_0027; - public static final int TASKS_SLOT_4 = 0x01aa_0028; - public static final int TASKS_SLOT_5 = 0x01aa_0029; - public static final int TASKS_SLOT_6 = 0x01aa_002a; - public static final int TASKS_SLOT_DIARY = 0x01aa_002b; - public static final int TASKS_STORED_CONTAINER_RECT1 = 0x01aa_002c; - public static final int TASKS_STORED_CONTAINER_RECT2 = 0x01aa_002d; - public static final int TASKS_STORED = 0x01aa_002e; + public static final int MAIN = 0x01aa_0003; + public static final int POPUP = 0x01aa_0004; + public static final int CONFIRM_GRAPHIC0 = 0x01aa_0005; + public static final int CONFIRM_INFO = 0x01aa_0006; + public static final int BACK_BUTTON = 0x01aa_0007; + public static final int BACK_BUTTON_GRAPHIC0 = 0x01aa_0008; + public static final int BACK_TEXT = 0x01aa_0009; + public static final int CONFIRM_BUTTON = 0x01aa_000a; + public static final int CONFIRM_BUTTON_GRAPHIC0 = 0x01aa_000b; + public static final int CONFIRM_TEXT = 0x01aa_000c; + public static final int TABS = 0x01aa_000d; + public static final int CONTENTS = 0x01aa_000e; + public static final int UNLOCK = 0x01aa_000f; + public static final int UNLOCK_CONTENTS = 0x01aa_0010; + public static final int UNLOCK_SCROLLBAR = 0x01aa_0011; + public static final int EXTEND = 0x01aa_0012; + public static final int EXTEND_CONTENTS = 0x01aa_0013; + public static final int EXTEND_SCROLLBAR = 0x01aa_0014; + public static final int EXTEND_ETCETERA = 0x01aa_0015; + public static final int BUY = 0x01aa_0016; + public static final int BUY_CONTENTS = 0x01aa_0017; + public static final int BUY_ITEMS = 0x01aa_0018; + public static final int BUY_PRICES = 0x01aa_0019; + public static final int BUY_SCROLLBAR = 0x01aa_001a; + public static final int TASKS = 0x01aa_001b; + public static final int VIEW_TASKS = 0x01aa_001c; + public static final int TASKS_STORED_CONTAINER = 0x01aa_001d; + public static final int TASKS_STORED_CONTAINER_RECT0 = 0x01aa_001e; + public static final int TASKS_INTRODUCTION = 0x01aa_001f; + public static final int TASKS_CURRENT_CONTAINER = 0x01aa_0020; + public static final int TASKS_CURRENT_CONTAINER_RECT0 = 0x01aa_0021; + public static final int TASKS_CURRENT_CONTAINER_RECT1 = 0x01aa_0022; + public static final int TASKS_CURRENT_CONTAINER_RECT2 = 0x01aa_0023; + public static final int TASKS_CURRENT_CONTAINER_TEXT3 = 0x01aa_0024; + public static final int TASKS_CURRENT = 0x01aa_0025; + public static final int TASKS_TEXT4 = 0x01aa_0026; + public static final int TASKS_SLOT_1 = 0x01aa_0027; + public static final int TASKS_SLOT_2 = 0x01aa_0028; + public static final int TASKS_SLOT_3 = 0x01aa_0029; + public static final int TASKS_SLOT_4 = 0x01aa_002a; + public static final int TASKS_SLOT_5 = 0x01aa_002b; + public static final int TASKS_SLOT_6 = 0x01aa_002c; + public static final int TASKS_SLOT_DIARY = 0x01aa_002d; + public static final int TASKS_STORED_CONTAINER_RECT1 = 0x01aa_002e; + public static final int TASKS_STORED_CONTAINER_RECT2 = 0x01aa_002f; + public static final int TASKS_STORED = 0x01aa_0030; } public static final class ScrollGodfather @@ -16535,7 +16540,11 @@ public static final class Itemsets public static final int FRAME = 0x01c3_0001; public static final int ITEMLIST = 0x01c3_0002; public static final int SCROLLBAR = 0x01c3_0003; - public static final int UNIVERSE_TEXT3 = 0x01c3_0004; + public static final int ITEMLIST_NO_ITEMS = 0x01c3_0004; + public static final int ITEMLIST_NO_ITEMS_RECT0 = 0x01c3_0005; + public static final int ITEMLIST_NO_ITEMS_TEXT1 = 0x01c3_0006; + public static final int FILTER_BUTTON = 0x01c3_0007; + public static final int UNIVERSE_TEXT5 = 0x01c3_0008; } public static final class Myq3StatuePainting @@ -25268,40 +25277,50 @@ public static final class WildyLootChest public static final int UNIVERSE = 0x02e6_0000; public static final int CONTENTS = 0x02e6_0001; public static final int FRAME = 0x02e6_0002; - public static final int ITEMS = 0x02e6_0003; - public static final int ITEMS_EMPTY = 0x02e6_0004; - public static final int ITEMS_EMPTY_TEXT = 0x02e6_0005; - public static final int VALUE = 0x02e6_0006; - public static final int DIVIDER = 0x02e6_0007; - public static final int DESTROY_LAYER = 0x02e6_0008; - public static final int DESTROY = 0x02e6_0009; - public static final int DESTROY_GRAPHIC = 0x02e6_000a; - public static final int DESTROY_DIVIDER = 0x02e6_000b; - public static final int WITHDRAWITEMGFX1 = 0x02e6_000c; - public static final int WITHDRAWITEMGFX2 = 0x02e6_000d; - public static final int WITHDRAWITEMGFX3 = 0x02e6_000e; - public static final int WITHDRAWITEM_TEXT = 0x02e6_000f; - public static final int WITHDRAWNOTEGFX1 = 0x02e6_0010; - public static final int WITHDRAWNOTEGFX2 = 0x02e6_0011; - public static final int WITHDRAWNOTEGFX3 = 0x02e6_0012; - public static final int WITHDRAWNOTE_TEXT = 0x02e6_0013; - public static final int WITHDRAWINV = 0x02e6_0014; - public static final int WITHDRAWINV_GRAPHIC = 0x02e6_0015; - public static final int INV_BUTTONS = 0x02e6_0016; - public static final int IRONMAN_WARNING = 0x02e6_0017; - public static final int WITHDRAW_AS = 0x02e6_0018; - public static final int WITHDRAWITEM = 0x02e6_0019; - public static final int WITHDRAWNOTE = 0x02e6_001a; - public static final int WITHDRAWINV_LAYER = 0x02e6_001b; - public static final int WITHDRAW_DIVIDER = 0x02e6_001c; - public static final int OCCUPIEDSLOTS = 0x02e6_001d; - public static final int OCCUPIED_DIVIDER = 0x02e6_001e; - public static final int CAPACITY = 0x02e6_001f; - public static final int WITHDRAWBANK_LAYER = 0x02e6_0020; - public static final int CONTROLS_GREYOUT_LAYER = 0x02e6_0021; + public static final int TAB_DIVIDER = 0x02e6_0003; + public static final int TABS = 0x02e6_0004; + public static final int ITEMS = 0x02e6_0005; + public static final int ITEMS_EMPTY = 0x02e6_0006; + public static final int ITEMS_EMPTY_TEXT = 0x02e6_0007; + public static final int DIVIDER_H1 = 0x02e6_0008; + public static final int DIVIDER_H2 = 0x02e6_0009; + public static final int DIVIDER_H3 = 0x02e6_000a; + public static final int DESTROY_LAYER = 0x02e6_000b; + public static final int DESTROY = 0x02e6_000c; + public static final int DESTROY_GRAPHIC = 0x02e6_000d; + public static final int DESTROY_DIVIDER = 0x02e6_000e; + public static final int WITHDRAW_AS = 0x02e6_000f; + public static final int WITHDRAWITEM = 0x02e6_0010; + public static final int WITHDRAWITEMGFX1 = 0x02e6_0011; + public static final int WITHDRAWITEMGFX2 = 0x02e6_0012; + public static final int WITHDRAWITEMGFX3 = 0x02e6_0013; + public static final int WITHDRAWITEM_TEXT = 0x02e6_0014; + public static final int WITHDRAWNOTE = 0x02e6_0015; + public static final int WITHDRAWNOTEGFX1 = 0x02e6_0016; + public static final int WITHDRAWNOTEGFX2 = 0x02e6_0017; + public static final int WITHDRAWNOTEGFX3 = 0x02e6_0018; + public static final int WITHDRAWNOTE_TEXT = 0x02e6_0019; + public static final int WITHDRAWINV_LAYER = 0x02e6_001a; + public static final int WITHDRAWINV = 0x02e6_001b; + public static final int WITHDRAWINV_GRAPHIC = 0x02e6_001c; + public static final int WITHDRAW_DIVIDER = 0x02e6_001d; + public static final int OCCUPIEDSLOTS = 0x02e6_001e; + public static final int OCCUPIED_DIVIDER = 0x02e6_001f; + public static final int CAPACITY = 0x02e6_0020; + public static final int WITHDRAWBANK_LAYER = 0x02e6_0021; public static final int WITHDRAWBANK = 0x02e6_0022; public static final int WITHDRAWBANK_GRAPHIC = 0x02e6_0023; - public static final int CONTROLS_GREYOUT = 0x02e6_0024; + public static final int CONTROLS_GREYOUT_LAYER = 0x02e6_0024; + public static final int CONTROLS_GREYOUT = 0x02e6_0025; + public static final int CONFIRM_LAYER = 0x02e6_0026; + public static final int GREYOUT = 0x02e6_0027; + public static final int CONFIRM_TITLE = 0x02e6_0028; + public static final int CONFIRM_BODY = 0x02e6_0029; + public static final int CONFIRM_BUTTONS = 0x02e6_002a; + public static final int DESTROY_CONFIRM = 0x02e6_002b; + public static final int DESTROY_CANCEL = 0x02e6_002c; + public static final int DESTROY_CONFIRM_TEXT = 0x02e6_002d; + public static final int DESTROY_CANCEL_TEXT = 0x02e6_002e; } public static final class GimSharedBankUnlocks @@ -30124,5 +30143,20 @@ public static final class MessageboxTitled public static final int CONTINUE = 0x039b_0004; public static final int TEXT = 0x039b_0005; } + + public static final class SlayerRewardsTaskList + { + public static final int UNIVERSE = 0x039c_0000; + public static final int CLAMP = 0x039c_0001; + public static final int FADER = 0x039c_0002; + public static final int WORLD = 0x039c_0003; + public static final int FRAME = 0x039c_0004; + public static final int CONTENT = 0x039c_0005; + public static final int BACKGROUND = 0x039c_0006; + public static final int FOREGROUND = 0x039c_0007; + public static final int DRAWABLE = 0x039c_0008; + public static final int CLICKABLE = 0x039c_0009; + public static final int SCROLLBAR = 0x039c_000a; + } /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/ItemID.java b/runelite-api/src/main/java/net/runelite/api/gameval/ItemID.java index 7e1ce10e267..f61f99bd142 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/ItemID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/ItemID.java @@ -33091,11 +33091,21 @@ public final class ItemID */ public static final int HUNTING_OJIBWAY_BIRD_SNARE = 10006; + /** + * Null + */ + public static final int CERT_HUNTING_OJIBWAY_BIRD_SNARE = 10007; + /** * Box trap */ public static final int HUNTING_BOX_TRAP = 10008; + /** + * Null + */ + public static final int CERT_HUNTING_BOX_TRAP = 10009; + /** * Butterfly net */ @@ -33142,6 +33152,11 @@ public final class ItemID */ public static final int MAGIC_IMP_BOX = 10025; + /** + * Null + */ + public static final int CERT_MAGIC_IMP_BOX = 10026; + /** * Imp-in-a-box(2) */ @@ -33162,6 +33177,11 @@ public final class ItemID */ public static final int HUNTING_SNARE = 10031; + /** + * Null + */ + public static final int CERT_HUNTING_SNARE = 10032; + /** * Chinchompa */ @@ -39273,7 +39293,7 @@ public final class ItemID public static final int SOTD = 11791; /** - * Agility jump + * Agility strength */ public static final int AGILITY_STRENGTH = 11793; @@ -79995,6 +80015,86 @@ public final class ItemID */ public static final int DOMPET = 31130; + /** + * Dinh's blazing bulwark + */ + public static final int ROTTEN_DINHS_BULWARK = 31132; + + /** + * Venator bow + */ + public static final int ROTTEN_VENATOR_BOW = 31133; + + /** + * Agility swing + */ + public static final int AGILITY_SWING = 31134; + + /** + * Agility swing + */ + public static final int AGILITY_SWING_AREA = 31135; + + /** + * Blood moon armour set + */ + public static final int SET_BLOOD_MOON_ARMOUR = 31136; + + /** + * Blue moon armour set + */ + public static final int SET_BLUE_MOON_ARMOUR = 31139; + + /** + * Eclipse moon armour set + */ + public static final int SET_ECLIPSE_MOON_ARMOUR = 31142; + + /** + * Torva armour set + */ + public static final int SET_TORVA_ARMOUR = 31145; + + /** + * Virtus armour set + */ + public static final int SET_VIRTUS_ARMOUR = 31148; + + /** + * Rock-shell armour set + */ + public static final int SET_DAGGANOTH_MELEE_ARMOUR = 31151; + + /** + * Skeletal armour set + */ + public static final int SET_DAGGANOTH_MAGE_ARMOUR = 31154; + + /** + * Spined armour set + */ + public static final int SET_DAGGANOTH_RANGE_ARMOUR = 31157; + + /** + * Swampbark armour set + */ + public static final int SET_SWAMPBARK_ARMOUR = 31160; + + /** + * Bloodbark armour set + */ + public static final int SET_BLOODBARK_ARMOUR = 31163; + + /** + * Mixed hide armour set + */ + public static final int SET_MIXED_HIDE_ARMOUR = 31166; + + /** + * Hueycoatl hide armour set + */ + public static final int SET_HUEY_ARMOUR = 31169; + public static final class Cert { public static final int TWPART1 = 7; @@ -82450,17 +82550,13 @@ public static final class Cert public static final int _3DOSEHUNTING = 10001; public static final int _2DOSEHUNTING = 10003; public static final int _1DOSEHUNTING = 10005; - public static final int HUNTING_OJIBWAY_BIRD_SNARE = 10007; - public static final int HUNTING_BOX_TRAP = 10009; public static final int HUNTING_BUTTERFLY_NET = 10011; public static final int BUTTERFLY_JAR = 10013; public static final int BUTTERFLY_JAR_WARLOCK = 10015; public static final int BUTTERFLY_JAR_SNOWY = 10017; public static final int BUTTERFLY_JAR_GLACIALIS = 10019; public static final int BUTTERFLY_JAR_RUBY = 10021; - public static final int MAGIC_IMP_BOX = 10026; public static final int HUNTING_TEASING_STICK = 10030; - public static final int HUNTING_SNARE = 10032; public static final int HUNTING_TROUSERS_TIGER = 10036; public static final int HUNTING_TORSO_TIGER = 10038; public static final int HUNTING_HAT_TIGER = 10040; @@ -84451,6 +84547,18 @@ public static final class Cert public static final int AVERNIC_TREADS = 31089; public static final int CONFLICTION_GAUNTLETS = 31107; public static final int EYE_OF_AYAK_UNCHARGED = 31116; + public static final int SET_BLOOD_MOON_ARMOUR = 31137; + public static final int SET_BLUE_MOON_ARMOUR = 31140; + public static final int SET_ECLIPSE_MOON_ARMOUR = 31143; + public static final int SET_TORVA_ARMOUR = 31146; + public static final int SET_VIRTUS_ARMOUR = 31149; + public static final int SET_DAGGANOTH_MELEE_ARMOUR = 31152; + public static final int SET_DAGGANOTH_MAGE_ARMOUR = 31155; + public static final int SET_DAGGANOTH_RANGE_ARMOUR = 31158; + public static final int SET_SWAMPBARK_ARMOUR = 31161; + public static final int SET_BLOODBARK_ARMOUR = 31164; + public static final int SET_MIXED_HIDE_ARMOUR = 31167; + public static final int SET_HUEY_ARMOUR = 31170; } public static final class Placeholder @@ -93531,6 +93639,18 @@ public static final class Placeholder public static final int TALTEKLAN_LETTER = 31122; public static final int BLUEBERRY_MUFFIN = 31129; public static final int DOMPET = 31131; + public static final int SET_BLOOD_MOON_ARMOUR = 31138; + public static final int SET_BLUE_MOON_ARMOUR = 31141; + public static final int SET_ECLIPSE_MOON_ARMOUR = 31144; + public static final int SET_TORVA_ARMOUR = 31147; + public static final int SET_VIRTUS_ARMOUR = 31150; + public static final int SET_DAGGANOTH_MELEE_ARMOUR = 31153; + public static final int SET_DAGGANOTH_MAGE_ARMOUR = 31156; + public static final int SET_DAGGANOTH_RANGE_ARMOUR = 31159; + public static final int SET_SWAMPBARK_ARMOUR = 31162; + public static final int SET_BLOODBARK_ARMOUR = 31165; + public static final int SET_MIXED_HIDE_ARMOUR = 31168; + public static final int SET_HUEY_ARMOUR = 31171; } /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/NpcID.java b/runelite-api/src/main/java/net/runelite/api/gameval/NpcID.java index 3f1b65fd46e..424488ba5a5 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/NpcID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/NpcID.java @@ -64262,5 +64262,20 @@ public final class NpcID * Giant demonic magic larva */ public static final int DOM_DEMONIC_ENERGY_GIANT_MAGE = 14789; + + /** + * Harvester + */ + public static final int KASTORI_HARVESTER_01 = 14790; + + /** + * Harvester + */ + public static final int KASTORI_HARVESTER_02 = 14791; + + /** + * Wizguard + */ + public static final int DEADMAN_GUARD_WIZARD = 14792; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/ObjectID1.java b/runelite-api/src/main/java/net/runelite/api/gameval/ObjectID1.java index 8bd95fd6634..9e0a221b7f5 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/ObjectID1.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/ObjectID1.java @@ -69200,5 +69200,65 @@ class ObjectID1 * Dragon's head */ public static final int DRAGONMOUNTEDHEAD_RED3_OFFSET2 = 57663; + + /** + * Inconspicuous rocks (master) + */ + public static final int HIDEY_UNBUILT_ROCK_MASTER_SHORTCUT = 57664; + + /** + * STASH (master) + */ + public static final int HIDEY_ROCK_MASTER_SHORTCUT = 57665; + + /** + * Rocks + */ + public static final int DARKM_WALL_ROCK_SHORTCUT = 57666; + + /** + * Zip line + */ + public static final int FOSSIL_ZIPWIRE_START = 57667; + + /** + * Spike + */ + public static final int FOSSIL_ZIPWIRE_GROUND_SPIKE = 57668; + public static final int FOSSIL_ZIPWIRE_RIPPLE_LEFT = 57669; + public static final int FOSSIL_ZIPWIRE_RIPPLE_RIGHT = 57670; + + /** + * Zip line + */ + public static final int FOSSIL_SLIDE_CENTER_NONACTIVE = 57671; + + /** + * Zip line + */ + public static final int FOSSIL_SLIDE_SIDE_NONACTIVE = 57672; + + /** + * Zip line + */ + public static final int FOSSIL_SLIDE_SIDE_MIRROR_NONACTIVE = 57673; + public static final int SLAYERTOWER_WINDOW_BROKEN_BARS = 57674; + public static final int SLAYER_IVY01_LARGE01_DARK01 = 57675; + public static final int SLAYER_IVY01_MEDIUM01_DARK01 = 57676; + + /** + * Ivy + */ + public static final int SLAYERTOWER_SHORTCUT_UP = 57677; + + /** + * Broken window + */ + public static final int SLAYERTOWER_WINDOW_SHORTCUT_DOWN = 57678; + + /** + * Broken window + */ + public static final int SLAYERTOWER_WINDOW_SHORTCUT_THROUGH = 57679; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/SpriteID.java b/runelite-api/src/main/java/net/runelite/api/gameval/SpriteID.java index f881092f0c5..ea2990b8d16 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/SpriteID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/SpriteID.java @@ -5798,6 +5798,9 @@ public static final class ToggleBox public static final int _2 = 2849; public static final int _3 = 2850; public static final int _4 = 2851; + public static final int _5 = 6411; + public static final int _6 = 6412; + public static final int _7 = 6413; } public static final class SettingsSlider @@ -9818,4 +9821,10 @@ public static final class JigsawButtons public static final int _0 = 6406; public static final int _1 = 6407; } + + public static final class GeModify + { + public static final int _0 = 6409; + public static final int _1 = 6410; + } } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/VarClientID.java b/runelite-api/src/main/java/net/runelite/api/gameval/VarClientID.java index 48a72d17465..f130acfe585 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/VarClientID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/VarClientID.java @@ -1264,5 +1264,6 @@ public final class VarClientID public static final int OSM_POPOUT_SCROLLPOS_GROUNDITEMS = 1257; public static final int BUFF_SURGE_POTION_START = 1258; public static final int HPBAR_HUD_LAST_NPC = 1259; + public static final int SLAYER_REWARDS_TAB_LAST_OPENED = 1260; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/VarPlayerID.java b/runelite-api/src/main/java/net/runelite/api/gameval/VarPlayerID.java index 3fd9edf4294..36c90222ea9 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/VarPlayerID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/VarPlayerID.java @@ -148,6 +148,7 @@ public final class VarPlayerID public static final int TROLL_QUEST = 317; public static final int TROLL_VARBIT = 318; public static final int TBWT_MAIN = 320; + public static final int TBWT_TIADECHE = 321; public static final int REGICIDE_QUEST = 328; public static final int REGICIDE_BITS = 329; public static final int REGICIDE_STILL_TOTAL = 330; @@ -515,6 +516,7 @@ public final class VarPlayerID public static final int II_PLAYER = 1018; public static final int TOPLEVEL_TEMP = 1021; public static final int BANK_CLOSING = 1022; + public static final int BRUT_BASE_1 = 1023; public static final int PATTERN_VARP = 1037; public static final int TRADEREMOVED = 1042; public static final int TRADEREMOVED_OTHER = 1043; @@ -2264,5 +2266,20 @@ public final class VarPlayerID public static final int DOM_LEVEL_HIGHSCORES = 4824; public static final int TOTAL_GEMSTONE_CRAB_KILLS = 4825; public static final int DOM_CURRENT_LEVEL_TEMP = 4828; + public static final int SLAYER_REWARDS_BLOCKED_2 = 4830; + public static final int SLAYER_REWARDS_BLOCKED_3 = 4831; + public static final int SLAYER_REWARDS_BLOCKED_4 = 4832; + public static final int SLAYER_REWARDS_BLOCKED_5 = 4833; + public static final int SLAYER_REWARDS_BLOCKED_6 = 4834; + public static final int SLAYER_REWARDS_BLOCKED_7 = 4835; + public static final int SLAYER_REWARDS_BLOCKED_8 = 4836; + public static final int SLAYER_REWARDS_BLOCKED_9 = 4837; + public static final int SLAYER_REWARDS_BLOCKED_10 = 4838; + public static final int SLAYER_REWARDS_BLOCKED_11 = 4839; + public static final int SLAYER_REWARDS_BLOCKED_12 = 4840; + public static final int SLAYER_REWARDS_BLOCKED_13 = 4841; + public static final int SLAYER_REWARDS_BLOCKED_DIARY_1 = 4842; + public static final int SLAYER_REWARDS_BLOCKED_DIARY_2 = 4843; + public static final int SLAYER_MISC = 4844; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/VarbitID.java b/runelite-api/src/main/java/net/runelite/api/gameval/VarbitID.java index 672f9c794b5..b17e546db8e 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/VarbitID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/VarbitID.java @@ -2337,10 +2337,6 @@ public final class VarbitID public static final int GUBLINCH_TREE_PLANTED = 3206; public static final int SLAYER_RING_UNLOCKED = 3207; public static final int SLAYER_AMMO_UNLOCKED = 3208; - public static final int SLAYER_BLOCKED_1 = 3209; - public static final int SLAYER_BLOCKED_2 = 3210; - public static final int SLAYER_BLOCKED_3 = 3211; - public static final int SLAYER_BLOCKED_4 = 3212; public static final int SMITHING_BAR_TYPE = 3216; public static final int MINIGAME_PANEL = 3217; public static final int PET_MENAGERIE_ABYSSALSIREPET = 3245; @@ -2801,6 +2797,18 @@ public final class VarbitID public static final int DRAGONSLAYER_ASKED_GENERALS = 3753; public static final int BANK_LEAVEPLACEHOLDERS = 3755; public static final int FLASHSIDE = 3756; + public static final int BRUT_FISHING_S = 3757; + public static final int BRUT_FISHING_R = 3758; + public static final int BRUT_FIRE = 3759; + public static final int BRUT_TRACKER = 3760; + public static final int BRUT_HERB_POTION = 3761; + public static final int BRUT_SMITH_SPEAR = 3762; + public static final int BRUT_SMITH_HASTA = 3763; + public static final int BRUT_CRAFT_SHIP = 3764; + public static final int BRUT_TRIED_POOL = 3765; + public static final int BRUT_TRIED_DOOR = 3766; + public static final int BRUT_PRAYER_TOTAL = 3767; + public static final int BRUT_ALL_CERT_DONE = 3768; public static final int SOUL_WARS_TUTORIAL = 3798; public static final int SOUL_WARS_TUTORIAL_SOUL_FRAGMENT = 3801; public static final int SOUL_WARS_MET_NOMAD = 3802; @@ -3195,7 +3203,6 @@ public final class VarbitID public static final int DEPOSITBOX_MODE = 4430; public static final int GE_SELECTEDSLOT = 4439; public static final int GE_PRICELIST_MODE = 4440; - public static final int SLAYER_BLOCKED_5 = 4441; public static final int GARGBOSS_HEALSPHERE1 = 4445; public static final int POH_MENAGERIE_CHOMPYPET = 4446; public static final int EYEGLO_CRYSTAL_SAW_CHARGES_EXTENDED = 4447; @@ -3554,7 +3561,6 @@ public final class VarbitID public static final int FREMENNIK_BASIC_TELEPORT = 5005; public static final int LUNAR_CONTACT_LASTID = 5006; public static final int PHARAOHS_SCEPTRE_MUMMY_MET = 5007; - public static final int SLAYER_BLOCKED_6 = 5023; public static final int MM2_PROGRESS = 5027; public static final int MM2_FOUND_NOTE = 5028; public static final int MM2_MAZE_RETURN = 5029; @@ -5621,6 +5627,7 @@ public final class VarbitID public static final int BONDS_PASSCODES_SINCE_DATE = 9605; public static final int GROUND_ITEMS_UNTRADEABLE_ITEMS_DISABLED = 9606; public static final int OPTION_LOOTTRACKER_DISPLAY_GROUP_MODE = 9607; + public static final int BRUT_FARMING_PLANTING = 9609; public static final int BRUT_FARMING_SMASHING = 9610; public static final int BRUT_MINIQUEST = 9613; public static final int BRUT_SMASH_POTS_AUTOMATICALLY = 9614; @@ -9977,7 +9984,6 @@ public final class VarbitID public static final int STAR_LAST_MINED_LOCATION = 15352; public static final int STAR_LAST_MINED_SIZE = 15353; public static final int STAR_TIME_SINCE_LANDED = 15354; - public static final int SLAYER_BLOCKED_DIARY = 15366; public static final int LEAGUE_TASK_KILL_A_SPIDER_BY_KICKING_IT = 15370; public static final int POH_DECOR_LEAGUES_4_POOL = 15372; public static final int RUNE_POUCH_TYPE_5 = 15373; @@ -12190,5 +12196,72 @@ public final class VarbitID public static final int PET_MENAGERIE_DOM = 17777; public static final int COLLECTION_BOSSES_DOM_COMPLETED = 17794; public static final int COLLECTION_OTHER_VALE_TOTEMS_COMPLETED = 17795; + public static final int OPTION_SETTINGS_DECLUTTER = 17796; + public static final int SETTINGS_FARMING_DIG_DISABLE_WARNING = 17797; + public static final int ITEMSETS_SHOW_ONLY_CRAFTABLE = 17803; + public static final int SLAYER_BLOCKED_6_OLD = 17805; + public static final int SLAYER_BLOCKED_5_OLD = 17806; + public static final int SLAYER_BLOCKED_1_OLD = 17807; + public static final int SLAYER_BLOCKED_2_OLD = 17808; + public static final int SLAYER_BLOCKED_3_OLD = 17809; + public static final int SLAYER_BLOCKED_4_OLD = 17810; + public static final int SLAYER_BLOCKED_DIARY_OLD = 17811; + public static final int SLAYER_BLOCKED_TURAEL_1 = 17812; + public static final int SLAYER_BLOCKED_TURAEL_2 = 17813; + public static final int SLAYER_BLOCKED_TURAEL_3 = 17814; + public static final int SLAYER_BLOCKED_TURAEL_4 = 17815; + public static final int SLAYER_BLOCKED_TURAEL_5 = 17816; + public static final int SLAYER_BLOCKED_TURAEL_6 = 17817; + public static final int SLAYER_BLOCKED_MAZCHNA_1 = 17818; + public static final int SLAYER_BLOCKED_MAZCHNA_2 = 17819; + public static final int SLAYER_BLOCKED_MAZCHNA_3 = 17820; + public static final int SLAYER_BLOCKED_MAZCHNA_4 = 17821; + public static final int SLAYER_BLOCKED_MAZCHNA_5 = 17822; + public static final int SLAYER_BLOCKED_MAZCHNA_6 = 17823; + public static final int SLAYER_BLOCKED_VANNAKA_1 = 17824; + public static final int SLAYER_BLOCKED_VANNAKA_2 = 17825; + public static final int SLAYER_BLOCKED_VANNAKA_3 = 17826; + public static final int SLAYER_BLOCKED_VANNAKA_4 = 17827; + public static final int SLAYER_BLOCKED_VANNAKA_5 = 17828; + public static final int SLAYER_BLOCKED_VANNAKA_6 = 17829; + public static final int SLAYER_BLOCKED_CHAELDAR_1 = 17830; + public static final int SLAYER_BLOCKED_CHAELDAR_2 = 17831; + public static final int SLAYER_BLOCKED_CHAELDAR_3 = 17832; + public static final int SLAYER_BLOCKED_CHAELDAR_4 = 17833; + public static final int SLAYER_BLOCKED_CHAELDAR_5 = 17834; + public static final int SLAYER_BLOCKED_CHAELDAR_6 = 17835; + public static final int SLAYER_BLOCKED_KONAR_1 = 17836; + public static final int SLAYER_BLOCKED_KONAR_2 = 17837; + public static final int SLAYER_BLOCKED_KONAR_3 = 17838; + public static final int SLAYER_BLOCKED_KONAR_4 = 17839; + public static final int SLAYER_BLOCKED_KONAR_5 = 17840; + public static final int SLAYER_BLOCKED_KONAR_6 = 17841; + public static final int SLAYER_BLOCKED_NIEVE_1 = 17842; + public static final int SLAYER_BLOCKED_NIEVE_2 = 17843; + public static final int SLAYER_BLOCKED_NIEVE_3 = 17844; + public static final int SLAYER_BLOCKED_NIEVE_4 = 17845; + public static final int SLAYER_BLOCKED_NIEVE_5 = 17846; + public static final int SLAYER_BLOCKED_NIEVE_6 = 17847; + public static final int SLAYER_BLOCKED_DURADEL_1 = 17848; + public static final int SLAYER_BLOCKED_DURADEL_2 = 17849; + public static final int SLAYER_BLOCKED_DURADEL_3 = 17850; + public static final int SLAYER_BLOCKED_DURADEL_4 = 17851; + public static final int SLAYER_BLOCKED_DURADEL_5 = 17852; + public static final int SLAYER_BLOCKED_DURADEL_6 = 17853; + public static final int SLAYER_BLOCKED_KRYSTILIA_1 = 17854; + public static final int SLAYER_BLOCKED_KRYSTILIA_2 = 17855; + public static final int SLAYER_BLOCKED_KRYSTILIA_3 = 17856; + public static final int SLAYER_BLOCKED_KRYSTILIA_4 = 17857; + public static final int SLAYER_BLOCKED_KRYSTILIA_5 = 17858; + public static final int SLAYER_BLOCKED_KRYSTILIA_6 = 17859; + public static final int SLAYER_BLOCKED_TURAEL_DIARY = 17860; + public static final int SLAYER_BLOCKED_MAZCHNA_DIARY = 17861; + public static final int SLAYER_BLOCKED_VANNAKA_DIARY = 17862; + public static final int SLAYER_BLOCKED_CHAELDAR_DIARY = 17863; + public static final int SLAYER_BLOCKED_KONAR_DIARY = 17864; + public static final int SLAYER_BLOCKED_NIEVE_DIARY = 17865; + public static final int SLAYER_BLOCKED_DURADEL_DIARY = 17866; + public static final int SLAYER_BLOCKED_KRYSTILIA_DIARY = 17867; + public static final int SLAYER_MASTER_IN_FOCUS = 17868; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-client/pom.xml b/runelite-client/pom.xml index b3ab234c730..41af5e18231 100644 --- a/runelite-client/pom.xml +++ b/runelite-client/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.11.14-SNAPSHOT + 1.11.15-SNAPSHOT client @@ -41,7 +41,7 @@ nogit false false - 1.9.8.8 + 1.9.9.1 nogit diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java index 22075df864f..58949957243 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java @@ -352,7 +352,7 @@ public List loadPlugins(List> plugins, BiConsumer) pluginClazz); newPlugins.add(plugin); - this.plugins.add(plugin); + add(plugin); } catch (PluginInstantiationException ex) { log.error("Error instantiating plugin!", ex); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/LayoutManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/LayoutManager.java index f11aae4a0be..3d857367b93 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/LayoutManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/LayoutManager.java @@ -395,41 +395,31 @@ else if (qty == 0) } // ~script669 - int opIdx = 0; - c.setAction(opIdx++, "Withdraw-" + suffix); + c.setAction(0, "Withdraw-" + suffix); if (quantityType != 0) { - c.setAction(opIdx++, "Withdraw-1"); + c.setAction(1, "Withdraw-1"); } - if (quantityType != 1) + c.setAction(2, "Withdraw-5"); + c.setAction(3, "Withdraw-10"); + if (requestQty > 0) { - c.setAction(opIdx++, "Withdraw-5"); + c.setAction(4, "Withdraw-" + requestQty); } - if (quantityType != 2) - { - c.setAction(opIdx++, "Withdraw-10"); - } - if (quantityType != 3 && requestQty > 0) - { - c.setAction(opIdx++, "Withdraw-" + requestQty); - } - c.setAction(opIdx++, "Withdraw-X"); - if (quantityType != 4) - { - c.setAction(opIdx++, "Withdraw-All"); - } - c.setAction(opIdx++, "Withdraw-All-but-1"); + c.setAction(5, "Withdraw-X"); + c.setAction(6, "Withdraw-All"); + c.setAction(7, "Withdraw-All-but-1"); if (!isPotStorage && client.getVarbitValue(VarbitID.BANK_BANKOPS_TOGGLE_ON) == 1 && def.getIntValue(ParamID.BANK_AUTOCHARGE) != -1) { - c.setAction(opIdx++, "Configure-Charges"); + c.setAction(8, "Configure-Charges"); } if (!isPotStorage && client.getVarbitValue(VarbitID.BANK_LEAVEPLACEHOLDERS) == 0) { - c.setAction(opIdx++, "Placeholder"); + c.setAction(9, "Placeholder"); } if (!isPotStorage) { - c.setAction(9, "Examine"); + c.setAction(10, "Examine"); } c.setOpacity(0); } @@ -701,7 +691,6 @@ void onMenuOptionClicked(MenuOptionClicked event) if (idx > -1) { potionStorage.prepareWidgets(); - menu.setIdentifier(mungeBankToPotionStore(menu.getIdentifier())); menu.setParam1(InterfaceID.Bankmain.POTIONSTORE_ITEMS); menu.setParam0(idx); } @@ -709,71 +698,6 @@ void onMenuOptionClicked(MenuOptionClicked event) } } - private int mungeBankToPotionStore(int ident) - { - // bank and potion store use different ops for different things, - // so we convert here for consistency for both users & menu entry swapper - int delta = ident; - int exclude = client.getVarbitValue(VarbitID.BANK_QUANTITY_TYPE); - if (delta == 1) - { - // Withdraw-<1|5|10|X|All> - return 1; - } - if (exclude != 0) - { - // Withdraw-1 - if (--delta == 1) - { - return 2; - } - } - if (exclude != 1) - { - // Withdraw-5 - if (--delta == 1) - { - return 3; - } - } - if (exclude != 2) - { - // Withdraw-10 - if (--delta == 1) - { - return 4; - } - } - if (exclude != 3 && client.getVarbitValue(VarbitID.BANK_REQUESTEDQUANTITY) > 0) - { - // Withdraw-<> - if (--delta == 1) - { - return 5; - } - } - // Withdraw-X - if (--delta == 1) - { - return 6; - } - if (exclude != 4) - { - // Withdraw-All - if (--delta == 1) - { - return 7; - } - } - // Withdraw-All-but-1 - if (--delta == 1) - { - return 8; - } - - return ident; - } - // adjust the bank scroll position so that some items are always in view private void scrollLayout(Layout l) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CoordinateClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CoordinateClue.java index 37a8d070b91..9b284a5727d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CoordinateClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CoordinateClue.java @@ -268,7 +268,7 @@ public class CoordinateClue extends ClueScroll implements LocationClueScroll .build(), CoordinateClue.builder() .itemId(ItemID.TRAIL_MEDIUM_SEXTANT_EXP15) - .location(new WorldPoint(3770, 3898, 0)) + .location(new WorldPoint(3764, 3900, 0)) .directions("On the small island north-east of Fossil Island's mushroom forest.") .build(), CoordinateClue.builder() @@ -524,7 +524,7 @@ public class CoordinateClue extends ClueScroll implements LocationClueScroll .build(), CoordinateClue.builder() .itemId(ItemID.TRAIL_HARD_SEXTANT_EXP11) - .location(new WorldPoint(3770, 3897, 0)) + .location(new WorldPoint(3765, 3899, 0)) .directions("Small Island north of Fossil Island.") .enemy(SARADOMIN_WIZARD) .build(), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/EmoteClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/EmoteClue.java index 4da50cf5b27..03375252527 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/EmoteClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/EmoteClue.java @@ -213,7 +213,7 @@ public class EmoteClue extends ClueScroll implements LocationClueScroll new EmoteClue(ItemID.TRAIL_MEDIUM_EMOTE_EXP2, "Shrug in Catherby bank. Yawn before you talk to me. Equip a maple longbow, green d'hide chaps and an iron med helm.", "Catherby", OUTSIDE_CATHERBY_BANK, new WorldPoint(2808, 3440, 0), SHRUG, YAWN, item(ItemID.MAPLE_LONGBOW), item(ItemID.DRAGONHIDE_CHAPS), item(ItemID.IRON_MED_HELM)), new EmoteClue(ItemID.TRAIL_CLUE_HARD_EMOTE001, "Shrug in the woods east of the Level 19 Wilderness Obelisk. Beware of double agents! Equip rune platelegs, an iron platebody and blue dragonhide vambraces.", "East of the Level 19 Wilderness Obelisk", EAST_OF_THE_LEVEL_19_WILDERNESS_OBELISK, new WorldPoint(3241, 3672, 0), DOUBLE_AGENT_65, SHRUG, item(ItemID.RUNE_PLATELEGS), item(ItemID.IRON_PLATEBODY), item(ItemID.BLUE_DRAGON_VAMBRACES)), new EmoteClue(ItemID.TRAIL_ELITE_EMOTE_EXP13, "Shrug in the Shayzien war tent. Equip a blue mystic robe bottom, a rune kiteshield and any bob shirt.", "Shayzien war tent", SHAYZIEN_WAR_TENT, new WorldPoint(1487, 3635, 0), SHRUG, item(ItemID.MYSTIC_ROBE_BOTTOM), item(ItemID.RUNE_KITESHIELD), range("Any bob shirt", ItemID.TRAIL_BOB_SHIRT_RED, ItemID.TRAIL_BOB_SHIRT_PURPLE)), - new EmoteClue(ItemID.TRAIL_CLUE_MASTER, "Slap your head in the centre of the Kourend catacombs. Beware of double agents! Equip arclight or emberlight along with the amulet of the damned.", "Kourend catacombs", CENTRE_OF_THE_CATACOMBS_OF_KOUREND, new WorldPoint(1663, 10045, 0), DOUBLE_AGENT_141, SLAP_HEAD, any("Arclight or Emberlight", item(ItemID.ARCLIGHT), item(ItemID.EMBERLIGHT)), any("Amulet of the damned", item(ItemID.DAMNED_AMULET_DEGRADED), item(ItemID.DAMNED_AMULET))), + new EmoteClue(ItemID.TRAIL_CLUE_MASTER, "Slap your head in the centre of the Kourend catacombs. Beware of double agents! Equip arclight or emberlight along with the amulet of the damned.", "Kourend catacombs", CENTRE_OF_THE_CATACOMBS_OF_KOUREND, new WorldPoint(1663, 10045, 0), DOUBLE_AGENT_141, SLAP_HEAD, any("Arclight or Emberlight", item(ItemID.ARCLIGHT), item(ItemID.ARCLIGHT_INACTIVE), item(ItemID.EMBERLIGHT)), any("Amulet of the damned", item(ItemID.DAMNED_AMULET_DEGRADED), item(ItemID.DAMNED_AMULET))), new EmoteClue(ItemID.TRAIL_CLUE_EASY_EMOTE020, "Spin at the crossroads north of Rimmington. Equip a green gnome hat, cream gnome top and leather chaps.", "Rimmington", ROAD_JUNCTION_NORTH_OF_RIMMINGTON, new WorldPoint(2981, 3276, 0), SPIN, item(ItemID.GNOME_HAT_GREEN), item(ItemID.GNOME_ROBETOP_CREAM), item(ItemID.LEATHER_CHAPS)), new EmoteClue(ItemID.TRAIL_CLUE_EASY_EMOTE009, "Spin in Draynor Manor by the fountain. Equip an iron platebody, studded leather chaps and a bronze full helmet.", "Draynor Manor", DRAYNOR_MANOR_BY_THE_FOUNTAIN, new WorldPoint(3088, 3336, 0), SPIN, item(ItemID.IRON_PLATEBODY), item(ItemID.STUDDED_CHAPS), item(ItemID.BRONZE_FULL_HELM)), new EmoteClue(ItemID.TRAIL_CLUE_MASTER, "Spin in front of the Soul altar. Beware of double agents! Equip a dragon pickaxe, helm of neitiznot and a pair of rune boots.", "Soul altar", SOUL_ALTAR, new WorldPoint(1815, 3856, 0), DOUBLE_AGENT_141, SPIN, any("Dragon or Crystal pickaxe", item(ItemID.DRAGON_PICKAXE), item(ItemID.DRAGON_PICKAXE_PRETTY), item(ItemID.INFERNAL_PICKAXE), item(ItemID.INFERNAL_PICKAXE_EMPTY), item(ItemID.ZALCANO_PICKAXE), item(ItemID.TRAILBLAZER_PICKAXE_NO_INFERNAL), item(ItemID.TRAILBLAZER_RELOADED_PICKAXE_NO_INFERNAL), item(ItemID.CRYSTAL_PICKAXE), item(ItemID.CRYSTAL_PICKAXE_INACTIVE), item(ItemID.TRAILBLAZER_PICKAXE), item(ItemID.TRAILBLAZER_RELOADED_PICKAXE), item(ItemID.TRAILBLAZER_PICKAXE_EMPTY), item(ItemID.TRAILBLAZER_RELOADED_PICKAXE_EMPTY)), item(ItemID.FRIS_KINGLY_HELM), item(ItemID.RUNE_ARMOURED_BOOTS)), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java index c97bb3f4a9a..603d5fb3044 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java @@ -61,7 +61,6 @@ import net.runelite.api.events.MenuOpened; import net.runelite.api.events.PostMenuSort; import net.runelite.api.gameval.InterfaceID; -import net.runelite.api.gameval.VarbitID; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetConfig; import net.runelite.api.widgets.WidgetConfigNode; @@ -1222,13 +1221,13 @@ private void configureUiSwap(MenuOpened event) { final int componentId = w.getId(); // on dynamic components, this is the parent layer id final int itemId = w.getIndex() == -1 ? -1 : ItemVariationMapping.map(w.getItemId()); - final int identifier = getMungedId(entry); + final int identifier = entry.getIdentifier(); final Integer leftClick = getUiSwapConfig(false, componentId, itemId); final Integer shiftClick = getUiSwapConfig(true, componentId, itemId); // find lowest op from the widget actions, to prevent setting a swap to the default left click // action regardless of what is swapped. - final int lowestOp = getMungedId(findLowestOp(w), w.getId(), w.getIndex()); + final int lowestOp = findLowestOp(w); // find highest op from the current menu, post any existing swaps, for inserting Reset int highestOp = 10; @@ -1240,7 +1239,7 @@ private void configureUiSwap(MenuOpened event) continue; } - highestOp = getMungedId(opEntry); + highestOp = opEntry.getIdentifier(); } if (!initialized) @@ -1392,13 +1391,12 @@ private boolean swapBank(Menu menu, MenuEntry menuEntry, MenuAction type) final boolean isDepositBoxPlayerInventory = widgetGroupId == InterfaceID.BANK_DEPOSITBOX; final boolean isChambersOfXericStorageUnitPlayerInventory = widgetGroupId == InterfaceID.RAIDS_STORAGE_SIDE; final boolean isGroupStoragePlayerInventory = widgetGroupId == InterfaceID.SHARED_BANK_SIDE; - int ident = getMungedId(menuEntry); // Swap to shift-click deposit behavior // Deposit- op 1 is the current withdraw amount 1/5/10/x for deposit box interface and chambers of xeric storage unit. // Deposit- op 2 is the current withdraw amount 1/5/10/x for bank interface if (shiftModifier() && config.bankDepositShiftClick() != ShiftDepositMode.OFF && type == MenuAction.CC_OP - && ident == (isDepositBoxPlayerInventory || isGroupStoragePlayerInventory || isChambersOfXericStorageUnitPlayerInventory ? 1 : 2) + && menuEntry.getIdentifier() == (isGroupStoragePlayerInventory || isChambersOfXericStorageUnitPlayerInventory ? 1 : 2) && (menuEntry.getOption().startsWith("Deposit-") || menuEntry.getOption().startsWith("Store") || menuEntry.getOption().startsWith("Donate"))) { ShiftDepositMode shiftDepositMode = config.bankDepositShiftClick(); @@ -1414,7 +1412,7 @@ private boolean swapBank(Menu menu, MenuEntry menuEntry, MenuAction type) // Swap to shift-click withdraw behavior // Deposit- op 1 is the current withdraw amount 1/5/10/x if (shiftModifier() && config.bankWithdrawShiftClick() != ShiftWithdrawMode.OFF - && type == MenuAction.CC_OP && ident == 1 + && type == MenuAction.CC_OP && menuEntry.getIdentifier() == 1 && menuEntry.getOption().startsWith("Withdraw")) { ShiftWithdrawMode shiftWithdrawMode = config.bankWithdrawShiftClick(); @@ -1445,7 +1443,7 @@ private void bankModeSwap(Menu menu, MenuAction entryType, int entryIdentifier) { MenuEntry entry = menuEntries[i]; - if (entry.getType() == entryType && getMungedId(entry) == entryIdentifier) + if (entry.getType() == entryType && entry.getIdentifier() == entryIdentifier) { // Raise the priority of the op so it doesn't get sorted later entry.setType(MenuAction.CC_OP); @@ -1607,7 +1605,7 @@ else if (parent != null && menuEntry.getOption().hashCode() == wornItemSwapConfi final int componentId = w.getId(); // on dynamic components, this is the parent layer id final int itemId = w.getIndex() == -1 ? -1 : ItemVariationMapping.map(w.getItemId()); final Integer op = getUiSwapConfig(shiftModifier(), componentId, itemId); - if (op != null && op == getMungedId(menuEntry)) + if (op != null && op == menuEntry.getIdentifier()) { swap(menu, menuEntries, index, menuEntries.length - 1); return; @@ -2011,79 +2009,4 @@ private void unsetUiSwapConfig(boolean shift, int componentId, int itemId) configManager.unsetConfiguration(MenuEntrySwapperConfig.GROUP, (shift ? UI_SHIFT_KEY_PREFIX : UI_KEY_PREFIX) + componentId + (itemId != -1 ? "_" + itemId : "")); } - - private int getMungedId(MenuEntry entry) - { - if ((entry.getType() == MenuAction.CC_OP || entry.getType() == MenuAction.CC_OP_LOW_PRIORITY)) - { - return getMungedId(entry.getIdentifier(), entry.getParam1(), entry.getParam0()); - } - - return entry.getIdentifier(); - } - - private int getMungedId(int ident, int widgetId, int childIdx) - { - if (widgetId == InterfaceID.Bankmain.ITEMS - && childIdx >= 0) - { - int delta = ident; - int exclude = client.getVarbitValue(VarbitID.BANK_QUANTITY_TYPE); - if (delta == 1) - { - return 1; - } - if (exclude != 0) - { - // Withdraw-1 - if (--delta == 1) - { - return 2; - } - } - if (exclude != 1) - { - // Withdraw-5 - if (--delta == 1) - { - return 3; - } - } - if (exclude != 2) - { - // Withdraw-10 - if (--delta == 1) - { - return 4; - } - } - if (exclude != 3 && client.getVarbitValue(VarbitID.BANK_REQUESTEDQUANTITY) > 0) - { - // Withdraw-<> - if (--delta == 1) - { - return 5; - } - } - // Withdraw-X - if (--delta == 1) - { - return 6; - } - if (exclude != 4) - { - // Withdraw-All - if (--delta == 1) - { - return 7; - } - } - // Withdraw-All-but-1 - if (--delta == 1) - { - return 8; - } - } - return ident; - } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/ShiftDepositMode.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/ShiftDepositMode.java index 1c8351f2173..3fd25165376 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/ShiftDepositMode.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/ShiftDepositMode.java @@ -31,11 +31,11 @@ @RequiredArgsConstructor public enum ShiftDepositMode { - DEPOSIT_1("Deposit-1", 3, 2, 1, 1), + DEPOSIT_1("Deposit-1", 3, 2, 2, 1), DEPOSIT_5("Deposit-5", 4, 3, 3, 2), DEPOSIT_10("Deposit-10", 5, 4, 4, 3), - DEPOSIT_X("Deposit-X", 6, 6, 5, 5), - DEPOSIT_ALL("Deposit-All", 8, 5, 7, 4), + DEPOSIT_X("Deposit-X", 6, 5, 5, 5), + DEPOSIT_ALL("Deposit-All", 8, 6, 7, 4), EXTRA_OP("Eat/Wield/Etc.", 9, 9, 0, 0), OFF("Off", 0, 0, 0, 0); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/ShiftWithdrawMode.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/ShiftWithdrawMode.java index 6e5d42a1fee..06a9e464e8d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/ShiftWithdrawMode.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/ShiftWithdrawMode.java @@ -40,7 +40,7 @@ public enum ShiftWithdrawMode // chambers of xeric storage units do not have an "all-but-1" option or a "placeholder" option, so these options will choose "Withdraw-all" // choose "Withdraw-all" instead when using the storage unit. WITHDRAW_ALL_BUT_1("Withdraw-All-But-1", MenuAction.CC_OP_LOW_PRIORITY, 8, 4), - WITHDRAW_PLACEHOLDER("Placeholder", MenuAction.CC_OP_LOW_PRIORITY, 9, 4), + WITHDRAW_PLACEHOLDER("Placeholder", MenuAction.CC_OP_LOW_PRIORITY, 10, 4), OFF("Off", MenuAction.UNKNOWN, 0, 0); private final String name; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/barrows/BarrowsScript.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/barrows/BarrowsScript.java index 72f9718eed9..343fbb9e645 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/barrows/BarrowsScript.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/barrows/BarrowsScript.java @@ -4,11 +4,9 @@ import net.runelite.api.coords.WorldPoint; import net.runelite.client.plugins.microbot.Microbot; import net.runelite.client.plugins.microbot.Script; -import net.runelite.client.plugins.microbot.pluginscheduler.model.PluginScheduleEntry; import net.runelite.client.plugins.microbot.util.Rs2InventorySetup; import net.runelite.client.plugins.microbot.util.bank.Rs2Bank; import net.runelite.client.plugins.microbot.util.bank.enums.BankLocation; -import net.runelite.client.plugins.microbot.util.camera.Rs2Camera; import net.runelite.client.plugins.microbot.util.combat.Rs2Combat; import net.runelite.client.plugins.microbot.util.coords.Rs2WorldArea; import net.runelite.client.plugins.microbot.util.dialogues.Rs2Dialogue; @@ -21,7 +19,6 @@ import net.runelite.client.plugins.microbot.util.magic.Rs2Magic; import net.runelite.client.plugins.microbot.util.math.Rs2Random; import net.runelite.client.plugins.microbot.util.misc.Rs2Food; -import net.runelite.client.plugins.microbot.util.misc.Rs2UiHelper; import net.runelite.client.plugins.microbot.util.npc.Rs2Npc; import net.runelite.client.plugins.microbot.util.npc.Rs2NpcModel; import net.runelite.client.plugins.microbot.util.player.Rs2Player; @@ -146,7 +143,7 @@ public boolean run(BarrowsConfig config, BarrowsPlugin plugin) { } } - if(!inTunnels && shouldBank == false) { + if(!inTunnels && !shouldBank) { for (BarrowsBrothers brother : BarrowsBrothers.values()) { Rs2WorldArea mound = brother.getHumpWP(); NeededPrayer = brother.whatToPray; @@ -238,10 +235,10 @@ public boolean run(BarrowsConfig config, BarrowsPlugin plugin) { Microbot.log("We're in the mound"); if(config.shouldPrayAgainstWeakerBrothers()){ - activatePrayer(); + activatePrayer(brother.getWhatToPray()); } else { if(!brother.getName().contains("Torag") && !brother.getName().contains("Guthan") && !brother.getName().contains("Verac")){ - activatePrayer(); + activatePrayer(brother.getWhatToPray()); } } @@ -278,61 +275,9 @@ public boolean run(BarrowsConfig config, BarrowsPlugin plugin) { break; } } - //The ghost should be here assuming its not the tunnel. - if(currentBrother != null && !Rs2Player.isInCombat()){ - while(!Rs2Player.isInCombat()){ - if (!super.isRunning()) { - break; - } - Microbot.log("Attacking the brother"); - Rs2Npc.interact(currentBrother, "Attack"); - sleepUntil(()-> Rs2Player.isInCombat(), Rs2Random.between(3000,6000)); - } - } - //fighting - if(Rs2Player.isInCombat()){ - Microbot.log("Fighting the brother."); - while(!currentBrother.isDead()){ - if (!super.isRunning()) { - break; - } - - if(config.shouldPrayAgainstWeakerBrothers()){ - activatePrayer(); - } else { - if(!brother.getName().contains("Torag") && !brother.getName().contains("Guthan") && !brother.getName().contains("Verac")){ - activatePrayer(); - } - } - - sleep(500,1500); - eatFood(); - outOfSupplies(config); - antiPatternDropVials(); - drinkforgottonbrew(); - - if(config.shouldPrayAgainstWeakerBrothers()){ - drinkPrayerPot(); - } else { - if(!brother.getName().contains("Torag") && !brother.getName().contains("Guthan") && !brother.getName().contains("Verac")){ - drinkPrayerPot(); - } - } - if(Microbot.getClient().getHintArrowNpc() == null){ - break; - } + checkForAndFightBrother(config); - if(currentBrother.isDead()){ - //anti pattern - disablePrayer(); - //anti pattern - break; - } - } - } - // at this point the brother should be dead and we should be free to leave. - // We could be in ahrims mound while ahrim is tunnel. We need to stop the bot from leaving the mound and going back in. if(brother.name.equals(WhoisTun) && brother.name.contains("Ahrim")) { if (Rs2Dialogue.isInDialogue()) { dialogueEnterTunnels(); @@ -345,7 +290,7 @@ public boolean run(BarrowsConfig config, BarrowsPlugin plugin) { } } - if(!WhoisTun.equals("Unknown") && shouldBank == false && !inTunnels){ + if(!WhoisTun.equals("Unknown") && !shouldBank && !inTunnels){ int howManyBrothersWereKilled = Microbot.getVarbitValue(Varbits.BARROWS_KILLED_DHAROK) + Microbot.getVarbitValue(Varbits.BARROWS_KILLED_GUTHAN) + Microbot.getVarbitValue(Varbits.BARROWS_KILLED_KARIL) + Microbot.getVarbitValue(Varbits.BARROWS_KILLED_TORAG) + Microbot.getVarbitValue(Varbits.BARROWS_KILLED_VERAC) + Microbot.getVarbitValue(Varbits.BARROWS_KILLED_AHRIM); if(howManyBrothersWereKilled <= 4){ Microbot.log("We seem to have missed someone, checking all mounds again."); @@ -357,6 +302,7 @@ public boolean run(BarrowsConfig config, BarrowsPlugin plugin) { stopFutureWalker(); for (BarrowsBrothers brother : BarrowsBrothers.values()) { if (brother.name.equals(WhoisTun)) { + NeededPrayer = brother.getWhatToPray(); // Found the tunnel brother's mound Rs2WorldArea tunnelMound = brother.getHumpWP(); @@ -416,10 +362,11 @@ public boolean run(BarrowsConfig config, BarrowsPlugin plugin) { if(!varbitCheckEnabled){ varbitCheckEnabled=true; } + leaveTheMound(); stuckInTunsCheck(); solvePuzzle(); - checkForBrother(config); + checkForAndFightBrother(config); eatFood(); outOfSupplies(config); gainRP(config); @@ -429,7 +376,7 @@ public boolean run(BarrowsConfig config, BarrowsPlugin plugin) { } solvePuzzle(); - checkForBrother(config); + checkForAndFightBrother(config); if(Rs2GameObject.findObjectById(20973) != null && Rs2GameObject.hasLineOfSight(Rs2GameObject.findObjectById(20973))){ //chest ID: 20973 @@ -439,9 +386,11 @@ public boolean run(BarrowsConfig config, BarrowsPlugin plugin) { if(Rs2GameObject.interact(chest, "Open")){ sleepUntil(()-> Microbot.getClient().getHintArrowNpc()!=null && Microbot.getClient().getHintArrowNpc().getWorldLocation().distanceTo(Rs2Player.getWorldLocation()) <= 5, Rs2Random.between(4000,6000)); + } else { + return; } - checkForBrother(config); + checkForAndFightBrother(config); if(Microbot.getClient().getHintArrowNpc()==null) { int io = 0; @@ -718,7 +667,6 @@ public void checkForWorldMap(){ public void closeBank(){ if(Rs2Bank.isOpen()){ while(Rs2Bank.isOpen()) { - if(!super.isRunning()){break;} if (Rs2Bank.closeBank()) { @@ -976,78 +924,65 @@ public void stopFutureWalker(){ } public void suppliesCheck(BarrowsConfig config){ if(!usingPoweredStaffs) { - if (Rs2Equipment.get(EquipmentInventorySlot.RING) == null || !Rs2Inventory.contains("Spade") || - Rs2Inventory.count(config.food().getName()) < 2 || (Rs2Inventory.get(config.selectedToBarrowsTPMethod().getToBarrowsTPMethodItemID()) == null) - || Rs2Inventory.count(it->it!=null&&it.getName().contains("Forgotten brew(")) < minForgottenBrews || - Rs2Inventory.count(config.prayerRestoreType().getPrayerRestoreTypeID()) < 1 || - Rs2Inventory.get(neededRune) == null || Rs2Inventory.get(neededRune).getQuantity() <= minRuneAmt || Rs2Player.getRunEnergy() <= 5) { - Microbot.log("We need to bank."); - if (Rs2Equipment.get(EquipmentInventorySlot.RING) == null) { - Microbot.log("We don't have a ring of dueling equipped."); - } - if (!Rs2Inventory.contains("Spade")) { - Microbot.log("We don't have a spade."); - } - if (Rs2Inventory.count(config.food().getName()) < 2) { - Microbot.log("We have less than 2 food."); - } - if ((Rs2Inventory.get(config.selectedToBarrowsTPMethod().getToBarrowsTPMethodItemID()) == null)) { - Microbot.log("We don't have a "+config.selectedToBarrowsTPMethod().getToBarrowsTPMethodItemName()); - } - if (Rs2Inventory.count(it->it!=null&&it.getName().contains("Forgotten brew(")) < minForgottenBrews) { - Microbot.log("We forgot our Forgotten brew."); - } - if (Rs2Inventory.count(config.prayerRestoreType().getPrayerRestoreTypeID()) < 1) { - Microbot.log("We don't have enough "+config.prayerRestoreType().getPrayerRestoreTypeName()); - } - if (Rs2Inventory.get(neededRune) == null || Rs2Inventory.get(neededRune).getQuantity() <= minRuneAmt) { - Microbot.log("We have less than 180 " + neededRune); - } - if(Rs2Player.getRunEnergy() <= 5){ - Microbot.log("We need more run energy "); - } + if (Rs2Inventory.get(neededRune) == null || Rs2Inventory.get(neededRune).getQuantity() <= minRuneAmt) { + Microbot.log("We have less than 180 " + neededRune); shouldBank = true; - } else { - shouldBank = false; + return; } } + if(usingPoweredStaffs){ - if(Rs2Equipment.get(EquipmentInventorySlot.RING)==null || !Rs2Inventory.contains("Spade") || - Rs2Inventory.count(config.food().getName())<2 || (Rs2Inventory.get(config.selectedToBarrowsTPMethod().getToBarrowsTPMethodItemID()) == null) - || Rs2Inventory.count(it->it!=null&&it.getName().contains("Forgotten brew(")) < minForgottenBrews || - Rs2Inventory.count(config.prayerRestoreType().getPrayerRestoreTypeID()) < 1 || outOfPoweredStaffCharges - || Rs2Player.getRunEnergy() <= 5){ - Microbot.log("We need to bank."); - if(Rs2Equipment.get(EquipmentInventorySlot.RING)==null){ - Microbot.log("We don't have a ring of dueling equipped."); - } - if(!Rs2Inventory.contains("Spade")){ - Microbot.log("We don't have a spade."); - } - if(Rs2Inventory.count(config.food().getName())<2){ - Microbot.log("We have less than 2 food."); - } - if((Rs2Inventory.get(config.selectedToBarrowsTPMethod().getToBarrowsTPMethodItemID()) ==null)){ - Microbot.log("We don't have a "+config.selectedToBarrowsTPMethod().getToBarrowsTPMethodItemName()); - } - if(Rs2Inventory.count(it->it!=null&&it.getName().contains("Forgotten brew(")) < minForgottenBrews){ - Microbot.log("We forgot our Forgotten brew."); - } - if(Rs2Inventory.count(config.prayerRestoreType().getPrayerRestoreTypeID()) < 1){ - Microbot.log("We don't have enough prayer potions."); - } - if(outOfPoweredStaffCharges){ - Microbot.log("We're out of staff charges."); - } - if(Rs2Player.getRunEnergy() <= 5){ - Microbot.log("We need more run energy "); - } + if(outOfPoweredStaffCharges){ + Microbot.log("We're out of staff charges."); shouldBank = true; - } else { - shouldBank = false; + return; } } + + if (Rs2Equipment.get(EquipmentInventorySlot.RING) == null) { + Microbot.log("We don't have a ring of dueling equipped."); + shouldBank = true; + return; + } + if (!Rs2Inventory.contains("Spade")) { + Microbot.log("We don't have a spade."); + shouldBank = true; + return; + } + if (Rs2Inventory.count(config.food().getName()) < 1) { + Microbot.log("We have less than 1 food."); + shouldBank = true; + return; + } + if ((Rs2Inventory.get(config.selectedToBarrowsTPMethod().getToBarrowsTPMethodItemID()) == null)) { + Microbot.log("We don't have a "+config.selectedToBarrowsTPMethod().getToBarrowsTPMethodItemName()); + shouldBank = true; + return; + } + if (Rs2Inventory.count(it->it!=null&&it.getName().contains("Forgotten brew(")) < minForgottenBrews) { + Microbot.log("We forgot our Forgotten brew."); + shouldBank = true; + return; + } + + String name = config.prayerRestoreType().getPrayerRestoreTypeName(); + if(name.contains("(")) name = config.prayerRestoreType().getPrayerRestoreTypeName().split("\\(")[0]; + String splitName = name; + if (Rs2Inventory.count(it->it!=null&&it.getName().toLowerCase().contains(splitName.toLowerCase())) < 1) { + Microbot.log("We don't have enough "+config.prayerRestoreType().getPrayerRestoreTypeName()); + shouldBank = true; + return; + } + + if(Rs2Player.getRunEnergy() <= 5){ + Microbot.log("We need more run energy "); + shouldBank = true; + return; + } + + shouldBank = false; } + public void stuckInTunsCheck(){ //needed for rare occasions where the walker messes up if(tunnelLoopCount < 1){ @@ -1107,21 +1042,11 @@ public void setAutoCast(){ } } - public void activatePrayer(){ - if(!Rs2Prayer.isPrayerActive(NeededPrayer)){ + public void activatePrayer(Rs2PrayerEnum prayer){ + if(!Rs2Prayer.isPrayerActive(prayer)){ Microbot.log("Turning on Prayer."); - while(!Rs2Prayer.isPrayerActive(NeededPrayer)){ - if (!super.isRunning()) { - break; - } - drinkPrayerPot(); - Rs2Prayer.toggle(NeededPrayer); - sleep(0,750); - if (Rs2Prayer.isPrayerActive(NeededPrayer)) { - Microbot.log("Praying"); - break; - } - } + drinkPrayerPot(); + Rs2Prayer.toggle(prayer); } } public void antiPatternEnableWrongPrayer(){ @@ -1222,8 +1147,8 @@ public void drinkPrayerPot(){ if(!skipThePot) { if (Rs2Player.getBoostedSkillLevel(Skill.PRAYER) <= Rs2Random.between(8, 15)) { - if (Rs2Inventory.contains(it -> it != null && it.getName().contains("Prayer potion") || it.getName().contains("moth mix") || it.getName().contains("Moonlight moth"))) { - Rs2ItemModel prayerpotion = Rs2Inventory.get(it -> it != null && it.getName().contains("Prayer potion") || it.getName().contains("moth mix") || it.getName().contains("Moonlight moth")); + if (Rs2Inventory.contains(it -> it != null && it.getName().contains("Prayer potion") || it.getName().contains("Moonlight moth"))) { + Rs2ItemModel prayerpotion = Rs2Inventory.get(it -> it != null && it.getName().contains("Prayer potion") || it.getName().contains("Moonlight moth")); String action = "Drink"; if (prayerpotion.getName().equals("Moonlight moth")) { action = "Release"; @@ -1235,7 +1160,7 @@ public void drinkPrayerPot(){ } } } - public void checkForBrother(BarrowsConfig config){ + public void checkForAndFightBrother(BarrowsConfig config){ NPC hintArrow = Microbot.getClient().getHintArrowNpc(); Rs2NpcModel currentBrother = null; if (hintArrow != null) { @@ -1249,43 +1174,40 @@ public void checkForBrother(BarrowsConfig config){ if(currentBrother.getName().contains("Karil")){ neededprayer = Rs2PrayerEnum.PROTECT_RANGE; } - //activate prayer - if(!Rs2Prayer.isPrayerActive(neededprayer)){ - Microbot.log("Turning on Prayer."); - while(!Rs2Prayer.isPrayerActive(neededprayer)){ - if (!super.isRunning()) { - break; - } - drinkPrayerPot(); - Rs2Prayer.toggle(neededprayer); - sleep(0,750); - if (Rs2Prayer.isPrayerActive(neededprayer)) { - //we made it in - Microbot.log("Praying"); - break; - } - } - } - //fight brother - if(currentBrother != null && !Rs2Player.isInCombat()){ - while(!Rs2Player.isInCombat()){ - if (!super.isRunning()) { - break; - } - Microbot.log("Attacking the brother"); - Rs2Npc.interact(currentBrother, "Attack"); - sleepUntil(()-> Rs2Player.isInCombat(), Rs2Random.between(3000,6000)); - } - } - //fighting + while(Microbot.getClient().getHintArrowNpc() != null){ Microbot.log("Fighting the brother."); if (!super.isRunning()) { break; } - if(!Rs2Npc.hasLineOfSight(currentBrother)){ - break; + + if(inTunnels) { + if (!Rs2Npc.hasLineOfSight(currentBrother)) { + Microbot.log("No LOS!"); + break; + } + } + + if(config.shouldPrayAgainstWeakerBrothers()){ + activatePrayer(neededprayer); + } else { + if(!currentBrother.getName().contains("Torag") && !currentBrother.getName().contains("Guthan") && !currentBrother.getName().contains("Verac")){ + activatePrayer(neededprayer); + } + } + + if(currentBrother != null && Rs2Player.getInteracting() != null && !Rs2Player.getInteracting().getName().equals(currentBrother.getName())){ + if(Rs2Npc.interact(currentBrother, "Attack")){ + sleepUntil(()-> Rs2Player.isInCombat(), Rs2Random.between(3000,6000)); + } + } else { + if(!Rs2Player.isInCombat()){ + if(Rs2Npc.interact(currentBrother, "Attack")){ + sleepUntil(()-> Rs2Player.isInCombat(), Rs2Random.between(3000,6000)); + } + } } + sleep(750,1500); drinkPrayerPot(); eatFood(); @@ -1293,38 +1215,15 @@ public void checkForBrother(BarrowsConfig config){ antiPatternDropVials(); drinkforgottonbrew(); - if(!Rs2Prayer.isPrayerActive(neededprayer)){ - Microbot.log("Turning on Prayer."); - while(!Rs2Prayer.isPrayerActive(neededprayer)){ - if (!super.isRunning()) { - break; - } - drinkPrayerPot(); - Rs2Prayer.toggle(neededprayer); - sleep(0,750); - if (Rs2Prayer.isPrayerActive(neededprayer)) { - //we made it in - Microbot.log("Praying"); - break; - } - } - } - - if(!Rs2Player.isInCombat()){ - if(Microbot.getClient().getHintArrowNpc() == null) { - // if we're not in combat and the brother isn't there. - Microbot.log("Breaking out hint arrow is null."); - break; - } else { - // if we're not in combat and the brother is there. - Microbot.log("Attacking the brother"); - Rs2Npc.interact(currentBrother, "Attack"); - sleepUntil(()-> Rs2Player.isInCombat(), Rs2Random.between(3000,6000)); - } + if(Microbot.getClient().getHintArrowNpc() == null) { + Microbot.log("Breaking out the brother is null."); + disablePrayer(); + break; } if(currentBrother.isDead()){ Microbot.log("Breaking out the brother is dead."); + disablePrayer(); sleepUntil(()-> Microbot.getClient().getHintArrowNpc() == null, Rs2Random.between(3000,6000)); break; } @@ -1355,24 +1254,15 @@ public void drinkforgottonbrew() { if(Rs2Inventory.contains(it->it!=null&&it.getName().contains("Forgotten brew"))) { if(Rs2Player.getBoostedSkillLevel(Skill.MAGIC) <= (Rs2Player.getRealSkillLevel(Skill.MAGIC) + Rs2Random.between(1,4))) { Microbot.log("Drinking a Forgotten brew."); - if(Rs2Inventory.contains("Forgotten brew(1)")) { - Rs2Inventory.interact("Forgotten brew(1)", "Drink"); - sleep(300,1000); - return; - } - if(Rs2Inventory.contains("Forgotten brew(2)")) { - Rs2Inventory.interact("Forgotten brew(2)", "Drink"); - sleep(300,1000); - return; - } - if(Rs2Inventory.contains("Forgotten brew(3)")) { - Rs2Inventory.interact("Forgotten brew(3)", "Drink"); - sleep(300,1000); - return; - } - if(Rs2Inventory.contains("Forgotten brew(4)")) { - Rs2Inventory.interact("Forgotten brew(4)", "Drink"); - sleep(300,1000); + String[] priorityOfBrews = {"Forgotten brew(1)", "Forgotten brew(2)", "Forgotten brew(3)", "Forgotten brew(4)" }; + + for (String brew : priorityOfBrews) { + if(Rs2Inventory.contains(brew)) { + if(Rs2Inventory.interact(brew, "Drink")){ + sleep(300,1000); + break; + } + } } } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/configs/SpecialAttackConfigs.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/configs/SpecialAttackConfigs.java index dae87c6d1ca..6563ceeb06e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/configs/SpecialAttackConfigs.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/configs/SpecialAttackConfigs.java @@ -4,7 +4,6 @@ import lombok.Setter; import net.runelite.api.EquipmentInventorySlot; import net.runelite.client.plugins.microbot.Microbot; -import net.runelite.client.plugins.microbot.nmz.NmzScript; import net.runelite.client.plugins.microbot.util.combat.Rs2Combat; import net.runelite.client.plugins.microbot.util.equipment.Rs2Equipment; import net.runelite.client.plugins.microbot.util.inventory.Rs2Inventory; @@ -93,7 +92,7 @@ public boolean useSpecWeapon(String name, int specEnergy, boolean is2H) { currentEquipment.addAll(Rs2Equipment.items()); } - if (Rs2Combat.getSpecEnergy() < specEnergy && !NmzScript.isHasSurge()) { + if (Rs2Combat.getSpecEnergy() < specEnergy) { Rs2ItemModel rs2Item = currentEquipment.stream().filter(x -> x.getSlot() == EquipmentInventorySlot.WEAPON.getSlotIdx()).findFirst().orElse(null); if (rs2Item != null && rs2Item.getId() != Rs2Equipment.get(EquipmentInventorySlot.WEAPON).getId()) { Rs2ItemModel weapon = currentEquipment diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/externalplugins/MicrobotPluginManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/externalplugins/MicrobotPluginManager.java index 066190ee9c5..79ac85278b0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/externalplugins/MicrobotPluginManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/externalplugins/MicrobotPluginManager.java @@ -394,31 +394,6 @@ public static File[] createSideloadingFolder() { return MICROBOT_PLUGINS.listFiles(); } - public void syncPlugins() - { - List installed = getInstalledPlugins(); - Map loadedByInternalName = pluginManager.getPlugins().stream() - .filter(p -> p.getClass().isAnnotationPresent(PluginDescriptor.class)) - .filter(p -> { - PluginDescriptor d = p.getClass().getAnnotation(PluginDescriptor.class); - return d != null && d.isExternal(); - }) - .collect(Collectors.toMap( - p -> p.getClass().getAnnotation(PluginDescriptor.class).name(), - p -> p, - (a, b) -> a - )); - - // Remove plugins that are loaded but not installed - for (Map.Entry entry : loadedByInternalName.entrySet()) - { - if (!installed.contains(entry.getKey())) - { - remove(entry.getKey()); - } - } - } - /** * Loads a single plugin from the sideload folder if not already loaded. */ @@ -490,7 +465,6 @@ private void loadSideLoadPlugin(String internalName) public void loadSideLoadPlugins() { - syncPlugins(); File[] files = createSideloadingFolder(); if (files == null) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/jad/ExampleScript.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/jad/ExampleScript.java deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/jad/JadConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/jad/JadConfig.java deleted file mode 100644 index 9254beb47ee..00000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/jad/JadConfig.java +++ /dev/null @@ -1,23 +0,0 @@ -package net.runelite.client.plugins.microbot.jad; - -import net.runelite.client.config.Config; -import net.runelite.client.config.ConfigGroup; -import net.runelite.client.config.ConfigInformation; -import net.runelite.client.config.ConfigItem; - -@ConfigGroup(JadConfig.configGroup) -@ConfigInformation("This plugin will pray switch jad attacks and attack healers. Supports up to 3 jads") -public interface JadConfig extends Config { - String configGroup = "micro-jadhelper"; - String shouldAttackHealers = "shouldAttackHealers"; - - @ConfigItem( - keyName = shouldAttackHealers, - name = "Attack Healers", - description = "Enable this setting to handle jad healers", - position = 0 - ) - default boolean shouldAttackHealers() { - return true; - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/jad/JadOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/jad/JadOverlay.java deleted file mode 100644 index d3d75dd9d4a..00000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/jad/JadOverlay.java +++ /dev/null @@ -1,41 +0,0 @@ -package net.runelite.client.plugins.microbot.jad; - -import net.runelite.client.plugins.microbot.Microbot; -import net.runelite.client.ui.overlay.OverlayPanel; -import net.runelite.client.ui.overlay.OverlayPosition; -import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.TitleComponent; - -import javax.inject.Inject; -import java.awt.*; - -public class JadOverlay extends OverlayPanel { - @Inject - JadOverlay(JadPlugin plugin) { - super(plugin); - setPosition(OverlayPosition.TOP_LEFT); - setNaughty(); - } - - @Override - public Dimension render(Graphics2D graphics) { - try { - panelComponent.setPreferredSize(new Dimension(200, 300)); - panelComponent.getChildren().add(TitleComponent.builder() - .text("Micro JAD Helper V" + JadScript.VERSION) - .color(Color.GREEN) - .build()); - - panelComponent.getChildren().add(LineComponent.builder().build()); - - panelComponent.getChildren().add(LineComponent.builder() - .left(Microbot.status) - .build()); - - - } catch (Exception ex) { - System.out.println(ex.getMessage()); - } - return super.render(graphics); - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/jad/JadPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/jad/JadPlugin.java deleted file mode 100644 index 8e88994f119..00000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/jad/JadPlugin.java +++ /dev/null @@ -1,51 +0,0 @@ -package net.runelite.client.plugins.microbot.jad; - -import com.google.inject.Provides; -import lombok.extern.slf4j.Slf4j; -import net.runelite.api.events.GameTick; -import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; -import net.runelite.client.plugins.Plugin; -import net.runelite.client.plugins.PluginDescriptor; -import net.runelite.client.ui.overlay.OverlayManager; - -import javax.inject.Inject; -import java.awt.*; - -@PluginDescriptor( - name = PluginDescriptor.Mocrosoft + "Jad Helper", - description = "Jad Prayer Switcher plugin", - tags = {"Jad", "microbot"}, - enabledByDefault = false -) -@Slf4j -public class JadPlugin extends Plugin { - @Inject - private JadConfig config; - @Provides - JadConfig provideConfig(ConfigManager configManager) { - return configManager.getConfig(JadConfig.class); - } - - @Inject - private OverlayManager overlayManager; - @Inject - private JadOverlay jadOverlay; - - @Inject - JadScript jadScript; - - - @Override - protected void startUp() throws AWTException { - if (overlayManager != null) { - overlayManager.add(jadOverlay); - } - jadScript.run(config); - } - - protected void shutDown() { - jadScript.shutdown(); - overlayManager.remove(jadOverlay); - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/jad/JadScript.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/jad/JadScript.java deleted file mode 100644 index aef2f9f41f7..00000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/jad/JadScript.java +++ /dev/null @@ -1,87 +0,0 @@ -package net.runelite.client.plugins.microbot.jad; - -import net.runelite.client.plugins.microbot.Microbot; -import net.runelite.client.plugins.microbot.Script; -import net.runelite.client.plugins.microbot.util.npc.Rs2Npc; -import net.runelite.client.plugins.microbot.util.npc.Rs2NpcModel; -import net.runelite.client.plugins.microbot.util.player.Rs2Player; -import net.runelite.client.plugins.microbot.util.prayer.Rs2Prayer; -import net.runelite.client.plugins.microbot.util.prayer.Rs2PrayerEnum; -import net.runelite.client.plugins.microbot.util.reflection.Rs2Reflection; - -import java.util.HashMap; -import java.util.Map; -import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; - -public class JadScript extends Script { - public static final String VERSION = "1.0.5"; - public static final Map npcAttackCooldowns = new HashMap<>(); - - public boolean run(JadConfig config) { - Microbot.enableAutoRunOn = false; - mainScheduledFuture = scheduledExecutorService.scheduleWithFixedDelay(() -> { - try { - if (!Microbot.isLoggedIn() || !super.run()) return; - - var jadNpcs = Rs2Npc.getNpcs("Jad", false); - - for (Rs2NpcModel jadNpc : jadNpcs.collect(Collectors.toList())) { - if (jadNpc == null) continue; - - long currentTimeMillis = System.currentTimeMillis(); - int npcIndex = jadNpc.getIndex(); - - if (npcAttackCooldowns.containsKey(npcIndex)) { - if (currentTimeMillis - npcAttackCooldowns.get(npcIndex) < 4600) { - continue; - } else { - npcAttackCooldowns.remove(npcIndex); - } - } - - int npcAnimation = jadNpc.getAnimation(); - handleJadPrayer(npcAnimation); - if (config.shouldAttackHealers()) { - handleHealerInteraction(); - npcAttackCooldowns.put(npcIndex, currentTimeMillis); - } - } - } catch (Exception ex) { - System.out.println(ex.getMessage()); - } - }, 0, 10, TimeUnit.MILLISECONDS); - return true; - } - - private void handleHealerInteraction() { - var healer = Rs2Npc.getNpcs("hurkot", false) - .filter(npc -> npc != null && npc.getInteracting() != Microbot.getClient().getLocalPlayer()) - .findFirst() - .orElse(null); - - if (healer != null) { - Rs2Npc.interact(healer, "attack"); - } else { - var npc = Rs2Player.getInteracting(); - if (npc == null || npc != null && npc.getName().contains("hurkot")) { - Rs2Npc.interact(Rs2Npc.getNpc("Jad", false), "attack"); - } - } - - } - - @Override - public void shutdown() { - super.shutdown(); - npcAttackCooldowns.clear(); - } - - private void handleJadPrayer(int animationId) { - if (animationId == 7592 || animationId == 2656) { - Rs2Prayer.toggle(Rs2PrayerEnum.PROTECT_MAGIC, true); - } else if (animationId == 7593 || animationId == 2652) { - Rs2Prayer.toggle(Rs2PrayerEnum.PROTECT_RANGE, true); - } - } -} \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/nmz/NmzConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/nmz/NmzConfig.java deleted file mode 100644 index 58a6e104051..00000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/nmz/NmzConfig.java +++ /dev/null @@ -1,153 +0,0 @@ -package net.runelite.client.plugins.microbot.nmz; - -import net.runelite.client.config.*; -import net.runelite.client.plugins.microbot.inventorysetups.InventorySetup; -import net.runelite.client.plugins.microbot.util.Rs2InventorySetup; - -@ConfigGroup("nmz") -@ConfigInformation( - "Before starting:
" + - "
    " + - "
  • Set up your inventory setup with required items
  • " + - "
  • Ensure you have GP in the coffer
  • " + - "
  • Have a previous dream setup already
  • " + - "
  • Turn ON Auto Retaliate in combat settings
  • " + - "
" + - "

These steps are essential for the plugin to function correctly.

" -) -public interface NmzConfig extends Config { - String GROUP = "Nmz"; - - @ConfigSection( - name = "General", - description = "General", - position = 0, - closedByDefault = false - ) - String generalSection = "general"; - - @ConfigItem( - keyName = "inventorySetup", - name = "Inventory Setup", - description = "Inventory Setup to use for NMZ", - position = 1, - section = generalSection - ) - default InventorySetup inventorySetup() { return null; } - - @ConfigItem( - keyName = "How many overload potions to use", - name = "How many overload potions to use", - description = "How many overload potions to use", - position = 3, - section = generalSection - ) - default int overloadPotionAmount() - { - return 8; - } - - @ConfigItem( - keyName = "How many absorption potions to use", - name = "How many absorption potions to use", - description = "How many absorption potions to use", - position = 4, - section = generalSection - ) - default int absorptionPotionAmount() - { - return 19; - } - - @ConfigItem( - keyName = "Stop after death", - name = "Stop after death", - description = "Stop after death", - position = 4, - section = generalSection - ) - default boolean stopAfterDeath() - { - return true; - } - - @ConfigItem( - keyName = "Use Zapper", - name = "Use Zapper", - description = "Use Zapper to increase nightmare zone points", - position = 4, - section = generalSection - ) - default boolean useZapper() - { - return false; - } - - @ConfigItem( - keyName = "Use Reccurent damage", - name = "Use Reccurent damage", - description = "Use reccurent damage to increase nightmare zone points", - position = 4, - section = generalSection - ) - default boolean useReccurentDamage() - { - return false; - } - - @ConfigItem( - keyName = "Use Power Surge", - name = "Use Power Surge", - description = "Use power surge for infinite special attack", - position = 4, - section = generalSection - ) - default boolean usePowerSurge() - { - return false; - } - @ConfigItem( - keyName = "Auto Prayer Potion", - name = "Auto drink prayer potion", - description = "Automatically drinks prayer potions", - position = 5, - section = generalSection - ) - default boolean togglePrayerPotions() - { - return false; - } - @ConfigItem( - keyName = "Random Mouse Movements", - name = "Random Mouse Movements", - description = "Random Mouse Movements", - position = 6, - section = generalSection - ) - default boolean randomMouseMovements() - { - return true; - } - @ConfigItem( - keyName = "Walk to center", - name = "Walk to center", - description = "Walk to center of nmz", - position = 7, - section = generalSection - ) - default boolean walkToCenter() - { - return true; - } - @ConfigItem( - keyName = "Randomly trigger rapid heal", - name = "Randomly trigger rapid heal", - description = "Will randomly trigger rapid heal", - position = 8, - section = generalSection - ) - default boolean randomlyTriggerRapidHeal() - { - return true; - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/nmz/NmzOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/nmz/NmzOverlay.java deleted file mode 100644 index c90c3c7ba03..00000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/nmz/NmzOverlay.java +++ /dev/null @@ -1,49 +0,0 @@ -package net.runelite.client.plugins.microbot.nmz; - -import net.runelite.api.Point; -import net.runelite.client.plugins.microbot.Microbot; -import net.runelite.client.ui.overlay.OverlayPanel; -import net.runelite.client.ui.overlay.OverlayPosition; -import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.TitleComponent; - -import javax.inject.Inject; -import java.awt.*; - -public class NmzOverlay extends OverlayPanel { - @Inject - NmzOverlay(NmzPlugin plugin) - { - super(plugin); - setPosition(OverlayPosition.TOP_LEFT); - setNaughty(); - } - @Override - public Dimension render(Graphics2D graphics) { - try { - panelComponent.setPreferredSize(new Dimension(200, 300)); - panelComponent.getChildren().add(TitleComponent.builder() - .text("Micro NMZ V" + NmzScript.version) - .color(Color.GREEN) - .build()); - - panelComponent.getChildren().add(LineComponent.builder().build()); - - panelComponent.getChildren().add(LineComponent.builder() - .left(Microbot.status) - .build()); - - panelComponent.getChildren().add(LineComponent.builder() - .left("Will self damage at: " + NmzScript.maxHealth) - .build()); - - panelComponent.getChildren().add(LineComponent.builder() - .left("Will drink absorption at: " + NmzScript.minAbsorption) - .build()); - - } catch(Exception ex) { - System.out.println(ex.getMessage()); - } - return super.render(graphics); - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/nmz/NmzPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/nmz/NmzPlugin.java deleted file mode 100644 index fc17b8139cc..00000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/nmz/NmzPlugin.java +++ /dev/null @@ -1,110 +0,0 @@ -package net.runelite.client.plugins.microbot.nmz; - -import com.google.inject.Provides; -import lombok.extern.slf4j.Slf4j; -import net.runelite.api.ChatMessageType; -import net.runelite.api.events.ActorDeath; -import net.runelite.api.events.ChatMessage; -import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; -import net.runelite.client.plugins.Plugin; -import net.runelite.client.plugins.PluginDescriptor; -import net.runelite.client.plugins.microbot.Microbot; -import net.runelite.client.plugins.microbot.pluginscheduler.api.SchedulablePlugin; -import net.runelite.client.plugins.microbot.pluginscheduler.condition.logical.AndCondition; -import net.runelite.client.plugins.microbot.pluginscheduler.condition.logical.LogicalCondition; -import net.runelite.client.plugins.microbot.pluginscheduler.event.PluginScheduleEntrySoftStopEvent; -import net.runelite.client.plugins.microbot.util.Global; -import net.runelite.client.plugins.microbot.util.gameobject.Rs2GameObject; -import net.runelite.client.ui.overlay.OverlayManager; - -import javax.inject.Inject; -import java.awt.*; - -@PluginDescriptor( - name = PluginDescriptor.Mocrosoft + "Nmz", - description = "Microbot NMZ", - tags = {"nmz", "microbot"}, - enabledByDefault = false -) -@Slf4j -public class NmzPlugin extends Plugin implements SchedulablePlugin{ - @Inject - private NmzConfig config; - - @Provides - NmzConfig provideConfig(ConfigManager configManager) { - return configManager.getConfig(NmzConfig.class); - } - - @Inject - private OverlayManager overlayManager; - @Inject - private NmzOverlay nmzOverlay; - - @Inject - NmzScript nmzScript; - @Inject - PrayerPotionScript prayerPotionScript; - private LogicalCondition stopCondition = new AndCondition(); - - @Override - protected void startUp() throws AWTException { - if (overlayManager != null) { - overlayManager.add(nmzOverlay); - } - nmzScript.run(); - if (config.togglePrayerPotions()) { - prayerPotionScript.run(config); - } - } - - protected void shutDown() { - nmzScript.shutdown(); - overlayManager.remove(nmzOverlay); - NmzScript.setHasSurge(false); - } - - @Subscribe - public void onPluginScheduleEntrySoftStopEvent(PluginScheduleEntrySoftStopEvent event) { - if (event.getPlugin() == this) { - nmzScript.shutdown(); - Microbot.getClientThread().runOnSeperateThread(() -> { - if(!nmzScript.isOutside()) { - Rs2GameObject.interact(26276, "Drink"); - Global.sleepUntil(nmzScript::isOutside, 10000); - } - Microbot.stopPlugin(this); - return true; - }); - } - } - - @Subscribe - public void onActorDeath(ActorDeath actorDeath) { - if (config.stopAfterDeath() && actorDeath.getActor() == Microbot.getClient().getLocalPlayer()) { - Microbot.getClientThread().runOnSeperateThread(() -> { - Global.sleepUntil(nmzScript::isOutside, 10000); - Microbot.stopPlugin(this); - return true; - }); - } - } - - @Subscribe - public void onChatMessage(ChatMessage event) { - if (event.getType() == ChatMessageType.GAMEMESSAGE) { - if (event.getMessage().equalsIgnoreCase("you feel a surge of special attack power!")) { - NmzScript.setHasSurge(true); - } else if (event.getMessage().equalsIgnoreCase("your surge of special attack power has ended.")) { - NmzScript.setHasSurge(false); - } - } - } - @Override - public LogicalCondition getStopCondition() { - // Create a new stop condition - return this.stopCondition; - } - -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/nmz/NmzScript.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/nmz/NmzScript.java deleted file mode 100644 index 0bca42354e0..00000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/nmz/NmzScript.java +++ /dev/null @@ -1,379 +0,0 @@ -package net.runelite.client.plugins.microbot.nmz; - -import lombok.Getter; -import lombok.Setter; -import net.runelite.api.*; -import net.runelite.api.coords.WorldPoint; -import net.runelite.api.widgets.Widget; -import net.runelite.client.plugins.microbot.Microbot; -import net.runelite.client.plugins.microbot.Script; -import net.runelite.client.plugins.microbot.util.Rs2InventorySetup; -import net.runelite.client.plugins.microbot.util.bank.Rs2Bank; -import net.runelite.client.plugins.microbot.util.combat.Rs2Combat; -import net.runelite.client.plugins.microbot.util.gameobject.Rs2GameObject; -import net.runelite.client.plugins.microbot.util.inventory.Rs2Inventory; -import net.runelite.client.plugins.microbot.util.keyboard.Rs2Keyboard; -import net.runelite.client.plugins.microbot.util.math.Rs2Random; -import net.runelite.client.plugins.microbot.util.npc.Rs2Npc; -import net.runelite.client.plugins.microbot.util.npc.Rs2NpcModel; -import net.runelite.client.plugins.microbot.util.player.Rs2Player; -import net.runelite.client.plugins.microbot.util.prayer.Rs2Prayer; -import net.runelite.client.plugins.microbot.util.prayer.Rs2PrayerEnum; -import net.runelite.client.plugins.microbot.util.security.Encryption; -import net.runelite.client.plugins.microbot.util.security.Login; -import net.runelite.client.plugins.microbot.util.walker.Rs2Walker; -import net.runelite.client.plugins.microbot.util.widget.Rs2Widget; - -import javax.inject.Inject; -import java.util.concurrent.TimeUnit; - -import static net.runelite.api.ObjectID.OVERLOAD_POTION; -import static net.runelite.api.Varbits.NMZ_ABSORPTION; - -public class NmzScript extends Script { - - public static double version = 2.2; - - private NmzConfig config; - private NmzPlugin plugin; - - public static boolean useOverload = false; - - public static PrayerPotionScript prayerPotionScript; - - public static int maxHealth = Rs2Random.between(2, 8); - public static int minAbsorption = Rs2Random.between(100, 300); - - private WorldPoint center = new WorldPoint(Rs2Random.between(2270, 2276), Rs2Random.between(4693, 4696), 0); - - @Getter - @Setter - private static boolean hasSurge = false; - private boolean initialized = false; - private long lastCombatTime = 0; - - public boolean canStartNmz() { - return Rs2Inventory.count("overload (4)") == config.overloadPotionAmount() || - (Rs2Inventory.hasItem("prayer potion") && config.togglePrayerPotions()); - } - - @Inject - public NmzScript(NmzPlugin plugin, NmzConfig config) { - this.plugin = plugin; - this.config = config; - } - - - public boolean run() { - prayerPotionScript = new PrayerPotionScript(); - Microbot.getSpecialAttackConfigs().setSpecialAttack(true); - mainScheduledFuture = scheduledExecutorService.scheduleWithFixedDelay(() -> { - try { - if (!Microbot.isLoggedIn()) return; - if (!initialized) { - initialized = true; - if (config.inventorySetup() != null) { - var inventorySetup = new Rs2InventorySetup(config.inventorySetup(), mainScheduledFuture); - if (!inventorySetup.doesInventoryMatch() || !inventorySetup.doesEquipmentMatch()) { - Rs2Walker.walkTo(Rs2Bank.getNearestBank().getWorldPoint(), 20); - if (!inventorySetup.loadEquipment() || !inventorySetup.loadInventory()) { - Microbot.log("Failed to load inventory setup"); - Microbot.stopPlugin(plugin); - return; - } - Rs2Bank.closeBank(); - } - } - Rs2Walker.walkTo(new WorldPoint(2609, 3114, 0), 5); - } - if (!super.run()) return; - Rs2Combat.enableAutoRetialiate(); - if (Rs2Random.between(1, 50) == 1 && config.randomMouseMovements()) { - Microbot.getMouse().click(Rs2Random.between(0, Microbot.getClient().getCanvasWidth()), Rs2Random.between(0, Microbot.getClient().getCanvasHeight()), true); - } - boolean isOutsideNmz = isOutside(); - useOverload = Microbot.getClient().getBoostedSkillLevel(Skill.RANGED) == Microbot.getClient().getRealSkillLevel(Skill.RANGED) && config.overloadPotionAmount() > 0; - if (isOutsideNmz) { - Rs2Walker.setTarget(null); - handleOutsideNmz(); - } else { - handleInsideNmz(); - } - } catch (Exception ex) { - Microbot.logStackTrace(this.getClass().getSimpleName(), ex); - } - }, 0, 1000, TimeUnit.MILLISECONDS); - return true; - } - - @Override - public void shutdown() { - super.shutdown(); - initialized = false; - } - - public boolean isOutside() { - return Microbot.getClient().getLocalPlayer().getWorldLocation().distanceTo(new WorldPoint(2602, 3116, 0)) < 20; - } - - public void handleOutsideNmz() { - boolean hasStartedDream = Microbot.getVarbitValue(3946) > 0; - if (config.togglePrayerPotions()) - Rs2Prayer.toggle(Rs2PrayerEnum.PROTECT_MELEE, false); - if (!hasStartedDream) { - startNmzDream(); - } else { - final String overload = "Overload (4)"; - final String absorption = "Absorption (4)"; - storePotions(OVERLOAD_POTION, "overload", config.overloadPotionAmount()); - storePotions(ObjectID.ABSORPTION_POTION, "absorption", config.absorptionPotionAmount()); - handleStore(); - fetchOverloadPotions(OVERLOAD_POTION, overload, config.overloadPotionAmount()); - if (Rs2Inventory.hasItemAmount(overload, config.overloadPotionAmount())) { - fetchPotions(ObjectID.ABSORPTION_POTION, absorption, config.absorptionPotionAmount()); - } - } - if (canStartNmz()) { - consumeEmptyVial(); - } else { - sleep(2000); - } - } - - public void handleInsideNmz() { - if (Rs2Player.isInCombat()) { - lastCombatTime = System.currentTimeMillis(); - } - if (!Rs2Player.isInCombat() && System.currentTimeMillis() - lastCombatTime > 20000) { - Rs2NpcModel closestNpc = Rs2Npc.getNearestNpcWithAction("Attack"); - - if (closestNpc != null) { - Rs2Npc.interact(closestNpc, "Attack"); - } - } - prayerPotionScript.run(); - if (config.togglePrayerPotions()) - Rs2Prayer.toggle(Rs2PrayerEnum.PROTECT_MELEE, true); - if (!useOrbs() && config.walkToCenter()) { - walkToCenter(); - } - useOverloadPotion(); - manageSelfHarm(); - useAbsorptionPotion(); - } - - private void walkToCenter() { - if (center.distanceTo(Rs2Player.getWorldLocation()) > 4) { - Rs2Walker.walkTo(center, 6); - } - } - - public void startNmzDream() { - // Set new center so that it is random for every time joining the dream - center = new WorldPoint(Rs2Random.between(2270, 2276), Rs2Random.between(4693, 4696), 0); - Rs2Npc.interact(NpcID.DOMINIC_ONION, "Dream"); - sleepUntil(() -> Rs2Widget.hasWidget("Which dream would you like to experience?")); - Rs2Widget.clickWidget("Previous:"); - sleepUntil(() -> Rs2Widget.hasWidget("Click here to continue")); - Rs2Widget.clickWidget("Click here to continue"); - sleepUntil(() -> Rs2Widget.hasWidget("Agree to pay")); - if (Rs2Widget.hasWidget("Agree to pay")) { - Rs2Keyboard.typeString("1"); - Rs2Keyboard.enter(); - } - } - - public boolean useOrbs() { - boolean orbHasSpawned = false; - if (config.useZapper()) { - orbHasSpawned = interactWithObject(ObjectID.ZAPPER_26256); - } - if (config.useReccurentDamage()) { - orbHasSpawned = interactWithObject(ObjectID.RECURRENT_DAMAGE); - } - - if (config.usePowerSurge()) { - orbHasSpawned = interactWithObject(ObjectID.POWER_SURGE); - } - - return orbHasSpawned; - } - - public boolean interactWithObject(int objectId) { - TileObject rs2GameObject = Rs2GameObject.findObjectById(objectId); - if (rs2GameObject != null) { - Rs2Walker.walkFastLocal(rs2GameObject.getLocalLocation()); - sleepUntil(() -> Microbot.getClient().getLocalPlayer().getWorldLocation().distanceTo(rs2GameObject.getWorldLocation()) < 5); - Rs2GameObject.interact(objectId); - return true; - } - return false; - } - - private void fetchOverloadPotions(int objectId, String itemName, int requiredAmount) { - int currentAmount = Rs2Inventory.count(itemName); - - if (currentAmount == requiredAmount) return; - - int neededAmount = requiredAmount - currentAmount; - - Rs2GameObject.interact(objectId, "Take"); - String widgetText = "How many doses of "; - sleepUntil(() -> Rs2Widget.hasWidget(widgetText)); - - if (Rs2Widget.hasWidget(widgetText)) { - // Each potion has 4 doses, so request the correct number of doses - Rs2Keyboard.typeString(Integer.toString(neededAmount * 4)); - Rs2Keyboard.enter(); - sleepUntil(() -> Rs2Inventory.count(itemName) == requiredAmount); - } - } - - - public void manageSelfHarm() { - int currentHP = Microbot.getClient().getBoostedSkillLevel(Skill.HITPOINTS); - int currentRangedLevel = Microbot.getClient().getBoostedSkillLevel(Skill.RANGED); - int realRangedLevel = Microbot.getClient().getRealSkillLevel(Skill.RANGED); - boolean hasOverloadPotions = config.overloadPotionAmount() > 0; - - if (currentHP >= maxHealth - && !useOverload - && (!hasOverloadPotions || currentRangedLevel != realRangedLevel)) { - maxHealth = 1; - - if (Rs2Inventory.hasItem(ItemID.LOCATOR_ORB)) { - Rs2Inventory.interact(ItemID.LOCATOR_ORB, "feel"); - } else if (Rs2Inventory.hasItem(ItemID.DWARVEN_ROCK_CAKE_7510)) { - Rs2Inventory.interact(ItemID.DWARVEN_ROCK_CAKE_7510, "guzzle"); - } - - if (currentHP == 1) { - maxHealth = Rs2Random.between(2, 4); - } - } - - if (config.randomlyTriggerRapidHeal()) { - randomlyToggleRapidHeal(); - } - } - - public void randomlyToggleRapidHeal() { - if (Rs2Random.between(1, 50) == 2) { - Rs2Prayer.toggle(Rs2PrayerEnum.RAPID_HEAL, true); - sleep(300, 600); - Rs2Prayer.toggle(Rs2PrayerEnum.RAPID_HEAL, false); - } - } - - public void useOverloadPotion() { - if (useOverload && Rs2Inventory.hasItem("overload") && Microbot.getClient().getBoostedSkillLevel(Skill.HITPOINTS) > 50) { - Rs2Inventory.interact(x -> x.getName().toLowerCase().contains("overload"), "drink"); - sleep(10000); - } - } - - public void useAbsorptionPotion() { - if (Microbot.getVarbitValue(NMZ_ABSORPTION) < minAbsorption && Rs2Inventory.hasItem("absorption")) { - for (int i = 0; i < Rs2Random.between(4, 8); i++) { - Rs2Inventory.interact(x -> x.getName().toLowerCase().contains("absorption"), "drink"); - sleep(600, 1000); - } - minAbsorption = Rs2Random.between(100, 300); - } - } - - private void storePotions(int objectId, String itemName, int requiredAmount) { - if (Rs2Inventory.count(itemName) == requiredAmount) return; - if (Rs2Inventory.get(itemName) == null) return; - - Rs2GameObject.interact(objectId, "Store"); - String storeWidgetText = "Store all your "; - sleepUntil(() -> Rs2Widget.hasWidget(storeWidgetText)); - if (Rs2Widget.hasWidget(storeWidgetText)) { - Rs2Keyboard.typeString("1"); - Rs2Keyboard.enter(); - sleepUntil(() -> !Rs2Inventory.hasItem(objectId)); - Rs2Inventory.dropAll(itemName); - } - } - - private void fetchPotions(int objectId, String itemName, int requiredAmount) { - if (Rs2Inventory.count(itemName) == requiredAmount) return; - - Rs2GameObject.interact(objectId, "Take"); - String widgetText = "How many doses of "; - sleepUntil(() -> Rs2Widget.hasWidget(widgetText)); - if (Rs2Widget.hasWidget(widgetText)) { - Rs2Keyboard.typeString(Integer.toString(requiredAmount * 4)); - Rs2Keyboard.enter(); - sleepUntil(() -> Rs2Inventory.count(itemName) == requiredAmount); - } - } - - public void consumeEmptyVial() { - final int EMPTY_VIAL = 26291; - if (Microbot.getClientThread().runOnClientThreadOptional(() -> - Rs2Widget.getWidget(129, 6) == null || Rs2Widget.getWidget(129, 6).isHidden()) - .orElse(false)) { - Rs2GameObject.interact(EMPTY_VIAL, "drink"); - } - sleep(2000,4000); - Widget widget = Rs2Widget.getWidget(129, 6); - if (!Microbot.getClientThread().runOnClientThreadOptional(widget::isHidden).orElse(false)) { - Rs2Widget.clickWidget(widget.getId()); - sleep(300); - Rs2Widget.clickWidget(widget.getId()); - } - sleep(2000,4000); - } - - public void handleStore() { - if (canStartNmz()) return; - int varbitOverload = 3953; - int varbitAbsorption = 3954; - int overloadAmt = Microbot.getVarbitValue(varbitOverload); - int absorptionAmt = Microbot.getVarbitValue(varbitAbsorption); - int nmzPoints = Microbot.getVarbitPlayerValue(VarPlayer.NMZ_REWARD_POINTS); - - if (absorptionAmt > config.absorptionPotionAmount() * 4 && overloadAmt > config.overloadPotionAmount() * 4) - return; - - if (!Rs2Inventory.isFull()) { - if ((absorptionAmt < (config.absorptionPotionAmount() * 4) || overloadAmt < config.overloadPotionAmount() * 4) && nmzPoints < 100000) { - Microbot.showMessage("BOT SHUTDOWN: Not enough points to buy potions"); - Microbot.stopPlugin(plugin); - return; - } - } - - Rs2GameObject.interact(26273); - sleepUntil(() -> Rs2Widget.isWidgetVisible(13500418) || Rs2Bank.isBankPinWidgetVisible(), 10000); - if (Rs2Bank.isBankPinWidgetVisible()) { - try { - Rs2Bank.handleBankPin(Encryption.decrypt(Login.activeProfile.getBankPin())); - } catch (Exception e) { - throw new RuntimeException(e); - } - sleepUntil(() -> Rs2Widget.isWidgetVisible(13500418), 10000); - } - - Widget benefitsBtn = Rs2Widget.getWidget(13500418); - if (benefitsBtn == null) return; - boolean notSelected = benefitsBtn.getSpriteId() != 813; - if (notSelected) { - Rs2Widget.clickWidgetFast(benefitsBtn, 4, 4); - } - int count = 0; - while (count < Rs2Random.between(3, 5)) { - Widget nmzRewardShop = Rs2Widget.getWidget(206, 6); - if (nmzRewardShop == null) break; - Widget overload = nmzRewardShop.getChild(6); - Rs2Widget.clickWidgetFast(overload, 6, 4); - Widget absorption = nmzRewardShop.getChild(9); - Rs2Widget.clickWidgetFast(absorption, 9, 4); - sleep(600, 1200); - count++; - } - } - -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/nmz/PrayerPotionScript.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/nmz/PrayerPotionScript.java deleted file mode 100644 index 037b55f0427..00000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/nmz/PrayerPotionScript.java +++ /dev/null @@ -1,65 +0,0 @@ -package net.runelite.client.plugins.microbot.nmz; - -import net.runelite.api.Skill; -import net.runelite.client.plugins.microbot.Microbot; -import net.runelite.client.plugins.microbot.Script; -import net.runelite.client.plugins.microbot.util.inventory.Rs2Inventory; -import net.runelite.client.plugins.microbot.util.inventory.Rs2ItemModel; -import net.runelite.client.plugins.microbot.util.math.Rs2Random; - -import java.util.List; -import java.util.concurrent.TimeUnit; - -public class PrayerPotionScript extends Script { - public boolean run() { - mainScheduledFuture = scheduledExecutorService.scheduleWithFixedDelay(() -> { - try { - if (!Microbot.isLoggedIn()) return; - if (!super.run()) return; - if ((Microbot.getClient().getBoostedSkillLevel(Skill.PRAYER) * 100) / Microbot.getClient().getRealSkillLevel(Skill.PRAYER) > Rs2Random.between(25, 30)) - return; - List potions = Microbot.getClientThread().runOnClientThreadOptional(Rs2Inventory::getPotions).orElse(null); - if (potions == null || potions.isEmpty()) { - return; - } - for (Rs2ItemModel potion : potions) { - if (potion.getName().toLowerCase().contains("prayer") || potion.getName().toLowerCase().contains("super restore") || potion.getName().toLowerCase().contains("moonlight potion")) { - Rs2Inventory.interact(potion, "drink"); - sleep(1200, 2000); - Rs2Inventory.dropAll("Vial"); - break; - } - } - } catch (Exception ex) { - Microbot.logStackTrace(this.getClass().getSimpleName(), ex); - } - }, 0, 600, TimeUnit.MILLISECONDS); - return true; - } - - public boolean run(NmzConfig config) { - mainScheduledFuture = scheduledExecutorService.scheduleWithFixedDelay(() -> { - try { - if (!super.run()) return; - if (!config.togglePrayerPotions()) return; - if ((Microbot.getClient().getBoostedSkillLevel(Skill.PRAYER) * 100) / Microbot.getClient().getRealSkillLevel(Skill.PRAYER) > Rs2Random.between(25, 30)) - return; - List potions = Microbot.getClientThread().runOnClientThreadOptional(Rs2Inventory::getPotions).orElse(null); - if (potions == null || potions.isEmpty()) { - return; - } - for (Rs2ItemModel potion : potions) { - if (potion.getName().toLowerCase().contains("prayer")) { - Rs2Inventory.interact(potion, "drink"); - sleep(1200, 2000); - Rs2Inventory.dropAll("Vial"); - break; - } - } - } catch (Exception ex) { - Microbot.logStackTrace(this.getClass().getSimpleName(), ex); - } - }, 0, 600, TimeUnit.MILLISECONDS); - return true; - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/tithefarm/TitheFarmingConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/tithefarm/TitheFarmingConfig.java deleted file mode 100644 index 30a249462af..00000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/tithefarm/TitheFarmingConfig.java +++ /dev/null @@ -1,137 +0,0 @@ -package net.runelite.client.plugins.microbot.tithefarm; - -import net.runelite.client.config.*; -import net.runelite.client.plugins.microbot.tithefarm.enums.TitheFarmLanes; - -@ConfigGroup(TitheFarmingConfig.GROUP) -@ConfigInformation("-- GUIDE --

" + -"• Start at the entrance near the table to get seeds.
" + -"• Have these items in your inventory:
" + -"  8x Watering Can(8) or the Gricoller's Can.
" + -"  Seed dibber.
" + -"  Spade.
" + -"  Stamina potions (optional)

" + -"• Make sure to have the tithe farm plugin from runelite enabled.
" + -"• At least level 34 farming required.
" + -"• Happy botting!
") -public interface TitheFarmingConfig extends Config { - - String GROUP = "Farming"; - - @ConfigSection( - name = "Script Settings", - description = "General", - position = 0, - closedByDefault = false - ) - String scriptSettings = "Script Settings"; - - @ConfigItem( - keyName = "storing", - name = "Store fruit threshold", - description = "Amount of fruits to have in your inventory before storing them in the sack", - position = 0, - section = scriptSettings - ) - default int storeFruitThreshold() { - return 100; - } - - @ConfigItem( - keyName = "Lanes", - name = "Tithe farm lanes", - description = "Choose a lane starting from the entrance", - position = 1, - section = scriptSettings - ) - default TitheFarmLanes Lanes() { - return TitheFarmLanes.LANE_1_2; - } - - @ConfigItem( - keyName = "Gricoller's can refill threshold", - name = "Gricoller's can refill threshold", - description = "Percentage before refilling the gricoller's can", - position = 2, - section = scriptSettings - ) - default int gricollerCanRefillThreshold() { - return 30; - } - - @ConfigItem( - keyName = "Sleep after planting seed", - name = "Sleep after planting seed", - description = "Sleep after planting seed - changing this value might result in unexpected behavior", - position = 3, - section = scriptSettings - ) - default int sleepAfterPlantingSeed() { - return 2000; - } - - @ConfigItem( - keyName = "Sleep after watering seed", - name = "Sleep after watering seed", - description = "Sleep after watering seed - changing this value might result in unexpected behavior", - position = 4, - section = scriptSettings - ) - default int sleepAfterWateringSeed() { - return 2000; - } - - @ConfigItem( - keyName = "Sleep after harvesting seed", - name = "Sleep after harvesting seed", - description = "Sleep after harvesting seed - changing this value might result in unexpected behavior", - position = 5, - section = scriptSettings - ) - default int sleepAfterHarvestingSeed() { - return 2000; - } - - @ConfigItem( - keyName = "enableAntiban", - name = "Enable Antiban Features", - description = "Will enable features like natural mouse movements and such.", - position = 6, - section = scriptSettings - ) - default boolean enableAntiban() { - return false; - } - - - @ConfigSection( - name = "Debug Settings", - description = "General", - position = 1, - closedByDefault = false - ) - String debugSettings = "Debug Settings"; - - @ConfigItem( - keyName = "Enable Debug", - name = "Enable Debug", - description = "Enable debugger", - position = 0, - section = debugSettings - ) - default boolean enableDebugging() { - return false; - } - - @ConfigItem( - keyName = "Enable Overlay", - name = "Enable Overlay", - description = "Enable Overlay", - position = 1, - section = debugSettings - ) - default boolean enableOverlay() { - return false; - } -} - diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/tithefarm/TitheFarmingOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/tithefarm/TitheFarmingOverlay.java deleted file mode 100644 index af53f20d9fd..00000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/tithefarm/TitheFarmingOverlay.java +++ /dev/null @@ -1,100 +0,0 @@ -package net.runelite.client.plugins.microbot.tithefarm; - -import net.runelite.api.Perspective; -import net.runelite.api.Point; -import net.runelite.api.coords.LocalPoint; -import net.runelite.client.plugins.microbot.Microbot; -import net.runelite.client.plugins.microbot.tithefarm.enums.TitheFarmMaterial; -import net.runelite.client.plugins.microbot.tithefarm.models.TitheFarmPlant; -import net.runelite.client.plugins.microbot.util.math.RateCalculator; -import net.runelite.client.ui.overlay.OverlayPanel; -import net.runelite.client.ui.overlay.OverlayPosition; -import net.runelite.client.ui.overlay.OverlayUtil; -import net.runelite.client.ui.overlay.components.ImageComponent; -import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.TitleComponent; - -import javax.inject.Inject; -import java.awt.*; -import java.awt.image.BufferedImage; -import java.util.Objects; - -public class TitheFarmingOverlay extends OverlayPanel { - TitheFarmingPlugin plugin; - - @Inject - TitheFarmingOverlay(TitheFarmingPlugin plugin) { - super(plugin); - this.plugin = plugin; - setPosition(OverlayPosition.TOP_LEFT); - setNaughty(); - } - - @Override - public Dimension render(Graphics2D graphics) { - panelComponent.setPreferredSize(new Dimension(300, 300)); - panelComponent.getChildren().add(TitleComponent.builder() - .text("TitheFarm") - .color(Color.GREEN) - .build()); - - panelComponent.getChildren().add(LineComponent.builder() - .left("Script State: ") - .right(TitheFarmingScript.state.toString()) - .build()); - - panelComponent.getChildren().add(LineComponent.builder() - .left("Fruit per hour:") - .right(String.valueOf(RateCalculator.getRatePerHour(TitheFarmingScript.fruits))) - .build()); - - panelComponent.getChildren().add(LineComponent.builder() - .left("") - .right("") - .build()); - - panelComponent.getChildren().add(LineComponent.builder() - .left("Fruits farmed") - .right("") - .build()); - - panelComponent.getChildren().add(new ImageComponent(getImage(Objects.requireNonNull(TitheFarmMaterial.getSeedForLevel()).getFruitId(), TitheFarmingScript.fruits))); - - if (plugin.config.enableOverlay()) { - for (TitheFarmPlant plant : TitheFarmingScript.plants) { - if (plant == null || plant.getGameObject() == null) continue; - final Polygon polygon = Perspective.getCanvasTilePoly(Microbot.getClient(), plant.getGameObject().getLocalLocation()); - - if (polygon != null) { - OverlayUtil.renderPolygon(graphics, polygon, Color.CYAN); - } - - final LocalPoint localLocation = LocalPoint.fromWorld(Microbot.getClient(), plant.getGameObject().getWorldLocation()); - - if (localLocation == null) { - continue; - } - } - } - - if (plugin.config.enableDebugging()) { - for (TitheFarmPlant plant : TitheFarmingScript.plants) { - if (plant == null || plant.getGameObject() == null) continue; - - Point textLocation = Perspective.getCanvasTextLocation(Microbot.getClient(), graphics, plant.getGameObject().getLocalLocation(), "p: " + plant.isEmptyPatchOrSeedling(), 0); - if (textLocation != null) { - OverlayUtil.renderTextLocation(graphics, textLocation, "plant: " + plant.isEmptyPatchOrSeedling(), Color.green); - OverlayUtil.renderTextLocation(graphics, new Point(textLocation.getX(), textLocation.getY() + 20), "harvest: " + plant.isValidToHarvest(), Color.green); - OverlayUtil.renderTextLocation(graphics, new Point(textLocation.getX(), textLocation.getY() + 40), "water: " + plant.isValidToWater(), Color.green); - } - } - } - return super.render(graphics); - } - - private BufferedImage getImage(int itemID, int amount) - { - BufferedImage image = Microbot.getItemManager().getImage(itemID, amount, true); - return image; - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/tithefarm/TitheFarmingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/tithefarm/TitheFarmingPlugin.java deleted file mode 100644 index 54a95362fb6..00000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/tithefarm/TitheFarmingPlugin.java +++ /dev/null @@ -1,116 +0,0 @@ -package net.runelite.client.plugins.microbot.tithefarm; - - -import com.google.inject.Provides; -import lombok.extern.slf4j.Slf4j; -import net.runelite.api.Client; -import net.runelite.api.Item; -import net.runelite.api.events.ChatMessage; -import net.runelite.api.events.GameObjectSpawned; -import net.runelite.api.events.ItemContainerChanged; -import net.runelite.client.Notifier; -import net.runelite.client.callback.ClientThread; -import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; -import net.runelite.client.plugins.Plugin; -import net.runelite.client.plugins.PluginDescriptor; -import net.runelite.client.plugins.microbot.Microbot; -import net.runelite.client.plugins.microbot.tithefarm.enums.TitheFarmMaterial; -import net.runelite.client.plugins.microbot.tithefarm.enums.TitheFarmState; -import net.runelite.client.plugins.microbot.tithefarm.models.TitheFarmPlant; -import net.runelite.client.plugins.microbot.util.antiban.Rs2Antiban; -import net.runelite.client.plugins.microbot.util.antiban.Rs2AntibanSettings; -import net.runelite.client.plugins.microbot.util.antiban.enums.Activity; -import net.runelite.client.plugins.microbot.util.mouse.VirtualMouse; -import net.runelite.client.ui.overlay.OverlayManager; - -import javax.inject.Inject; -import java.awt.*; -import java.util.Arrays; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -@PluginDescriptor( - name = PluginDescriptor.Mocrosoft + "Tithe Farm", - description = "Plays the Tithe farm minigame for you!", - tags = {"tithe farming", "microbot", "skills", "minigame"}, - enabledByDefault = false -) -@Slf4j -public class TitheFarmingPlugin extends Plugin { - - @Inject - public TitheFarmingConfig config; - - @Provides - TitheFarmingConfig provideConfig(ConfigManager configManager) { - return configManager.getConfig(TitheFarmingConfig.class); - } - - @Inject - private OverlayManager overlayManager; - @Inject - private TitheFarmingOverlay titheFarmOverlay; - - private final TitheFarmingScript titheFarmScript = new TitheFarmingScript(); - - @Override - protected void startUp() throws AWTException { - Microbot.pauseAllScripts.compareAndSet(true, false); - - if (config.enableAntiban()){ - Rs2AntibanSettings.naturalMouse = true; - Rs2Antiban.antibanSetupTemplates.applyFarmingSetup(); - Rs2Antiban.setActivity(Activity.GENERAL_FARMING); - Rs2Antiban.activateAntiban(); - } - - if (overlayManager != null) { - overlayManager.add(titheFarmOverlay); - } - titheFarmScript.run(config); - } - - protected void shutDown() { - titheFarmScript.shutdown(); - overlayManager.remove(titheFarmOverlay); - } - - @Subscribe - public void onGameObjectSpawned(GameObjectSpawned event) { - for (TitheFarmPlant plant : TitheFarmingScript.plants) { - if (event.getGameObject().getWorldLocation().equals(plant.getGameObject().getWorldLocation())) { - plant.setGameObject(event.getGameObject()); - } - } - } - - @Subscribe - public void onItemContainerChanged(ItemContainerChanged event) { - if (TitheFarmMaterial.getSeedForLevel() != null) { - Item fruit = Arrays.stream(event.getItemContainer().getItems()).filter(x -> x.getId() == TitheFarmMaterial.getSeedForLevel().getFruitId()).findFirst().orElse(null); - if (fruit != null) { - TitheFarmingScript.fruits = fruit.getQuantity() - TitheFarmingScript.initialFruit; - } - } - } - - @Subscribe - public void onChatMessage(ChatMessage chatMessage) - { - String message = chatMessage.getMessage(); - if (message.contains("%")) { - Pattern pattern = Pattern.compile("(\\d+(\\.\\d+)?)%"); - Matcher matcher = pattern.matcher(message); - - if (matcher.find()) { - String percentage = matcher.group(1); - TitheFarmingScript.gricollerCanCharges = (int) (Float.parseFloat(percentage)); - } - } else if (message.equalsIgnoreCase("Gricoller's can is already full.")) { - TitheFarmingScript.gricollerCanCharges = 100; - } else if (message.equalsIgnoreCase("You don't have a suitable vessel of water for watering the plant.")) { - TitheFarmingScript.state = TitheFarmState.REFILL_WATERCANS; - } - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/tithefarm/TitheFarmingScript.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/tithefarm/TitheFarmingScript.java deleted file mode 100644 index c33bc6a72a6..00000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/tithefarm/TitheFarmingScript.java +++ /dev/null @@ -1,500 +0,0 @@ -package net.runelite.client.plugins.microbot.tithefarm; - -import net.runelite.api.*; -import net.runelite.api.gameval.ObjectID; -import net.runelite.api.coords.WorldPoint; -import net.runelite.api.gameval.ItemID; -import net.runelite.api.gameval.AnimationID; -import net.runelite.client.plugins.microbot.Microbot; -import net.runelite.client.plugins.microbot.Script; -import net.runelite.client.plugins.microbot.breakhandler.BreakHandlerScript; -import net.runelite.client.plugins.microbot.tithefarm.enums.TitheFarmLanes; -import net.runelite.client.plugins.microbot.tithefarm.enums.TitheFarmMaterial; -import net.runelite.client.plugins.microbot.tithefarm.enums.TitheFarmState; -import net.runelite.client.plugins.microbot.tithefarm.models.TitheFarmPlant; -import net.runelite.client.plugins.microbot.util.dialogues.Rs2Dialogue; -import net.runelite.client.plugins.microbot.util.gameobject.Rs2GameObject; -import net.runelite.client.plugins.microbot.util.inventory.Rs2Inventory; -import net.runelite.client.plugins.microbot.util.inventory.Rs2ItemModel; -import net.runelite.client.plugins.microbot.util.keyboard.Rs2Keyboard; -import net.runelite.client.plugins.microbot.util.math.Rs2Random; -import net.runelite.client.plugins.microbot.util.player.Rs2Player; -import net.runelite.client.plugins.microbot.util.tabs.Rs2Tab; -import net.runelite.client.plugins.microbot.util.walker.Rs2Walker; -import net.runelite.client.plugins.microbot.util.widget.Rs2Widget; - -import java.time.Instant; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.List; -import java.util.concurrent.TimeUnit; - -import static net.runelite.client.plugins.microbot.tithefarm.enums.TitheFarmState.*; -import static net.runelite.client.plugins.microbot.util.dialogues.Rs2Dialogue.hasSelectAnOption; - -/** - * TODO list: - * -plants per hour - * -check for seed dibber and spade inventory - * -deposit sack - * -test other plants - * -move script into seperate folder - */ - - -public class TitheFarmingScript extends Script { - - final int FARM_DOOR = 27445; - final String FERTILISER = "gricoller's fertiliser"; - - public static List plants = new ArrayList<>(); - - - public static TitheFarmState state = TitheFarmState.STARTING; - - public static int initialFruit = 0; - public static int fruits = 0; - - public static final int WATERING_CANS_AMOUNT = 8; - - public static final int DISTANCE_THRESHOLD_MINIMAP_WALK = 8; - - public static int gricollerCanCharges = -1; - - public static boolean init = true; - - public void init(TitheFarmingConfig config) { - TitheFarmLanes lane = config.Lanes(); - - if (lane == TitheFarmLanes.Randomize) { - lane = TitheFarmLanes.values()[Rs2Random.betweenInclusive(0, TitheFarmLanes.values().length - 1)]; - } - - switch (lane) { - case LANE_1_2: - plants = new ArrayList<>(Arrays.asList( - new TitheFarmPlant(35, 25, 15), - new TitheFarmPlant(40, 25, 16), - new TitheFarmPlant(35, 28, 17), - new TitheFarmPlant(40, 28, 18), - new TitheFarmPlant(35, 31, 19), - new TitheFarmPlant(40, 31, 20), - new TitheFarmPlant(35, 34, 1), - new TitheFarmPlant(40, 34, 2), - new TitheFarmPlant(35, 40, 3), - new TitheFarmPlant(40, 40, 4), - new TitheFarmPlant(35, 43, 5), - new TitheFarmPlant(40, 43, 6), - new TitheFarmPlant(35, 46, 7), - new TitheFarmPlant(40, 46, 8), - new TitheFarmPlant(35, 49, 9), - new TitheFarmPlant(40, 49, 10), - new TitheFarmPlant(45, 49, 11), - new TitheFarmPlant(45, 46, 12), - new TitheFarmPlant(45, 43, 13), - new TitheFarmPlant(45, 40, 14))); - break; - case LANE_2_3: - plants = new ArrayList<>(Arrays.asList( - new TitheFarmPlant(35, 31, -2), - new TitheFarmPlant(35, 28, -1), - new TitheFarmPlant(35, 25, 0), - new TitheFarmPlant(40, 25, 1), - new TitheFarmPlant(45, 25, 2), - new TitheFarmPlant(40, 28, 3), - new TitheFarmPlant(45, 28, 4), - new TitheFarmPlant(40, 31, 5), - new TitheFarmPlant(45, 31, 6), - new TitheFarmPlant(40, 34, 7), - new TitheFarmPlant(45, 34, 8), - new TitheFarmPlant(40, 40, 9), - new TitheFarmPlant(45, 40, 10), - new TitheFarmPlant(40, 43, 11), - new TitheFarmPlant(45, 43, 12), - new TitheFarmPlant(40, 46, 13), - new TitheFarmPlant(45, 46, 14), - new TitheFarmPlant(40, 49, 15), - new TitheFarmPlant(45, 49, 16))); - break; - case LANE_3_4: - plants = new ArrayList<>(Arrays.asList( - new TitheFarmPlant(40, 31, -2), - new TitheFarmPlant(40, 28, -1), - new TitheFarmPlant(40, 25, 0), - new TitheFarmPlant(45, 25, 1), - new TitheFarmPlant(50, 25, 2), - new TitheFarmPlant(45, 28, 3), - new TitheFarmPlant(50, 28, 4), - new TitheFarmPlant(45, 31, 5), - new TitheFarmPlant(50, 31, 6), - new TitheFarmPlant(45, 34, 7), - new TitheFarmPlant(50, 34, 8), - new TitheFarmPlant(45, 40, 9), - new TitheFarmPlant(50, 40, 10), - new TitheFarmPlant(45, 43, 11), - new TitheFarmPlant(50, 43, 12), - new TitheFarmPlant(45, 46, 13), - new TitheFarmPlant(50, 46, 14), - new TitheFarmPlant(45, 49, 15), - new TitheFarmPlant(50, 49, 16))); - break; - case LANE_4_5: - plants = new ArrayList<>(Arrays.asList( - new TitheFarmPlant(45, 31, 0), - new TitheFarmPlant(45, 28, 1), - new TitheFarmPlant(45, 25, 2), - new TitheFarmPlant(50, 25, 3), - new TitheFarmPlant(55, 25, 4), - new TitheFarmPlant(50, 28, 5), - new TitheFarmPlant(55, 28, 6), - new TitheFarmPlant(50, 31, 7), - new TitheFarmPlant(55, 31, 8), - new TitheFarmPlant(50, 34, 9), - new TitheFarmPlant(55, 34, 10), - new TitheFarmPlant(50, 40, 11), - new TitheFarmPlant(55, 40, 12), - new TitheFarmPlant(50, 43, 13), - new TitheFarmPlant(55, 43, 14), - new TitheFarmPlant(50, 46, 15), - new TitheFarmPlant(55, 46, 16), - new TitheFarmPlant(50, 49, 17), - new TitheFarmPlant(55, 49, 18))); - break; - } - } - - - public boolean run(TitheFarmingConfig config) { - mainScheduledFuture = scheduledExecutorService.scheduleWithFixedDelay(() -> { - try { - if (!Microbot.isLoggedIn()) return; - if (!super.run()) return; - if (BreakHandlerScript.isBreakActive()) return; - - if (init) { - state = STARTING; - plants = new ArrayList<>(); - Rs2ItemModel rs2ItemSeed = Rs2Inventory.get(TitheFarmMaterial.getSeedForLevel().getFruitId()); - initialFruit = rs2ItemSeed == null ? 0 : rs2ItemSeed.getQuantity(); - init = false; - sleep(2000); //extra sleep to have the game initialize correctly - } - - //Dialogue stuff only applicable if you enter for the first time - if (Rs2Dialogue.isInDialogue()) { - Rs2Dialogue.clickContinue(); - sleep(400, 600); - return; - } - - if (hasSelectAnOption()) { - Rs2Keyboard.keyPress('3'); - sleep(1500, 1800); - return; - } - - if (!isInMinigame() && !Rs2Inventory.hasItem(TitheFarmMaterial.getSeedForLevel().getName())) { - state = TitheFarmState.TAKE_SEEDS; - } - - if (validateSeedsAndPatches() && isInMinigame()) { - state = TitheFarmState.LEAVE; - } - - if (Rs2Inventory.hasItemAmount(TitheFarmMaterial.getSeedForLevel().getFruitId(), config.storeFruitThreshold())) { - depositSack(); - return; - } - - switch (state) { - case LEAVE: - if (!depositSack()) { - leave(); - } - BreakHandlerScript.setLockState(false); - break; - case TAKE_SEEDS: - if (isInMinigame()) { - state = TitheFarmState.STARTING; - } else { - takeSeeds(); - if (Rs2Inventory.hasItem(TitheFarmMaterial.getSeedForLevel().getName())) { - enter(); - } - } - break; - case STARTING: - Rs2Player.toggleRunEnergy(true); - Rs2Tab.switchToInventoryTab(); - init(config); - validateInventory(); - DropFertiliser(); - validateRunEnergy(); - if (state != RECHARING_RUN_ENERGY) - state = REFILL_WATERCANS; - break; - case RECHARING_RUN_ENERGY: - validateRunEnergy(); - break; - case REFILL_WATERCANS: - refillWaterCans(config); - BreakHandlerScript.setLockState(false); - sleepGaussian(800, 200); - break; - case PLANTING_SEEDS: - case HARVEST: - BreakHandlerScript.setLockState(true); - coreLoop(config); - break; - } - - if (config.enableDebugging() && plants.stream().anyMatch(x -> x.getGameObject() == null)) { - Microbot.showMessage("There is an empty plant gameobject!"); - } - - } catch (Exception ex) { - Microbot.logStackTrace(this.getClass().getSimpleName(), ex); - } - - }, 0, 100, TimeUnit.MILLISECONDS); - return true; - } - - @Override - public void shutdown() { - super.shutdown(); - } - - /** - * ALL PRIVATE SCRIPT METHODS - */ - - private void coreLoop(TitheFarmingConfig config) { - if (Rs2Player.isMoving()) return; - Comparator sortByIndex = Comparator.comparingInt(TitheFarmPlant::getIndex); - TitheFarmPlant plant = null; - if (state != HARVEST) { - plant = plants.stream() - .sorted(sortByIndex) - .filter(TitheFarmPlant::isEmptyPatchOrSeedling) //empty patch and seedling first - .findFirst() - .orElseGet(() -> - plants.stream() - .sorted(sortByIndex) - .filter(TitheFarmPlant::isStage1) // then stage1 plants - .findFirst() - .orElseGet(() -> - plants.stream() - .sorted(sortByIndex) - .filter(TitheFarmPlant::isStage2) //then stage2 plants - .findFirst() - .orElse(null) - ) - ); - } - - if (state == TitheFarmState.HARVEST && hasAllEmptyPatches()) { - state = STARTING; - } - - if (plant == null && plants.stream().anyMatch(TitheFarmPlant::isValidToHarvest)) { - state = TitheFarmState.HARVEST; - plant = plants.stream() - .sorted(sortByIndex) - .filter(TitheFarmPlant::isValidToHarvest) - .findFirst() - .orElse(null); - } - - if (plant == null) return; - - final TitheFarmPlant finalPlant = plant; - - if (plant.getGameObject().getWorldLocation().distanceTo2D(Microbot.getClient().getLocalPlayer().getWorldLocation()) > DISTANCE_THRESHOLD_MINIMAP_WALK) { - //Important to know that there are two world locations when you are in an instance - //thats why we use the world location of the getLocalPlayer instead of Rs2Player.getWorldLocation - //because Rs2Player.getWorldLocation will give us the world location in the instance and we do not want that - WorldPoint w = WorldPoint.fromRegion(Microbot.getClient().getLocalPlayer().getWorldLocation().getRegionID(), - plant.regionX, - plant.regionY, - Microbot.getClient().getPlane()); - Rs2Walker.walkMiniMap(w, 1); - return; - } - - if (plant.isEmptyPatch()) { //start planting seeds - Rs2Inventory.interact(TitheFarmMaterial.getSeedForLevel().getName(), "Use"); - clickPatch(plant); - // save 1 tick by manually clicking watering can immediately after planting seed - sleepUntil(() -> Rs2Player.getAnimation() == AnimationID.FARMING_SEED_DIBBING, 2_000); - Rs2Inventory.interact(TitheFarmMaterial.getWateringCan(), "Use"); - sleep(200,300); - clickPatch(plant); - sleepUntil(Rs2Player::isAnimating, config.sleepAfterPlantingSeed()); - if (Rs2Player.isAnimating()) { - sleepUntil(() -> plants.stream().noneMatch(x -> x.getIndex() == finalPlant.getIndex() && x.isValidToWater())); - } - } - - if (plant.isValidToWater()) { - clickPatch(plant, "water"); - sleepUntil(Rs2Player::isAnimating, config.sleepAfterWateringSeed()); - if (Rs2Player.isAnimating()) { - sleepUntil(() -> plants.stream().noneMatch(x -> x.getIndex() == finalPlant.getIndex() && x.isValidToWater())); - } - plant.setPlanted(Instant.now()); - } - - - if (plant.isValidToHarvest()) { - clickPatch(plant, "harvest"); - sleepUntil(Rs2Player::isAnimating, config.sleepAfterHarvestingSeed()); - if (Rs2Player.isAnimating()) { - sleepUntil(() -> plants.stream().anyMatch(x -> x.getIndex() == finalPlant.getIndex() && x.isEmptyPatch())); - } - } - } - - // Helper method to validate inventory items - private void validateInventory() { - if (!Rs2Inventory.hasItem(ItemID.DIBBER) || !Rs2Inventory.hasItem(ItemID.SPADE)) { - Microbot.showMessage("You need a seed dibber and a spade in your inventory!"); - shutdown(); - } - if (!Rs2Inventory.hasItemAmount("watering can", WATERING_CANS_AMOUNT) && !Rs2Inventory.hasItem(ItemID.ZEAH_WATERINGCAN)) { - Microbot.showMessage("You need at least 8 watering can(8) or a Gricoller's can!"); - shutdown(); - } - } - -// Helper method to validate run energy and patches - private void validateRunEnergy() { - if (Microbot.getClient().getEnergy() < 4000 && hasAllEmptyPatches() && state != RECHARING_RUN_ENERGY) { - state = RECHARING_RUN_ENERGY; - Microbot.log("Recharging run energy..."); - Rs2Inventory.useRestoreEnergyItem(); - } else if (state == RECHARING_RUN_ENERGY && Microbot.getClient().getEnergy() >= 4000) { - state = STARTING; - } - } - - private boolean validateSeedsAndPatches() { - if (!Rs2Inventory.hasItem(TitheFarmMaterial.getSeedForLevel().getName())) { - return true; - } - return false; - } - - - - private static void clickPatch(TitheFarmPlant plant) { - WorldPoint worldPoint = WorldPoint.fromRegion(Microbot.getClient().getLocalPlayer().getWorldLocation().getRegionID(), - plant.regionX, - plant.regionY, - Microbot.getClient().getPlane()); - - Rs2GameObject.interact(worldPoint); - - //Point point = Calculations.worldToCanvas(worldPoint.getX(), worldPoint.getY()); - //Microbot.getMouse().click(point); - } - - private static void clickPatch(TitheFarmPlant plant, String action) { - WorldPoint worldPoint = WorldPoint.fromRegion(Microbot.getClient().getLocalPlayer().getWorldLocation().getRegionID(), - plant.regionX, - plant.regionY, - Microbot.getClient().getPlane()); - - Rs2GameObject.interact(worldPoint, action); - } - - private static void DropFertiliser() { - if (Rs2Inventory.hasItem("Gricoller's fertiliser")) { - Rs2Inventory.drop("Gricoller's fertiliser"); - } - } - - private void refillWaterCans(TitheFarmingConfig config) { - if (TitheFarmMaterial.hasGricollersCan()) { - checkGricollerCharges(); - sleepUntil(() -> gricollerCanCharges != -1); - if (gricollerCanCharges < config.gricollerCanRefillThreshold()) { - walkToBarrel(); - Rs2Inventory.interact(ItemID.ZEAH_WATERINGCAN, "Use"); - Rs2GameObject.interact("Water barrel"); - sleepUntil(Rs2Player::isAnimating, 10000); - } else { - state = PLANTING_SEEDS; - } - } else if (TitheFarmMaterial.hasWateringCanToBeFilled()) { - walkToBarrel(); - Rs2Inventory.interact(TitheFarmMaterial.getWateringCanToBeFilled(), "Use"); - Rs2GameObject.interact(ObjectID.WATER_BARREL1, "Use"); - sleepUntil(() -> Rs2Inventory.hasItemAmount(ItemID.WATERING_CAN_8, WATERING_CANS_AMOUNT), 60000); - } else { - state = PLANTING_SEEDS; - } - } - - private void walkToBarrel() { - final TileObject gameObject = Rs2GameObject.findObjectById(ObjectID.WATER_BARREL1); - if (gameObject.getWorldLocation().distanceTo2D(Microbot.getClient().getLocalPlayer().getWorldLocation()) > DISTANCE_THRESHOLD_MINIMAP_WALK) { - Rs2Walker.walkMiniMap(gameObject.getWorldLocation(), 1); - sleepUntil(Rs2Player::isMoving); - } - sleepUntil(() -> gameObject.getWorldLocation().distanceTo2D(Microbot.getClient().getLocalPlayer().getWorldLocation()) < DISTANCE_THRESHOLD_MINIMAP_WALK); - } - - private void checkGricollerCharges() { - gricollerCanCharges = -1; - Rs2Inventory.interact(ItemID.ZEAH_WATERINGCAN, "check"); - } - - private void takeSeeds() { - if (Rs2Inventory.hasItem(TitheFarmMaterial.getSeedForLevel().getName())) { - Rs2Inventory.drop(TitheFarmMaterial.getSeedForLevel().getName()); - sleep(400, 600); - } - Rs2GameObject.interact(ObjectID.TITHE_PLANT_SEED_TABLE); - boolean result = Rs2Widget.sleepUntilHasWidget(TitheFarmMaterial.getSeedForLevel().getName()); - if (!result) return; - Rs2Keyboard.keyPress(TitheFarmMaterial.getSeedForLevel().getOption()); - sleep(1000); - Rs2Keyboard.typeString(String.valueOf(Rs2Random.betweenInclusive(1000, 10000))); - sleep(600); - Rs2Keyboard.enter(); - sleepUntil(() -> Rs2Inventory.hasItem(TitheFarmMaterial.getSeedForLevel().getName())); - } - - private void enter() { - WallObject farmDoor = Rs2GameObject.getWallObject(FARM_DOOR); - Rs2GameObject.interact(farmDoor); - sleepUntil(this::isInMinigame); - } - - private boolean depositSack() { - if (Rs2Inventory.hasItem(TitheFarmMaterial.getSeedForLevel().getFruitId())) { - Microbot.log("Storing fruits into sack for experience..."); - Rs2GameObject.interact(ObjectID.TITHE_SACK_OF_FRUIT_EMPTY); - Rs2Player.waitForWalking(); - Rs2Player.waitForAnimation(); - return true; - } - return false; - } - - private void leave() { - WallObject farmDoor = Rs2GameObject.getWallObject(FARM_DOOR); - Rs2GameObject.interact(farmDoor); - sleepUntil(() -> !Rs2Inventory.hasItem(FERTILISER), 8000); - } - - private boolean hasAllEmptyPatches() { - return plants.stream().allMatch(TitheFarmPlant::isEmptyPatch); - } - - private boolean isInMinigame() { - return Rs2Widget.getWidget(15794178) != null; - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/tithefarm/enums/TitheFarmLanes.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/tithefarm/enums/TitheFarmLanes.java deleted file mode 100644 index b2f7168123d..00000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/tithefarm/enums/TitheFarmLanes.java +++ /dev/null @@ -1,22 +0,0 @@ -package net.runelite.client.plugins.microbot.tithefarm.enums; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -@Getter -@RequiredArgsConstructor -public enum TitheFarmLanes { - LANE_1_2("Lane one and two"), - LANE_2_3("Lane two and three"), - LANE_3_4("Lane three and four"), - LANE_4_5("Lane four and five"), - Randomize("Randomize"); - - - private final String name; - - @Override - public String toString() { - return name; - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/tithefarm/enums/TitheFarmMaterial.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/tithefarm/enums/TitheFarmMaterial.java deleted file mode 100644 index 41577bd7f1e..00000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/tithefarm/enums/TitheFarmMaterial.java +++ /dev/null @@ -1,107 +0,0 @@ -package net.runelite.client.plugins.microbot.tithefarm.enums; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; -import net.runelite.api.gameval.ItemID; -import net.runelite.api.Skill; -import net.runelite.client.plugins.microbot.Microbot; -import net.runelite.client.plugins.microbot.util.inventory.Rs2Inventory; - -@Getter -@RequiredArgsConstructor -public enum TitheFarmMaterial { - GOLOVANOVA_SEED("Golovanova seed", 34, '1', ItemID.HOSIDIUS_TITHE_FRUIT_A), - BOLOGANO_SEED("Bologano seed", 54, '2', ItemID.HOSIDIUS_TITHE_FRUIT_B), - LOGAVANO_SEED("Logavano seed", 74, '3', ItemID.HOSIDIUS_TITHE_FRUIT_C); - - final String name; - final int levelRequired; - final char option; - final int fruitId; - - public static TitheFarmMaterial getSeedForLevel() { - if (Microbot.getClient().getRealSkillLevel(Skill.FARMING) >= LOGAVANO_SEED.levelRequired) - return LOGAVANO_SEED; - if (Microbot.getClient().getRealSkillLevel(Skill.FARMING) >= BOLOGANO_SEED.levelRequired) - return BOLOGANO_SEED; - if (Microbot.getClient().getRealSkillLevel(Skill.FARMING) >= GOLOVANOVA_SEED.levelRequired) - return GOLOVANOVA_SEED; - - return LOGAVANO_SEED; - } - - public static boolean hasWateringCanToBeFilled() { - return Rs2Inventory.hasItem(ItemID.WATERING_CAN_7) || Rs2Inventory.hasItem(ItemID.WATERING_CAN_6) - || Rs2Inventory.hasItem(ItemID.WATERING_CAN_5) || Rs2Inventory.hasItem(ItemID.WATERING_CAN_4) - || Rs2Inventory.hasItem(ItemID.WATERING_CAN_3) || Rs2Inventory.hasItem(ItemID.WATERING_CAN_2) - || Rs2Inventory.hasItem(ItemID.WATERING_CAN_1) || Rs2Inventory.hasItem(ItemID.WATERING_CAN_0); - } - - public static boolean hasGricollersCan() { - return Rs2Inventory.hasItem(ItemID.ZEAH_WATERINGCAN); - } - - public static int getWateringCanToBeFilled() { - if (Rs2Inventory.hasItem(ItemID.WATERING_CAN_7)) { - return ItemID.WATERING_CAN_7; - } - if (Rs2Inventory.hasItem(ItemID.WATERING_CAN_6)) { - return ItemID.WATERING_CAN_6; - } - if (Rs2Inventory.hasItem(ItemID.WATERING_CAN_5)) { - return ItemID.WATERING_CAN_5; - } - if (Rs2Inventory.hasItem(ItemID.WATERING_CAN_4)) { - return ItemID.WATERING_CAN_4; - } - if (Rs2Inventory.hasItem(ItemID.WATERING_CAN_3)) { - return ItemID.WATERING_CAN_3; - } - if (Rs2Inventory.hasItem(ItemID.WATERING_CAN_2)) { - return ItemID.WATERING_CAN_2; - } - if (Rs2Inventory.hasItem(ItemID.WATERING_CAN_1)) { - return ItemID.WATERING_CAN_1; - } - if (Rs2Inventory.hasItem(ItemID.WATERING_CAN_0)) { - return ItemID.WATERING_CAN_0; - } - return -1; - } - - public static int getWateringCan() { - if (hasGricollersCan()) { - return ItemID.ZEAH_WATERINGCAN; - } - if (Rs2Inventory.hasItem(ItemID.WATERING_CAN_1)) { - return ItemID.WATERING_CAN_1; - } - if (Rs2Inventory.hasItem(ItemID.WATERING_CAN_2)) { - return ItemID.WATERING_CAN_2; - } - if (Rs2Inventory.hasItem(ItemID.WATERING_CAN_3)) { - return ItemID.WATERING_CAN_3; - } - if (Rs2Inventory.hasItem(ItemID.WATERING_CAN_4)) { - return ItemID.WATERING_CAN_4; - } - if (Rs2Inventory.hasItem(ItemID.WATERING_CAN_5)) { - return ItemID.WATERING_CAN_5; - } - if (Rs2Inventory.hasItem(ItemID.WATERING_CAN_6)) { - return ItemID.WATERING_CAN_6; - } - if (Rs2Inventory.hasItem(ItemID.WATERING_CAN_7)) { - return ItemID.WATERING_CAN_7; - } - if (Rs2Inventory.hasItem(ItemID.WATERING_CAN_8)) { - return ItemID.WATERING_CAN_8; - } - return -1; - } - - @Override - public String toString() { - return name; - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/tithefarm/enums/TitheFarmState.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/tithefarm/enums/TitheFarmState.java deleted file mode 100644 index 18efba21e66..00000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/tithefarm/enums/TitheFarmState.java +++ /dev/null @@ -1,11 +0,0 @@ -package net.runelite.client.plugins.microbot.tithefarm.enums; - -public enum TitheFarmState { - STARTING, - RECHARING_RUN_ENERGY, - TAKE_SEEDS, - REFILL_WATERCANS, - PLANTING_SEEDS, - HARVEST, - LEAVE -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/tithefarm/models/TitheFarmPlant.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/tithefarm/models/TitheFarmPlant.java deleted file mode 100644 index 267000c8954..00000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/tithefarm/models/TitheFarmPlant.java +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Copyright (c) 2023, Mocrosoft - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package net.runelite.client.plugins.microbot.tithefarm.models; - -import lombok.Getter; -import lombok.Setter; -import net.runelite.api.GameObject; -import net.runelite.api.GroundObject; -import net.runelite.api.ObjectID; -import net.runelite.api.TileObject; -import net.runelite.client.plugins.microbot.Microbot; -import net.runelite.client.plugins.microbot.tithefarm.TitheFarmingScript; -import net.runelite.client.plugins.microbot.tithefarm.enums.TitheFarmMaterial; -import net.runelite.client.plugins.microbot.tithefarm.enums.TitheFarmState; -import net.runelite.client.plugins.microbot.util.gameobject.Rs2GameObject; -import net.runelite.client.plugins.tithefarm.TitheFarmPlantState; - -import java.time.Duration; -import java.time.Instant; -import java.util.Arrays; -import java.util.Objects; - -import static net.runelite.api.ObjectID.BOLOGANO_SEEDLING; -import static net.runelite.api.coords.WorldPoint.fromRegion; - -public class TitheFarmPlant { - private static final Duration PLANT_TIME = Duration.ofMinutes(1); - - @Getter - @Setter - private int index; - - @Getter - @Setter - private Instant planted; - - @Getter - private final TitheFarmPlantState state; - - @Getter - @Setter - private TileObject gameObject; - - public int regionX; - public int regionY; - - public TitheFarmPlant(int regionX, int regionY, int index) { - this.planted = Instant.now(); - this.state = TitheFarmPlantState.UNWATERED; - this.gameObject = Rs2GameObject.findGameObjectByLocation(fromRegion(Microbot.getClient().getLocalPlayer().getWorldLocation().getRegionID(), regionX, regionY, 0)); - this.regionX = regionX; - this.regionY = regionY; - this.index = index; - } - - public int[] expectedPatchGameObject() { - if (Objects.requireNonNull(TitheFarmingScript.state) == TitheFarmState.PLANTING_SEEDS) { - return new int[]{ObjectID.TITHE_PATCH, BOLOGANO_SEEDLING, ObjectID.LOGAVANO_SEEDLING, ObjectID.GOLOVANOVA_SEEDLING}; - } - return new int[]{}; - } - - public int[] expectedWateredObject() { - switch (TitheFarmingScript.state) { - case PLANTING_SEEDS: - if (TitheFarmMaterial.getSeedForLevel() == TitheFarmMaterial.BOLOGANO_SEED) { - return new int[]{BOLOGANO_SEEDLING, ObjectID.BOLOGANO_PLANT, ObjectID.BOLOGANO_PLANT_27401}; - } else if (TitheFarmMaterial.getSeedForLevel() == TitheFarmMaterial.LOGAVANO_SEED) { - return new int[]{ObjectID.LOGAVANO_SEEDLING, ObjectID.LOGAVANO_PLANT, ObjectID.LOGAVANO_PLANT_27412}; - } else if (TitheFarmMaterial.getSeedForLevel() == TitheFarmMaterial.GOLOVANOVA_SEED) { - return new int[]{ObjectID.GOLOVANOVA_SEEDLING, ObjectID.GOLOVANOVA_PLANT, ObjectID.GOLOVANOVA_PLANT_27390}; - } - case HARVEST: - //does not apply - break; - } - return new int[]{}; - } - - public int expectedHarvestObject() { - if (TitheFarmMaterial.getSeedForLevel() == TitheFarmMaterial.BOLOGANO_SEED) { - return ObjectID.BOLOGANO_PLANT_27404; - } else if (TitheFarmMaterial.getSeedForLevel() == TitheFarmMaterial.LOGAVANO_SEED) { - return ObjectID.LOGAVANO_PLANT_27415; - } else if (TitheFarmMaterial.getSeedForLevel() == TitheFarmMaterial.GOLOVANOVA_SEED) { - return ObjectID.GOLOVANOVA_PLANT_27393; - } - return -1; - } - - public boolean isEmptyPatch() { - return gameObject.getId() == ObjectID.TITHE_PATCH; - } - - public boolean isEmptyPatchOrSeedling() { - return Arrays.stream(expectedPatchGameObject()).anyMatch(id -> id == gameObject.getId()); - } - - public boolean isValidToWater() { - return Arrays.stream(expectedWateredObject()).anyMatch(id -> id == gameObject.getId()) || isStage1() || isStage2(); - } - - public boolean isValidToHarvest() { - return gameObject.getId() == expectedHarvestObject(); - } - - public boolean isStage1() { - return getGameObject().getId() == ObjectID.LOGAVANO_PLANT - || getGameObject().getId() == ObjectID.GOLOVANOVA_PLANT - || getGameObject().getId() == ObjectID.BOLOGANO_PLANT; - } - - public boolean isStage2() { - return getGameObject().getId() == ObjectID.LOGAVANO_PLANT_27412 - || getGameObject().getId() == ObjectID.BOLOGANO_PLANT_27401 - || getGameObject().getId() == ObjectID.GOLOVANOVA_PLANT_27390; - } - - public double getPlantTimeRelative() { - Duration duration = Duration.between(planted, Instant.now()); - return duration.compareTo(PLANT_TIME) < 0 ? (double) duration.toMillis() / PLANT_TIME.toMillis() : 2; - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/bank/Rs2Bank.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/bank/Rs2Bank.java index 6ad905b773b..d6482ceaf06 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/bank/Rs2Bank.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/bank/Rs2Bank.java @@ -74,10 +74,6 @@ public class Rs2Bank { public static final int BANK_ITEM_HEIGHT = 32; public static final int BANK_ITEM_Y_PADDING = 4; public static final int BANK_ITEMS_PER_ROW = 8; - private static final int X_AMOUNT_VARBIT = VarbitID.BANK_REQUESTEDQUANTITY; - private static final int SELECTED_OPTION_VARBIT = VarbitID.BANK_QUANTITY_TYPE; - - private static final int WITHDRAW_AS_NOTE_VARBIT = 3958; // Bank data caching system private static final String CONFIG_GROUP = "microbot"; @@ -517,36 +513,22 @@ private static boolean handleAmount(Rs2ItemModel rs2Item, int amount, boolean sa boolean hasX = configuredX > 0; boolean isInventory = (container == BANK_INVENTORY_ITEM_CONTAINER); int xSetOffset = -1; - int xPromptOffset = -1; + int xPromptOffset = isInventory ? 7 : 6; + if (hasX) { switch (selected) { case 0: case 1: case 2: - xSetOffset = isInventory ? 6 : 4; - xPromptOffset = isInventory ? 7 : 5; + case 4: + xSetOffset = isInventory ? 6 : 5; break; case 3: - xSetOffset = isInventory ? 2 : 1; - xPromptOffset = isInventory ? 7 : 5; - break; - case 4: - xSetOffset = isInventory ? 6 : 5; - xPromptOffset = isInventory ? 7 : 6; + xSetOffset = isInventory ? 2 : 1; break; default: throw new IllegalStateException("Unknown BANK_QUANTITY_TYPE: " + selected); } - } else { - switch (selected) { - case 0: - case 1: - case 2: - xPromptOffset = isInventory ? 7 : 4; - break; - default: - xPromptOffset = isInventory ? 7 : 5; - } } if (hasX && configuredX == amount) { @@ -1022,7 +1004,7 @@ private static boolean withdrawAll(Rs2ItemModel rs2Item) { if (Microbot.getVarbitValue(VarbitID.BANK_QUANTITY_TYPE) == 4) { invokeMenu(1, rs2Item); } else { - invokeMenu(6, rs2Item); + invokeMenu(7, rs2Item); } return true; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/gameobject/Rs2BankID.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/gameobject/Rs2BankID.java index 01c5d8311e5..9b025bb9ed7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/gameobject/Rs2BankID.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/gameobject/Rs2BankID.java @@ -9,9 +9,9 @@ public class Rs2BankID { 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4167, 4168, 4170, 4252, 4253, 4483, 5108, 5109, 5162, 5163, 6081, 6082, 6083, 6084, 6420, 6448, 6646, 6647, 6910, 7192, 7350, 7351, 8139, 8140, 8141, 8142, 8797, 8798, 8800, 9753, 9754, 9755, 9756, 9757, 9758, 9759, 9760, 9761, 9762, 10083, 10355, 10357, - 10517, 10518, 10527, 10528, 10529, 10530, 10562, 10583, 10584, 10586, 10607, 10608, 10609, 10610, 10611, 10612, 10613, - 10614, 10615, 10616, 10617, 10618, 10619, 10620, 10621, 10622, 10623, 10624, 10625, 10661, 10768, 11231, 11232, 11323, 11338, - 11339, 11341, 11735, 11736, 11737, 11738, 11739, 11740, 11741, 11742, 12120, 12121, 12308, 12309, 12451, 12452, 12735, 12736, + 10517, 10518, 10527, 10528, 10529, 10530, 10562, 10583, 10584, 10586, 10607, 10608, 10609, 10610, 10611, 10612, 10613, 10614, + 10615, 10616, 10617, 10618, 10619, 10620, 10621, 10622, 10623, 10624, 10625, 10661, 10768, 11231, 11232, 11323, 11338, 11339, + 11341, 11735, 11736, 11737, 11738, 11739, 11740, 11741, 11742, 12120, 12121, 12308, 12309, 12451, 12452, 12735, 12736, 12759, 12768, 12769, 12798, 12799, 12800, 12801, 13003, 13004, 13285, 13286, 13287, 13288, 13289, 13290, 13291, 13292, 13384, 13385, 13386, 13387, 13388, 13389, 14196, 14197, 14367, 14368, 14382, 14773, 14774, 14854, 14886, 14986, 14988, 15343, 15677, 15722, 15723, 15724, 15725, 15726, 16116, 16117, 16118, 16119, 16187, 16189, 16642, 16643, 16695, 16696, 16697, 16700, 16887, 16888, diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/slayer/Rs2Slayer.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/slayer/Rs2Slayer.java index 693caaf6ad1..4002a4d536e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/slayer/Rs2Slayer.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/slayer/Rs2Slayer.java @@ -65,7 +65,7 @@ public static String getSlayerTask() { if (taskId == 0) { return null; } - return Microbot.getEnum(EnumID.SLAYER_TASK_CREATURE) + return Microbot.getEnum(693) .getStringValue(taskId); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/zerozero/bluedragons/BlueDragonsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/zerozero/bluedragons/BlueDragonsPlugin.java index a84beda4a73..85fd6ad0367 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/zerozero/bluedragons/BlueDragonsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/zerozero/bluedragons/BlueDragonsPlugin.java @@ -7,6 +7,8 @@ import net.runelite.client.events.ConfigChanged; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.microbot.util.antiban.Rs2Antiban; +import net.runelite.client.plugins.microbot.util.antiban.enums.Activity; import net.runelite.client.ui.overlay.OverlayManager; import javax.inject.Inject; @@ -42,6 +44,14 @@ protected void startUp() { overlay.setConfig(config); overlayManager.add(overlay); + + Rs2Antiban.activateAntiban(); + + Rs2Antiban.resetAntibanSettings(); + + Rs2Antiban.antibanSetupTemplates.applyCombatSetup(); + + Rs2Antiban.setActivity(Activity.KILLING_BLUE_DRAGONS); if (config.startPlugin()) { script.run(config); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/zerozero/bluedragons/BlueDragonsScript.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/zerozero/bluedragons/BlueDragonsScript.java index e79c5cff808..7fbb7840457 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/zerozero/bluedragons/BlueDragonsScript.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/zerozero/bluedragons/BlueDragonsScript.java @@ -396,11 +396,11 @@ private void handleLooting(BlueDragonsConfig config) { if (!isInventoryFull()) { lootedAnything |= lootItem("Scaly blue dragonhide"); } + if (config.lootMiscItems() && !isInventoryFull()) { Rs2GroundItem.lootItemBasedOnValue(new LootingParameters(config.lootValueThreshold(), 100000, 8, 1, 1, false, true)); } - if (config.lootDragonhide() && !isInventoryFull()) { lootedAnything |= lootItem("Blue dragonhide"); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java index ec143b46461..28da6add0c6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java @@ -50,14 +50,11 @@ import lombok.extern.slf4j.Slf4j; import net.runelite.api.ChatMessageType; import net.runelite.api.Client; -import net.runelite.api.EnumComposition; -import net.runelite.api.EnumID; import net.runelite.api.GameState; import net.runelite.api.MenuAction; import net.runelite.api.MessageNode; import net.runelite.api.NPC; import net.runelite.api.NPCComposition; -import net.runelite.api.ParamID; import net.runelite.api.events.ChatMessage; import net.runelite.api.events.CommandExecuted; import net.runelite.api.events.GameStateChanged; @@ -66,6 +63,7 @@ import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcSpawned; import net.runelite.api.events.VarbitChanged; +import net.runelite.api.gameval.DBTableID; import net.runelite.api.gameval.ItemID; import net.runelite.api.gameval.VarPlayerID; import net.runelite.api.gameval.VarbitID; @@ -91,7 +89,6 @@ import net.runelite.client.util.ColorUtil; import net.runelite.client.util.Text; import org.apache.commons.lang3.ArrayUtils; -import org.apache.commons.lang3.StringUtils; @PluginDescriptor( name = "Slayer", @@ -231,8 +228,10 @@ protected void startUp() } // !task requires off-thread access to slayer task locations - EnumComposition e = client.getEnum(EnumID.SLAYER_TASK_LOCATION); - taskLocations = e.getStringVals().clone(); + taskLocations = client.getDBTableRows(DBTableID.SlayerArea.ID) + .stream() + .map(row -> (String) client.getDBTableField(row, DBTableID.SlayerArea.COL_AREA_NAME_IN_HELPER, 0)[0]) + .toArray(String[]::new); return true; }); } @@ -362,26 +361,45 @@ private void updateTask() if (amount > 0) { int taskId = client.getVarpValue(VarPlayerID.SLAYER_TARGET); - String taskName; + + int taskDBRow; if (taskId == 98 /* Bosses, from [proc,helper_slayer_current_assignment] */) { - int structId = client.getEnum(EnumID.SLAYER_TASK) - .getIntValue(client.getVarbitValue(VarbitID.SLAYER_TARGET_BOSSID)); - taskName = client.getStructComposition(structId) - .getStringValue(ParamID.SLAYER_TASK_NAME); + var bossRows = client.getDBRowsByValue( + DBTableID.SlayerTaskSublist.ID, + DBTableID.SlayerTaskSublist.COL_SUBTABLE_ID, + 0, + taskId); + + if (bossRows.isEmpty()) + { + return; + } + taskDBRow = (Integer) client.getDBTableField(bossRows.get(0), DBTableID.SlayerTaskSublist.COL_TASK, 0)[0]; } else { - taskName = client.getEnum(EnumID.SLAYER_TASK_CREATURE) - .getStringValue(taskId); + var taskRows = client.getDBRowsByValue(DBTableID.SlayerTask.ID, DBTableID.SlayerTask.COL_ID, 0, taskId); + if (taskRows.isEmpty()) + { + return; + } + taskDBRow = taskRows.get(0); } + var taskName = (String) client.getDBTableField(taskDBRow, DBTableID.SlayerTask.COL_NAME_UPPERCASE, 0)[0]; + int areaId = client.getVarpValue(VarPlayerID.SLAYER_AREA); String taskLocation = null; if (areaId > 0) { - taskLocation = StringUtils.capitalize(client.getEnum(EnumID.SLAYER_TASK_LOCATION) - .getStringValue(areaId)); + var areaRows = client.getDBRowsByValue(DBTableID.SlayerArea.ID, DBTableID.SlayerArea.COL_AREA_ID, 0, areaId); + if (areaRows.isEmpty()) + { + return; + } + + taskLocation = (String) client.getDBTableField(areaRows.get(0), DBTableID.SlayerArea.COL_AREA_NAME_IN_HELPER, 0)[0]; } int initialAmount = client.getVarpValue(VarPlayerID.SLAYER_COUNT_ORIGINAL); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/DungeonLocation.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/DungeonLocation.java index d53a87e941b..cdf20c886d0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/DungeonLocation.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/DungeonLocation.java @@ -237,7 +237,7 @@ enum DungeonLocation UNDERGROUND_PASS_KANDARIN("Underground Pass", new WorldPoint(2312, 3215, 0)), UNDERGROUND_PASS_TIRANNWN("Underground Pass", new WorldPoint(2433, 3315, 0)), UNDERGROUND_PASS_TIRANNWN_PRIF("Underground Pass", new WorldPoint(3336, 5967, 0)), - UNDERWATER("Underwater", new WorldPoint(3765, 3898, 0)), + UNDERWATER("Underwater", new WorldPoint(3760, 3899, 0)), UZER("Ruins of Uzer basement", new WorldPoint(3492, 3090, 0)), VARLAMORE_WOLF_DEN("Wolf Den", new WorldPoint(1496, 3132, 0)), VARROCK_SEWERS("Varrock Sewers", new WorldPoint(3236, 3458, 0)), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TransportationPointLocation.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TransportationPointLocation.java index e7aa3535e4a..153d96b6fce 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TransportationPointLocation.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TransportationPointLocation.java @@ -89,7 +89,7 @@ enum TransportationPointLocation ROW_BOAT_CRABCLAW("Rowboat to Hosidius", new WorldPoint(1780, 3417, 0), new WorldPoint(1779, 3457, 0)), ROW_BOAT_CUSTODIA_SOUTH("Rowboat to North Custodia Pass", new WorldPoint(1281, 3386, 0)), ROW_BOAT_CUSTODIA_WEST("Rowboat to South Custodia Pass", new WorldPoint(1256, 3395, 0)), - ROW_BOAT_DIVING_ISLAND("Rowboat to Barge/Camp/North of Island", new WorldPoint(3764, 3901, 0)), + ROW_BOAT_DIVING_ISLAND("Rowboat to Barge/Camp/North of Island", new WorldPoint(3759, 3902, 0)), ROW_BOAT_FISHING_GUILD("Rowboat to Hemenster", new WorldPoint(2598, 3426, 0), new WorldPoint(2613, 3439, 0)), ROW_BOAT_GNOME_STRONGHOLD("Rowboat to Fishing Colony", new WorldPoint(2368, 3487, 0), new WorldPoint(2356, 3641, 0)), ROW_BOAT_FISHING_COLONY("Rowboat to Gnome Stronghold", new WorldPoint(2356, 3641, 0), new WorldPoint(2368, 3487, 0)), diff --git a/runelite-client/src/main/resources/item_variations.json b/runelite-client/src/main/resources/item_variations.json index b461ac421f1..ac9f15261f1 100644 --- a/runelite-client/src/main/resources/item_variations.json +++ b/runelite-client/src/main/resources/item_variations.json @@ -4833,8 +4833,7 @@ ], "agility jump": [ 6514, - 6518, - 11793 + 6518 ], "agility balance": [ 6515, @@ -11657,7 +11656,8 @@ ], "venator bow": [ 27610, - 27612 + 27612, + 31133 ], "ancient sceptre": [ 27624, @@ -11954,6 +11954,10 @@ 28676, 28677 ], + "dinhs blazing bulwark": [ + 28682, + 31132 + ], "blazing blowpipe": [ 28687, 28688 @@ -12678,5 +12682,9 @@ "eye of ayak": [ 31113, 31115 + ], + "agility swing": [ + 31134, + 31135 ] } \ No newline at end of file diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java index c052df05538..1c0932d9348 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java @@ -28,6 +28,7 @@ import com.google.inject.testing.fieldbinder.Bind; import com.google.inject.testing.fieldbinder.BoundFieldModule; import java.io.IOException; +import java.util.List; import java.util.concurrent.ScheduledExecutorService; import java.util.function.BooleanSupplier; import javax.inject.Inject; @@ -35,8 +36,6 @@ import net.runelite.api.ChatMessageType; import static net.runelite.api.ChatMessageType.GAMEMESSAGE; import net.runelite.api.Client; -import net.runelite.api.EnumComposition; -import net.runelite.api.EnumID; import net.runelite.api.GameState; import net.runelite.api.MessageNode; import net.runelite.api.NPC; @@ -45,6 +44,7 @@ import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; import net.runelite.api.events.VarbitChanged; +import net.runelite.api.gameval.DBTableID; import net.runelite.api.gameval.VarPlayerID; import net.runelite.client.Notifier; import net.runelite.client.callback.ClientThread; @@ -66,6 +66,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.eq; import org.mockito.Mock; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.lenient; @@ -163,9 +164,8 @@ public void before() return b.getAsBoolean(); }).when(clientThread).invoke(any(BooleanSupplier.class)); - EnumComposition e = mock(EnumComposition.class); - when(e.getStringVals()).thenReturn(new String[]{"The Abyss"}); - when(client.getEnum(EnumID.SLAYER_TASK_LOCATION)).thenReturn(e); + when(client.getDBTableRows(DBTableID.SlayerArea.ID)).thenReturn(List.of(1234)); + when(client.getDBTableField(1234, DBTableID.SlayerArea.COL_AREA_NAME_IN_HELPER, 0)).thenReturn(new String[]{"The Abyss"}); slayerPlugin.startUp(); } @@ -248,13 +248,7 @@ public void infoboxNotAddedOnLogin() when(client.getVarpValue(VarPlayerID.SLAYER_COUNT)).thenReturn(42); when(client.getVarpValue(VarPlayerID.SLAYER_TARGET)).thenReturn(1); - when(client.getEnum(EnumID.SLAYER_TASK_CREATURE)) - .thenAnswer(a -> - { - EnumComposition e = mock(EnumComposition.class); - when(e.getStringValue(anyInt())).thenReturn("mocked npc"); - return e; - }); + mockDBTable(113, 0, 10, "mocked npc"); VarbitChanged varbitChanged = new VarbitChanged(); varbitChanged.setVarpId(VarPlayerID.SLAYER_COUNT); @@ -309,13 +303,7 @@ public void testDisconnect() { when(client.getVarpValue(VarPlayerID.SLAYER_COUNT)).thenReturn(42); when(client.getVarpValue(VarPlayerID.SLAYER_TARGET)).thenReturn(1); - when(client.getEnum(EnumID.SLAYER_TASK_CREATURE)) - .thenAnswer(a -> - { - EnumComposition e = mock(EnumComposition.class); - when(e.getStringValue(anyInt())).thenReturn("mocked npc"); - return e; - }); + mockDBTable(113, 0, 10, "mocked npc"); slayerPlugin.setTaskName("mocked npc"); slayerPlugin.setAmount(42); @@ -363,4 +351,12 @@ public void testDisconnect() assertEquals(42, slayerPlugin.getAmount()); assertEquals(99, slayerPlugin.getInitialAmount()); } + + void mockDBTable(int table, int keycol, int valcol, String str) + { + int mockRow = (table << 8) | keycol; + when(client.getDBRowsByValue(eq(table), eq(keycol), eq(0), anyInt())) + .thenReturn(List.of(mockRow)); + when(client.getDBTableField(mockRow, valcol, 0)).thenReturn(new String[]{str}); + } } diff --git a/runelite-jshell/pom.xml b/runelite-jshell/pom.xml index 253a8632285..63bfad3709b 100644 --- a/runelite-jshell/pom.xml +++ b/runelite-jshell/pom.xml @@ -30,7 +30,7 @@ net.runelite runelite-parent - 1.11.14-SNAPSHOT + 1.11.15-SNAPSHOT jshell diff --git a/runelite-maven-plugin/pom.xml b/runelite-maven-plugin/pom.xml index a5a281ce06c..7efe5997f34 100644 --- a/runelite-maven-plugin/pom.xml +++ b/runelite-maven-plugin/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.11.14-SNAPSHOT + 1.11.15-SNAPSHOT runelite-maven-plugin