Merge pull request #3157 from Owain94/upstream-1404
This commit is contained in:
@@ -25,9 +25,9 @@
|
||||
|
||||
object ProjectVersions {
|
||||
const val launcherVersion = "2.2.0"
|
||||
const val rlVersion = "1.8.16"
|
||||
const val rlVersion = "1.8.17"
|
||||
|
||||
const val openosrsVersion = "4.22.0"
|
||||
const val openosrsVersion = "4.23.0"
|
||||
|
||||
const val rsversion = 204
|
||||
const val cacheversion = 165
|
||||
|
||||
@@ -34,6 +34,7 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import net.runelite.api.annotations.Varbit;
|
||||
import net.runelite.api.annotations.VisibleForExternalPlugins;
|
||||
import net.runelite.api.clan.ClanChannel;
|
||||
import net.runelite.api.clan.ClanID;
|
||||
@@ -854,12 +855,22 @@ public interface Client extends OAuthApi, GameEngine
|
||||
int getVar(VarPlayer varPlayer);
|
||||
|
||||
/**
|
||||
* Gets a value corresponding to the passed variable.
|
||||
* Gets a value corresponding to the passed varbit.
|
||||
*
|
||||
* @param varbit the variable
|
||||
* @param varbit the varbit id
|
||||
* @return the value
|
||||
* @see Client#getVarbitValue(int)
|
||||
*/
|
||||
@Deprecated
|
||||
int getVar(@Varbit int varbit);
|
||||
|
||||
/**
|
||||
* Gets a value corresponding to the passed varbit.
|
||||
*
|
||||
* @param varbit the varbit id
|
||||
* @return the value
|
||||
*/
|
||||
int getVar(Varbits varbit);
|
||||
int getVarbitValue(@Varbit int varbit);
|
||||
|
||||
/**
|
||||
* Gets an int value corresponding to the passed variable.
|
||||
@@ -877,15 +888,6 @@ public interface Client extends OAuthApi, GameEngine
|
||||
*/
|
||||
String getVar(VarClientStr varClientStr);
|
||||
|
||||
/**
|
||||
* Gets the value of a given Varbit.
|
||||
*
|
||||
* @param varbitId the varbit id
|
||||
* @return the value
|
||||
*/
|
||||
@VisibleForExternalPlugins
|
||||
int getVarbitValue(int varbitId);
|
||||
|
||||
/**
|
||||
* Gets the value of a given VarClientInt
|
||||
*
|
||||
@@ -915,12 +917,12 @@ public interface Client extends OAuthApi, GameEngine
|
||||
void setVar(VarClientInt varClientStr, int value);
|
||||
|
||||
/**
|
||||
* Sets the value of a given variable.
|
||||
* Sets the value of a varbit
|
||||
*
|
||||
* @param varbit the variable
|
||||
* @param varbit the varbit id
|
||||
* @param value the new value
|
||||
*/
|
||||
void setVarbit(Varbits varbit, int value);
|
||||
void setVarbit(@Varbit int varbit, int value);
|
||||
|
||||
/**
|
||||
* Gets the varbit composition for a given varbit id
|
||||
@@ -939,7 +941,7 @@ public interface Client extends OAuthApi, GameEngine
|
||||
* @return the value
|
||||
* @see Varbits
|
||||
*/
|
||||
int getVarbitValue(int[] varps, int varbitId);
|
||||
int getVarbitValue(int[] varps, @Varbit int varbitId);
|
||||
|
||||
/**
|
||||
* Gets the value of a given VarPlayer.
|
||||
@@ -961,7 +963,7 @@ public interface Client extends OAuthApi, GameEngine
|
||||
* @param value the value
|
||||
* @see Varbits
|
||||
*/
|
||||
void setVarbitValue(int[] varps, int varbit, int value);
|
||||
void setVarbitValue(int[] varps, @Varbit int varbit, int value);
|
||||
|
||||
/**
|
||||
* Mark the given varp as changed, causing var listeners to be
|
||||
|
||||
@@ -40,4 +40,18 @@ public interface FriendsChatManager extends NameableContainer<FriendsChatMember>
|
||||
* @return
|
||||
*/
|
||||
String getName();
|
||||
|
||||
/**
|
||||
* Get the local player's rank in the friend chat
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
FriendsChatRank getMyRank();
|
||||
|
||||
/**
|
||||
* Get the rank required to kick members from the friends chat
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
FriendsChatRank getKickRank();
|
||||
}
|
||||
|
||||
@@ -337,7 +337,7 @@ public class Perspective
|
||||
Widget minimapDrawWidget;
|
||||
if (client.isResized())
|
||||
{
|
||||
if (client.getVar(Varbits.SIDE_PANELS) == 1)
|
||||
if (client.getVarbitValue(Varbits.SIDE_PANELS) == 1)
|
||||
{
|
||||
minimapDrawWidget = client.getWidget(WidgetInfo.RESIZABLE_MINIMAP_DRAW_AREA);
|
||||
}
|
||||
|
||||
@@ -24,15 +24,12 @@
|
||||
*/
|
||||
package net.runelite.api;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.api.annotations.Varbit;
|
||||
|
||||
/**
|
||||
* An enumeration of different prayer spells.
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum Prayer
|
||||
{
|
||||
/**
|
||||
@@ -152,19 +149,40 @@ public enum Prayer
|
||||
*/
|
||||
AUGURY(Varbits.PRAYER_AUGURY, 40.0, WidgetInfo.PRAYER_AUGURY);
|
||||
|
||||
private final int varbit;
|
||||
private final double drainRate;
|
||||
private final WidgetInfo widgetInfo;
|
||||
|
||||
Prayer(@Varbit int varbit, double drainRate, WidgetInfo widgetInfo)
|
||||
{
|
||||
this.varbit = varbit;
|
||||
this.drainRate = drainRate;
|
||||
this.widgetInfo = widgetInfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the varbit that stores whether the prayer is active or not.
|
||||
*
|
||||
* @return the prayer active varbit
|
||||
*/
|
||||
private final Varbits varbit;
|
||||
@Varbit
|
||||
public int getVarbit()
|
||||
{
|
||||
return varbit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the prayer drain rate (measured in pray points/minute)
|
||||
*
|
||||
* @return the prayer drain rate
|
||||
*/
|
||||
private final double drainRate;
|
||||
|
||||
/**
|
||||
* Gets the widget info for prayer
|
||||
*/
|
||||
private final WidgetInfo widgetInfo;
|
||||
public double getDrainRate()
|
||||
{
|
||||
return drainRate;
|
||||
}
|
||||
|
||||
public WidgetInfo getWidgetInfo()
|
||||
{
|
||||
return widgetInfo;
|
||||
}
|
||||
}
|
||||
@@ -447,6 +447,6 @@ public final class ScriptID
|
||||
@ScriptArguments(integer = 4)
|
||||
public static final int QUEST_FILTER = 3238;
|
||||
|
||||
@ScriptArguments(integer = 18, string = 1)
|
||||
@ScriptArguments(integer = 7)
|
||||
public static final int GROUP_IRONMAN_STORAGE_BUILD = 5269;
|
||||
}
|
||||
@@ -24,209 +24,204 @@
|
||||
*/
|
||||
package net.runelite.api;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* Server controlled "content-developer" integers.
|
||||
*
|
||||
* @see VarPlayer
|
||||
*
|
||||
* <p>
|
||||
* These differ from a {@link VarPlayer} in that VarBits can be
|
||||
* less than 32 bits. One or more VarBits can be assigned to a
|
||||
* backing VarPlayer, each with a static range of bits that it is
|
||||
* allowed to access. This allows a more compact representation
|
||||
* of small values, like booleans
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum Varbits
|
||||
public final class Varbits
|
||||
{
|
||||
/*
|
||||
* If chatbox is transparent or not
|
||||
*/
|
||||
TRANSPARENT_CHATBOX(4608),
|
||||
public static final int TRANSPARENT_CHATBOX = 4608;
|
||||
|
||||
/*
|
||||
* If the player has an active stamina potion effect or not
|
||||
*/
|
||||
RUN_SLOWED_DEPLETION_ACTIVE(25),
|
||||
public static final int RUN_SLOWED_DEPLETION_ACTIVE = 25;
|
||||
|
||||
/**
|
||||
* If scrollbar in resizable mode chat is on the left
|
||||
*/
|
||||
CHAT_SCROLLBAR_ON_LEFT(6374),
|
||||
public static final int CHAT_SCROLLBAR_ON_LEFT = 6374;
|
||||
|
||||
/**
|
||||
* Runepouch
|
||||
*/
|
||||
RUNE_POUCH_RUNE1(29),
|
||||
RUNE_POUCH_RUNE2(1622),
|
||||
RUNE_POUCH_RUNE3(1623),
|
||||
RUNE_POUCH_AMOUNT1(1624),
|
||||
RUNE_POUCH_AMOUNT2(1625),
|
||||
RUNE_POUCH_AMOUNT3(1626),
|
||||
public static final int RUNE_POUCH_RUNE1 = 29;
|
||||
public static final int RUNE_POUCH_RUNE2 = 1622;
|
||||
public static final int RUNE_POUCH_RUNE3 = 1623;
|
||||
public static final int RUNE_POUCH_AMOUNT1 = 1624;
|
||||
public static final int RUNE_POUCH_AMOUNT2 = 1625;
|
||||
public static final int RUNE_POUCH_AMOUNT3 = 1626;
|
||||
|
||||
/**
|
||||
* Prayers
|
||||
*/
|
||||
QUICK_PRAYER(4103),
|
||||
PRAYER_THICK_SKIN(4104),
|
||||
PRAYER_BURST_OF_STRENGTH(4105),
|
||||
PRAYER_CLARITY_OF_THOUGHT(4106),
|
||||
PRAYER_SHARP_EYE(4122),
|
||||
PRAYER_MYSTIC_WILL(4123),
|
||||
PRAYER_ROCK_SKIN(4107),
|
||||
PRAYER_SUPERHUMAN_STRENGTH(4108),
|
||||
PRAYER_IMPROVED_REFLEXES(4109),
|
||||
PRAYER_RAPID_RESTORE(4110),
|
||||
PRAYER_RAPID_HEAL(4111),
|
||||
PRAYER_PROTECT_ITEM(4112),
|
||||
PRAYER_HAWK_EYE(4124),
|
||||
PRAYER_MYSTIC_LORE(4125),
|
||||
PRAYER_STEEL_SKIN(4113),
|
||||
PRAYER_ULTIMATE_STRENGTH(4114),
|
||||
PRAYER_INCREDIBLE_REFLEXES(4115),
|
||||
PRAYER_PROTECT_FROM_MAGIC(4116),
|
||||
PRAYER_PROTECT_FROM_MISSILES(4117),
|
||||
PRAYER_PROTECT_FROM_MELEE(4118),
|
||||
PRAYER_EAGLE_EYE(4126),
|
||||
PRAYER_MYSTIC_MIGHT(4127),
|
||||
PRAYER_RETRIBUTION(4119),
|
||||
PRAYER_REDEMPTION(4120),
|
||||
PRAYER_SMITE(4121),
|
||||
PRAYER_CHIVALRY(4128),
|
||||
PRAYER_PIETY(4129),
|
||||
PRAYER_PRESERVE(5466),
|
||||
PRAYER_RIGOUR(5464),
|
||||
PRAYER_AUGURY(5465),
|
||||
public static final int QUICK_PRAYER = 4103;
|
||||
public static final int PRAYER_THICK_SKIN = 4104;
|
||||
public static final int PRAYER_BURST_OF_STRENGTH = 4105;
|
||||
public static final int PRAYER_CLARITY_OF_THOUGHT = 4106;
|
||||
public static final int PRAYER_SHARP_EYE = 4122;
|
||||
public static final int PRAYER_MYSTIC_WILL = 4123;
|
||||
public static final int PRAYER_ROCK_SKIN = 4107;
|
||||
public static final int PRAYER_SUPERHUMAN_STRENGTH = 4108;
|
||||
public static final int PRAYER_IMPROVED_REFLEXES = 4109;
|
||||
public static final int PRAYER_RAPID_RESTORE = 4110;
|
||||
public static final int PRAYER_RAPID_HEAL = 4111;
|
||||
public static final int PRAYER_PROTECT_ITEM = 4112;
|
||||
public static final int PRAYER_HAWK_EYE = 4124;
|
||||
public static final int PRAYER_MYSTIC_LORE = 4125;
|
||||
public static final int PRAYER_STEEL_SKIN = 4113;
|
||||
public static final int PRAYER_ULTIMATE_STRENGTH = 4114;
|
||||
public static final int PRAYER_INCREDIBLE_REFLEXES = 4115;
|
||||
public static final int PRAYER_PROTECT_FROM_MAGIC = 4116;
|
||||
public static final int PRAYER_PROTECT_FROM_MISSILES = 4117;
|
||||
public static final int PRAYER_PROTECT_FROM_MELEE = 4118;
|
||||
public static final int PRAYER_EAGLE_EYE = 4126;
|
||||
public static final int PRAYER_MYSTIC_MIGHT = 4127;
|
||||
public static final int PRAYER_RETRIBUTION = 4119;
|
||||
public static final int PRAYER_REDEMPTION = 4120;
|
||||
public static final int PRAYER_SMITE = 4121;
|
||||
public static final int PRAYER_CHIVALRY = 4128;
|
||||
public static final int PRAYER_PIETY = 4129;
|
||||
public static final int PRAYER_PRESERVE = 5466;
|
||||
public static final int PRAYER_RIGOUR = 5464;
|
||||
public static final int PRAYER_AUGURY = 5465;
|
||||
|
||||
RIGOUR_UNLOCKED(5451),
|
||||
AUGURY_UNLOCKED(5452),
|
||||
PRESERVE_UNLOCKED(5453),
|
||||
public static final int RIGOUR_UNLOCKED = 5451;
|
||||
public static final int AUGURY_UNLOCKED = 5452;
|
||||
public static final int PRESERVE_UNLOCKED = 5453;
|
||||
|
||||
/**
|
||||
* Diary Entries
|
||||
*/
|
||||
DIARY_ARDOUGNE_EASY(4458),
|
||||
DIARY_ARDOUGNE_MEDIUM(4459),
|
||||
DIARY_ARDOUGNE_HARD(4460),
|
||||
DIARY_ARDOUGNE_ELITE(4461),
|
||||
public static final int DIARY_ARDOUGNE_EASY = 4458;
|
||||
public static final int DIARY_ARDOUGNE_MEDIUM = 4459;
|
||||
public static final int DIARY_ARDOUGNE_HARD = 4460;
|
||||
public static final int DIARY_ARDOUGNE_ELITE = 4461;
|
||||
|
||||
DIARY_DESERT_EASY(4483),
|
||||
DIARY_DESERT_MEDIUM(4484),
|
||||
DIARY_DESERT_HARD(4485),
|
||||
DIARY_DESERT_ELITE(4486),
|
||||
public static final int DIARY_DESERT_EASY = 4483;
|
||||
public static final int DIARY_DESERT_MEDIUM = 4484;
|
||||
public static final int DIARY_DESERT_HARD = 4485;
|
||||
public static final int DIARY_DESERT_ELITE = 4486;
|
||||
|
||||
DIARY_FALADOR_EASY(4462),
|
||||
DIARY_FALADOR_MEDIUM(4463),
|
||||
DIARY_FALADOR_HARD(4464),
|
||||
DIARY_FALADOR_ELITE(4465),
|
||||
public static final int DIARY_FALADOR_EASY = 4462;
|
||||
public static final int DIARY_FALADOR_MEDIUM = 4463;
|
||||
public static final int DIARY_FALADOR_HARD = 4464;
|
||||
public static final int DIARY_FALADOR_ELITE = 4465;
|
||||
|
||||
DIARY_FREMENNIK_EASY(4491),
|
||||
DIARY_FREMENNIK_MEDIUM(4492),
|
||||
DIARY_FREMENNIK_HARD(4493),
|
||||
DIARY_FREMENNIK_ELITE(4494),
|
||||
public static final int DIARY_FREMENNIK_EASY = 4491;
|
||||
public static final int DIARY_FREMENNIK_MEDIUM = 4492;
|
||||
public static final int DIARY_FREMENNIK_HARD = 4493;
|
||||
public static final int DIARY_FREMENNIK_ELITE = 4494;
|
||||
|
||||
DIARY_KANDARIN_EASY(4475),
|
||||
DIARY_KANDARIN_MEDIUM(4476),
|
||||
DIARY_KANDARIN_HARD(4477),
|
||||
DIARY_KANDARIN_ELITE(4478),
|
||||
public static final int DIARY_KANDARIN_EASY = 4475;
|
||||
public static final int DIARY_KANDARIN_MEDIUM = 4476;
|
||||
public static final int DIARY_KANDARIN_HARD = 4477;
|
||||
public static final int DIARY_KANDARIN_ELITE = 4478;
|
||||
|
||||
DIARY_KARAMJA_EASY(3578),
|
||||
DIARY_KARAMJA_MEDIUM(3599),
|
||||
DIARY_KARAMJA_HARD(3611),
|
||||
DIARY_KARAMJA_ELITE(4566),
|
||||
public static final int DIARY_KARAMJA_EASY = 3578;
|
||||
public static final int DIARY_KARAMJA_MEDIUM = 3599;
|
||||
public static final int DIARY_KARAMJA_HARD = 3611;
|
||||
public static final int DIARY_KARAMJA_ELITE = 4566;
|
||||
|
||||
DIARY_KOUREND_EASY(7925),
|
||||
DIARY_KOUREND_MEDIUM(7926),
|
||||
DIARY_KOUREND_HARD(7927),
|
||||
DIARY_KOUREND_ELITE(7928),
|
||||
public static final int DIARY_KOUREND_EASY = 7925;
|
||||
public static final int DIARY_KOUREND_MEDIUM = 7926;
|
||||
public static final int DIARY_KOUREND_HARD = 7927;
|
||||
public static final int DIARY_KOUREND_ELITE = 7928;
|
||||
|
||||
DIARY_LUMBRIDGE_EASY(4495),
|
||||
DIARY_LUMBRIDGE_MEDIUM(4496),
|
||||
DIARY_LUMBRIDGE_HARD(4497),
|
||||
DIARY_LUMBRIDGE_ELITE(4498),
|
||||
public static final int DIARY_LUMBRIDGE_EASY = 4495;
|
||||
public static final int DIARY_LUMBRIDGE_MEDIUM = 4496;
|
||||
public static final int DIARY_LUMBRIDGE_HARD = 4497;
|
||||
public static final int DIARY_LUMBRIDGE_ELITE = 4498;
|
||||
|
||||
DIARY_MORYTANIA_EASY(4487),
|
||||
DIARY_MORYTANIA_MEDIUM(4488),
|
||||
DIARY_MORYTANIA_HARD(4489),
|
||||
DIARY_MORYTANIA_ELITE(4490),
|
||||
public static final int DIARY_MORYTANIA_EASY = 4487;
|
||||
public static final int DIARY_MORYTANIA_MEDIUM = 4488;
|
||||
public static final int DIARY_MORYTANIA_HARD = 4489;
|
||||
public static final int DIARY_MORYTANIA_ELITE = 4490;
|
||||
|
||||
DIARY_VARROCK_EASY(4479),
|
||||
DIARY_VARROCK_MEDIUM(4480),
|
||||
DIARY_VARROCK_HARD(4481),
|
||||
DIARY_VARROCK_ELITE(4482),
|
||||
public static final int DIARY_VARROCK_EASY = 4479;
|
||||
public static final int DIARY_VARROCK_MEDIUM = 4480;
|
||||
public static final int DIARY_VARROCK_HARD = 4481;
|
||||
public static final int DIARY_VARROCK_ELITE = 4482;
|
||||
|
||||
DIARY_WESTERN_EASY(4471),
|
||||
DIARY_WESTERN_MEDIUM(4472),
|
||||
DIARY_WESTERN_HARD(4473),
|
||||
DIARY_WESTERN_ELITE(4474),
|
||||
public static final int DIARY_WESTERN_EASY = 4471;
|
||||
public static final int DIARY_WESTERN_MEDIUM = 4472;
|
||||
public static final int DIARY_WESTERN_HARD = 4473;
|
||||
public static final int DIARY_WESTERN_ELITE = 4474;
|
||||
|
||||
DIARY_WILDERNESS_EASY(4466),
|
||||
DIARY_WILDERNESS_MEDIUM(4467),
|
||||
DIARY_WILDERNESS_HARD(4468),
|
||||
DIARY_WILDERNESS_ELITE(4469),
|
||||
public static final int DIARY_WILDERNESS_EASY = 4466;
|
||||
public static final int DIARY_WILDERNESS_MEDIUM = 4467;
|
||||
public static final int DIARY_WILDERNESS_HARD = 4468;
|
||||
public static final int DIARY_WILDERNESS_ELITE = 4469;
|
||||
|
||||
/**
|
||||
* Kourend house favours
|
||||
*/
|
||||
KOUREND_FAVOR_ARCEUUS(4896),
|
||||
KOUREND_FAVOR_HOSIDIUS(4895),
|
||||
KOUREND_FAVOR_LOVAKENGJ(4898),
|
||||
KOUREND_FAVOR_PISCARILIUS(4899),
|
||||
KOUREND_FAVOR_SHAYZIEN(4894),
|
||||
public static final int KOUREND_FAVOR_ARCEUUS = 4896;
|
||||
public static final int KOUREND_FAVOR_HOSIDIUS = 4895;
|
||||
public static final int KOUREND_FAVOR_LOVAKENGJ = 4898;
|
||||
public static final int KOUREND_FAVOR_PISCARILIUS = 4899;
|
||||
public static final int KOUREND_FAVOR_SHAYZIEN = 4894;
|
||||
|
||||
/**
|
||||
* Equipped weapon type
|
||||
*/
|
||||
EQUIPPED_WEAPON_TYPE(357),
|
||||
public static final int EQUIPPED_WEAPON_TYPE = 357;
|
||||
|
||||
/**
|
||||
* Defensive casting mode
|
||||
*/
|
||||
DEFENSIVE_CASTING_MODE(2668),
|
||||
public static final int DEFENSIVE_CASTING_MODE = 2668;
|
||||
/**
|
||||
* Spells being auto-casted
|
||||
*/
|
||||
AUTO_CAST_SPELL(276),
|
||||
public static final int AUTO_CAST_SPELL = 276;
|
||||
|
||||
/**
|
||||
* Options
|
||||
*/
|
||||
SIDE_PANELS(4607),
|
||||
public static final int SIDE_PANELS = 4607;
|
||||
|
||||
/**
|
||||
* Herbiboar Trails
|
||||
*/
|
||||
HB_TRAIL_31303(5737),
|
||||
HB_TRAIL_31306(5738),
|
||||
HB_TRAIL_31309(5739),
|
||||
HB_TRAIL_31312(5740),
|
||||
HB_TRAIL_31315(5741),
|
||||
HB_TRAIL_31318(5742),
|
||||
HB_TRAIL_31321(5743),
|
||||
HB_TRAIL_31324(5744),
|
||||
HB_TRAIL_31327(5745),
|
||||
HB_TRAIL_31330(5746),
|
||||
public static final int HB_TRAIL_31303 = 5737;
|
||||
public static final int HB_TRAIL_31306 = 5738;
|
||||
public static final int HB_TRAIL_31309 = 5739;
|
||||
public static final int HB_TRAIL_31312 = 5740;
|
||||
public static final int HB_TRAIL_31315 = 5741;
|
||||
public static final int HB_TRAIL_31318 = 5742;
|
||||
public static final int HB_TRAIL_31321 = 5743;
|
||||
public static final int HB_TRAIL_31324 = 5744;
|
||||
public static final int HB_TRAIL_31327 = 5745;
|
||||
public static final int HB_TRAIL_31330 = 5746;
|
||||
|
||||
HB_TRAIL_31333(5768),
|
||||
HB_TRAIL_31336(5769),
|
||||
HB_TRAIL_31339(5770),
|
||||
HB_TRAIL_31342(5771),
|
||||
HB_TRAIL_31345(5772),
|
||||
HB_TRAIL_31348(5773),
|
||||
HB_TRAIL_31351(5774),
|
||||
HB_TRAIL_31354(5775),
|
||||
HB_TRAIL_31357(5776),
|
||||
HB_TRAIL_31360(5777),
|
||||
public static final int HB_TRAIL_31333 = 5768;
|
||||
public static final int HB_TRAIL_31336 = 5769;
|
||||
public static final int HB_TRAIL_31339 = 5770;
|
||||
public static final int HB_TRAIL_31342 = 5771;
|
||||
public static final int HB_TRAIL_31345 = 5772;
|
||||
public static final int HB_TRAIL_31348 = 5773;
|
||||
public static final int HB_TRAIL_31351 = 5774;
|
||||
public static final int HB_TRAIL_31354 = 5775;
|
||||
public static final int HB_TRAIL_31357 = 5776;
|
||||
public static final int HB_TRAIL_31360 = 5777;
|
||||
|
||||
HB_TRAIL_31363(5747),
|
||||
HB_TRAIL_31366(5748),
|
||||
HB_TRAIL_31369(5749),
|
||||
HB_TRAIL_31372(5750),
|
||||
public static final int HB_TRAIL_31363 = 5747;
|
||||
public static final int HB_TRAIL_31366 = 5748;
|
||||
public static final int HB_TRAIL_31369 = 5749;
|
||||
public static final int HB_TRAIL_31372 = 5750;
|
||||
|
||||
HB_FINISH(5766),
|
||||
public static final int HB_FINISH = 5766;
|
||||
|
||||
/**
|
||||
* Started hunting Herbiboar.
|
||||
@@ -234,181 +229,186 @@ public enum Varbits
|
||||
* NOTE: This value remains at 0 even after starting a Herbiboar trail up until searching the first object along the
|
||||
* hunting path.
|
||||
*/
|
||||
HB_STARTED(5767),
|
||||
public static final int HB_STARTED = 5767;
|
||||
|
||||
/**
|
||||
* Barbarian Assault
|
||||
*/
|
||||
IN_GAME_BA(3923),
|
||||
BA_GC(4768),
|
||||
public static final int IN_GAME_BA = 3923;
|
||||
public static final int BA_GC = 4768;
|
||||
|
||||
/**
|
||||
* 0 = Outside wilderness
|
||||
* 1 = In wilderness
|
||||
*/
|
||||
IN_WILDERNESS(5963),
|
||||
public static final int IN_WILDERNESS = 5963;
|
||||
|
||||
/**
|
||||
* Fishing Trawler
|
||||
* FISHING_TRAWLER_ACTIVITY Expected values: 0-255
|
||||
*/
|
||||
FISHING_TRAWLER_ACTIVITY(3377),
|
||||
public static final int FISHING_TRAWLER_ACTIVITY = 3377;
|
||||
|
||||
/**
|
||||
* Blast Furnace Bar Dispenser
|
||||
*
|
||||
* <p>
|
||||
* These are the expected values:
|
||||
* 0 = No bars being processed
|
||||
* 1 = Ores are being processed on the conveyor belt, bar dispenser cannot be checked
|
||||
* 2 = Bars are cooling down
|
||||
* 3 = Bars can be collected
|
||||
* 0 = No bars being processed
|
||||
* 1 = Ores are being processed on the conveyor belt, bar dispenser cannot be checked
|
||||
* 2 = Bars are cooling down
|
||||
* 3 = Bars can be collected
|
||||
*/
|
||||
BAR_DISPENSER(936),
|
||||
public static final int BAR_DISPENSER = 936;
|
||||
|
||||
/**
|
||||
* Motherlode mine sack
|
||||
*/
|
||||
SACK_NUMBER(5558),
|
||||
SACK_UPGRADED(5556),
|
||||
public static final int SACK_NUMBER = 5558;
|
||||
public static final int SACK_UPGRADED = 5556;
|
||||
|
||||
/**
|
||||
* Experience tracker
|
||||
*
|
||||
* <p>
|
||||
* EXPERIENCE_TRACKER_POSITION expected values:
|
||||
* 0 = Right
|
||||
* 1 = Middle
|
||||
* 2 = Left
|
||||
* 0 = Right
|
||||
* 1 = Middle
|
||||
* 2 = Left
|
||||
*/
|
||||
EXPERIENCE_TRACKER_POSITION(4692),
|
||||
EXPERIENCE_TRACKER_COUNTER(4697),
|
||||
EXPERIENCE_TRACKER_PROGRESS_BAR(4698),
|
||||
public static final int EXPERIENCE_TRACKER_POSITION = 4692;
|
||||
public static final int EXPERIENCE_TRACKER_COUNTER = 4697;
|
||||
public static final int EXPERIENCE_TRACKER_PROGRESS_BAR = 4698;
|
||||
|
||||
/**
|
||||
* Experience drop color
|
||||
*/
|
||||
EXPERIENCE_DROP_COLOR(4695),
|
||||
public static final int EXPERIENCE_DROP_COLOR = 4695;
|
||||
|
||||
/**
|
||||
* Tithe Farm
|
||||
*/
|
||||
TITHE_FARM_SACK_AMOUNT(4900),
|
||||
TITHE_FARM_SACK_ICON(5370),
|
||||
TITHE_FARM_POINTS(4893),
|
||||
public static final int TITHE_FARM_SACK_AMOUNT = 4900;
|
||||
public static final int TITHE_FARM_SACK_ICON = 5370;
|
||||
public static final int TITHE_FARM_POINTS = 4893;
|
||||
|
||||
/**
|
||||
* Blast Mine
|
||||
*/
|
||||
BLAST_MINE_COAL(4924),
|
||||
BLAST_MINE_GOLD(4925),
|
||||
BLAST_MINE_MITHRIL(4926),
|
||||
BLAST_MINE_ADAMANTITE(4921),
|
||||
BLAST_MINE_RUNITE(4922),
|
||||
public static final int BLAST_MINE_COAL = 4924;
|
||||
public static final int BLAST_MINE_GOLD = 4925;
|
||||
public static final int BLAST_MINE_MITHRIL = 4926;
|
||||
public static final int BLAST_MINE_ADAMANTITE = 4921;
|
||||
public static final int BLAST_MINE_RUNITE = 4922;
|
||||
|
||||
/**
|
||||
* Raids
|
||||
*/
|
||||
IN_RAID(5432),
|
||||
TOTAL_POINTS(5431),
|
||||
PERSONAL_POINTS(5422),
|
||||
RAID_PARTY_SIZE(5424),
|
||||
public static final int IN_RAID = 5432;
|
||||
public static final int TOTAL_POINTS = 5431;
|
||||
public static final int PERSONAL_POINTS = 5422;
|
||||
public static final int RAID_PARTY_SIZE = 5424;
|
||||
|
||||
// 0 = raid not started, >0 = raid started
|
||||
RAID_STATE(5425),
|
||||
public static final int RAID_STATE = 5425;
|
||||
|
||||
/**
|
||||
* Making Friends with My Arm fire pits
|
||||
*
|
||||
* <p>
|
||||
* Expected values:
|
||||
* 0 = Not built
|
||||
* 1 = Built
|
||||
* 0 = Not built
|
||||
* 1 = Built
|
||||
*/
|
||||
FIRE_PIT_GIANT_MOLE(6532),
|
||||
FIRE_PIT_LUMBRIDGE_SWAMP(6533),
|
||||
FIRE_PIT_MOS_LE_HARMLESS(6534),
|
||||
public static final int FIRE_PIT_GIANT_MOLE = 6532;
|
||||
public static final int FIRE_PIT_LUMBRIDGE_SWAMP = 6533;
|
||||
public static final int FIRE_PIT_MOS_LE_HARMLESS = 6534;
|
||||
|
||||
/**
|
||||
* Theatre of Blood 1=In Party, 2=Inside/Spectator, 3=Dead Spectating
|
||||
*/
|
||||
THEATRE_OF_BLOOD(6440),
|
||||
public static final int THEATRE_OF_BLOOD = 6440;
|
||||
/**
|
||||
* Theatre of Blood orb healths
|
||||
* 0=hide 1-27=% of health - 27 is 100% health and 1 is 0% health, 30=dead
|
||||
*/
|
||||
public static final int THEATRE_OF_BLOOD_ORB1 = 6442;
|
||||
public static final int THEATRE_OF_BLOOD_ORB2 = 6443;
|
||||
public static final int THEATRE_OF_BLOOD_ORB3 = 6444;
|
||||
public static final int THEATRE_OF_BLOOD_ORB4 = 6445;
|
||||
public static final int THEATRE_OF_BLOOD_ORB5 = 6446;
|
||||
|
||||
/**
|
||||
* Nightmare Zone
|
||||
*/
|
||||
NMZ_ABSORPTION(3956),
|
||||
NMZ_POINTS(3949),
|
||||
public static final int NMZ_ABSORPTION = 3956;
|
||||
public static final int NMZ_POINTS = 3949;
|
||||
|
||||
/**
|
||||
* Blast Furnace
|
||||
*/
|
||||
BLAST_FURNACE_COPPER_ORE(959),
|
||||
BLAST_FURNACE_TIN_ORE(950),
|
||||
BLAST_FURNACE_IRON_ORE(951),
|
||||
BLAST_FURNACE_COAL(949),
|
||||
BLAST_FURNACE_MITHRIL_ORE(952),
|
||||
BLAST_FURNACE_ADAMANTITE_ORE(953),
|
||||
BLAST_FURNACE_RUNITE_ORE(954),
|
||||
BLAST_FURNACE_SILVER_ORE(956),
|
||||
BLAST_FURNACE_GOLD_ORE(955),
|
||||
public static final int BLAST_FURNACE_COPPER_ORE = 959;
|
||||
public static final int BLAST_FURNACE_TIN_ORE = 950;
|
||||
public static final int BLAST_FURNACE_IRON_ORE = 951;
|
||||
public static final int BLAST_FURNACE_COAL = 949;
|
||||
public static final int BLAST_FURNACE_MITHRIL_ORE = 952;
|
||||
public static final int BLAST_FURNACE_ADAMANTITE_ORE = 953;
|
||||
public static final int BLAST_FURNACE_RUNITE_ORE = 954;
|
||||
public static final int BLAST_FURNACE_SILVER_ORE = 956;
|
||||
public static final int BLAST_FURNACE_GOLD_ORE = 955;
|
||||
|
||||
BLAST_FURNACE_BRONZE_BAR(941),
|
||||
BLAST_FURNACE_IRON_BAR(942),
|
||||
BLAST_FURNACE_STEEL_BAR(943),
|
||||
BLAST_FURNACE_MITHRIL_BAR(944),
|
||||
BLAST_FURNACE_ADAMANTITE_BAR(945),
|
||||
BLAST_FURNACE_RUNITE_BAR(946),
|
||||
BLAST_FURNACE_SILVER_BAR(948),
|
||||
BLAST_FURNACE_GOLD_BAR(947),
|
||||
public static final int BLAST_FURNACE_BRONZE_BAR = 941;
|
||||
public static final int BLAST_FURNACE_IRON_BAR = 942;
|
||||
public static final int BLAST_FURNACE_STEEL_BAR = 943;
|
||||
public static final int BLAST_FURNACE_MITHRIL_BAR = 944;
|
||||
public static final int BLAST_FURNACE_ADAMANTITE_BAR = 945;
|
||||
public static final int BLAST_FURNACE_RUNITE_BAR = 946;
|
||||
public static final int BLAST_FURNACE_SILVER_BAR = 948;
|
||||
public static final int BLAST_FURNACE_GOLD_BAR = 947;
|
||||
|
||||
BLAST_FURNACE_COFFER(5357),
|
||||
public static final int BLAST_FURNACE_COFFER = 5357;
|
||||
|
||||
/**
|
||||
* Pyramid plunder
|
||||
*/
|
||||
PYRAMID_PLUNDER_ROOM_LOCATION(2365),
|
||||
PYRAMID_PLUNDER_TIMER(2375),
|
||||
PYRAMID_PLUNDER_THIEVING_LEVEL(2376),
|
||||
PYRAMID_PLUNDER_ROOM(2377),
|
||||
public static final int PYRAMID_PLUNDER_ROOM_LOCATION = 2365;
|
||||
public static final int PYRAMID_PLUNDER_TIMER = 2375;
|
||||
public static final int PYRAMID_PLUNDER_THIEVING_LEVEL = 2376;
|
||||
public static final int PYRAMID_PLUNDER_ROOM = 2377;
|
||||
|
||||
/**
|
||||
* Barrows
|
||||
*/
|
||||
BARROWS_KILLED_AHRIM(457),
|
||||
BARROWS_KILLED_DHAROK(458),
|
||||
BARROWS_KILLED_GUTHAN(459),
|
||||
BARROWS_KILLED_KARIL(460),
|
||||
BARROWS_KILLED_TORAG(461),
|
||||
BARROWS_KILLED_VERAC(462),
|
||||
BARROWS_REWARD_POTENTIAL(463),
|
||||
BARROWS_NPCS_SLAIN(464),
|
||||
public static final int BARROWS_KILLED_AHRIM = 457;
|
||||
public static final int BARROWS_KILLED_DHAROK = 458;
|
||||
public static final int BARROWS_KILLED_GUTHAN = 459;
|
||||
public static final int BARROWS_KILLED_KARIL = 460;
|
||||
public static final int BARROWS_KILLED_TORAG = 461;
|
||||
public static final int BARROWS_KILLED_VERAC = 462;
|
||||
public static final int BARROWS_REWARD_POTENTIAL = 463;
|
||||
public static final int BARROWS_NPCS_SLAIN = 464;
|
||||
|
||||
/**
|
||||
* Spicy stew ingredients
|
||||
*/
|
||||
SPICY_STEW_RED_SPICES(1879),
|
||||
SPICY_STEW_YELLOW_SPICES(1880),
|
||||
SPICY_STEW_BROWN_SPICES(1881),
|
||||
SPICY_STEW_ORANGE_SPICES(1882),
|
||||
public static final int SPICY_STEW_RED_SPICES = 1879;
|
||||
public static final int SPICY_STEW_YELLOW_SPICES = 1880;
|
||||
public static final int SPICY_STEW_BROWN_SPICES = 1881;
|
||||
public static final int SPICY_STEW_ORANGE_SPICES = 1882;
|
||||
|
||||
/**
|
||||
* Multicombat area
|
||||
*/
|
||||
MULTICOMBAT_AREA(4605),
|
||||
public static final int MULTICOMBAT_AREA = 4605;
|
||||
|
||||
/**
|
||||
* Kingdom of Miscellania Management
|
||||
* Kingdom Approval is represented as a 7-bit unsigned integer; 127 corresponds to 100% approval
|
||||
*/
|
||||
KINGDOM_APPROVAL(72),
|
||||
KINGDOM_COFFER(74),
|
||||
|
||||
// TODO: Remove next major
|
||||
@Deprecated
|
||||
KINGDOM_FAVOR(72),
|
||||
public static final int KINGDOM_APPROVAL = 72;
|
||||
public static final int KINGDOM_COFFER = 74;
|
||||
|
||||
/**
|
||||
* The Hand in the Sand quest status
|
||||
*/
|
||||
QUEST_THE_HAND_IN_THE_SAND(1527),
|
||||
public static final int QUEST_THE_HAND_IN_THE_SAND = 1527;
|
||||
|
||||
/**
|
||||
* 0 = Sir Bedivere
|
||||
@@ -421,263 +421,255 @@ public enum Varbits
|
||||
* 7 = Sir Lancelot
|
||||
* 8 = Completed (Chivalry and Piety are unlocked)
|
||||
*/
|
||||
CAMELOT_TRAINING_ROOM_STATUS(3909),
|
||||
public static final int CAMELOT_TRAINING_ROOM_STATUS = 3909;
|
||||
|
||||
/**
|
||||
* Daily Tasks (Collection availability)
|
||||
* Daily Tasks =Collection availability)
|
||||
*/
|
||||
DAILY_HERB_BOXES_COLLECTED(3961),
|
||||
DAILY_STAVES_COLLECTED(4539),
|
||||
DAILY_ESSENCE_COLLECTED(4547),
|
||||
DAILY_RUNES_COLLECTED(4540),
|
||||
DAILY_SAND_COLLECTED(4549),
|
||||
DAILY_FLAX_STATE(4559),
|
||||
DAILY_ARROWS_STATE(4563),
|
||||
public static final int DAILY_HERB_BOXES_COLLECTED = 3961;
|
||||
public static final int DAILY_STAVES_COLLECTED = 4539;
|
||||
public static final int DAILY_ESSENCE_COLLECTED = 4547;
|
||||
public static final int DAILY_RUNES_COLLECTED = 4540;
|
||||
public static final int DAILY_SAND_COLLECTED = 4549;
|
||||
public static final int DAILY_FLAX_STATE = 4559;
|
||||
public static final int DAILY_ARROWS_STATE = 4563;
|
||||
/**
|
||||
* This varbit tracks how much bonemeal has been redeemed from Robin
|
||||
* The player gets 13 for each diary completed above and including Medium, for a maxiumum of 39
|
||||
*/
|
||||
DAILY_BONEMEAL_STATE(4543),
|
||||
public static final int DAILY_BONEMEAL_STATE = 4543;
|
||||
|
||||
DAILY_DYNAMITE_COLLECTED(7939),
|
||||
public static final int DAILY_DYNAMITE_COLLECTED = 7939;
|
||||
|
||||
/**
|
||||
* Fairy Ring
|
||||
*/
|
||||
FAIR_RING_LAST_DESTINATION(5374),
|
||||
FAIRY_RING_DIAL_ADCB(3985), //Left dial
|
||||
FAIRY_RIGH_DIAL_ILJK(3986), //Middle dial
|
||||
FAIRY_RING_DIAL_PSRQ(3987), //Right dial
|
||||
public static final int FAIR_RING_LAST_DESTINATION = 5374;
|
||||
public static final int FAIRY_RING_DIAL_ADCB = 3985; //Left dial
|
||||
public static final int FAIRY_RIGH_DIAL_ILJK = 3986; //Middle dial
|
||||
public static final int FAIRY_RING_DIAL_PSRQ = 3987; //Right dial
|
||||
|
||||
/**
|
||||
* Transmog controllers for farming
|
||||
*/
|
||||
FARMING_4771(4771),
|
||||
FARMING_4772(4772),
|
||||
FARMING_4773(4773),
|
||||
FARMING_4774(4774),
|
||||
FARMING_4775(4775),
|
||||
FARMING_7904(7904),
|
||||
FARMING_7905(7905),
|
||||
FARMING_7906(7906),
|
||||
FARMING_7907(7907),
|
||||
FARMING_7908(7908),
|
||||
FARMING_7909(7909),
|
||||
FARMING_7910(7910),
|
||||
FARMING_7911(7911),
|
||||
FARMING_7912(7912),
|
||||
public static final int FARMING_4771 = 4771;
|
||||
public static final int FARMING_4772 = 4772;
|
||||
public static final int FARMING_4773 = 4773;
|
||||
public static final int FARMING_4774 = 4774;
|
||||
public static final int FARMING_4775 = 4775;
|
||||
public static final int FARMING_7904 = 7904;
|
||||
public static final int FARMING_7905 = 7905;
|
||||
public static final int FARMING_7906 = 7906;
|
||||
public static final int FARMING_7907 = 7907;
|
||||
public static final int FARMING_7908 = 7908;
|
||||
public static final int FARMING_7909 = 7909;
|
||||
public static final int FARMING_7910 = 7910;
|
||||
public static final int FARMING_7911 = 7911;
|
||||
public static final int FARMING_7912 = 7912;
|
||||
|
||||
/**
|
||||
* Transmog controllers for grapes
|
||||
*/
|
||||
GRAPES_4953(4953),
|
||||
GRAPES_4954(4954),
|
||||
GRAPES_4955(4955),
|
||||
GRAPES_4956(4956),
|
||||
GRAPES_4957(4957),
|
||||
GRAPES_4958(4958),
|
||||
GRAPES_4959(4959),
|
||||
GRAPES_4960(4960),
|
||||
GRAPES_4961(4961),
|
||||
GRAPES_4962(4962),
|
||||
GRAPES_4963(4963),
|
||||
GRAPES_4964(4964),
|
||||
public static final int GRAPES_4953 = 4953;
|
||||
public static final int GRAPES_4954 = 4954;
|
||||
public static final int GRAPES_4955 = 4955;
|
||||
public static final int GRAPES_4956 = 4956;
|
||||
public static final int GRAPES_4957 = 4957;
|
||||
public static final int GRAPES_4958 = 4958;
|
||||
public static final int GRAPES_4959 = 4959;
|
||||
public static final int GRAPES_4960 = 4960;
|
||||
public static final int GRAPES_4961 = 4961;
|
||||
public static final int GRAPES_4962 = 4962;
|
||||
public static final int GRAPES_4963 = 4963;
|
||||
public static final int GRAPES_4964 = 4964;
|
||||
|
||||
/**
|
||||
* Automatically weed farming patches
|
||||
*/
|
||||
AUTOWEED(5557),
|
||||
public static final int AUTOWEED = 5557;
|
||||
|
||||
/**
|
||||
* The varbit that stores the players {@code AccountType}.
|
||||
*/
|
||||
ACCOUNT_TYPE(1777),
|
||||
public static final int ACCOUNT_TYPE = 1777;
|
||||
|
||||
/**
|
||||
* The varbit that stores the oxygen percentage for player
|
||||
*/
|
||||
OXYGEN_LEVEL(5811),
|
||||
public static final int OXYGEN_LEVEL = 5811;
|
||||
|
||||
/**
|
||||
* Drift net status
|
||||
*
|
||||
* <p>
|
||||
* Expected values
|
||||
* 0 = Unset
|
||||
* 1 = Set up
|
||||
* 2 = Caught some fish
|
||||
* 3 = Full
|
||||
* 0 = Unset
|
||||
* 1 = Set up
|
||||
* 2 = Caught some fish
|
||||
* 3 = Full
|
||||
*/
|
||||
NORTH_NET_STATUS(5812),
|
||||
SOUTH_NET_STATUS(5814),
|
||||
public static final int NORTH_NET_STATUS = 5812;
|
||||
public static final int SOUTH_NET_STATUS = 5814;
|
||||
|
||||
/**
|
||||
* Drift net catch count
|
||||
*/
|
||||
NORTH_NET_CATCH_COUNT(5813),
|
||||
SOUTH_NET_CATCH_COUNT(5815),
|
||||
public static final int NORTH_NET_CATCH_COUNT = 5813;
|
||||
public static final int SOUTH_NET_CATCH_COUNT = 5815;
|
||||
|
||||
/**
|
||||
* Drift net collect interface
|
||||
*
|
||||
* <p>
|
||||
* Expected values:
|
||||
* 0 = Not open
|
||||
* 1 = North interface open
|
||||
* 2 = South interface open
|
||||
* 0 = Not open
|
||||
* 1 = North interface open
|
||||
* 2 = South interface open
|
||||
*/
|
||||
DRIFT_NET_COLLECT(5933),
|
||||
public static final int DRIFT_NET_COLLECT = 5933;
|
||||
|
||||
/**
|
||||
* Corp beast damage
|
||||
*/
|
||||
CORP_DAMAGE(999),
|
||||
public static final int CORP_DAMAGE = 999;
|
||||
|
||||
/**
|
||||
* Toggleable slayer unlocks
|
||||
*/
|
||||
SUPERIOR_ENABLED(5362),
|
||||
FOSSIL_ISLAND_WYVERN_DISABLE(6251),
|
||||
public static final int SUPERIOR_ENABLED = 5362;
|
||||
public static final int FOSSIL_ISLAND_WYVERN_DISABLE = 6251;
|
||||
|
||||
BANK_REARRANGE_MODE(3959),
|
||||
CURRENT_BANK_TAB(4150),
|
||||
public static final int BANK_REARRANGE_MODE = 3959;
|
||||
public static final int CURRENT_BANK_TAB = 4150;
|
||||
|
||||
WORLDHOPPER_FAVROITE_1(4597),
|
||||
WORLDHOPPER_FAVROITE_2(4598),
|
||||
public static final int WORLDHOPPER_FAVROITE_1 = 4597;
|
||||
public static final int WORLDHOPPER_FAVROITE_2 = 4598;
|
||||
|
||||
/**
|
||||
* Vengeance is active
|
||||
*/
|
||||
VENGEANCE_ACTIVE(2450),
|
||||
public static final int VENGEANCE_ACTIVE = 2450;
|
||||
|
||||
/**
|
||||
* Spell cooldowns
|
||||
*/
|
||||
VENGEANCE_COOLDOWN(2451),
|
||||
CORRUPTION_COOLDOWN(12288),
|
||||
public static final int VENGEANCE_COOLDOWN = 2451;
|
||||
public static final int CORRUPTION_COOLDOWN = 12288;
|
||||
|
||||
/**
|
||||
* Imbued Heart cooldown
|
||||
* Number of game tick remaining on cooldown in intervals of 10; for a value X there are 10 * X game ticks remaining.
|
||||
* The heart regains its power once this reaches 0.
|
||||
*/
|
||||
IMBUED_HEART_COOLDOWN(5361),
|
||||
public static final int IMBUED_HEART_COOLDOWN = 5361;
|
||||
|
||||
/**
|
||||
* Amount of items in each bank tab
|
||||
*/
|
||||
BANK_TAB_ONE_COUNT(4171),
|
||||
BANK_TAB_TWO_COUNT(4172),
|
||||
BANK_TAB_THREE_COUNT(4173),
|
||||
BANK_TAB_FOUR_COUNT(4174),
|
||||
BANK_TAB_FIVE_COUNT(4175),
|
||||
BANK_TAB_SIX_COUNT(4176),
|
||||
BANK_TAB_SEVEN_COUNT(4177),
|
||||
BANK_TAB_EIGHT_COUNT(4178),
|
||||
BANK_TAB_NINE_COUNT(4179),
|
||||
public static final int BANK_TAB_ONE_COUNT = 4171;
|
||||
public static final int BANK_TAB_TWO_COUNT = 4172;
|
||||
public static final int BANK_TAB_THREE_COUNT = 4173;
|
||||
public static final int BANK_TAB_FOUR_COUNT = 4174;
|
||||
public static final int BANK_TAB_FIVE_COUNT = 4175;
|
||||
public static final int BANK_TAB_SIX_COUNT = 4176;
|
||||
public static final int BANK_TAB_SEVEN_COUNT = 4177;
|
||||
public static final int BANK_TAB_EIGHT_COUNT = 4178;
|
||||
public static final int BANK_TAB_NINE_COUNT = 4179;
|
||||
|
||||
/**
|
||||
* Type of GE offer currently being created
|
||||
* 0 = buy
|
||||
* 1 = sell
|
||||
*/
|
||||
GE_OFFER_CREATION_TYPE(4397),
|
||||
GE_OFFER_PRICE_PER_ITEM(4398),
|
||||
public static final int GE_OFFER_CREATION_TYPE = 4397;
|
||||
public static final int GE_OFFER_PRICE_PER_ITEM = 4398;
|
||||
|
||||
/**
|
||||
* The active tab within the quest interface
|
||||
*/
|
||||
QUEST_TAB(8168),
|
||||
public static final int QUEST_TAB = 8168;
|
||||
|
||||
/**
|
||||
* Explorer ring
|
||||
*/
|
||||
EXPLORER_RING_ALCHTYPE(5398),
|
||||
EXPLORER_RING_TELEPORTS(4552),
|
||||
EXPLORER_RING_ALCHS(4554),
|
||||
EXPLORER_RING_RUNENERGY(4553),
|
||||
public static final int EXPLORER_RING_ALCHTYPE = 5398;
|
||||
public static final int EXPLORER_RING_TELEPORTS = 4552;
|
||||
public static final int EXPLORER_RING_ALCHS = 4554;
|
||||
public static final int EXPLORER_RING_RUNENERGY = 4553;
|
||||
|
||||
WINTERTODT_TIMER(7980),
|
||||
public static final int WINTERTODT_TIMER = 7980;
|
||||
|
||||
/**
|
||||
* League relics
|
||||
*/
|
||||
LEAGUE_RELIC_1(10049),
|
||||
LEAGUE_RELIC_2(10050),
|
||||
LEAGUE_RELIC_3(10051),
|
||||
LEAGUE_RELIC_4(10052),
|
||||
LEAGUE_RELIC_5(10053),
|
||||
LEAGUE_RELIC_6(11696),
|
||||
public static final int LEAGUE_RELIC_1 = 10049;
|
||||
public static final int LEAGUE_RELIC_2 = 10050;
|
||||
public static final int LEAGUE_RELIC_3 = 10051;
|
||||
public static final int LEAGUE_RELIC_4 = 10052;
|
||||
public static final int LEAGUE_RELIC_5 = 10053;
|
||||
public static final int LEAGUE_RELIC_6 = 11696;
|
||||
|
||||
/**
|
||||
* Muted volume restore values
|
||||
*/
|
||||
MUTED_MUSIC_VOLUME(9666),
|
||||
MUTED_SOUND_EFFECT_VOLUME(9674),
|
||||
MUTED_AREA_EFFECT_VOLUME(9675),
|
||||
public static final int MUTED_MUSIC_VOLUME = 9666;
|
||||
public static final int MUTED_SOUND_EFFECT_VOLUME = 9674;
|
||||
public static final int MUTED_AREA_EFFECT_VOLUME = 9675;
|
||||
|
||||
/**
|
||||
* Parasite infection status during nightmare of ashihama bossfight
|
||||
*
|
||||
* <p>
|
||||
* 0 = not infected
|
||||
* 1 = infected
|
||||
*
|
||||
*/
|
||||
PARASITE(10151),
|
||||
public static final int PARASITE = 10151;
|
||||
|
||||
/**
|
||||
* Whether the vanilla wiki entity lookup is displayed under the minimap
|
||||
*
|
||||
* <p>
|
||||
* 0 = Enabled
|
||||
* 1 = Disabled
|
||||
*
|
||||
*/
|
||||
WIKI_ENTITY_LOOKUP(10113),
|
||||
public static final int WIKI_ENTITY_LOOKUP = 10113;
|
||||
|
||||
/**
|
||||
* Whether the Special Attack orb is disabled due to being in a PvP area
|
||||
*
|
||||
* 0 = Enabled (player is not in PvP)
|
||||
* 1 = Disabled (player in in PvP)
|
||||
* <p>
|
||||
* 0 = Enabled =player is not in PvP)
|
||||
* 1 = Disabled =player in in PvP)
|
||||
*
|
||||
* @see <a href="https://oldschool.runescape.wiki/w/Minimap#Special_attack_orb">The OSRS Wiki's Minimap page</a>
|
||||
*/
|
||||
PVP_SPEC_ORB(8121),
|
||||
public static final int PVP_SPEC_ORB = 8121;
|
||||
|
||||
/**
|
||||
* Collection Log notification settings whenever a new item is added
|
||||
*
|
||||
* <p>
|
||||
* 0 = no notification
|
||||
* 1 = chat notification only
|
||||
* 2 = popup notification only
|
||||
* 3 = chat and popup
|
||||
*/
|
||||
COLLECTION_LOG_NOTIFICATION(11959),
|
||||
public static final int COLLECTION_LOG_NOTIFICATION = 11959;
|
||||
|
||||
/**
|
||||
* Combat Achievements popup settings whenever a new task is completed
|
||||
*
|
||||
* <p>
|
||||
* 0 = popup notification enabled
|
||||
* 1 = popup notification disabled
|
||||
*/
|
||||
COMBAT_ACHIEVEMENTS_POPUP(12455),
|
||||
public static final int COMBAT_ACHIEVEMENTS_POPUP = 12455;
|
||||
|
||||
/**
|
||||
* Show boss health overlay setting
|
||||
* 0 = on
|
||||
* 1 = off
|
||||
*/
|
||||
BOSS_HEALTH_OVERLAY(12389),
|
||||
public static final int BOSS_HEALTH_OVERLAY = 12389;
|
||||
|
||||
/**
|
||||
* Whether the PVP kill-death stats widget should be drawn while in the wilderness or in PVP worlds.
|
||||
*
|
||||
* <p>
|
||||
* 0 = Disabled
|
||||
* 1 = Enabled
|
||||
*/
|
||||
SHOW_PVP_KDR_STATS(4143),
|
||||
;
|
||||
|
||||
/**
|
||||
* The raw varbit ID.
|
||||
*/
|
||||
private final int id;
|
||||
public static final int SHOW_PVP_KDR_STATS = 4143;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Copyright (c) 2022, Adam <Adam@sigterm.info>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.api.annotations;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import net.runelite.api.Varbits;
|
||||
import org.intellij.lang.annotations.MagicConstant;
|
||||
|
||||
@MagicConstant(valuesFromClass = Varbits.class)
|
||||
@Documented
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface Varbit
|
||||
{
|
||||
}
|
||||
@@ -62,15 +62,18 @@ public class ClientSessionManager
|
||||
|
||||
public void start()
|
||||
{
|
||||
try
|
||||
executorService.execute(() ->
|
||||
{
|
||||
sessionId = sessionClient.open();
|
||||
log.debug("Opened session {}", sessionId);
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
log.warn("error opening session", ex);
|
||||
}
|
||||
try
|
||||
{
|
||||
sessionId = sessionClient.open();
|
||||
log.debug("Opened session {}", sessionId);
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
log.warn("error opening session", ex);
|
||||
}
|
||||
});
|
||||
|
||||
scheduledFuture = executorService.scheduleWithFixedDelay(RunnableExceptionLogger.wrap(this::ping), 1, 10, TimeUnit.MINUTES);
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ public class ChatMessageManager
|
||||
final String channel = stringStack[size - 4];
|
||||
final ChatMessageType chatMessageType = messageNode.getType();
|
||||
|
||||
final boolean isChatboxTransparent = client.isResized() && client.getVar(Varbits.TRANSPARENT_CHATBOX) == 1;
|
||||
final boolean isChatboxTransparent = client.isResized() && client.getVarbitValue(Varbits.TRANSPARENT_CHATBOX) == 1;
|
||||
Color usernameColor = null;
|
||||
Color channelColor = null;
|
||||
|
||||
@@ -217,7 +217,7 @@ public class ChatMessageManager
|
||||
return;
|
||||
}
|
||||
|
||||
boolean isChatboxTransparent = client.isResized() && client.getVar(Varbits.TRANSPARENT_CHATBOX) == 1;
|
||||
boolean isChatboxTransparent = client.isResized() && client.getVarbitValue(Varbits.TRANSPARENT_CHATBOX) == 1;
|
||||
Color usernameColor = isChatboxTransparent ? chatColorConfig.transparentPrivateUsernames() : chatColorConfig.opaquePrivateUsernames();
|
||||
if (usernameColor == null)
|
||||
{
|
||||
@@ -842,7 +842,7 @@ public class ChatMessageManager
|
||||
@VisibleForTesting
|
||||
String formatRuneLiteMessage(String runeLiteFormatMessage, ChatMessageType type, boolean pmbox)
|
||||
{
|
||||
final boolean transparentChatbox = client.getVar(Varbits.TRANSPARENT_CHATBOX) != 0;
|
||||
final boolean transparentChatbox = client.getVarbitValue(Varbits.TRANSPARENT_CHATBOX) != 0;
|
||||
final boolean transparent = client.isResized() && transparentChatbox;
|
||||
final Collection<ChatColor> chatColors = colorCache.get(type);
|
||||
for (ChatColor chatColor : chatColors)
|
||||
|
||||
@@ -66,6 +66,7 @@ public class HiscoreResult
|
||||
private Skill clueScrollMaster;
|
||||
private Skill lastManStanding;
|
||||
private Skill soulWarsZeal;
|
||||
private Skill riftsClosed;
|
||||
private Skill abyssalSire;
|
||||
private Skill alchemicalHydra;
|
||||
private Skill barrowsChests;
|
||||
@@ -191,6 +192,8 @@ public class HiscoreResult
|
||||
return lastManStanding;
|
||||
case SOUL_WARS_ZEAL:
|
||||
return soulWarsZeal;
|
||||
case RIFTS_CLOSED:
|
||||
return riftsClosed;
|
||||
case ABYSSAL_SIRE:
|
||||
return abyssalSire;
|
||||
case ALCHEMICAL_HYDRA:
|
||||
|
||||
@@ -85,6 +85,10 @@ class HiscoreResultBuilder
|
||||
hiscoreResult.setClueScrollMaster(skills.get(index++));
|
||||
hiscoreResult.setLastManStanding(skills.get(index++));
|
||||
hiscoreResult.setSoulWarsZeal(skills.get(index++));
|
||||
if (skills.size() > 84)
|
||||
{
|
||||
hiscoreResult.setRiftsClosed(skills.get(index++));
|
||||
}
|
||||
// seasonal doesn't have boss hiscores
|
||||
if (index < skills.size())
|
||||
{
|
||||
@@ -115,10 +119,7 @@ class HiscoreResultBuilder
|
||||
hiscoreResult.setKreearra(skills.get(index++));
|
||||
hiscoreResult.setKrilTsutsaroth(skills.get(index++));
|
||||
hiscoreResult.setMimic(skills.get(index++));
|
||||
if (skills.size() > 83)
|
||||
{
|
||||
hiscoreResult.setNex(skills.get(index++));
|
||||
}
|
||||
hiscoreResult.setNex(skills.get(index++));
|
||||
hiscoreResult.setNightmare(skills.get(index++));
|
||||
hiscoreResult.setPhosanisNightmare(skills.get(index++));
|
||||
hiscoreResult.setObor(skills.get(index++));
|
||||
|
||||
@@ -70,6 +70,7 @@ public enum HiscoreSkill
|
||||
CLUE_SCROLL_MASTER("Clue Scrolls (master)", ACTIVITY),
|
||||
LAST_MAN_STANDING("Last Man Standing", ACTIVITY),
|
||||
SOUL_WARS_ZEAL("Soul Wars Zeal", ACTIVITY),
|
||||
RIFTS_CLOSED("Rifts closed", ACTIVITY),
|
||||
ABYSSAL_SIRE("Abyssal Sire", BOSS),
|
||||
ALCHEMICAL_HYDRA("Alchemical Hydra", BOSS),
|
||||
BARROWS_CHESTS("Barrows Chests", BOSS),
|
||||
|
||||
@@ -28,6 +28,7 @@ import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.Varbits;
|
||||
import net.runelite.api.annotations.Varbit;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
@Getter
|
||||
@@ -37,7 +38,6 @@ public class FavourRequirement implements Requirement
|
||||
* An enumeration of Kourend house favour the player can earn.
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Getter
|
||||
public enum Favour
|
||||
{
|
||||
ARCEUUS("Arceuus", Varbits.KOUREND_FAVOR_ARCEUUS),
|
||||
@@ -46,8 +46,10 @@ public class FavourRequirement implements Requirement
|
||||
PISCARILIUS("Piscarilius", Varbits.KOUREND_FAVOR_PISCARILIUS),
|
||||
SHAYZIEN("Shayzien", Varbits.KOUREND_FAVOR_SHAYZIEN);
|
||||
|
||||
@Getter
|
||||
private final String name;
|
||||
private final Varbits varbit;
|
||||
@Getter(onMethod_ = {@Varbit})
|
||||
private final int varbit;
|
||||
}
|
||||
|
||||
private final Favour house;
|
||||
@@ -62,7 +64,7 @@ public class FavourRequirement implements Requirement
|
||||
@Override
|
||||
public boolean satisfiesRequirement(Client client)
|
||||
{
|
||||
int realFavour = client.getVar(house.getVarbit());
|
||||
int realFavour = client.getVarbitValue(house.getVarbit());
|
||||
return (realFavour / 10) >= percent;
|
||||
}
|
||||
}
|
||||
@@ -105,8 +105,8 @@ public class AttackStylesPlugin extends Plugin
|
||||
{
|
||||
resetWarnings();
|
||||
attackStyleVarbit = client.getVar(VarPlayer.ATTACK_STYLE);
|
||||
equippedWeaponTypeVarbit = client.getVar(Varbits.EQUIPPED_WEAPON_TYPE);
|
||||
castingModeVarbit = client.getVar(Varbits.DEFENSIVE_CASTING_MODE);
|
||||
equippedWeaponTypeVarbit = client.getVarbitValue(Varbits.EQUIPPED_WEAPON_TYPE);
|
||||
castingModeVarbit = client.getVarbitValue(Varbits.DEFENSIVE_CASTING_MODE);
|
||||
updateAttackStyle(
|
||||
equippedWeaponTypeVarbit,
|
||||
attackStyleVarbit,
|
||||
@@ -174,8 +174,8 @@ public class AttackStylesPlugin extends Plugin
|
||||
public void onVarbitChanged(VarbitChanged event)
|
||||
{
|
||||
int currentAttackStyleVarbit = client.getVar(VarPlayer.ATTACK_STYLE);
|
||||
int currentEquippedWeaponTypeVarbit = client.getVar(Varbits.EQUIPPED_WEAPON_TYPE);
|
||||
int currentCastingModeVarbit = client.getVar(Varbits.DEFENSIVE_CASTING_MODE);
|
||||
int currentEquippedWeaponTypeVarbit = client.getVarbitValue(Varbits.EQUIPPED_WEAPON_TYPE);
|
||||
int currentCastingModeVarbit = client.getVarbitValue(Varbits.DEFENSIVE_CASTING_MODE);
|
||||
|
||||
if (attackStyleVarbit != currentAttackStyleVarbit || equippedWeaponTypeVarbit != currentEquippedWeaponTypeVarbit || castingModeVarbit != currentCastingModeVarbit)
|
||||
{
|
||||
|
||||
@@ -788,7 +788,7 @@ public class TabInterface
|
||||
return;
|
||||
}
|
||||
|
||||
if (client.getVar(Varbits.BANK_REARRANGE_MODE) == 0)
|
||||
if (client.getVarbitValue(Varbits.BANK_REARRANGE_MODE) == 0)
|
||||
{
|
||||
tabManager.swap(source.getName(), dest.getName());
|
||||
}
|
||||
|
||||
@@ -177,7 +177,7 @@ public class BarbarianAssaultPlugin extends Plugin
|
||||
@Subscribe
|
||||
public void onVarbitChanged(VarbitChanged event)
|
||||
{
|
||||
int inGame = client.getVar(Varbits.IN_GAME_BA);
|
||||
int inGame = client.getVarbitValue(Varbits.IN_GAME_BA);
|
||||
|
||||
if (inGameBit != inGame)
|
||||
{
|
||||
|
||||
@@ -70,7 +70,7 @@ class BarrowsBrotherSlainOverlay extends OverlayPanel
|
||||
|
||||
for (BarrowsBrothers brother : BarrowsBrothers.values())
|
||||
{
|
||||
final boolean brotherSlain = client.getVar(brother.getKilledVarbit()) > 0;
|
||||
final boolean brotherSlain = client.getVarbitValue(brother.getKilledVarbit()) > 0;
|
||||
String slain = brotherSlain ? "\u2713" : "\u2717";
|
||||
panelComponent.getChildren().add(LineComponent.builder()
|
||||
.left(brother.getName())
|
||||
@@ -109,12 +109,12 @@ class BarrowsBrotherSlainOverlay extends OverlayPanel
|
||||
private int rewardPotential()
|
||||
{
|
||||
// this is from [proc,barrows_overlay_reward]
|
||||
int brothers = client.getVar(Varbits.BARROWS_KILLED_AHRIM)
|
||||
+ client.getVar(Varbits.BARROWS_KILLED_DHAROK)
|
||||
+ client.getVar(Varbits.BARROWS_KILLED_GUTHAN)
|
||||
+ client.getVar(Varbits.BARROWS_KILLED_KARIL)
|
||||
+ client.getVar(Varbits.BARROWS_KILLED_TORAG)
|
||||
+ client.getVar(Varbits.BARROWS_KILLED_VERAC);
|
||||
return client.getVar(Varbits.BARROWS_REWARD_POTENTIAL) + brothers * 2;
|
||||
int brothers = client.getVarbitValue(Varbits.BARROWS_KILLED_AHRIM)
|
||||
+ client.getVarbitValue(Varbits.BARROWS_KILLED_DHAROK)
|
||||
+ client.getVarbitValue(Varbits.BARROWS_KILLED_GUTHAN)
|
||||
+ client.getVarbitValue(Varbits.BARROWS_KILLED_KARIL)
|
||||
+ client.getVarbitValue(Varbits.BARROWS_KILLED_TORAG)
|
||||
+ client.getVarbitValue(Varbits.BARROWS_KILLED_VERAC);
|
||||
return client.getVarbitValue(Varbits.BARROWS_REWARD_POTENTIAL) + brothers * 2;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@ package net.runelite.client.plugins.barrows;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import net.runelite.api.Varbits;
|
||||
import net.runelite.api.annotations.Varbit;
|
||||
import net.runelite.api.coords.WorldPoint;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
@@ -42,5 +43,6 @@ enum BarrowsBrothers
|
||||
|
||||
private final String name;
|
||||
private final WorldPoint location;
|
||||
private final Varbits killedVarbit;
|
||||
@Getter(onMethod_ = {@Varbit})
|
||||
private final int killedVarbit;
|
||||
}
|
||||
|
||||
@@ -92,7 +92,7 @@ class BarrowsOverlay extends Overlay
|
||||
graphics.setColor(Color.black);
|
||||
graphics.drawString(brotherLetter, miniMapLocation.getX() + 1, miniMapLocation.getY() + 1);
|
||||
|
||||
if (client.getVar(brother.getKilledVarbit()) > 0)
|
||||
if (client.getVarbitValue(brother.getKilledVarbit()) > 0)
|
||||
{
|
||||
graphics.setColor(config.deadBrotherLocColor());
|
||||
}
|
||||
|
||||
@@ -24,13 +24,15 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.blastfurnace;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import java.util.Map;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import net.runelite.api.ItemID;
|
||||
import net.runelite.api.Varbits;
|
||||
import net.runelite.api.annotations.Varbit;
|
||||
|
||||
public enum BarsOres
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
enum BarsOres
|
||||
{
|
||||
COPPER_ORE(Varbits.BLAST_FURNACE_COPPER_ORE, ItemID.COPPER_ORE),
|
||||
TIN_ORE(Varbits.BLAST_FURNACE_TIN_ORE, ItemID.TIN_ORE),
|
||||
@@ -50,33 +52,7 @@ public enum BarsOres
|
||||
SILVER_BAR(Varbits.BLAST_FURNACE_SILVER_BAR, ItemID.SILVER_BAR),
|
||||
GOLD_BAR(Varbits.BLAST_FURNACE_GOLD_BAR, ItemID.GOLD_BAR);
|
||||
|
||||
private static final Map<Varbits, BarsOres> VARBIT;
|
||||
|
||||
static
|
||||
{
|
||||
ImmutableMap.Builder<Varbits, BarsOres> builder = new ImmutableMap.Builder<>();
|
||||
|
||||
for (BarsOres s : values())
|
||||
{
|
||||
builder.put(s.getVarbit(), s);
|
||||
}
|
||||
|
||||
VARBIT = builder.build();
|
||||
}
|
||||
|
||||
@Getter
|
||||
private final Varbits varbit;
|
||||
@Getter
|
||||
@Getter(onMethod_ = {@Varbit})
|
||||
private final int varbit;
|
||||
private final int itemID;
|
||||
|
||||
BarsOres(Varbits varbit, int itemID)
|
||||
{
|
||||
this.varbit = varbit;
|
||||
this.itemID = itemID;
|
||||
}
|
||||
|
||||
public static BarsOres getVarbit(Varbits varbit)
|
||||
{
|
||||
return VARBIT.get(varbit);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ class BlastFurnaceClickBoxOverlay extends Overlay
|
||||
@Override
|
||||
public Dimension render(Graphics2D graphics)
|
||||
{
|
||||
int dispenserState = client.getVar(Varbits.BAR_DISPENSER);
|
||||
int dispenserState = client.getVarbitValue(Varbits.BAR_DISPENSER);
|
||||
|
||||
if (config.showConveyorBelt() && plugin.getConveyorBelt() != null)
|
||||
{
|
||||
|
||||
@@ -71,7 +71,7 @@ class BlastFurnaceCofferOverlay extends OverlayPanel
|
||||
|
||||
if (sack != null)
|
||||
{
|
||||
final int coffer = client.getVar(BLAST_FURNACE_COFFER);
|
||||
final int coffer = client.getVarbitValue(BLAST_FURNACE_COFFER);
|
||||
|
||||
sack.setHidden(true);
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ class BlastFurnaceOverlay extends OverlayPanel
|
||||
|
||||
for (BarsOres varbit : BarsOres.values())
|
||||
{
|
||||
int amount = client.getVar(varbit.getVarbit());
|
||||
int amount = client.getVarbitValue(varbit.getVarbit());
|
||||
|
||||
if (amount == 0)
|
||||
{
|
||||
|
||||
@@ -73,11 +73,11 @@ class BlastMineOreCountOverlay extends OverlayPanel
|
||||
if (config.showOreOverlay())
|
||||
{
|
||||
blastMineWidget.setHidden(true);
|
||||
panelComponent.getChildren().add(new ImageComponent(getImage(ItemID.COAL, client.getVar(Varbits.BLAST_MINE_COAL))));
|
||||
panelComponent.getChildren().add(new ImageComponent(getImage(ItemID.GOLD_ORE, client.getVar(Varbits.BLAST_MINE_GOLD))));
|
||||
panelComponent.getChildren().add(new ImageComponent(getImage(ItemID.MITHRIL_ORE, client.getVar(Varbits.BLAST_MINE_MITHRIL))));
|
||||
panelComponent.getChildren().add(new ImageComponent(getImage(ItemID.ADAMANTITE_ORE, client.getVar(Varbits.BLAST_MINE_ADAMANTITE))));
|
||||
panelComponent.getChildren().add(new ImageComponent(getImage(ItemID.RUNITE_ORE, client.getVar(Varbits.BLAST_MINE_RUNITE))));
|
||||
panelComponent.getChildren().add(new ImageComponent(getImage(ItemID.COAL, client.getVarbitValue(Varbits.BLAST_MINE_COAL))));
|
||||
panelComponent.getChildren().add(new ImageComponent(getImage(ItemID.GOLD_ORE, client.getVarbitValue(Varbits.BLAST_MINE_GOLD))));
|
||||
panelComponent.getChildren().add(new ImageComponent(getImage(ItemID.MITHRIL_ORE, client.getVarbitValue(Varbits.BLAST_MINE_MITHRIL))));
|
||||
panelComponent.getChildren().add(new ImageComponent(getImage(ItemID.ADAMANTITE_ORE, client.getVarbitValue(Varbits.BLAST_MINE_ADAMANTITE))));
|
||||
panelComponent.getChildren().add(new ImageComponent(getImage(ItemID.RUNITE_ORE, client.getVarbitValue(Varbits.BLAST_MINE_RUNITE))));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -406,7 +406,7 @@ public class ChatChannelPlugin extends Plugin
|
||||
int rankIcon = -1;
|
||||
|
||||
// Use configured friends chat info colors if set, otherwise default to the jagex text and fc name colors
|
||||
if (client.isResized() && client.getVar(Varbits.TRANSPARENT_CHATBOX) == 1)
|
||||
if (client.isResized() && client.getVarbitValue(Varbits.TRANSPARENT_CHATBOX) == 1)
|
||||
{
|
||||
textColor = MoreObjects.firstNonNull(chatColorConfig.transparentFriendsChatInfo(), CHAT_FC_TEXT_TRANSPARENT_BACKGROUND);
|
||||
channelColor = MoreObjects.firstNonNull(chatColorConfig.transparentFriendsChatChannelName(), CHAT_FC_NAME_TRANSPARENT_BACKGROUND);
|
||||
@@ -462,7 +462,7 @@ public class ChatChannelPlugin extends Plugin
|
||||
|
||||
final Color textColor;
|
||||
// Use configured clan chat info colors if set, otherwise default to the jagex text and fc name colors
|
||||
if (client.isResized() && client.getVar(Varbits.TRANSPARENT_CHATBOX) == 1)
|
||||
if (client.isResized() && client.getVarbitValue(Varbits.TRANSPARENT_CHATBOX) == 1)
|
||||
{
|
||||
textColor = MoreObjects.firstNonNull(
|
||||
chatType == MemberActivity.ChatType.CLAN_CHAT ? chatColorConfig.transparentClanChatInfo() : chatColorConfig.transparentClanChatGuestInfo(),
|
||||
|
||||
@@ -107,7 +107,7 @@ import org.apache.commons.text.WordUtils;
|
||||
public class ChatCommandsPlugin extends Plugin
|
||||
{
|
||||
private static final Pattern KILLCOUNT_PATTERN = Pattern.compile("Your (?:completion count for |subdued |completed )?(.+?) (?:(?:kill|harvest|lap|completion) )?(?:count )?is: <col=ff0000>(\\d+)</col>");
|
||||
private static final String TEAM_SIZES = "(?:\\d+(?:\\+|-\\d+)? players|Solo)";
|
||||
private static final String TEAM_SIZES = "(?<teamsize>\\d+(?:\\+|-\\d+)? players|Solo)";
|
||||
private static final Pattern RAIDS_PB_PATTERN = Pattern.compile("<col=ef20ff>Congratulations - your raid is complete!</col><br>Team size: <col=ff0000>" + TEAM_SIZES + "</col> Duration:</col> <col=ff0000>(?<pb>[0-9:]+(?:\\.[0-9]+)?)</col> \\(new personal best\\)</col>");
|
||||
private static final Pattern RAIDS_DURATION_PATTERN = Pattern.compile("<col=ef20ff>Congratulations - your raid is complete!</col><br>Team size: <col=ff0000>" + TEAM_SIZES + "</col> Duration:</col> <col=ff0000>[0-9:.]+</col> Personal best: </col><col=ff0000>(?<pb>[0-9:]+(?:\\.[0-9]+)?)</col>");
|
||||
private static final Pattern KILL_DURATION_PATTERN = Pattern.compile("(?i)(?:(?:Fight |Lap |Challenge |Corrupted challenge )?duration:|Subdued in|(?<!total )completion time:) <col=[0-9a-f]{6}>[0-9:.]+</col>\\. Personal best: (?:<col=ff0000>)?(?<pb>[0-9:]+(?:\\.[0-9]+)?)");
|
||||
@@ -115,7 +115,7 @@ public class ChatCommandsPlugin extends Plugin
|
||||
private static final Pattern DUEL_ARENA_WINS_PATTERN = Pattern.compile("You (were defeated|won)! You have(?: now)? won ([\\d,]+|one) duels?");
|
||||
private static final Pattern DUEL_ARENA_LOSSES_PATTERN = Pattern.compile("You have(?: now)? lost ([\\d,]+|one) duels?");
|
||||
private static final Pattern ADVENTURE_LOG_TITLE_PATTERN = Pattern.compile("The Exploits of (.+)");
|
||||
private static final Pattern ADVENTURE_LOG_PB_PATTERN = Pattern.compile("Fastest (?:kill|run)(?: - \\(Team size: " + TEAM_SIZES + "\\))?: ([0-9:]+(?:\\.[0-9]+)?)");
|
||||
private static final Pattern ADVENTURE_LOG_PB_PATTERN = Pattern.compile("Fastest (?:kill|run)(?: - \\(Team size: " + TEAM_SIZES + "\\))?: (?<time>[0-9:]+(?:\\.[0-9]+)?)");
|
||||
private static final Pattern HS_PB_PATTERN = Pattern.compile("Floor (?<floor>\\d) time: <col=ff0000>(?<floortime>[0-9:]+(?:\\.[0-9]+)?)</col>(?: \\(new personal best\\)|. Personal best: (?<floorpb>[0-9:]+(?:\\.[0-9]+)?))" +
|
||||
"(?:<br>Overall time: <col=ff0000>(?<otime>[0-9:]+(?:\\.[0-9]+)?)</col>(?: \\(new personal best\\)|. Personal best: (?<opb>[0-9:]+(?:\\.[0-9]+)?)))?");
|
||||
private static final Pattern HS_KC_FLOOR_PATTERN = Pattern.compile("You have completed Floor (\\d) of the Hallowed Sepulchre! Total completions: <col=ff0000>([0-9,]+)</col>\\.");
|
||||
@@ -156,6 +156,7 @@ public class ChatCommandsPlugin extends Plugin
|
||||
private String lastBossKill;
|
||||
private int lastBossTime = -1;
|
||||
private double lastPb = -1;
|
||||
private String lastTeamSize;
|
||||
private int modIconIdx = -1;
|
||||
|
||||
@Inject
|
||||
@@ -394,8 +395,30 @@ public class ChatCommandsPlugin extends Plugin
|
||||
if (lastPb > -1)
|
||||
{
|
||||
log.debug("Got out-of-order personal best for {}: {}", renamedBoss, lastPb);
|
||||
setPb(renamedBoss, lastPb);
|
||||
|
||||
if (renamedBoss.contains("Theatre of Blood"))
|
||||
{
|
||||
// TOB team size isn't sent in the kill message, but can be computed from varbits
|
||||
int tobTeamSize = tobTeamSize();
|
||||
lastTeamSize = tobTeamSize == 1 ? "Solo" : (tobTeamSize + " players");
|
||||
}
|
||||
|
||||
final double pb = getPb(renamedBoss);
|
||||
// If a raid with a team size, only update the pb if it is lower than the existing pb
|
||||
// so that the pb is the overall lowest of any team size
|
||||
if (lastTeamSize == null || pb == 0 || lastPb < pb)
|
||||
{
|
||||
log.debug("Setting overall pb (old: {})", pb);
|
||||
setPb(renamedBoss, lastPb);
|
||||
}
|
||||
if (lastTeamSize != null)
|
||||
{
|
||||
log.debug("Setting team size pb: {}", lastTeamSize);
|
||||
setPb(renamedBoss + " " + lastTeamSize, lastPb);
|
||||
}
|
||||
|
||||
lastPb = -1;
|
||||
lastTeamSize = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -554,16 +577,26 @@ public class ChatCommandsPlugin extends Plugin
|
||||
double seconds = timeStringToSeconds(matcher.group("pb"));
|
||||
if (lastBossKill != null)
|
||||
{
|
||||
// Most bosses sent boss kill message, and then pb message, so we
|
||||
// Most bosses send boss kill message, and then pb message, so we
|
||||
// use the remembered lastBossKill
|
||||
log.debug("Got personal best for {}: {}", lastBossKill, seconds);
|
||||
setPb(lastBossKill, seconds);
|
||||
lastPb = -1;
|
||||
lastTeamSize = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Some bosses send the pb message, and then the kill message!
|
||||
lastPb = seconds;
|
||||
try
|
||||
{
|
||||
lastTeamSize = matcher.group("teamsize");
|
||||
}
|
||||
catch (IllegalArgumentException ex)
|
||||
{
|
||||
// pattern has no team size
|
||||
lastTeamSize = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -654,7 +687,7 @@ public class ChatCommandsPlugin extends Plugin
|
||||
Matcher matcher = ADVENTURE_LOG_PB_PATTERN.matcher(line);
|
||||
if (matcher.find())
|
||||
{
|
||||
double s = timeStringToSeconds(matcher.group(1));
|
||||
double s = timeStringToSeconds(matcher.group("time"));
|
||||
pb = Math.min(pb, s);
|
||||
}
|
||||
}
|
||||
@@ -1128,7 +1161,7 @@ public class ChatCommandsPlugin extends Plugin
|
||||
|
||||
private boolean gambleCountSubmit(ChatInput chatInput, String value)
|
||||
{
|
||||
final int gc = client.getVar(Varbits.BA_GC);
|
||||
final int gc = client.getVarbitValue(Varbits.BA_GC);
|
||||
final String playerName = client.getLocalPlayer().getName();
|
||||
|
||||
executor.execute(() ->
|
||||
@@ -1919,15 +1952,57 @@ public class ChatCommandsPlugin extends Plugin
|
||||
case "herbi":
|
||||
return "Herbiboar";
|
||||
|
||||
// cox
|
||||
// Chambers of Xeric
|
||||
case "cox":
|
||||
case "xeric":
|
||||
case "chambers":
|
||||
case "olm":
|
||||
case "raids":
|
||||
return "Chambers of Xeric";
|
||||
case "cox 1":
|
||||
case "cox solo":
|
||||
return "Chambers of Xeric Solo";
|
||||
case "cox 2":
|
||||
case "cox duo":
|
||||
return "Chambers of Xeric 2 players";
|
||||
case "cox 3":
|
||||
return "Chambers of Xeric 3 players";
|
||||
case "cox 4":
|
||||
return "Chambers of Xeric 4 players";
|
||||
case "cox 5":
|
||||
return "Chambers of Xeric 5 players";
|
||||
case "cox 6":
|
||||
return "Chambers of Xeric 6 players";
|
||||
case "cox 7":
|
||||
return "Chambers of Xeric 7 players";
|
||||
case "cox 8":
|
||||
return "Chambers of Xeric 8 players";
|
||||
case "cox 9":
|
||||
return "Chambers of Xeric 9 players";
|
||||
case "cox 10":
|
||||
return "Chambers of Xeric 10 players";
|
||||
case "cox 11-15":
|
||||
case "cox 11":
|
||||
case "cox 12":
|
||||
case "cox 13":
|
||||
case "cox 14":
|
||||
case "cox 15":
|
||||
return "Chambers of Xeric 11-15 players";
|
||||
case "cox 16-23":
|
||||
case "cox 16":
|
||||
case "cox 17":
|
||||
case "cox 18":
|
||||
case "cox 19":
|
||||
case "cox 20":
|
||||
case "cox 21":
|
||||
case "cox 22":
|
||||
case "cox 23":
|
||||
return "Chambers of Xeric 16-23 players";
|
||||
case "cox 24":
|
||||
case "cox 24+":
|
||||
return "Chambers of Xeric 24+ players";
|
||||
|
||||
// cox cm
|
||||
// Chambers of Xeric Challenge Mode
|
||||
case "cox cm":
|
||||
case "xeric cm":
|
||||
case "chambers cm":
|
||||
@@ -1935,15 +2010,70 @@ public class ChatCommandsPlugin extends Plugin
|
||||
case "raids cm":
|
||||
case "chambers of xeric - challenge mode":
|
||||
return "Chambers of Xeric Challenge Mode";
|
||||
case "cox cm 1":
|
||||
case "cox cm solo":
|
||||
return "Chambers of Xeric Challenge Mode Solo";
|
||||
case "cox cm 2":
|
||||
case "cox cm duo":
|
||||
return "Chambers of Xeric Challenge Mode 2 players";
|
||||
case "cox cm 3":
|
||||
return "Chambers of Xeric Challenge Mode 3 players";
|
||||
case "cox cm 4":
|
||||
return "Chambers of Xeric Challenge Mode 4 players";
|
||||
case "cox cm 5":
|
||||
return "Chambers of Xeric Challenge Mode 5 players";
|
||||
case "cox cm 6":
|
||||
return "Chambers of Xeric Challenge Mode 6 players";
|
||||
case "cox cm 7":
|
||||
return "Chambers of Xeric Challenge Mode 7 players";
|
||||
case "cox cm 8":
|
||||
return "Chambers of Xeric Challenge Mode 8 players";
|
||||
case "cox cm 9":
|
||||
return "Chambers of Xeric Challenge Mode 9 players";
|
||||
case "cox cm 10":
|
||||
return "Chambers of Xeric Challenge Mode 10 players";
|
||||
case "cox cm 11-15":
|
||||
case "cox cm 11":
|
||||
case "cox cm 12":
|
||||
case "cox cm 13":
|
||||
case "cox cm 14":
|
||||
case "cox cm 15":
|
||||
return "Chambers of Xeric Challenge Mode 11-15 players";
|
||||
case "cox cm 16-23":
|
||||
case "cox cm 16":
|
||||
case "cox cm 17":
|
||||
case "cox cm 18":
|
||||
case "cox cm 19":
|
||||
case "cox cm 20":
|
||||
case "cox cm 21":
|
||||
case "cox cm 22":
|
||||
case "cox cm 23":
|
||||
return "Chambers of Xeric Challenge Mode 16-23 players";
|
||||
case "cox cm 24":
|
||||
case "cox cm 24+":
|
||||
return "Chambers of Xeric Challenge Mode 24+ players";
|
||||
|
||||
// tob
|
||||
// Theatre of Blood
|
||||
case "tob":
|
||||
case "theatre":
|
||||
case "verzik":
|
||||
case "verzik vitur":
|
||||
case "raids 2":
|
||||
return "Theatre of Blood";
|
||||
case "tob 1":
|
||||
case "tob solo":
|
||||
return "Theatre of Blood Solo";
|
||||
case "tob 2":
|
||||
case "tob duo":
|
||||
return "Theatre of Blood 2 players";
|
||||
case "tob 3":
|
||||
return "Theatre of Blood 3 players";
|
||||
case "tob 4":
|
||||
return "Theatre of Blood 4 players";
|
||||
case "tob 5":
|
||||
return "Theatre of Blood 5 players";
|
||||
|
||||
// Theatre of Blood Entry Mode
|
||||
case "theatre of blood: story mode":
|
||||
case "tob sm":
|
||||
case "tob story mode":
|
||||
@@ -1954,6 +2084,7 @@ public class ChatCommandsPlugin extends Plugin
|
||||
case "tob entry":
|
||||
return "Theatre of Blood Entry Mode";
|
||||
|
||||
// Theatre of Blood Hard Mode
|
||||
case "theatre of blood: hard mode":
|
||||
case "tob cm":
|
||||
case "tob hm":
|
||||
@@ -1961,6 +2092,18 @@ public class ChatCommandsPlugin extends Plugin
|
||||
case "tob hard":
|
||||
case "hmt":
|
||||
return "Theatre of Blood Hard Mode";
|
||||
case "hmt 1":
|
||||
case "hmt solo":
|
||||
return "Theatre of Blood Hard Mode Solo";
|
||||
case "hmt 2":
|
||||
case "hmt duo":
|
||||
return "Theatre of Blood Hard Mode 2 players";
|
||||
case "hmt 3":
|
||||
return "Theatre of Blood Hard Mode 3 players";
|
||||
case "hmt 4":
|
||||
return "Theatre of Blood Hard Mode 4 players";
|
||||
case "hmt 5":
|
||||
return "Theatre of Blood Hard Mode 5 players";
|
||||
|
||||
// The Gauntlet
|
||||
case "gaunt":
|
||||
@@ -2256,4 +2399,13 @@ public class ChatCommandsPlugin extends Plugin
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private int tobTeamSize()
|
||||
{
|
||||
return Math.min(client.getVarbitValue(Varbits.THEATRE_OF_BLOOD_ORB1), 1) +
|
||||
Math.min(client.getVarbitValue(Varbits.THEATRE_OF_BLOOD_ORB2), 1) +
|
||||
Math.min(client.getVarbitValue(Varbits.THEATRE_OF_BLOOD_ORB3), 1) +
|
||||
Math.min(client.getVarbitValue(Varbits.THEATRE_OF_BLOOD_ORB4), 1) +
|
||||
Math.min(client.getVarbitValue(Varbits.THEATRE_OF_BLOOD_ORB5), 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -113,7 +113,7 @@ public class ClueScrollOverlay extends OverlayPanel
|
||||
}
|
||||
|
||||
if (clue.isRequiresLight()
|
||||
&& ((clue.getHasFirePit() == null || client.getVar(clue.getHasFirePit()) != 1)
|
||||
&& ((clue.getFirePitVarbitId() == -1 || client.getVarbitValue(clue.getFirePitVarbitId()) != 1)
|
||||
&& (inventoryItems == null || !HAS_LIGHT.fulfilledBy(inventoryItems))
|
||||
&& (equippedItems == null || !HAS_LIGHT.fulfilledBy(equippedItems))))
|
||||
{
|
||||
|
||||
@@ -145,10 +145,10 @@ public class ClueScrollPlugin extends Plugin
|
||||
private static final Color HIGHLIGHT_HOVER_BORDER_COLOR = HIGHLIGHT_BORDER_COLOR.darker();
|
||||
private static final Color HIGHLIGHT_FILL_COLOR = new Color(0, 255, 0, 20);
|
||||
private static final String CLUE_TAG_NAME = "clue";
|
||||
private static final Varbits[] RUNEPOUCH_AMOUNT_VARBITS = {
|
||||
private static final int[] RUNEPOUCH_AMOUNT_VARBITS = {
|
||||
Varbits.RUNE_POUCH_AMOUNT1, Varbits.RUNE_POUCH_AMOUNT2, Varbits.RUNE_POUCH_AMOUNT3
|
||||
};
|
||||
private static final Varbits[] RUNEPOUCH_RUNE_VARBITS = {
|
||||
private static final int[] RUNEPOUCH_RUNE_VARBITS = {
|
||||
Varbits.RUNE_POUCH_RUNE1, Varbits.RUNE_POUCH_RUNE2, Varbits.RUNE_POUCH_RUNE3
|
||||
};
|
||||
|
||||
@@ -431,13 +431,13 @@ public class ClueScrollPlugin extends Plugin
|
||||
List<Item> items = new ArrayList<>(RUNEPOUCH_AMOUNT_VARBITS.length);
|
||||
for (int i = 0; i < RUNEPOUCH_AMOUNT_VARBITS.length; i++)
|
||||
{
|
||||
int amount = client.getVar(RUNEPOUCH_AMOUNT_VARBITS[i]);
|
||||
int amount = client.getVarbitValue(RUNEPOUCH_AMOUNT_VARBITS[i]);
|
||||
if (amount <= 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
int varbId = client.getVar(RUNEPOUCH_RUNE_VARBITS[i]);
|
||||
int varbId = client.getVarbitValue(RUNEPOUCH_RUNE_VARBITS[i]);
|
||||
RunepouchRune rune = RunepouchRune.getRune(varbId);
|
||||
if (rune == null)
|
||||
{
|
||||
|
||||
@@ -701,7 +701,7 @@ public class AnagramClue extends ClueScroll implements TextClueScroll, NpcClueSc
|
||||
.build(),
|
||||
AnagramClue.builder()
|
||||
.text("DISORDER")
|
||||
.npc("Sedridor")
|
||||
.npc("Archmage Sedridor")
|
||||
.location(new WorldPoint(3102, 9570, 0))
|
||||
.area("Wizards' Tower basement")
|
||||
.build(),
|
||||
|
||||
@@ -28,7 +28,7 @@ import java.awt.Graphics2D;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import net.runelite.api.Varbits;
|
||||
import net.runelite.api.annotations.Varbit;
|
||||
import net.runelite.client.plugins.cluescrolls.ClueScrollPlugin;
|
||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||
|
||||
@@ -43,8 +43,8 @@ public abstract class ClueScroll
|
||||
private boolean requiresLight;
|
||||
|
||||
@Setter(AccessLevel.PROTECTED)
|
||||
@Getter(AccessLevel.PUBLIC)
|
||||
private Varbits hasFirePit;
|
||||
@Getter(onMethod_ = {@Varbit}, value = AccessLevel.PUBLIC)
|
||||
private int firePitVarbitId = -1;
|
||||
|
||||
@Setter(AccessLevel.PROTECTED)
|
||||
@Getter(AccessLevel.PUBLIC)
|
||||
|
||||
@@ -32,14 +32,21 @@ import javax.annotation.Nullable;
|
||||
import lombok.Getter;
|
||||
import lombok.NonNull;
|
||||
import net.runelite.api.Varbits;
|
||||
import net.runelite.api.annotations.Varbit;
|
||||
import net.runelite.api.coords.LocalPoint;
|
||||
import net.runelite.api.coords.WorldPoint;
|
||||
import net.runelite.client.plugins.cluescrolls.ClueScrollPlugin;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.Enemy.ANCIENT_WIZARDS;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.Enemy.ARMADYLEAN_GUARD;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.Enemy.ARMADYLEAN_OR_BANDOSIAN_GUARD;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.Enemy.BANDOSIAN_GUARD;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.Enemy.BRASSICAN_MAGE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.Enemy.SARADOMIN_WIZARD;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.Enemy.ZAMORAK_WIZARD;
|
||||
import net.runelite.client.ui.overlay.OverlayUtil;
|
||||
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||
import net.runelite.client.ui.overlay.components.TitleComponent;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.Enemy.*;
|
||||
|
||||
@Getter
|
||||
public class CoordinateClue extends ClueScroll implements TextClueScroll, LocationClueScroll
|
||||
@@ -49,7 +56,8 @@ public class CoordinateClue extends ClueScroll implements TextClueScroll, Locati
|
||||
{
|
||||
private final String directions;
|
||||
private final boolean lightRequired;
|
||||
private final Varbits lightSource;
|
||||
@Getter(onMethod_ = {@Varbit})
|
||||
private final int lightSourceVarbitId;
|
||||
private final Enemy enemy;
|
||||
|
||||
private CoordinateClueInfo(@NonNull String directions)
|
||||
@@ -62,15 +70,15 @@ public class CoordinateClue extends ClueScroll implements TextClueScroll, Locati
|
||||
this.directions = directions;
|
||||
this.enemy = enemy;
|
||||
this.lightRequired = false;
|
||||
this.lightSource = null;
|
||||
this.lightSourceVarbitId = -1;
|
||||
}
|
||||
|
||||
private CoordinateClueInfo(@Nonnull String directions, Enemy enemy, boolean lightRequired, Varbits lightSource)
|
||||
private CoordinateClueInfo(@Nonnull String directions, Enemy enemy, boolean lightRequired, @Varbit int lightSourceVarbitId)
|
||||
{
|
||||
this.directions = directions;
|
||||
this.enemy = enemy;
|
||||
this.lightRequired = lightRequired;
|
||||
this.lightSource = lightSource;
|
||||
this.lightSourceVarbitId = lightSourceVarbitId;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -257,7 +265,7 @@ public class CoordinateClue extends ClueScroll implements TextClueScroll, Locati
|
||||
final CoordinateClueInfo clueInfo = CLUES.get(location);
|
||||
if (clueInfo != null)
|
||||
{
|
||||
setHasFirePit(clueInfo.getLightSource());
|
||||
setFirePitVarbitId(clueInfo.getLightSourceVarbitId());
|
||||
setRequiresLight(clueInfo.lightRequired);
|
||||
setEnemy(clueInfo.getEnemy());
|
||||
}
|
||||
|
||||
@@ -41,6 +41,7 @@ import static net.runelite.api.ItemID.*;
|
||||
import net.runelite.api.Perspective;
|
||||
import net.runelite.api.ScriptID;
|
||||
import net.runelite.api.Varbits;
|
||||
import net.runelite.api.annotations.Varbit;
|
||||
import net.runelite.api.coords.LocalPoint;
|
||||
import net.runelite.api.coords.WorldPoint;
|
||||
import static net.runelite.client.plugins.cluescrolls.ClueScrollOverlay.TITLED_CONTENT_COLOR;
|
||||
@@ -253,11 +254,11 @@ public class EmoteClue extends ClueScroll implements TextClueScroll, LocationClu
|
||||
this.itemRequirements = itemRequirements;
|
||||
}
|
||||
|
||||
private EmoteClue(String text, String locationName, @Nullable STASHUnit stashUnit, WorldPoint location, Emote firstEmote, Emote secondEmote, @Nonnull Varbits firePit, @Nonnull ItemRequirement... itemRequirements)
|
||||
private EmoteClue(String text, String locationName, @Nullable STASHUnit stashUnit, WorldPoint location, Emote firstEmote, Emote secondEmote, @Varbit int firePitVarbitId, @Nonnull ItemRequirement... itemRequirements)
|
||||
{
|
||||
this(text, locationName, stashUnit, location, firstEmote, secondEmote, itemRequirements);
|
||||
setRequiresLight(true);
|
||||
setHasFirePit(firePit);
|
||||
setFirePitVarbitId(firePitVarbitId);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -236,7 +236,7 @@ class PluginListItem extends JPanel implements SearchablePlugin
|
||||
buttonPanel.add(onOffToggle);
|
||||
if (pluginConfig.getPlugin() != null)
|
||||
{
|
||||
onOffToggle.addItemListener(i ->
|
||||
onOffToggle.addActionListener(i ->
|
||||
{
|
||||
if (onOffToggle.isSelected())
|
||||
{
|
||||
|
||||
@@ -79,7 +79,7 @@ class CorpDamageOverlay extends OverlayPanel
|
||||
return null;
|
||||
}
|
||||
|
||||
int myDamage = client.getVar(Varbits.CORP_DAMAGE);
|
||||
int myDamage = client.getVarbitValue(Varbits.CORP_DAMAGE);
|
||||
int totalDamage = corpPlugin.getTotalDamage();
|
||||
int players = corpPlugin.getPlayers().size();
|
||||
|
||||
|
||||
@@ -235,7 +235,7 @@ public class CorpPlugin extends Plugin
|
||||
{
|
||||
if (corp != null)
|
||||
{
|
||||
int myDamage = client.getVar(Varbits.CORP_DAMAGE);
|
||||
int myDamage = client.getVarbitValue(Varbits.CORP_DAMAGE);
|
||||
// avoid resetting our counter when the client's is reset
|
||||
if (myDamage > 0)
|
||||
{
|
||||
|
||||
@@ -99,7 +99,7 @@ public class CrowdsourcingCooking
|
||||
|
||||
int cookingLevel = client.getBoostedSkillLevel(Skill.COOKING);
|
||||
boolean hasCookingGauntlets = hasCookingGauntlets();
|
||||
boolean kourendElite = client.getVar(Varbits.DIARY_KOUREND_ELITE) == 1;
|
||||
boolean kourendElite = client.getVarbitValue(Varbits.DIARY_KOUREND_ELITE) == 1;
|
||||
CookingData data = new CookingData(message, hasCookingGauntlets, inHosidiusKitchen, kourendElite, lastGameObjectClicked, cookingLevel);
|
||||
manager.storeEvent(data);
|
||||
}
|
||||
|
||||
@@ -82,10 +82,10 @@ public class CrowdsourcingThieving
|
||||
|
||||
private int getArdougneDiary()
|
||||
{
|
||||
int easy = client.getVar(Varbits.DIARY_ARDOUGNE_EASY);
|
||||
int medium = client.getVar(Varbits.DIARY_ARDOUGNE_MEDIUM);
|
||||
int hard = client.getVar(Varbits.DIARY_ARDOUGNE_HARD);
|
||||
int elite = client.getVar(Varbits.DIARY_ARDOUGNE_ELITE);
|
||||
int easy = client.getVarbitValue(Varbits.DIARY_ARDOUGNE_EASY);
|
||||
int medium = client.getVarbitValue(Varbits.DIARY_ARDOUGNE_MEDIUM);
|
||||
int hard = client.getVarbitValue(Varbits.DIARY_ARDOUGNE_HARD);
|
||||
int elite = client.getVarbitValue(Varbits.DIARY_ARDOUGNE_ELITE);
|
||||
return easy + 2 * medium + 4 * hard + 8 * elite;
|
||||
}
|
||||
|
||||
|
||||
@@ -127,7 +127,7 @@ public class CrowdsourcingZMI
|
||||
}
|
||||
|
||||
int tickDelta = itemContainerChangedTick - illegalActionTick;
|
||||
boolean ardougneMedium = client.getVar(Varbits.DIARY_ARDOUGNE_MEDIUM) == 1;
|
||||
boolean ardougneMedium = client.getVarbitValue(Varbits.DIARY_ARDOUGNE_MEDIUM) == 1;
|
||||
int runecraftBoostedLevel = client.getBoostedSkillLevel(Skill.RUNECRAFT);
|
||||
Multiset<Integer> currentInventorySnapshot = getInventorySnapshot();
|
||||
final Multiset<Integer> itemsReceived = Multisets.difference(currentInventorySnapshot, previousInventorySnapshot);
|
||||
|
||||
@@ -171,7 +171,7 @@ public class DailyTasksPlugin extends Plugin
|
||||
{
|
||||
if (client.getAccountType() == AccountType.NORMAL
|
||||
&& client.getVar(VarPlayer.NMZ_REWARD_POINTS) >= HERB_BOX_COST
|
||||
&& (client.getVar(Varbits.DAILY_HERB_BOXES_COLLECTED) < HERB_BOX_MAX
|
||||
&& (client.getVarbitValue(Varbits.DAILY_HERB_BOXES_COLLECTED) < HERB_BOX_MAX
|
||||
|| dailyReset))
|
||||
{
|
||||
sendChatMessage(HERB_BOX_MESSAGE);
|
||||
@@ -180,8 +180,8 @@ public class DailyTasksPlugin extends Plugin
|
||||
|
||||
private void checkStaves(boolean dailyReset)
|
||||
{
|
||||
if (client.getVar(Varbits.DIARY_VARROCK_EASY) == 1
|
||||
&& (client.getVar(Varbits.DAILY_STAVES_COLLECTED) == 0
|
||||
if (client.getVarbitValue(Varbits.DIARY_VARROCK_EASY) == 1
|
||||
&& (client.getVarbitValue(Varbits.DAILY_STAVES_COLLECTED) == 0
|
||||
|| dailyReset))
|
||||
{
|
||||
sendChatMessage(STAVES_MESSAGE);
|
||||
@@ -190,8 +190,8 @@ public class DailyTasksPlugin extends Plugin
|
||||
|
||||
private void checkEssence(boolean dailyReset)
|
||||
{
|
||||
if (client.getVar(Varbits.DIARY_ARDOUGNE_MEDIUM) == 1
|
||||
&& (client.getVar(Varbits.DAILY_ESSENCE_COLLECTED) == 0
|
||||
if (client.getVarbitValue(Varbits.DIARY_ARDOUGNE_MEDIUM) == 1
|
||||
&& (client.getVarbitValue(Varbits.DAILY_ESSENCE_COLLECTED) == 0
|
||||
|| dailyReset))
|
||||
{
|
||||
sendChatMessage(ESSENCE_MESSAGE);
|
||||
@@ -200,8 +200,8 @@ public class DailyTasksPlugin extends Plugin
|
||||
|
||||
private void checkRunes(boolean dailyReset)
|
||||
{
|
||||
if (client.getVar(Varbits.DIARY_WILDERNESS_EASY) == 1
|
||||
&& (client.getVar(Varbits.DAILY_RUNES_COLLECTED) == 0
|
||||
if (client.getVarbitValue(Varbits.DIARY_WILDERNESS_EASY) == 1
|
||||
&& (client.getVarbitValue(Varbits.DAILY_RUNES_COLLECTED) == 0
|
||||
|| dailyReset))
|
||||
{
|
||||
sendChatMessage(RUNES_MESSAGE);
|
||||
@@ -211,8 +211,8 @@ public class DailyTasksPlugin extends Plugin
|
||||
private void checkSand(boolean dailyReset)
|
||||
{
|
||||
if (client.getAccountType() != AccountType.ULTIMATE_IRONMAN
|
||||
&& client.getVar(Varbits.QUEST_THE_HAND_IN_THE_SAND) >= SAND_QUEST_COMPLETE
|
||||
&& (client.getVar(Varbits.DAILY_SAND_COLLECTED) == 0
|
||||
&& client.getVarbitValue(Varbits.QUEST_THE_HAND_IN_THE_SAND) >= SAND_QUEST_COMPLETE
|
||||
&& (client.getVarbitValue(Varbits.DAILY_SAND_COLLECTED) == 0
|
||||
|| dailyReset))
|
||||
{
|
||||
sendChatMessage(SAND_MESSAGE);
|
||||
@@ -221,8 +221,8 @@ public class DailyTasksPlugin extends Plugin
|
||||
|
||||
private void checkFlax(boolean dailyReset)
|
||||
{
|
||||
if (client.getVar(Varbits.DIARY_KANDARIN_EASY) == 1
|
||||
&& (client.getVar(Varbits.DAILY_FLAX_STATE) == 0
|
||||
if (client.getVarbitValue(Varbits.DIARY_KANDARIN_EASY) == 1
|
||||
&& (client.getVarbitValue(Varbits.DAILY_FLAX_STATE) == 0
|
||||
|| dailyReset))
|
||||
{
|
||||
sendChatMessage(FLAX_MESSAGE);
|
||||
@@ -231,8 +231,8 @@ public class DailyTasksPlugin extends Plugin
|
||||
|
||||
private void checkArrows(boolean dailyReset)
|
||||
{
|
||||
if (client.getVar(Varbits.DIARY_WESTERN_EASY) == 1
|
||||
&& (client.getVar(Varbits.DAILY_ARROWS_STATE) == 0
|
||||
if (client.getVarbitValue(Varbits.DIARY_WESTERN_EASY) == 1
|
||||
&& (client.getVarbitValue(Varbits.DAILY_ARROWS_STATE) == 0
|
||||
|| dailyReset))
|
||||
{
|
||||
sendChatMessage(ARROWS_MESSAGE);
|
||||
@@ -241,14 +241,14 @@ public class DailyTasksPlugin extends Plugin
|
||||
|
||||
private void checkBonemeal(boolean dailyReset)
|
||||
{
|
||||
if (client.getVar(Varbits.DIARY_MORYTANIA_MEDIUM) == 1)
|
||||
if (client.getVarbitValue(Varbits.DIARY_MORYTANIA_MEDIUM) == 1)
|
||||
{
|
||||
int collected = client.getVar(Varbits.DAILY_BONEMEAL_STATE);
|
||||
int collected = client.getVarbitValue(Varbits.DAILY_BONEMEAL_STATE);
|
||||
int max = BONEMEAL_PER_DIARY;
|
||||
if (client.getVar(Varbits.DIARY_MORYTANIA_HARD) == 1)
|
||||
if (client.getVarbitValue(Varbits.DIARY_MORYTANIA_HARD) == 1)
|
||||
{
|
||||
max += BONEMEAL_PER_DIARY;
|
||||
if (client.getVar(Varbits.DIARY_MORYTANIA_ELITE) == 1)
|
||||
if (client.getVarbitValue(Varbits.DIARY_MORYTANIA_ELITE) == 1)
|
||||
{
|
||||
max += BONEMEAL_PER_DIARY;
|
||||
}
|
||||
@@ -262,8 +262,8 @@ public class DailyTasksPlugin extends Plugin
|
||||
|
||||
private void checkDynamite(boolean dailyReset)
|
||||
{
|
||||
if (client.getVar(Varbits.DIARY_KOUREND_MEDIUM) == 1
|
||||
&& (client.getVar(Varbits.DAILY_DYNAMITE_COLLECTED) == 0
|
||||
if (client.getVarbitValue(Varbits.DIARY_KOUREND_MEDIUM) == 1
|
||||
&& (client.getVarbitValue(Varbits.DAILY_DYNAMITE_COLLECTED) == 0
|
||||
|| dailyReset))
|
||||
{
|
||||
sendChatMessage(DYNAMITE_MESSAGE);
|
||||
|
||||
@@ -28,12 +28,9 @@ package net.runelite.client.plugins.devtools;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Font;
|
||||
import java.awt.FontMetrics;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Polygon;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.Shape;
|
||||
import java.awt.geom.Rectangle2D;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import javax.inject.Inject;
|
||||
@@ -59,9 +56,6 @@ import net.runelite.api.TileItem;
|
||||
import net.runelite.api.TileObject;
|
||||
import net.runelite.api.coords.LocalPoint;
|
||||
import net.runelite.api.coords.WorldPoint;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.api.widgets.WidgetItem;
|
||||
import net.runelite.client.ui.FontManager;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayLayer;
|
||||
@@ -122,11 +116,6 @@ class DevToolsOverlay extends Overlay
|
||||
renderTileObjects(graphics);
|
||||
}
|
||||
|
||||
if (plugin.getInventory().isActive())
|
||||
{
|
||||
renderInventory(graphics);
|
||||
}
|
||||
|
||||
if (plugin.getProjectiles().isActive())
|
||||
{
|
||||
renderProjectiles(graphics);
|
||||
@@ -412,35 +401,6 @@ class DevToolsOverlay extends Overlay
|
||||
}
|
||||
}
|
||||
|
||||
private void renderInventory(Graphics2D graphics)
|
||||
{
|
||||
Widget inventoryWidget = client.getWidget(WidgetInfo.INVENTORY);
|
||||
if (inventoryWidget == null || inventoryWidget.isHidden())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
for (WidgetItem item : inventoryWidget.getWidgetItems())
|
||||
{
|
||||
Rectangle slotBounds = item.getCanvasBounds();
|
||||
|
||||
String idText = "" + item.getId();
|
||||
FontMetrics fm = graphics.getFontMetrics();
|
||||
Rectangle2D textBounds = fm.getStringBounds(idText, graphics);
|
||||
|
||||
int textX = (int) (slotBounds.getX() + (slotBounds.getWidth() / 2) - (textBounds.getWidth() / 2));
|
||||
int textY = (int) (slotBounds.getY() + (slotBounds.getHeight() / 2) + (textBounds.getHeight() / 2));
|
||||
|
||||
graphics.setColor(new Color(255, 255, 255, 65));
|
||||
graphics.fill(slotBounds);
|
||||
|
||||
graphics.setColor(Color.BLACK);
|
||||
graphics.drawString(idText, textX + 1, textY + 1);
|
||||
graphics.setColor(YELLOW);
|
||||
graphics.drawString(idText, textX, textY);
|
||||
}
|
||||
}
|
||||
|
||||
private void renderProjectiles(Graphics2D graphics)
|
||||
{
|
||||
for (Projectile projectile : client.getProjectiles())
|
||||
|
||||
@@ -107,7 +107,6 @@ class DevToolsPanel extends PluginPanel
|
||||
container.add(plugin.getWalls());
|
||||
container.add(plugin.getDecorations());
|
||||
|
||||
container.add(plugin.getInventory());
|
||||
container.add(plugin.getProjectiles());
|
||||
|
||||
container.add(plugin.getLocation());
|
||||
|
||||
@@ -125,7 +125,6 @@ public class DevToolsPlugin extends Plugin
|
||||
private DevToolsButton graphicsObjects;
|
||||
private DevToolsButton walls;
|
||||
private DevToolsButton decorations;
|
||||
private DevToolsButton inventory;
|
||||
private DevToolsButton projectiles;
|
||||
private DevToolsButton location;
|
||||
private DevToolsButton chunkBorders;
|
||||
@@ -168,7 +167,6 @@ public class DevToolsPlugin extends Plugin
|
||||
walls = new DevToolsButton("Walls");
|
||||
decorations = new DevToolsButton("Decorations");
|
||||
|
||||
inventory = new DevToolsButton("Inventory");
|
||||
projectiles = new DevToolsButton("Projectiles");
|
||||
|
||||
location = new DevToolsButton("Location");
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
package net.runelite.client.plugins.devtools;
|
||||
|
||||
import com.google.common.collect.HashMultimap;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.collect.Multimap;
|
||||
import com.google.inject.Inject;
|
||||
import java.awt.BorderLayout;
|
||||
@@ -32,6 +33,7 @@ import java.awt.Dimension;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.event.AdjustmentEvent;
|
||||
import java.awt.event.AdjustmentListener;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
@@ -45,6 +47,7 @@ import javax.swing.JScrollPane;
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.border.CompoundBorder;
|
||||
import lombok.Getter;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.IndexDataBase;
|
||||
import net.runelite.api.VarClientInt;
|
||||
@@ -62,6 +65,7 @@ import net.runelite.client.ui.ColorScheme;
|
||||
import net.runelite.client.ui.DynamicGridLayout;
|
||||
import net.runelite.client.ui.FontManager;
|
||||
|
||||
@Slf4j
|
||||
class VarInspector extends DevToolsFrame
|
||||
{
|
||||
@Getter
|
||||
@@ -84,6 +88,26 @@ class VarInspector extends DevToolsFrame
|
||||
|
||||
private final static int MAX_LOG_ENTRIES = 10_000;
|
||||
private static final int VARBITS_ARCHIVE_ID = 14;
|
||||
private static final Map<Integer, String> VARBIT_NAMES;
|
||||
|
||||
static
|
||||
{
|
||||
ImmutableMap.Builder<Integer, String> builder = new ImmutableMap.Builder<>();
|
||||
|
||||
try
|
||||
{
|
||||
for (Field f : Varbits.class.getDeclaredFields())
|
||||
{
|
||||
builder.put(f.getInt(null), f.getName());
|
||||
}
|
||||
}
|
||||
catch (IllegalAccessException ex)
|
||||
{
|
||||
log.error("error setting up varbit names", ex);
|
||||
}
|
||||
|
||||
VARBIT_NAMES = builder.build();
|
||||
}
|
||||
|
||||
private final Client client;
|
||||
private final ClientThread clientThread;
|
||||
@@ -218,15 +242,7 @@ class VarInspector extends DevToolsFrame
|
||||
// Example: 4101 collides with 4104-4129
|
||||
client.setVarbitValue(oldVarps2, i, neew);
|
||||
|
||||
String name = Integer.toString(i);
|
||||
for (Varbits varbit : Varbits.values())
|
||||
{
|
||||
if (varbit.getId() == i)
|
||||
{
|
||||
name = String.format("%s(%d)", varbit.name(), i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
final String name = VARBIT_NAMES.getOrDefault(i, Integer.toString(i));
|
||||
addVarLog(VarType.VARBIT, name, old, neew);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,10 +27,11 @@ package net.runelite.client.plugins.driftnet;
|
||||
|
||||
import java.util.Set;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import net.runelite.api.GameObject;
|
||||
import net.runelite.api.Varbits;
|
||||
import net.runelite.api.annotations.Varbit;
|
||||
import net.runelite.api.coords.WorldPoint;
|
||||
|
||||
@Data
|
||||
@@ -38,8 +39,10 @@ import net.runelite.api.coords.WorldPoint;
|
||||
class DriftNet
|
||||
{
|
||||
private final int objectId;
|
||||
private final Varbits statusVarbit;
|
||||
private final Varbits countVarbit;
|
||||
@Getter(onMethod_ = {@Varbit})
|
||||
private final int statusVarbit;
|
||||
@Getter(onMethod_ = {@Varbit})
|
||||
private final int countVarbit;
|
||||
private final Set<WorldPoint> adjacentTiles;
|
||||
|
||||
private GameObject net;
|
||||
|
||||
@@ -198,8 +198,8 @@ public class DriftNetPlugin extends Plugin
|
||||
|
||||
for (DriftNet net : NETS)
|
||||
{
|
||||
DriftNetStatus status = DriftNetStatus.of(client.getVar(net.getStatusVarbit()));
|
||||
int count = client.getVar(net.getCountVarbit());
|
||||
DriftNetStatus status = DriftNetStatus.of(client.getVarbitValue(net.getStatusVarbit()));
|
||||
int count = client.getVarbitValue(net.getCountVarbit());
|
||||
|
||||
net.setStatus(status);
|
||||
net.setCount(count);
|
||||
|
||||
@@ -40,7 +40,6 @@ import net.runelite.api.events.MenuOptionClicked;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetID;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import static net.runelite.api.widgets.WidgetInfo.SEED_VAULT_ITEM_CONTAINER;
|
||||
import static net.runelite.api.widgets.WidgetInfo.TO_CHILD;
|
||||
import static net.runelite.api.widgets.WidgetInfo.TO_GROUP;
|
||||
import net.runelite.api.widgets.WidgetItem;
|
||||
@@ -126,7 +125,7 @@ public class ExaminePlugin extends Plugin
|
||||
break;
|
||||
case CC_OP_LOW_PRIORITY:
|
||||
{
|
||||
type = ExamineType.ITEM_BANK_EQ;
|
||||
type = ExamineType.IF3_ITEM;
|
||||
int[] qi = findItemFromWidget(event.getParam1(), event.getParam0());
|
||||
if (qi == null)
|
||||
{
|
||||
@@ -173,7 +172,7 @@ public class ExaminePlugin extends Plugin
|
||||
type = ExamineType.NPC;
|
||||
break;
|
||||
case GAMEMESSAGE:
|
||||
type = ExamineType.ITEM_BANK_EQ;
|
||||
type = ExamineType.IF3_ITEM;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
@@ -197,7 +196,7 @@ public class ExaminePlugin extends Plugin
|
||||
log.debug("Got examine for {} {}: {}", pendingExamine.getType(), pendingExamine.getId(), event.getMessage());
|
||||
|
||||
// If it is an item, show the price of it
|
||||
if (pendingExamine.getType() == ExamineType.ITEM || pendingExamine.getType() == ExamineType.ITEM_BANK_EQ)
|
||||
if (pendingExamine.getType() == ExamineType.ITEM || pendingExamine.getType() == ExamineType.IF3_ITEM)
|
||||
{
|
||||
final int itemId = pendingExamine.getId();
|
||||
final int itemQuantity = pendingExamine.getQuantity();
|
||||
@@ -212,12 +211,10 @@ public class ExaminePlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
private int[] findItemFromWidget(int widgetId, int actionParam)
|
||||
private int[] findItemFromWidget(int widgetId, int childIdx)
|
||||
{
|
||||
int widgetGroup = TO_GROUP(widgetId);
|
||||
int widgetChild = TO_CHILD(widgetId);
|
||||
Widget widget = client.getWidget(widgetGroup, widgetChild);
|
||||
|
||||
final int widgetGroup = TO_GROUP(widgetId);
|
||||
final Widget widget = client.getWidget(widgetId);
|
||||
if (widget == null)
|
||||
{
|
||||
return null;
|
||||
@@ -239,42 +236,18 @@ public class ExaminePlugin extends Plugin
|
||||
return new int[]{widgetItem.getItemQuantity(), widgetItem.getItemId()};
|
||||
}
|
||||
}
|
||||
else if (WidgetInfo.BANK_INVENTORY_ITEMS_CONTAINER.getGroupId() == widgetGroup
|
||||
|| WidgetInfo.RUNE_POUCH_ITEM_CONTAINER.getGroupId() == widgetGroup)
|
||||
{
|
||||
Widget widgetItem = widget.getChild(actionParam);
|
||||
if (widgetItem != null)
|
||||
{
|
||||
return new int[]{widgetItem.getItemQuantity(), widgetItem.getItemId()};
|
||||
}
|
||||
}
|
||||
else if (WidgetInfo.BANK_ITEM_CONTAINER.getGroupId() == widgetGroup
|
||||
|| WidgetInfo.CLUE_SCROLL_REWARD_ITEM_CONTAINER.getGroupId() == widgetGroup
|
||||
|| WidgetInfo.LOOTING_BAG_CONTAINER.getGroupId() == widgetGroup
|
||||
|| WidgetID.SEED_VAULT_INVENTORY_GROUP_ID == widgetGroup
|
||||
|| WidgetID.SEED_BOX_GROUP_ID == widgetGroup
|
||||
|| WidgetID.PLAYER_TRADE_SCREEN_GROUP_ID == widgetGroup
|
||||
|| WidgetID.PLAYER_TRADE_INVENTORY_GROUP_ID == widgetGroup
|
||||
|| WidgetID.POH_TREASURE_CHEST_INVENTORY_GROUP_ID == widgetGroup)
|
||||
{
|
||||
Widget widgetItem = widget.getChild(actionParam);
|
||||
if (widgetItem != null)
|
||||
{
|
||||
return new int[]{widgetItem.getItemQuantity(), widgetItem.getItemId()};
|
||||
}
|
||||
}
|
||||
else if (WidgetID.SHOP_GROUP_ID == widgetGroup)
|
||||
{
|
||||
Widget widgetItem = widget.getChild(actionParam);
|
||||
Widget widgetItem = widget.getChild(childIdx);
|
||||
if (widgetItem != null)
|
||||
{
|
||||
return new int[]{1, widgetItem.getItemId()};
|
||||
}
|
||||
}
|
||||
else if (WidgetID.SEED_VAULT_GROUP_ID == widgetGroup)
|
||||
else
|
||||
{
|
||||
Widget widgetItem = client.getWidget(SEED_VAULT_ITEM_CONTAINER).getChild(actionParam);
|
||||
if (widgetItem != null)
|
||||
Widget widgetItem = widget.getChild(childIdx);
|
||||
if (widgetItem != null && widgetItem.getItemId() > -1)
|
||||
{
|
||||
return new int[]{widgetItem.getItemQuantity(), widgetItem.getItemId()};
|
||||
}
|
||||
|
||||
@@ -24,10 +24,10 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.examine;
|
||||
|
||||
public enum ExamineType
|
||||
enum ExamineType
|
||||
{
|
||||
ITEM,
|
||||
ITEM_BANK_EQ,
|
||||
IF3_ITEM,
|
||||
NPC,
|
||||
OBJECT;
|
||||
}
|
||||
|
||||
@@ -203,7 +203,7 @@ public class XpDropPlugin extends Plugin
|
||||
else
|
||||
{
|
||||
EnumComposition colorEnum = client.getEnum(EnumID.XPDROP_COLORS);
|
||||
int defaultColorId = client.getVar(Varbits.EXPERIENCE_DROP_COLOR);
|
||||
int defaultColorId = client.getVarbitValue(Varbits.EXPERIENCE_DROP_COLOR);
|
||||
int color = colorEnum.getIntValue(defaultColorId);
|
||||
widget.setTextColor(color);
|
||||
}
|
||||
|
||||
@@ -171,8 +171,8 @@ public class FairyRingPlugin extends Plugin
|
||||
String destination;
|
||||
try
|
||||
{
|
||||
FairyRings fairyRingDestination = getFairyRingDestination(client.getVar(Varbits.FAIRY_RING_DIAL_ADCB),
|
||||
client.getVar(Varbits.FAIRY_RIGH_DIAL_ILJK), client.getVar(Varbits.FAIRY_RING_DIAL_PSRQ));
|
||||
FairyRings fairyRingDestination = getFairyRingDestination(client.getVarbitValue(Varbits.FAIRY_RING_DIAL_ADCB),
|
||||
client.getVarbitValue(Varbits.FAIRY_RIGH_DIAL_ILJK), client.getVarbitValue(Varbits.FAIRY_RING_DIAL_PSRQ));
|
||||
destination = fairyRingDestination.getDestination();
|
||||
}
|
||||
catch (IllegalArgumentException ex)
|
||||
|
||||
@@ -387,7 +387,7 @@ public class FishingPlugin extends Plugin
|
||||
return;
|
||||
}
|
||||
|
||||
int trawlerContribution = client.getVar(Varbits.FISHING_TRAWLER_ACTIVITY);
|
||||
int trawlerContribution = client.getVarbitValue(Varbits.FISHING_TRAWLER_ACTIVITY);
|
||||
trawlerContributionWidget.setText("Contribution: " + trawlerContribution);
|
||||
}
|
||||
|
||||
|
||||
@@ -199,7 +199,7 @@ public class HerbiboarPlugin extends Plugin
|
||||
{
|
||||
for (TrailToSpot trail : spot.getTrails())
|
||||
{
|
||||
int value = client.getVar(trail.getVarbit());
|
||||
int value = client.getVarbitValue(trail.getVarbitId());
|
||||
|
||||
if (value == trail.getValue())
|
||||
{
|
||||
@@ -222,11 +222,11 @@ public class HerbiboarPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
finishId = client.getVar(Varbits.HB_FINISH);
|
||||
finishId = client.getVarbitValue(Varbits.HB_FINISH);
|
||||
|
||||
// The started varbit doesn't get set until the first spot of the rotation has been searched
|
||||
// so we need to use the current group as an indicator of the rotation being started
|
||||
started = client.getVar(Varbits.HB_STARTED) > 0 || currentGroup != null;
|
||||
started = client.getVarbitValue(Varbits.HB_STARTED) > 0 || currentGroup != null;
|
||||
boolean finished = !pathActive && started;
|
||||
|
||||
if (!wasStarted && started)
|
||||
|
||||
@@ -27,8 +27,9 @@ package net.runelite.client.plugins.herbiboars;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import java.util.Set;
|
||||
import lombok.Getter;
|
||||
import lombok.Value;
|
||||
import net.runelite.api.Varbits;
|
||||
import net.runelite.api.annotations.Varbit;
|
||||
|
||||
/**
|
||||
* A representation of a trail of footsteps which appears when hunting for the Herbiboar.
|
||||
@@ -42,9 +43,10 @@ class TrailToSpot
|
||||
* equal to that of {@link TrailToSpot#getValue()}. Once the next object along the trail has been searched, this
|
||||
* Varbit's value will be greater than that of {@link TrailToSpot#getValue()}.
|
||||
*/
|
||||
private final Varbits varbit;
|
||||
@Getter(onMethod_ = {@Varbit})
|
||||
private final int varbitId;
|
||||
/**
|
||||
* The cutoff reference value to compare against the value of {@link TrailToSpot#getVarbit()} to determine its state
|
||||
* The cutoff reference value to compare against the value of {@link TrailToSpot#getVarbitId()} ()} to determine its state
|
||||
* along the current trail.
|
||||
*/
|
||||
private final int value;
|
||||
|
||||
@@ -280,6 +280,7 @@ public class HiscorePanel extends PluginPanel
|
||||
minigamePanel.add(makeHiscorePanel(LEAGUE_POINTS));
|
||||
minigamePanel.add(makeHiscorePanel(LAST_MAN_STANDING));
|
||||
minigamePanel.add(makeHiscorePanel(SOUL_WARS_ZEAL));
|
||||
minigamePanel.add(makeHiscorePanel(RIFTS_CLOSED));
|
||||
minigamePanel.add(makeHiscorePanel(BOUNTY_HUNTER_ROGUE));
|
||||
minigamePanel.add(makeHiscorePanel(BOUNTY_HUNTER_HUNTER));
|
||||
|
||||
@@ -605,6 +606,18 @@ public class HiscorePanel extends PluginPanel
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RIFTS_CLOSED:
|
||||
{
|
||||
Skill riftsClosed = result.getRiftsClosed();
|
||||
String rank = (riftsClosed.getRank() == -1) ? "Unranked" : QuantityFormatter.formatNumber(riftsClosed.getRank());
|
||||
content += "<p><span style = 'color:white'>Rifts closed</span></p>";
|
||||
content += "<p><span style = 'color:white'>Rank:</span> " + rank + "</p>";
|
||||
if (riftsClosed.getLevel() > -1)
|
||||
{
|
||||
content += "<p><span style = 'color:white'>Rifts:</span> " + QuantityFormatter.formatNumber(riftsClosed.getLevel()) + "</p>";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case LEAGUE_POINTS:
|
||||
{
|
||||
Skill leaguePoints = result.getLeaguePoints();
|
||||
|
||||
@@ -534,7 +534,7 @@ public class IdleNotifierPlugin extends Plugin
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (config.getOxygenThreshold() >= client.getVar(Varbits.OXYGEN_LEVEL) * 0.1)
|
||||
if (config.getOxygenThreshold() >= client.getVarbitValue(Varbits.OXYGEN_LEVEL) * 0.1)
|
||||
{
|
||||
if (!notifyOxygen)
|
||||
{
|
||||
@@ -557,7 +557,7 @@ public class IdleNotifierPlugin extends Plugin
|
||||
}
|
||||
if (client.getRealSkillLevel(Skill.HITPOINTS) > config.getHitpointsThreshold())
|
||||
{
|
||||
if (client.getBoostedSkillLevel(Skill.HITPOINTS) + client.getVar(Varbits.NMZ_ABSORPTION) <= config.getHitpointsThreshold())
|
||||
if (client.getBoostedSkillLevel(Skill.HITPOINTS) + client.getVarbitValue(Varbits.NMZ_ABSORPTION) <= config.getHitpointsThreshold())
|
||||
{
|
||||
if (!notifyHitpoints)
|
||||
{
|
||||
|
||||
@@ -471,7 +471,7 @@ public class ItemChargePlugin extends Plugin
|
||||
@Subscribe
|
||||
private void onVarbitChanged(VarbitChanged event)
|
||||
{
|
||||
int explorerRingCharge = client.getVar(Varbits.EXPLORER_RING_ALCHS);
|
||||
int explorerRingCharge = client.getVarbitValue(Varbits.EXPLORER_RING_ALCHS);
|
||||
if (lastExplorerRingCharge != explorerRingCharge)
|
||||
{
|
||||
lastExplorerRingCharge = explorerRingCharge;
|
||||
|
||||
@@ -157,7 +157,7 @@ public class ItemStatPlugin extends Plugin
|
||||
if (event.getScriptId() == ScriptID.GE_OFFERS_SETUP_BUILD && config.geStats())
|
||||
{
|
||||
int currentGeItem = client.getVar(VarPlayer.CURRENT_GE_ITEM);
|
||||
if (currentGeItem != -1 && client.getVar(Varbits.GE_OFFER_CREATION_TYPE) == 0)
|
||||
if (currentGeItem != -1 && client.getVarbitValue(Varbits.GE_OFFER_CREATION_TYPE) == 0)
|
||||
{
|
||||
createItemInformation(currentGeItem);
|
||||
}
|
||||
@@ -413,7 +413,7 @@ public class ItemStatPlugin extends Plugin
|
||||
{
|
||||
if (client.isResized())
|
||||
{
|
||||
if (client.getVar(Varbits.SIDE_PANELS) == 1)
|
||||
if (client.getVarbitValue(Varbits.SIDE_PANELS) == 1)
|
||||
{
|
||||
return client.getWidget(WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_INVENTORY_CONTAINER);
|
||||
}
|
||||
|
||||
@@ -41,10 +41,10 @@ public class SpicyStew implements Effect
|
||||
/*
|
||||
* Spice boosts listed in the colour order of [Spicy stew -> Smell]
|
||||
*/
|
||||
int redBoost = spiceBoostOf(client.getVar(Varbits.SPICY_STEW_RED_SPICES));
|
||||
int yellowBoost = spiceBoostOf(client.getVar(Varbits.SPICY_STEW_YELLOW_SPICES));
|
||||
int orangeBoost = spiceBoostOf(client.getVar(Varbits.SPICY_STEW_ORANGE_SPICES));
|
||||
int brownBoost = spiceBoostOf(client.getVar(Varbits.SPICY_STEW_BROWN_SPICES));
|
||||
int redBoost = spiceBoostOf(client.getVarbitValue(Varbits.SPICY_STEW_RED_SPICES));
|
||||
int yellowBoost = spiceBoostOf(client.getVarbitValue(Varbits.SPICY_STEW_YELLOW_SPICES));
|
||||
int orangeBoost = spiceBoostOf(client.getVarbitValue(Varbits.SPICY_STEW_ORANGE_SPICES));
|
||||
int brownBoost = spiceBoostOf(client.getVarbitValue(Varbits.SPICY_STEW_BROWN_SPICES));
|
||||
|
||||
List<StatChange> changes = new ArrayList<>();
|
||||
|
||||
|
||||
@@ -192,7 +192,7 @@ public class KeyRemappingPlugin extends Plugin
|
||||
{
|
||||
if (client.getGameState() == GameState.LOGGED_IN)
|
||||
{
|
||||
final boolean isChatboxTransparent = client.isResized() && client.getVar(Varbits.TRANSPARENT_CHATBOX) == 1;
|
||||
final boolean isChatboxTransparent = client.isResized() && client.getVarbitValue(Varbits.TRANSPARENT_CHATBOX) == 1;
|
||||
final Color textColor = isChatboxTransparent ? JagexColors.CHAT_TYPED_TEXT_TRANSPARENT_BACKGROUND : JagexColors.CHAT_TYPED_TEXT_OPAQUE_BACKGROUND;
|
||||
setChatboxWidgetInput(chatboxInput, ColorUtil.wrapWithColorTag(client.getVar(VarClientStr.CHATBOX_TYPED_TEXT) + "*", textColor));
|
||||
}
|
||||
|
||||
@@ -110,8 +110,8 @@ public class KingdomPlugin extends Plugin
|
||||
@Subscribe
|
||||
public void onVarbitChanged(VarbitChanged event)
|
||||
{
|
||||
final int coffer = client.getVar(Varbits.KINGDOM_COFFER);
|
||||
final int approval = client.getVar(Varbits.KINGDOM_APPROVAL);
|
||||
final int coffer = client.getVarbitValue(Varbits.KINGDOM_COFFER);
|
||||
final int approval = client.getVarbitValue(Varbits.KINGDOM_APPROVAL);
|
||||
|
||||
if (client.getGameState() == GameState.LOGGED_IN
|
||||
&& isThroneOfMiscellaniaCompleted()
|
||||
|
||||
@@ -149,6 +149,18 @@ public interface MenuEntrySwapperConfig extends Config
|
||||
return true;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
position = -2,
|
||||
keyName = "npcLeftClickCustomization",
|
||||
name = "Customizable left-click",
|
||||
description = "Allows customization of left-clicks on NPCs",
|
||||
section = npcSection
|
||||
)
|
||||
default boolean npcLeftClickCustomization()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "swapAdmire",
|
||||
name = "Admire",
|
||||
@@ -838,15 +850,4 @@ public interface MenuEntrySwapperConfig extends Config
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "swapDepositPool",
|
||||
name = "Deposit Pool - Only Runes",
|
||||
description = "Swap Deposit with Deposit Runes on the Deposit Pool in Guardians of the Rift.",
|
||||
section = objectSection
|
||||
)
|
||||
default boolean swapDepositPool()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,6 +54,7 @@ import net.runelite.api.KeyCode;
|
||||
import net.runelite.api.MenuAction;
|
||||
import net.runelite.api.MenuEntry;
|
||||
import net.runelite.api.NPC;
|
||||
import net.runelite.api.NPCComposition;
|
||||
import net.runelite.api.ObjectComposition;
|
||||
import net.runelite.api.events.ClientTick;
|
||||
import net.runelite.api.events.MenuEntryAdded;
|
||||
@@ -99,6 +100,7 @@ public class MenuEntrySwapperPlugin extends Plugin
|
||||
private static final String SHIFTCLICK_CONFIG_GROUP = "shiftclick";
|
||||
private static final String ITEM_KEY_PREFIX = "item_";
|
||||
private static final String OBJECT_KEY_PREFIX = "object_";
|
||||
private static final String NPC_KEY_PREFIX = "npc_";
|
||||
|
||||
// Shift click
|
||||
private static final WidgetMenuOption FIXED_INVENTORY_TAB_CONFIGURE_SC = new WidgetMenuOption(CONFIGURE,
|
||||
@@ -141,13 +143,13 @@ public class MenuEntrySwapperPlugin extends Plugin
|
||||
MenuAction.ITEM_USE
|
||||
);
|
||||
|
||||
private static final Set<MenuAction> NPC_MENU_TYPES = ImmutableSet.of(
|
||||
private static final List<MenuAction> NPC_MENU_TYPES = ImmutableList.of(
|
||||
MenuAction.NPC_FIRST_OPTION,
|
||||
MenuAction.NPC_SECOND_OPTION,
|
||||
MenuAction.NPC_THIRD_OPTION,
|
||||
MenuAction.NPC_FOURTH_OPTION,
|
||||
MenuAction.NPC_FIFTH_OPTION,
|
||||
MenuAction.EXAMINE_NPC);
|
||||
MenuAction.NPC_FIFTH_OPTION
|
||||
);
|
||||
|
||||
private static final List<MenuAction> OBJECT_MENU_TYPES = ImmutableList.of(
|
||||
MenuAction.GAME_OBJECT_FIRST_OPTION,
|
||||
@@ -159,7 +161,7 @@ public class MenuEntrySwapperPlugin extends Plugin
|
||||
|
||||
private static final Set<String> ESSENCE_MINE_NPCS = ImmutableSet.of(
|
||||
"aubury",
|
||||
"sedridor",
|
||||
"archmage sedridor",
|
||||
"wizard distentor",
|
||||
"wizard cromperty",
|
||||
"brimstail"
|
||||
@@ -440,8 +442,6 @@ public class MenuEntrySwapperPlugin extends Plugin
|
||||
|
||||
swap("climb", "climb-up", () -> (shiftModifier() ? config.swapStairsShiftClick() : config.swapStairsLeftClick()) == MenuEntrySwapperConfig.StairsMode.CLIMB_UP);
|
||||
swap("climb", "climb-down", () -> (shiftModifier() ? config.swapStairsShiftClick() : config.swapStairsLeftClick()) == MenuEntrySwapperConfig.StairsMode.CLIMB_DOWN);
|
||||
|
||||
swap("deposit", "deposit-runes", config::swapDepositPool);
|
||||
}
|
||||
|
||||
public Swap swap(String option, String swappedOption, Supplier<Boolean> enabled)
|
||||
@@ -543,6 +543,7 @@ public class MenuEntrySwapperPlugin extends Plugin
|
||||
if (!configuringShiftClick && !configuringLeftClick)
|
||||
{
|
||||
configureObjectClick(event);
|
||||
configureNpcClick(event);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -646,16 +647,9 @@ public class MenuEntrySwapperPlugin extends Plugin
|
||||
final ObjectComposition composition = client.getObjectDefinition(entry.getIdentifier());
|
||||
final String[] actions = composition.getActions();
|
||||
|
||||
final MenuAction currentAction;
|
||||
Integer swapConfig = getObjectSwapConfig(composition.getId());
|
||||
if (swapConfig != null)
|
||||
{
|
||||
currentAction = OBJECT_MENU_TYPES.get(swapConfig);
|
||||
}
|
||||
else
|
||||
{
|
||||
currentAction = defaultAction(composition);
|
||||
}
|
||||
final Integer swapConfig = getObjectSwapConfig(composition.getId());
|
||||
final MenuAction currentAction = swapConfig != null ? OBJECT_MENU_TYPES.get(swapConfig) :
|
||||
defaultAction(composition);
|
||||
|
||||
for (int actionIdx = 0; actionIdx < OBJECT_MENU_TYPES.size(); ++actionIdx)
|
||||
{
|
||||
@@ -704,6 +698,111 @@ public class MenuEntrySwapperPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
private void configureNpcClick(MenuOpened event)
|
||||
{
|
||||
if (!shiftModifier() || !config.npcLeftClickCustomization())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
MenuEntry[] entries = event.getMenuEntries();
|
||||
for (int idx = entries.length - 1; idx >= 0; --idx)
|
||||
{
|
||||
final MenuEntry entry = entries[idx];
|
||||
final MenuAction type = entry.getType();
|
||||
final int id = entry.getIdentifier();
|
||||
|
||||
if (type == MenuAction.EXAMINE_NPC)
|
||||
{
|
||||
final NPC npc = client.getCachedNPCs()[id];
|
||||
final NPCComposition composition = npc.getTransformedComposition();
|
||||
final String[] actions = composition.getActions();
|
||||
|
||||
final Integer swapConfig = getNpcSwapConfig(composition.getId());
|
||||
final boolean hasAttack = Arrays.stream(composition.getActions()).anyMatch("Attack"::equalsIgnoreCase);
|
||||
final MenuAction currentAction = swapConfig != null ? NPC_MENU_TYPES.get(swapConfig) :
|
||||
// Attackable NPCs always have Attack as the first, last (deprioritized), or when hidden, no, option.
|
||||
// Due to this the default action would be either Attack or the first non-Attack option, based on
|
||||
// the game settings. Since it may be valid to swap an option up to override Attack, even when Attack
|
||||
// is left-click, we cannot assume any default currentAction on attackable NPCs.
|
||||
// Non-attackable NPCS have a predictable default action which we can prevent a swap to if no swap
|
||||
// config is set, which just avoids showing a Swap option on a 1-op NPC, which looks odd.
|
||||
(hasAttack ? null : defaultAction(composition));
|
||||
|
||||
for (int actionIdx = 0; actionIdx < NPC_MENU_TYPES.size(); ++actionIdx)
|
||||
{
|
||||
// Attack can be swapped with the in-game settings, and this becomes very confusing if we try
|
||||
// to swap Attack and the game also tries to swap it (by deprioritizing), so just use the in-game
|
||||
// setting.
|
||||
if (Strings.isNullOrEmpty(actions[actionIdx]) || "Attack".equalsIgnoreCase(actions[actionIdx]))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
final int menuIdx = actionIdx;
|
||||
final MenuAction menuAction = NPC_MENU_TYPES.get(actionIdx);
|
||||
if (currentAction == menuAction)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if ("Pickpocket".equals(actions[actionIdx])
|
||||
|| "Knock-Out".equals(actions[actionIdx])
|
||||
|| "Lure".equals(actions[actionIdx]))
|
||||
{
|
||||
// https://secure.runescape.com/m=news/another-message-about-unofficial-clients?oldschool=1
|
||||
continue;
|
||||
}
|
||||
|
||||
client.createMenuEntry(idx)
|
||||
.setOption("Swap " + actions[actionIdx])
|
||||
.setTarget(entry.getTarget())
|
||||
.setType(MenuAction.RUNELITE)
|
||||
.onClick(e ->
|
||||
{
|
||||
final String message = new ChatMessageBuilder()
|
||||
.append("The default left click option for '").append(composition.getName()).append("' ")
|
||||
.append("has been set to '").append(actions[menuIdx]).append("'.")
|
||||
.build();
|
||||
|
||||
chatMessageManager.queue(QueuedMessage.builder()
|
||||
.type(ChatMessageType.CONSOLE)
|
||||
.runeLiteFormattedMessage(message)
|
||||
.build());
|
||||
|
||||
log.debug("Set npc swap for {} to {}", composition.getId(), menuAction);
|
||||
|
||||
setNpcSwapConfig(composition.getId(), menuIdx);
|
||||
});
|
||||
}
|
||||
|
||||
if (getNpcSwapConfig(composition.getId()) != null)
|
||||
{
|
||||
// Reset
|
||||
client.createMenuEntry(idx)
|
||||
.setOption("Reset swap")
|
||||
.setTarget(entry.getTarget())
|
||||
.setType(MenuAction.RUNELITE)
|
||||
.onClick(e ->
|
||||
{
|
||||
final String message = new ChatMessageBuilder()
|
||||
.append("The default left click option for '").append(composition.getName()).append("' ")
|
||||
.append("has been reset.")
|
||||
.build();
|
||||
|
||||
chatMessageManager.queue(QueuedMessage.builder()
|
||||
.type(ChatMessageType.CONSOLE)
|
||||
.runeLiteFormattedMessage(message)
|
||||
.build());
|
||||
|
||||
log.debug("Unset npc swap for {}", composition.getId());
|
||||
unsetNpcSwapConfig(composition.getId());
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onMenuEntryAdded(MenuEntryAdded menuEntryAdded)
|
||||
{
|
||||
@@ -860,6 +959,33 @@ public class MenuEntrySwapperPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
if (NPC_MENU_TYPES.contains(menuAction))
|
||||
{
|
||||
final NPC npc = client.getCachedNPCs()[eventId];
|
||||
final NPCComposition composition = npc.getTransformedComposition();
|
||||
|
||||
Integer customOption = getNpcSwapConfig(composition.getId());
|
||||
if (customOption != null)
|
||||
{
|
||||
MenuAction swapAction = NPC_MENU_TYPES.get(customOption);
|
||||
if (swapAction == menuAction)
|
||||
{
|
||||
// Advance to the top-most op for this NPC. Normally menuEntries.length - 1 is examine, and swapping
|
||||
// with that works due to it being sorted later, but if other plugins like NPC indicators add additional
|
||||
// menus before examine that are also >1000, like RUNELITE menus, that would result in the >1000 menus being
|
||||
// reordered relative to each other.
|
||||
int i = index;
|
||||
while (i < menuEntries.length - 1 && NPC_MENU_TYPES.contains(menuEntries[i + 1].getType()))
|
||||
{
|
||||
++i;
|
||||
}
|
||||
|
||||
swap(optionIndexes, menuEntries, index, i);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Built-in swaps
|
||||
Collection<Swap> swaps = this.swaps.get(option);
|
||||
for (Swap swap : swaps)
|
||||
@@ -979,6 +1105,11 @@ public class MenuEntrySwapperPlugin extends Plugin
|
||||
|
||||
private void swap(ArrayListMultimap<String, Integer> optionIndexes, MenuEntry[] entries, int index1, int index2)
|
||||
{
|
||||
if (index1 == index2)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
MenuEntry entry1 = entries[index1],
|
||||
entry2 = entries[index2];
|
||||
|
||||
@@ -1112,4 +1243,38 @@ public class MenuEntrySwapperPlugin extends Plugin
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private Integer getNpcSwapConfig(int npcId)
|
||||
{
|
||||
String config = configManager.getConfiguration(MenuEntrySwapperConfig.GROUP, NPC_KEY_PREFIX + npcId);
|
||||
if (config == null || config.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return Integer.parseInt(config);
|
||||
}
|
||||
|
||||
private void setNpcSwapConfig(int npcId, int index)
|
||||
{
|
||||
configManager.setConfiguration(MenuEntrySwapperConfig.GROUP, NPC_KEY_PREFIX + npcId, index);
|
||||
}
|
||||
|
||||
private void unsetNpcSwapConfig(int npcId)
|
||||
{
|
||||
configManager.unsetConfiguration(MenuEntrySwapperConfig.GROUP, NPC_KEY_PREFIX + npcId);
|
||||
}
|
||||
|
||||
private static MenuAction defaultAction(NPCComposition composition)
|
||||
{
|
||||
String[] actions = composition.getActions();
|
||||
for (int i = 0; i < NPC_MENU_TYPES.size(); ++i)
|
||||
{
|
||||
if (!Strings.isNullOrEmpty(actions[i]) && !actions[i].equalsIgnoreCase("Attack"))
|
||||
{
|
||||
return NPC_MENU_TYPES.get(i);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -490,8 +490,8 @@ public class MotherlodePlugin extends Plugin
|
||||
|
||||
private void refreshSackValues()
|
||||
{
|
||||
curSackSize = client.getVar(Varbits.SACK_NUMBER);
|
||||
boolean sackUpgraded = client.getVar(Varbits.SACK_UPGRADED) == 1;
|
||||
curSackSize = client.getVarbitValue(Varbits.SACK_NUMBER);
|
||||
boolean sackUpgraded = client.getVarbitValue(Varbits.SACK_UPGRADED) == 1;
|
||||
maxSackSize = sackUpgraded ? SACK_LARGE_SIZE : SACK_SIZE;
|
||||
}
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ class MotherlodeSackOverlay extends OverlayPanel
|
||||
|
||||
panelComponent.getChildren().add(LineComponent.builder()
|
||||
.left("Pay-dirt in sack:")
|
||||
.right(String.valueOf(client.getVar(Varbits.SACK_NUMBER)))
|
||||
.right(String.valueOf(client.getVarbitValue(Varbits.SACK_NUMBER)))
|
||||
.build());
|
||||
}
|
||||
|
||||
|
||||
@@ -24,38 +24,31 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.mta;
|
||||
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Graphics2D;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.client.ui.FontManager;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayLayer;
|
||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||
import net.runelite.api.widgets.WidgetItem;
|
||||
import net.runelite.client.ui.overlay.WidgetItemOverlay;
|
||||
|
||||
public class MTAInventoryOverlay extends Overlay
|
||||
class MTAItemOverlay extends WidgetItemOverlay
|
||||
{
|
||||
private final MTAPlugin plugin;
|
||||
|
||||
@Inject
|
||||
public MTAInventoryOverlay(MTAPlugin plugin)
|
||||
public MTAItemOverlay(MTAPlugin plugin)
|
||||
{
|
||||
this.plugin = plugin;
|
||||
setPosition(OverlayPosition.DYNAMIC);
|
||||
setLayer(OverlayLayer.ABOVE_WIDGETS);
|
||||
showOnInventory();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dimension render(Graphics2D graphics)
|
||||
public void renderItemOverlay(Graphics2D graphics, int itemId, WidgetItem widgetItem)
|
||||
{
|
||||
for (MTARoom room : plugin.getRooms())
|
||||
{
|
||||
if (room.inside())
|
||||
{
|
||||
graphics.setFont(FontManager.getRunescapeBoldFont());
|
||||
room.over(graphics);
|
||||
room.renderItemOverlay(graphics, itemId, widgetItem);
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -41,7 +41,8 @@ import net.runelite.client.ui.overlay.OverlayManager;
|
||||
@PluginDescriptor(
|
||||
name = "Mage Training Arena",
|
||||
description = "Show helpful information for the Mage Training Arena minigame",
|
||||
tags = {"mta", "magic", "minigame", "overlay"}
|
||||
tags = {"mta", "magic", "minigame", "overlay"},
|
||||
enabledByDefault = false
|
||||
)
|
||||
public class MTAPlugin extends Plugin
|
||||
{
|
||||
@@ -62,7 +63,7 @@ public class MTAPlugin extends Plugin
|
||||
@Inject
|
||||
private MTASceneOverlay sceneOverlay;
|
||||
@Inject
|
||||
private MTAInventoryOverlay inventoryOverlay;
|
||||
private MTAItemOverlay itemOverlay;
|
||||
|
||||
@Getter(AccessLevel.PROTECTED)
|
||||
private MTARoom[] rooms;
|
||||
@@ -77,7 +78,7 @@ public class MTAPlugin extends Plugin
|
||||
public void startUp()
|
||||
{
|
||||
overlayManager.add(sceneOverlay);
|
||||
overlayManager.add(inventoryOverlay);
|
||||
overlayManager.add(itemOverlay);
|
||||
|
||||
this.rooms = new MTARoom[]{alchemyRoom, graveyardRoom, telekineticRoom, enchantmentRoom};
|
||||
|
||||
@@ -91,7 +92,7 @@ public class MTAPlugin extends Plugin
|
||||
public void shutDown()
|
||||
{
|
||||
overlayManager.remove(sceneOverlay);
|
||||
overlayManager.remove(inventoryOverlay);
|
||||
overlayManager.remove(itemOverlay);
|
||||
|
||||
for (MTARoom room : rooms)
|
||||
{
|
||||
|
||||
@@ -28,6 +28,7 @@ import java.awt.Graphics2D;
|
||||
import javax.inject.Inject;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import net.runelite.api.widgets.WidgetItem;
|
||||
|
||||
public abstract class MTARoom
|
||||
{
|
||||
@@ -46,7 +47,7 @@ public abstract class MTARoom
|
||||
{
|
||||
}
|
||||
|
||||
public void over(Graphics2D graphics2D)
|
||||
public void renderItemOverlay(Graphics2D graphics, int itemId, WidgetItem widgetItem)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,7 +63,6 @@ import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetID;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.api.widgets.WidgetItem;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
@@ -448,28 +447,15 @@ public class AlchemyRoom extends MTARoom
|
||||
|
||||
|
||||
@Override
|
||||
public void over(Graphics2D graphics)
|
||||
public void renderItemOverlay(Graphics2D graphics, int itemId, WidgetItem widgetItem)
|
||||
{
|
||||
if (!inside() || !config.alchemy() || best == null)
|
||||
assert inside();
|
||||
if (best == null || best.getId() != itemId || !config.alchemy())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Widget inventory = client.getWidget(WidgetInfo.INVENTORY);
|
||||
if (inventory.isHidden())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
for (WidgetItem item : inventory.getWidgetItems())
|
||||
{
|
||||
if (item.getId() != best.getId())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
drawItem(graphics, item, Color.GREEN);
|
||||
}
|
||||
drawItem(graphics, widgetItem, Color.GREEN);
|
||||
}
|
||||
|
||||
private void drawItem(Graphics2D graphics, WidgetItem item, Color border)
|
||||
|
||||
@@ -59,6 +59,7 @@ import net.runelite.api.StructID;
|
||||
import net.runelite.api.VarClientInt;
|
||||
import net.runelite.api.VarPlayer;
|
||||
import net.runelite.api.Varbits;
|
||||
import net.runelite.api.annotations.Varbit;
|
||||
import net.runelite.api.events.AreaSoundEffectPlayed;
|
||||
import net.runelite.api.events.BeforeRender;
|
||||
import net.runelite.api.events.ClientTick;
|
||||
@@ -783,7 +784,8 @@ public class MusicPlugin extends Plugin
|
||||
@Getter
|
||||
private final String name;
|
||||
private final VarPlayer var;
|
||||
private final Varbits mutedVar;
|
||||
@Varbit
|
||||
private final int mutedVarbitId;
|
||||
private final IntSupplier getter;
|
||||
private final Consumer<Integer> setter;
|
||||
private final IntConsumer volumeChanger;
|
||||
@@ -797,14 +799,14 @@ public class MusicPlugin extends Plugin
|
||||
private Slider windowSlider;
|
||||
|
||||
Channel(String name,
|
||||
VarPlayer var, Varbits mutedVar,
|
||||
VarPlayer var, @Varbit int mutedVarbitId,
|
||||
IntSupplier getter, Consumer<Integer> setter,
|
||||
IntConsumer volumeChanger, int max,
|
||||
WidgetInfo sideRoot)
|
||||
{
|
||||
this.name = name;
|
||||
this.var = var;
|
||||
this.mutedVar = mutedVar;
|
||||
this.mutedVarbitId = mutedVarbitId;
|
||||
this.getter = getter;
|
||||
this.setter = setter;
|
||||
this.volumeChanger = volumeChanger;
|
||||
@@ -824,7 +826,7 @@ public class MusicPlugin extends Plugin
|
||||
int raw = client.getVar(var);
|
||||
if (raw == 0)
|
||||
{
|
||||
raw = -client.getVar(mutedVar);
|
||||
raw = -client.getVarbitValue(mutedVarbitId);
|
||||
}
|
||||
value = raw * this.max / 100;
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@ class NightmareZoneOverlay extends OverlayPanel
|
||||
|
||||
renderAbsorptionCounter();
|
||||
|
||||
final int currentPoints = client.getVar(Varbits.NMZ_POINTS);
|
||||
final int currentPoints = client.getVarbitValue(Varbits.NMZ_POINTS);
|
||||
final int totalPoints = currentPoints + client.getVar(VarPlayer.NMZ_REWARD_POINTS);
|
||||
|
||||
panelComponent.getChildren().add(LineComponent.builder()
|
||||
@@ -114,7 +114,7 @@ class NightmareZoneOverlay extends OverlayPanel
|
||||
|
||||
private void renderAbsorptionCounter()
|
||||
{
|
||||
int absorptionPoints = client.getVar(Varbits.NMZ_ABSORPTION);
|
||||
int absorptionPoints = client.getVarbitValue(Varbits.NMZ_ABSORPTION);
|
||||
if (absorptionPoints == 0)
|
||||
{
|
||||
if (absorptionCounter != null)
|
||||
|
||||
@@ -244,7 +244,7 @@ public class NightmareZonePlugin extends Plugin
|
||||
|
||||
private void checkAbsorption()
|
||||
{
|
||||
int absorptionPoints = client.getVar(Varbits.NMZ_ABSORPTION);
|
||||
int absorptionPoints = client.getVarbitValue(Varbits.NMZ_ABSORPTION);
|
||||
|
||||
if (!absorptionNotificationSend)
|
||||
{
|
||||
@@ -266,7 +266,7 @@ public class NightmareZonePlugin extends Plugin
|
||||
private int calculatePointsPerHour()
|
||||
{
|
||||
Instant now = Instant.now();
|
||||
final int currentPoints = client.getVar(Varbits.NMZ_POINTS);
|
||||
final int currentPoints = client.getVarbitValue(Varbits.NMZ_POINTS);
|
||||
|
||||
if (nmzSessionStartTime == null)
|
||||
{
|
||||
|
||||
@@ -226,7 +226,7 @@ class OpponentInfoOverlay extends OverlayPanel
|
||||
*/
|
||||
private boolean hasHpHud(Actor opponent)
|
||||
{
|
||||
boolean settingEnabled = client.getVar(Varbits.BOSS_HEALTH_OVERLAY) == 0;
|
||||
boolean settingEnabled = client.getVarbitValue(Varbits.BOSS_HEALTH_OVERLAY) == 0;
|
||||
if (settingEnabled && opponent instanceof NPC)
|
||||
{
|
||||
int opponentId = client.getVar(VarPlayer.HP_HUD_NPC_ID);
|
||||
|
||||
@@ -85,7 +85,7 @@ class PyramidPlunderOverlay extends Overlay
|
||||
LocalPoint playerLocation = client.getLocalPlayer().getLocalLocation();
|
||||
|
||||
// Highlight convex hulls of urns, chests, and sarcophagus
|
||||
int currentFloor = client.getVar(Varbits.PYRAMID_PLUNDER_ROOM);
|
||||
int currentFloor = client.getVarbitValue(Varbits.PYRAMID_PLUNDER_ROOM);
|
||||
for (GameObject object : plugin.getObjectsToHighlight())
|
||||
{
|
||||
if (config.highlightUrnsFloor() > currentFloor && URN_IDS.contains(object.getId())
|
||||
@@ -127,7 +127,7 @@ class PyramidPlunderOverlay extends Overlay
|
||||
if (SPEARTRAP_ID == object.getId())
|
||||
{
|
||||
// this varbit is set to 1 when you enter a room and 0 once you get passed the spike traps
|
||||
if (client.getVar(Varbits.PYRAMID_PLUNDER_ROOM_LOCATION) != 1)
|
||||
if (client.getVarbitValue(Varbits.PYRAMID_PLUNDER_ROOM_LOCATION) != 1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -171,7 +171,7 @@ public class PyramidPlunderPlugin extends Plugin
|
||||
{
|
||||
if (timer == null)
|
||||
{
|
||||
int ppTimer = client.getVar(Varbits.PYRAMID_PLUNDER_TIMER);
|
||||
int ppTimer = client.getVarbitValue(Varbits.PYRAMID_PLUNDER_TIMER);
|
||||
Duration remaining = PYRAMID_PLUNDER_DURATION.minus(ppTimer, RSTimeUnit.GAME_TICKS);
|
||||
timer = new PyramidPlunderTimer(remaining, itemManager.getImage(PHARAOHS_SCEPTRE), this,
|
||||
config, client);
|
||||
@@ -217,6 +217,6 @@ public class PyramidPlunderPlugin extends Plugin
|
||||
{
|
||||
return client.getLocalPlayer() != null
|
||||
&& PYRAMID_PLUNDER_REGION == client.getLocalPlayer().getWorldLocation().getRegionID()
|
||||
&& client.getVar(Varbits.PYRAMID_PLUNDER_TIMER) > 0;
|
||||
&& client.getVarbitValue(Varbits.PYRAMID_PLUNDER_TIMER) > 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,8 +61,8 @@ class PyramidPlunderTimer extends Timer
|
||||
@Override
|
||||
public String getTooltip()
|
||||
{
|
||||
int floor = client.getVar(Varbits.PYRAMID_PLUNDER_ROOM);
|
||||
int thievingLevel = client.getVar(Varbits.PYRAMID_PLUNDER_THIEVING_LEVEL);
|
||||
int floor = client.getVarbitValue(Varbits.PYRAMID_PLUNDER_ROOM);
|
||||
int thievingLevel = client.getVarbitValue(Varbits.PYRAMID_PLUNDER_THIEVING_LEVEL);
|
||||
return String.format("Time remaining. Floor: %d. Thieving level: %d", floor, thievingLevel);
|
||||
}
|
||||
|
||||
|
||||
@@ -166,7 +166,7 @@ public class QuestListPlugin extends Plugin
|
||||
|
||||
private boolean isOnQuestTab()
|
||||
{
|
||||
return client.getVar(Varbits.QUEST_TAB) == 0 && client.getVar(VarClientInt.INVENTORY_TAB) == 2;
|
||||
return client.getVarbitValue(Varbits.QUEST_TAB) == 0 && client.getVar(VarClientInt.INVENTORY_TAB) == 2;
|
||||
}
|
||||
|
||||
private boolean isChatboxOpen()
|
||||
|
||||
@@ -206,7 +206,7 @@ class RaidsOverlay extends OverlayPanel
|
||||
if (plugin.isInRaidChambers())
|
||||
{
|
||||
// If the raid has started
|
||||
if (client.getVar(Varbits.RAID_STATE) > 0)
|
||||
if (client.getVarbitValue(Varbits.RAID_STATE) > 0)
|
||||
{
|
||||
if (client.getPlane() == OLM_PLANE)
|
||||
{
|
||||
|
||||
@@ -264,7 +264,7 @@ public class RaidsPlugin extends Plugin
|
||||
public void onVarbitChanged(VarbitChanged event)
|
||||
{
|
||||
int tempPartyID = client.getVar(VarPlayer.IN_RAID_PARTY);
|
||||
boolean tempInRaid = client.getVar(Varbits.IN_RAID) == 1;
|
||||
boolean tempInRaid = client.getVarbitValue(Varbits.IN_RAID) == 1;
|
||||
|
||||
// if the player's party state has changed
|
||||
if (tempPartyID != raidPartyID)
|
||||
@@ -321,8 +321,8 @@ public class RaidsPlugin extends Plugin
|
||||
|
||||
if (config.pointsMessage())
|
||||
{
|
||||
int totalPoints = client.getVar(Varbits.TOTAL_POINTS);
|
||||
int personalPoints = client.getVar(Varbits.PERSONAL_POINTS);
|
||||
int totalPoints = client.getVarbitValue(Varbits.TOTAL_POINTS);
|
||||
int personalPoints = client.getVarbitValue(Varbits.PERSONAL_POINTS);
|
||||
|
||||
double percentage = personalPoints / (totalPoints / 100.0);
|
||||
|
||||
@@ -425,7 +425,7 @@ public class RaidsPlugin extends Plugin
|
||||
return;
|
||||
}
|
||||
|
||||
inRaidChambers = client.getVar(Varbits.IN_RAID) == 1;
|
||||
inRaidChambers = client.getVarbitValue(Varbits.IN_RAID) == 1;
|
||||
|
||||
if (!inRaidChambers)
|
||||
{
|
||||
|
||||
@@ -144,7 +144,7 @@ public class RegenMeterPlugin extends Plugin
|
||||
ticksPerHPRegen /= 2;
|
||||
}
|
||||
|
||||
if (client.getVar(Varbits.LEAGUE_RELIC_3) == TRAILBLAZER_LEAGUE_FLUID_STRIKES_RELIC)
|
||||
if (client.getVarbitValue(Varbits.LEAGUE_RELIC_3) == TRAILBLAZER_LEAGUE_FLUID_STRIKES_RELIC)
|
||||
{
|
||||
ticksPerHPRegen /= 4;
|
||||
}
|
||||
|
||||
@@ -215,7 +215,7 @@ public class RunEnergyPlugin extends Plugin
|
||||
final int effectiveWeight = Math.max(client.getWeight(), 0);
|
||||
double lossRate = (Math.min(effectiveWeight, 64) / 100.0) + 0.64;
|
||||
|
||||
if (client.getVar(Varbits.RUN_SLOWED_DEPLETION_ACTIVE) != 0)
|
||||
if (client.getVarbitValue(Varbits.RUN_SLOWED_DEPLETION_ACTIVE) != 0)
|
||||
{
|
||||
lossRate *= 0.3; // Stamina effect reduces energy depletion to 30%
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ import net.runelite.api.Client;
|
||||
import net.runelite.api.ItemID;
|
||||
import net.runelite.api.Point;
|
||||
import net.runelite.api.Varbits;
|
||||
import net.runelite.api.annotations.Varbit;
|
||||
import net.runelite.api.widgets.WidgetItem;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.game.RunepouchRune;
|
||||
@@ -47,12 +48,10 @@ import net.runelite.client.util.ColorUtil;
|
||||
|
||||
public class RunepouchOverlay extends WidgetItemOverlay
|
||||
{
|
||||
private static final Varbits[] AMOUNT_VARBITS =
|
||||
{
|
||||
private static final int[] AMOUNT_VARBITS = {
|
||||
Varbits.RUNE_POUCH_AMOUNT1, Varbits.RUNE_POUCH_AMOUNT2, Varbits.RUNE_POUCH_AMOUNT3
|
||||
};
|
||||
private static final Varbits[] RUNE_VARBITS =
|
||||
{
|
||||
private static final int[] RUNE_VARBITS = {
|
||||
Varbits.RUNE_POUCH_RUNE1, Varbits.RUNE_POUCH_RUNE2, Varbits.RUNE_POUCH_RUNE3
|
||||
};
|
||||
private static final Dimension IMAGE_SIZE = new Dimension(11, 11);
|
||||
@@ -60,16 +59,15 @@ public class RunepouchOverlay extends WidgetItemOverlay
|
||||
private final Client client;
|
||||
private final RunepouchConfig config;
|
||||
private final TooltipManager tooltipManager;
|
||||
private final ItemManager itemManager;
|
||||
|
||||
@Inject
|
||||
private ItemManager itemManager;
|
||||
|
||||
@Inject
|
||||
RunepouchOverlay(Client client, RunepouchConfig config, TooltipManager tooltipManager)
|
||||
RunepouchOverlay(Client client, RunepouchConfig config, TooltipManager tooltipManager, ItemManager itemManager)
|
||||
{
|
||||
this.tooltipManager = tooltipManager;
|
||||
this.client = client;
|
||||
this.config = config;
|
||||
this.itemManager = itemManager;
|
||||
showOnInventory();
|
||||
showOnBank();
|
||||
}
|
||||
@@ -91,16 +89,15 @@ public class RunepouchOverlay extends WidgetItemOverlay
|
||||
|
||||
for (int i = 0; i < AMOUNT_VARBITS.length; i++)
|
||||
{
|
||||
Varbits amountVarbit = AMOUNT_VARBITS[i];
|
||||
|
||||
int amount = client.getVar(amountVarbit);
|
||||
@Varbit int amountVarbit = AMOUNT_VARBITS[i];
|
||||
int amount = client.getVarbitValue(amountVarbit);
|
||||
if (amount <= 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
Varbits runeVarbit = RUNE_VARBITS[i];
|
||||
int runeId = client.getVar(runeVarbit);
|
||||
@Varbit int runeVarbit = RUNE_VARBITS[i];
|
||||
int runeId = client.getVarbitValue(runeVarbit);
|
||||
RunepouchRune rune = RunepouchRune.getRune(runeId);
|
||||
if (rune == null)
|
||||
{
|
||||
|
||||
@@ -490,14 +490,14 @@ public class ScreenshotPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
if (config.screenshotCollectionLogEntries() && chatMessage.startsWith(COLLECTION_LOG_TEXT) && client.getVar(Varbits.COLLECTION_LOG_NOTIFICATION) == 1)
|
||||
if (config.screenshotCollectionLogEntries() && chatMessage.startsWith(COLLECTION_LOG_TEXT) && client.getVarbitValue(Varbits.COLLECTION_LOG_NOTIFICATION) == 1)
|
||||
{
|
||||
String entry = Text.removeTags(chatMessage).substring(COLLECTION_LOG_TEXT.length());
|
||||
String fileName = "Collection log (" + entry + ")";
|
||||
takeScreenshot(fileName, SD_COLLECTION_LOG);
|
||||
}
|
||||
|
||||
if (chatMessage.contains("combat task") && config.screenshotCombatAchievements() && client.getVar(Varbits.COMBAT_ACHIEVEMENTS_POPUP) == 1)
|
||||
if (chatMessage.contains("combat task") && config.screenshotCombatAchievements() && client.getVarbitValue(Varbits.COMBAT_ACHIEVEMENTS_POPUP) == 1)
|
||||
{
|
||||
String fileName = parseCombatAchievementWidget(chatMessage);
|
||||
if (!fileName.isEmpty())
|
||||
@@ -663,7 +663,7 @@ public class ScreenshotPlugin extends Plugin
|
||||
String fileName = "Collection log (" + entry + ")";
|
||||
takeScreenshot(fileName, SD_COLLECTION_LOG);
|
||||
}
|
||||
if (topText.equalsIgnoreCase("Combat Task Completed!") && config.screenshotCombatAchievements() && client.getVar(Varbits.COMBAT_ACHIEVEMENTS_POPUP) == 0)
|
||||
if (topText.equalsIgnoreCase("Combat Task Completed!") && config.screenshotCombatAchievements() && client.getVarbitValue(Varbits.COMBAT_ACHIEVEMENTS_POPUP) == 0)
|
||||
{
|
||||
String entry = Text.removeTags(bottomText).substring("Task Completed: ".length());
|
||||
String fileName = "Combat task (" + entry.replaceAll("[:?]", "") + ")";
|
||||
|
||||
@@ -70,7 +70,6 @@ import net.runelite.api.events.HitsplatApplied;
|
||||
import net.runelite.api.events.NpcDespawned;
|
||||
import net.runelite.api.events.NpcSpawned;
|
||||
import net.runelite.api.events.StatChanged;
|
||||
import net.runelite.api.vars.SlayerUnlock;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.client.Notifier;
|
||||
|
||||
@@ -22,16 +22,17 @@
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.api.vars;
|
||||
package net.runelite.client.plugins.slayer;
|
||||
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.VarPlayer;
|
||||
import net.runelite.api.Varbits;
|
||||
import net.runelite.api.annotations.Varbit;
|
||||
|
||||
/**
|
||||
* Unlockables in the slayer interface
|
||||
*/
|
||||
public enum SlayerUnlock
|
||||
enum SlayerUnlock
|
||||
{
|
||||
// Copied from enum 834 in the cache
|
||||
// enum 854 contains if you can disable the unlock
|
||||
@@ -87,17 +88,19 @@ public enum SlayerUnlock
|
||||
VAMPYRE_EXTEND(49),
|
||||
VAMPYRE_UNLOCK(50);
|
||||
|
||||
private Varbits toggleVarbit;
|
||||
@Varbit
|
||||
private final int toggleVarbit;
|
||||
|
||||
SlayerUnlock(int index)
|
||||
{
|
||||
this(index, null);
|
||||
assert index == ordinal();
|
||||
this.toggleVarbit = -1;
|
||||
}
|
||||
|
||||
SlayerUnlock(int index, Varbits toggleVarbit)
|
||||
SlayerUnlock(int index, @Varbit int varbit)
|
||||
{
|
||||
assert index == ordinal();
|
||||
this.toggleVarbit = toggleVarbit;
|
||||
this.toggleVarbit = varbit;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -116,11 +119,11 @@ public enum SlayerUnlock
|
||||
{
|
||||
if (isOwned(client))
|
||||
{
|
||||
if (toggleVarbit == null)
|
||||
if (toggleVarbit == -1)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return client.getVar(toggleVarbit) == 0;
|
||||
return client.getVarbitValue(toggleVarbit) == 0;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -41,8 +41,11 @@ class BarRenderer
|
||||
private static final Color OVERHEAL_COLOR = new Color(216, 255, 139, 150);
|
||||
private static final int SKILL_ICON_HEIGHT = 35;
|
||||
private static final int COUNTER_ICON_HEIGHT = 18;
|
||||
private static final int WIDTH = 20;
|
||||
private static final int BORDER_SIZE = 1;
|
||||
private static final int MIN_ICON_AND_COUNTER_WIDTH = 16;
|
||||
static final int DEFAULT_WIDTH = 20;
|
||||
static final int MIN_WIDTH = 3;
|
||||
static final int MAX_WIDTH = 40;
|
||||
private final Supplier<Integer> maxValueSupplier;
|
||||
private final Supplier<Integer> currentValueSupplier;
|
||||
private final Supplier<Integer> healSupplier;
|
||||
@@ -67,42 +70,47 @@ class BarRenderer
|
||||
* @param y The location on the client where it will draw the bar on the y axis starting on the bottom side.
|
||||
* @param height The height of the bar.
|
||||
*/
|
||||
void renderBar(StatusBarsConfig config, Graphics2D graphics, int x, int y, int height)
|
||||
void renderBar(StatusBarsConfig config, Graphics2D graphics, int x, int y, int width, int height)
|
||||
{
|
||||
final int filledHeight = getBarHeight(maxValue, currentValue, height);
|
||||
final Color fill = colorSupplier.get();
|
||||
|
||||
refreshSkills();
|
||||
|
||||
graphics.setColor(BACKGROUND);
|
||||
graphics.drawRect(x, y, WIDTH - BORDER_SIZE, height - BORDER_SIZE);
|
||||
graphics.fillRect(x, y, WIDTH, height);
|
||||
graphics.drawRect(x, y, width - BORDER_SIZE, height - BORDER_SIZE);
|
||||
graphics.fillRect(x, y, width, height);
|
||||
|
||||
graphics.setColor(fill);
|
||||
graphics.fillRect(x + BORDER_SIZE,
|
||||
y + BORDER_SIZE + (height - filledHeight),
|
||||
WIDTH - BORDER_SIZE * 2,
|
||||
width - BORDER_SIZE * 2,
|
||||
filledHeight - BORDER_SIZE * 2);
|
||||
|
||||
if (config.enableRestorationBars())
|
||||
{
|
||||
renderRestore(graphics, x, y, height);
|
||||
renderRestore(graphics, x, y, width, height);
|
||||
}
|
||||
|
||||
if (config.enableSkillIcon() || config.enableCounter())
|
||||
{
|
||||
renderIconsAndCounters(config, graphics, x, y);
|
||||
renderIconsAndCounters(config, graphics, x, y, width);
|
||||
}
|
||||
}
|
||||
|
||||
private void renderIconsAndCounters(StatusBarsConfig config, Graphics2D graphics, int x, int y)
|
||||
private void renderIconsAndCounters(StatusBarsConfig config, Graphics2D graphics, int x, int y, int width)
|
||||
{
|
||||
// Icons and counters overlap the bar at small widths, so they are not drawn when the bars are too small
|
||||
if (width < MIN_ICON_AND_COUNTER_WIDTH)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final boolean skillIconEnabled = config.enableSkillIcon();
|
||||
|
||||
if (skillIconEnabled)
|
||||
{
|
||||
final Image icon = iconSupplier.get();
|
||||
final int xDraw = x + (WIDTH / 2) - (icon.getWidth(null) / 2);
|
||||
final int xDraw = x + (width / 2) - (icon.getWidth(null) / 2);
|
||||
graphics.drawImage(icon, xDraw, y, null);
|
||||
}
|
||||
|
||||
@@ -111,7 +119,7 @@ class BarRenderer
|
||||
graphics.setFont(FontManager.getRunescapeSmallFont());
|
||||
final String counterText = Integer.toString(currentValue);
|
||||
final int widthOfCounter = graphics.getFontMetrics().stringWidth(counterText);
|
||||
final int centerText = (WIDTH / 2) - (widthOfCounter / 2);
|
||||
final int centerText = (width / 2) - (widthOfCounter / 2);
|
||||
final int yOffset = skillIconEnabled ? SKILL_ICON_HEIGHT : COUNTER_ICON_HEIGHT;
|
||||
|
||||
final TextComponent textComponent = new TextComponent();
|
||||
@@ -121,7 +129,7 @@ class BarRenderer
|
||||
}
|
||||
}
|
||||
|
||||
private void renderRestore(Graphics2D graphics, int x, int y, int height)
|
||||
private void renderRestore(Graphics2D graphics, int x, int y, int width, int height)
|
||||
{
|
||||
final Color color = healColorSupplier.get();
|
||||
final int heal = healSupplier.get();
|
||||
@@ -150,7 +158,7 @@ class BarRenderer
|
||||
|
||||
graphics.fillRect(x + BORDER_SIZE,
|
||||
fillY,
|
||||
WIDTH - BORDER_SIZE * 2,
|
||||
width - BORDER_SIZE * 2,
|
||||
fillHeight);
|
||||
}
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ package net.runelite.client.plugins.statusbars;
|
||||
import net.runelite.client.config.Config;
|
||||
import net.runelite.client.config.ConfigGroup;
|
||||
import net.runelite.client.config.ConfigItem;
|
||||
import net.runelite.client.config.Range;
|
||||
import net.runelite.client.config.Units;
|
||||
import net.runelite.client.plugins.statusbars.config.BarMode;
|
||||
|
||||
@@ -95,4 +96,18 @@ public interface StatusBarsConfig extends Config
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Range(
|
||||
min = BarRenderer.MIN_WIDTH,
|
||||
max = BarRenderer.MAX_WIDTH
|
||||
)
|
||||
@ConfigItem(
|
||||
keyName = "barWidth",
|
||||
name = "Bar Width",
|
||||
description = "The width of the status bars in the modern resizeable layout."
|
||||
)
|
||||
default int barWidth()
|
||||
{
|
||||
return BarRenderer.DEFAULT_WIDTH;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -135,7 +135,7 @@ class StatusBarsOverlay extends Overlay
|
||||
return DISEASE_COLOR;
|
||||
}
|
||||
|
||||
if (client.getVar(Varbits.PARASITE) >= 1)
|
||||
if (client.getVarbitValue(Varbits.PARASITE) >= 1)
|
||||
{
|
||||
return PARASITE_COLOR;
|
||||
}
|
||||
@@ -193,7 +193,7 @@ class StatusBarsOverlay extends Overlay
|
||||
() -> getRestoreValue("Run Energy"),
|
||||
() ->
|
||||
{
|
||||
if (client.getVar(Varbits.RUN_SLOWED_DEPLETION_ACTIVE) != 0)
|
||||
if (client.getVarbitValue(Varbits.RUN_SLOWED_DEPLETION_ACTIVE) != 0)
|
||||
{
|
||||
return RUN_STAMINA_COLOR;
|
||||
}
|
||||
@@ -245,18 +245,21 @@ class StatusBarsOverlay extends Overlay
|
||||
final Point offsetLeft = curViewport.getOffsetLeft();
|
||||
final Point offsetRight = curViewport.getOffsetRight();
|
||||
final Point location = curWidget.getCanvasLocation();
|
||||
final int height, offsetLeftBarX, offsetLeftBarY, offsetRightBarX, offsetRightBarY;
|
||||
final int width, height, offsetLeftBarX, offsetLeftBarY, offsetRightBarX, offsetRightBarY;
|
||||
|
||||
if (curViewport == Viewport.RESIZED_BOTTOM)
|
||||
{
|
||||
width = config.barWidth();
|
||||
height = RESIZED_BOTTOM_HEIGHT;
|
||||
offsetLeftBarX = (location.getX() + RESIZED_BOTTOM_OFFSET_X - offsetLeft.getX());
|
||||
final int barWidthOffset = width - BarRenderer.DEFAULT_WIDTH;
|
||||
offsetLeftBarX = (location.getX() + RESIZED_BOTTOM_OFFSET_X - offsetLeft.getX() - 2 * barWidthOffset);
|
||||
offsetLeftBarY = (location.getY() - RESIZED_BOTTOM_OFFSET_Y - offsetLeft.getY());
|
||||
offsetRightBarX = (location.getX() + RESIZED_BOTTOM_OFFSET_X - offsetRight.getX());
|
||||
offsetRightBarX = (location.getX() + RESIZED_BOTTOM_OFFSET_X - offsetRight.getX() - barWidthOffset);
|
||||
offsetRightBarY = (location.getY() - RESIZED_BOTTOM_OFFSET_Y - offsetRight.getY());
|
||||
}
|
||||
else
|
||||
{
|
||||
width = BarRenderer.DEFAULT_WIDTH;
|
||||
height = HEIGHT;
|
||||
offsetLeftBarX = (location.getX() - offsetLeft.getX());
|
||||
offsetLeftBarY = (location.getY() - offsetLeft.getY());
|
||||
@@ -271,12 +274,12 @@ class StatusBarsOverlay extends Overlay
|
||||
|
||||
if (left != null)
|
||||
{
|
||||
left.renderBar(config, g, offsetLeftBarX, offsetLeftBarY, height);
|
||||
left.renderBar(config, g, offsetLeftBarX, offsetLeftBarY, width, height);
|
||||
}
|
||||
|
||||
if (right != null)
|
||||
{
|
||||
right.renderBar(config, g, offsetRightBarX, offsetRightBarY, height);
|
||||
right.renderBar(config, g, offsetRightBarX, offsetRightBarY, width, height);
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
@@ -123,7 +123,7 @@ public class StatusBarsPlugin extends Plugin
|
||||
barsDisplayed = true;
|
||||
}
|
||||
else if ((interacting instanceof NPC && ArrayUtils.contains(((NPC) interacting).getComposition().getActions(), "Attack"))
|
||||
|| (interacting instanceof Player && client.getVar(Varbits.PVP_SPEC_ORB) == 1))
|
||||
|| (interacting instanceof Player && client.getVarbitValue(Varbits.PVP_SPEC_ORB) == 1))
|
||||
{
|
||||
lastCombatActionTickCount = client.getTickCount();
|
||||
barsDisplayed = true;
|
||||
|
||||
@@ -206,13 +206,13 @@ public class TimersPlugin extends Plugin
|
||||
@Subscribe
|
||||
public void onVarbitChanged(VarbitChanged event)
|
||||
{
|
||||
int raidVarb = client.getVar(Varbits.IN_RAID);
|
||||
int vengCooldownVarb = client.getVar(Varbits.VENGEANCE_COOLDOWN);
|
||||
int isVengeancedVarb = client.getVar(Varbits.VENGEANCE_ACTIVE);
|
||||
int raidVarb = client.getVarbitValue(Varbits.IN_RAID);
|
||||
int vengCooldownVarb = client.getVarbitValue(Varbits.VENGEANCE_COOLDOWN);
|
||||
int isVengeancedVarb = client.getVarbitValue(Varbits.VENGEANCE_ACTIVE);
|
||||
int poisonVarp = client.getVar(VarPlayer.POISON);
|
||||
int pvpVarb = client.getVar(Varbits.PVP_SPEC_ORB);
|
||||
int corruptionCooldownVarb = client.getVar(Varbits.CORRUPTION_COOLDOWN);
|
||||
int imbuedHeartCooldownVarb = client.getVar(Varbits.IMBUED_HEART_COOLDOWN);
|
||||
int pvpVarb = client.getVarbitValue(Varbits.PVP_SPEC_ORB);
|
||||
int corruptionCooldownVarb = client.getVarbitValue(Varbits.CORRUPTION_COOLDOWN);
|
||||
int imbuedHeartCooldownVarb = client.getVarbitValue(Varbits.IMBUED_HEART_COOLDOWN);
|
||||
|
||||
if (lastRaidVarb != raidVarb)
|
||||
{
|
||||
@@ -576,7 +576,7 @@ public class TimersPlugin extends Plugin
|
||||
|
||||
if (config.showOverload() && message.startsWith("You drink some of your") && message.contains("overload"))
|
||||
{
|
||||
if (client.getVar(Varbits.IN_RAID) == 1)
|
||||
if (client.getVarbitValue(Varbits.IN_RAID) == 1)
|
||||
{
|
||||
createGameTimer(OVERLOAD_RAID);
|
||||
}
|
||||
|
||||
@@ -128,7 +128,7 @@ public class TimestampPlugin extends Plugin
|
||||
|
||||
private Color getTimestampColour()
|
||||
{
|
||||
boolean isChatboxTransparent = client.isResized() && client.getVar(Varbits.TRANSPARENT_CHATBOX) == 1;
|
||||
boolean isChatboxTransparent = client.isResized() && client.getVarbitValue(Varbits.TRANSPARENT_CHATBOX) == 1;
|
||||
|
||||
return isChatboxTransparent ? config.transparentTimestamp() : config.opaqueTimestamp();
|
||||
}
|
||||
|
||||
@@ -22,12 +22,12 @@
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.api.vars;
|
||||
package net.runelite.client.plugins.timetracking.farming;
|
||||
|
||||
/**
|
||||
* An enumeration of possible autoweed settings.
|
||||
*/
|
||||
public enum Autoweed
|
||||
enum Autoweed
|
||||
{
|
||||
/**
|
||||
* Access to autoweed has not been unlocked.
|
||||
@@ -28,7 +28,7 @@ import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import net.runelite.api.Varbits;
|
||||
import net.runelite.api.annotations.Varbit;
|
||||
import net.runelite.client.plugins.timetracking.TimeTrackingConfig;
|
||||
|
||||
@RequiredArgsConstructor(
|
||||
@@ -40,16 +40,17 @@ class FarmingPatch
|
||||
@Setter(AccessLevel.PACKAGE)
|
||||
private FarmingRegion region;
|
||||
private final String name;
|
||||
private final Varbits varbit;
|
||||
@Getter(onMethod_ = {@Varbit})
|
||||
private final int varbit;
|
||||
private final PatchImplementation implementation;
|
||||
|
||||
String configKey()
|
||||
{
|
||||
return region.getRegionID() + "." + varbit.getId();
|
||||
return region.getRegionID() + "." + varbit;
|
||||
}
|
||||
|
||||
String notifyConfigKey()
|
||||
{
|
||||
return TimeTrackingConfig.NOTIFY + "." + region.getRegionID() + "." + varbit.getId();
|
||||
return TimeTrackingConfig.NOTIFY + "." + region.getRegionID() + "." + varbit;
|
||||
}
|
||||
}
|
||||
@@ -25,7 +25,6 @@
|
||||
package net.runelite.client.plugins.timetracking.farming;
|
||||
|
||||
import lombok.Getter;
|
||||
import net.runelite.api.Varbits;
|
||||
import net.runelite.api.coords.WorldPoint;
|
||||
|
||||
@Getter
|
||||
@@ -35,7 +34,6 @@ public class FarmingRegion
|
||||
private final int regionID;
|
||||
private final boolean definite;
|
||||
private final FarmingPatch[] patches;
|
||||
private final Varbits[] varbits;
|
||||
|
||||
FarmingRegion(String name, int regionID, boolean definite, FarmingPatch... patches)
|
||||
{
|
||||
@@ -43,12 +41,9 @@ public class FarmingRegion
|
||||
this.regionID = regionID;
|
||||
this.definite = definite;
|
||||
this.patches = patches;
|
||||
this.varbits = new Varbits[patches.length];
|
||||
for (int i = 0; i < patches.length; i++)
|
||||
for (FarmingPatch p : patches)
|
||||
{
|
||||
FarmingPatch p = patches[i];
|
||||
p.setRegion(this);
|
||||
varbits[i] = p.getVarbit();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -42,7 +42,6 @@ import net.runelite.api.GameState;
|
||||
import net.runelite.api.Varbits;
|
||||
import net.runelite.api.WidgetNode;
|
||||
import net.runelite.api.coords.WorldPoint;
|
||||
import net.runelite.api.vars.Autoweed;
|
||||
import net.runelite.api.widgets.WidgetModalMode;
|
||||
import net.runelite.client.Notifier;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
@@ -111,7 +110,7 @@ public class FarmingTracker
|
||||
}
|
||||
|
||||
{
|
||||
String autoweed = Integer.toString(client.getVar(Varbits.AUTOWEED));
|
||||
String autoweed = Integer.toString(client.getVarbitValue(Varbits.AUTOWEED));
|
||||
if (!autoweed.equals(configManager.getRSProfileConfiguration(TimeTrackingConfig.CONFIG_GROUP, TimeTrackingConfig.AUTOWEED)))
|
||||
{
|
||||
configManager.setRSProfileConfiguration(TimeTrackingConfig.CONFIG_GROUP, TimeTrackingConfig.AUTOWEED, autoweed);
|
||||
@@ -120,7 +119,7 @@ public class FarmingTracker
|
||||
}
|
||||
|
||||
{
|
||||
boolean botanist = client.getVar(Varbits.LEAGUE_RELIC_5) == 1;
|
||||
boolean botanist = client.getVarbitValue(Varbits.LEAGUE_RELIC_5) == 1;
|
||||
if (!Boolean.valueOf(botanist).equals(configManager.getRSProfileConfiguration(TimeTrackingConfig.CONFIG_GROUP, TimeTrackingConfig.BOTANIST, Boolean.class)))
|
||||
{
|
||||
configManager.setRSProfileConfiguration(TimeTrackingConfig.CONFIG_GROUP, TimeTrackingConfig.BOTANIST, botanist);
|
||||
@@ -144,9 +143,9 @@ public class FarmingTracker
|
||||
for (FarmingPatch patch : region.getPatches())
|
||||
{
|
||||
// Write the config value if it doesn't match what is current, or it is more than 5 minutes old
|
||||
Varbits varbit = patch.getVarbit();
|
||||
int varbit = patch.getVarbit();
|
||||
String key = patch.configKey();
|
||||
String strVarbit = Integer.toString(client.getVar(varbit));
|
||||
String strVarbit = Integer.toString(client.getVarbitValue(varbit));
|
||||
String storedValue = configManager.getRSProfileConfiguration(TimeTrackingConfig.CONFIG_GROUP, key);
|
||||
|
||||
if (storedValue != null)
|
||||
@@ -173,7 +172,7 @@ public class FarmingTracker
|
||||
else if (!newRegionLoaded && timeSinceModalClose > 1)
|
||||
{
|
||||
PatchState previousPatchState = patch.getImplementation().forVarbitValue(Integer.parseInt(parts[0]));
|
||||
PatchState currentPatchState = patch.getImplementation().forVarbitValue(client.getVar(varbit));
|
||||
PatchState currentPatchState = patch.getImplementation().forVarbitValue(client.getVarbitValue(varbit));
|
||||
|
||||
if (previousPatchState == null || currentPatchState == null)
|
||||
{
|
||||
|
||||
@@ -131,7 +131,7 @@ public class WikiPlugin extends Plugin
|
||||
children[0] = null;
|
||||
|
||||
Widget vanilla = client.getWidget(WidgetInfo.MINIMAP_WIKI_BANNER);
|
||||
if (vanilla != null && client.getVar(Varbits.WIKI_ENTITY_LOOKUP) == 0)
|
||||
if (vanilla != null && client.getVarbitValue(Varbits.WIKI_ENTITY_LOOKUP) == 0)
|
||||
{
|
||||
vanilla.setHidden(false);
|
||||
}
|
||||
@@ -157,7 +157,7 @@ public class WikiPlugin extends Plugin
|
||||
return;
|
||||
}
|
||||
|
||||
if (client.getVar(Varbits.WIKI_ENTITY_LOOKUP) == 1) // disabled
|
||||
if (client.getVarbitValue(Varbits.WIKI_ENTITY_LOOKUP) == 1) // disabled
|
||||
{
|
||||
// when the wiki entity lookup option is disabled the banner parent layer,
|
||||
// which is used for var transmit events, is not positioned. This is copied
|
||||
|
||||
@@ -194,7 +194,7 @@ public class WintertodtPlugin extends Plugin
|
||||
@Subscribe
|
||||
public void onVarbitChanged(VarbitChanged varbitChanged)
|
||||
{
|
||||
int timerValue = client.getVar(Varbits.WINTERTODT_TIMER);
|
||||
int timerValue = client.getVarbitValue(Varbits.WINTERTODT_TIMER);
|
||||
if (timerValue != previousTimerValue)
|
||||
{
|
||||
int timeToNotify = config.roundNotification();
|
||||
|
||||
@@ -335,8 +335,8 @@ public class WorldHopperPlugin extends Plugin
|
||||
int old1 = favoriteWorld1;
|
||||
int old2 = favoriteWorld2;
|
||||
|
||||
favoriteWorld1 = client.getVar(Varbits.WORLDHOPPER_FAVROITE_1);
|
||||
favoriteWorld2 = client.getVar(Varbits.WORLDHOPPER_FAVROITE_2);
|
||||
favoriteWorld1 = client.getVarbitValue(Varbits.WORLDHOPPER_FAVROITE_1);
|
||||
favoriteWorld2 = client.getVarbitValue(Varbits.WORLDHOPPER_FAVROITE_2);
|
||||
|
||||
if (old1 != favoriteWorld1 || old2 != favoriteWorld2)
|
||||
{
|
||||
|
||||
@@ -45,15 +45,15 @@ enum XpWorldType
|
||||
@Override
|
||||
int modifier(Client client)
|
||||
{
|
||||
if (client.getVar(Varbits.LEAGUE_RELIC_6) != 0)
|
||||
if (client.getVarbitValue(Varbits.LEAGUE_RELIC_6) != 0)
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
if (client.getVar(Varbits.LEAGUE_RELIC_4) != 0)
|
||||
if (client.getVarbitValue(Varbits.LEAGUE_RELIC_4) != 0)
|
||||
{
|
||||
return 12;
|
||||
}
|
||||
if (client.getVar(Varbits.LEAGUE_RELIC_2) != 0)
|
||||
if (client.getVarbitValue(Varbits.LEAGUE_RELIC_2) != 0)
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
*/
|
||||
package net.runelite.client.ui.overlay;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Point;
|
||||
import java.awt.Rectangle;
|
||||
@@ -83,11 +84,47 @@ public abstract class Overlay implements LayoutableRenderableEntity
|
||||
return this.getClass().getSimpleName();
|
||||
}
|
||||
|
||||
/**
|
||||
* Configure to draw this overlay after the given interface is drawn. Except
|
||||
* in rare circumstances, you probably also want to {@link #setLayer(OverlayLayer)} to
|
||||
* {@link OverlayLayer#MANUAL} to avoid the overlay being drawn a 2nd time during the
|
||||
* default {@link OverlayLayer#UNDER_WIDGETS} pass.
|
||||
* @param interfaceId The interface id
|
||||
* @see net.runelite.api.widgets.WidgetID
|
||||
*/
|
||||
protected void drawAfterInterface(int interfaceId)
|
||||
{
|
||||
drawHooks.add(interfaceId << 16 | 0xffff);
|
||||
}
|
||||
|
||||
/**
|
||||
* Configure to draw this overlay after the given layer is drawn. Except
|
||||
* in rare circumstances, you probably also want to {@link #setLayer(OverlayLayer)} to
|
||||
* {@link OverlayLayer#MANUAL} to avoid the overlay being drawn a 2nd time during the
|
||||
* default {@link OverlayLayer#UNDER_WIDGETS} pass.
|
||||
*
|
||||
* The layer must be a widget of {@link net.runelite.api.widgets.WidgetType} {@link net.runelite.api.widgets.WidgetType#LAYER}
|
||||
* @param groupId The widget group id
|
||||
* @param childId The widget child id
|
||||
* @see net.runelite.api.widgets.WidgetID
|
||||
*/
|
||||
protected void drawAfterLayer(int groupId, int childId)
|
||||
{
|
||||
Preconditions.checkArgument(groupId >= 0 && groupId <= 0xffff, "groupId outside of valid range");
|
||||
Preconditions.checkArgument(childId >= 0 && childId <= 0xffff, "childId outside of valid range");
|
||||
drawHooks.add(groupId << 16 | childId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Configure to draw this overlay after the given layer is drawn. Except
|
||||
* in rare circumstances, you probably also want to {@link #setLayer(OverlayLayer)} to
|
||||
* {@link OverlayLayer#MANUAL} to avoid the overlay being drawn a 2nd time during the
|
||||
* default {@link OverlayLayer#UNDER_WIDGETS} pass.
|
||||
*
|
||||
* The layer must be a widget of {@link net.runelite.api.widgets.WidgetType} {@link net.runelite.api.widgets.WidgetType#LAYER}
|
||||
* @param layer The layer
|
||||
* @see WidgetInfo
|
||||
*/
|
||||
protected void drawAfterLayer(WidgetInfo layer)
|
||||
{
|
||||
drawHooks.add(layer.getId());
|
||||
|
||||
@@ -46,6 +46,7 @@ import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import javax.swing.SwingUtilities;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.api.ChatMessageType;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.GameState;
|
||||
import net.runelite.api.KeyCode;
|
||||
@@ -797,6 +798,17 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener
|
||||
log.warn(DEDUPLICATE, "Error during overlay rendering", ex);
|
||||
return;
|
||||
}
|
||||
catch (Throwable throwable)
|
||||
{
|
||||
log.warn(DEDUPLICATE, "Error during overlay rendering: {}, {}, {}", overlay.getPlugin(), overlay.getName(), overlay.getClass());
|
||||
|
||||
client.addChatMessage(ChatMessageType.GAMEMESSAGE, "", "Fatal error: plugin " + overlay.getPlugin(), null);
|
||||
client.addChatMessage(ChatMessageType.GAMEMESSAGE, "", "Fatal error: overlay " + overlay.getName(), null);
|
||||
client.addChatMessage(ChatMessageType.GAMEMESSAGE, "", "Fatal error: " + overlay.getClass(), null);
|
||||
|
||||
overlayManager.remove(overlay);
|
||||
return;
|
||||
}
|
||||
|
||||
final Dimension dimension = MoreObjects.firstNonNull(overlayDimension, new Dimension());
|
||||
overlay.getBounds().setSize(dimension);
|
||||
@@ -886,7 +898,7 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener
|
||||
{
|
||||
if (client.isResized())
|
||||
{
|
||||
if (client.getVar(Varbits.SIDE_PANELS) == 1)
|
||||
if (client.getVarbitValue(Varbits.SIDE_PANELS) == 1)
|
||||
{
|
||||
return client.getWidget(WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE);
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user