Merge remote-tracking branch 'runelite/master'

This commit is contained in:
Owain van Brakel
2019-11-06 00:02:17 +01:00
20 changed files with 230 additions and 214 deletions

View File

@@ -53,7 +53,18 @@ public enum UntradeableItemMapping
CRYSTAL_LEGS(ItemID.CRYSTAL_LEGS, 2, ItemID.CRYSTAL_ARMOUR_SEED),
CRYSTAL_LEGS_INACTIVE(ItemID.CRYSTAL_LEGS_INACTIVE, 2, ItemID.CRYSTAL_ARMOUR_SEED),
CRYSTAL_BODY(ItemID.CRYSTAL_BODY, 3, ItemID.CRYSTAL_ARMOUR_SEED),
CRYSTAL_BODY_INACTIVE(ItemID.CRYSTAL_BODY_INACTIVE, 3, ItemID.CRYSTAL_ARMOUR_SEED);
CRYSTAL_BODY_INACTIVE(ItemID.CRYSTAL_BODY_INACTIVE, 3, ItemID.CRYSTAL_ARMOUR_SEED),
TATTERED_MOON_PAGE(ItemID.TATTERED_MOON_PAGE, 1000, ItemID.COINS_995),
TATTERED_SUN_PAGE(ItemID.TATTERED_SUN_PAGE, 1000, ItemID.COINS_995),
TATTERED_TEMPLE_PAGE(ItemID.TATTERED_TEMPLE_PAGE, 1000, ItemID.COINS_995),
LONG_BONE(ItemID.LONG_BONE, 1000, ItemID.COINS_995),
CURVED_BONE(ItemID.CURVED_BONE, 2000, ItemID.COINS_995),
PERFECT_SHELL(ItemID.PERFECT_SHELL, 600, ItemID.COINS_995),
PERFECT_SNAIL_SHELL(ItemID.PERFECT_SNAIL_SHELL, 600, ItemID.COINS_995),
SNAIL_SHELL(ItemID.SNAIL_SHELL, 600, ItemID.COINS_995),
TORTOISE_SHELL(ItemID.TORTOISE_SHELL, 250, ItemID.COINS_995);
private static final ImmutableMap<Integer, UntradeableItemMapping> UNTRADEABLE_RECLAIM_MAP;

View File

@@ -8,8 +8,8 @@ import lombok.AccessLevel;
import lombok.Getter;
import net.runelite.api.Client;
import net.runelite.api.Skill;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.StatChanged;
import net.runelite.client.eventbus.EventBus;
@Singleton
@@ -34,7 +34,7 @@ public class XpDropManager
this.client = client;
this.eventBus = eventBus;
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
eventBus.subscribe(ExperienceChanged.class, this, this::onExperienceChanged);
eventBus.subscribe(StatChanged.class, this, this::onStatChanged);
}
private void onGameStateChanged(GameStateChanged event)
@@ -43,7 +43,7 @@ public class XpDropManager
tickShow = 0;
}
private void onExperienceChanged(ExperienceChanged event)
private void onStatChanged(StatChanged event)
{
final Skill skill = event.getSkill();
final int xp = client.getSkillExperience(skill);

View File

@@ -50,12 +50,10 @@ import net.runelite.api.TileItem;
import net.runelite.api.TileObject;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.BeforeRender;
import net.runelite.api.events.BoostedLevelChanged;
import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.DecorativeObjectChanged;
import net.runelite.api.events.DecorativeObjectDespawned;
import net.runelite.api.events.DecorativeObjectSpawned;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.GameObjectChanged;
import net.runelite.api.events.GameObjectDespawned;
import net.runelite.api.events.GameObjectSpawned;
@@ -67,6 +65,7 @@ import net.runelite.api.events.GroundObjectSpawned;
import net.runelite.api.events.ItemDespawned;
import net.runelite.api.events.ItemSpawned;
import net.runelite.api.events.MenuOpened;
import net.runelite.api.events.StatChanged;
import net.runelite.api.events.WallObjectChanged;
import net.runelite.api.events.WallObjectDespawned;
import net.runelite.api.events.WallObjectSpawned;
@@ -201,8 +200,7 @@ public class AgilityPlugin extends Plugin
{
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
eventBus.subscribe(ExperienceChanged.class, this, this::onExperienceChanged);
eventBus.subscribe(BoostedLevelChanged.class, this, this::onBoostedLevelChanged);
eventBus.subscribe(StatChanged .class, this, this::onStatChanged);
eventBus.subscribe(ItemSpawned.class, this, this::onItemSpawned);
eventBus.subscribe(ItemDespawned.class, this, this::onItemDespawned);
eventBus.subscribe(GameTick.class, this, this::onGameTick);
@@ -295,9 +293,16 @@ public class AgilityPlugin extends Plugin
this.showAgilityArenaTimer = config.showAgilityArenaTimer();
}
private void onExperienceChanged(ExperienceChanged event)
public void onStatChanged(StatChanged statChanged)
{
if (event.getSkill() != AGILITY || !this.showLapCount)
if (statChanged.getSkill() != AGILITY)
{
return;
}
agilityLevel = statChanged.getBoostedLevel();
if (!this.showLapCount)
{
return;
}
@@ -330,15 +335,6 @@ public class AgilityPlugin extends Plugin
}
}
private void onBoostedLevelChanged(BoostedLevelChanged boostedLevelChanged)
{
Skill skill = boostedLevelChanged.getSkill();
if (skill == AGILITY)
{
agilityLevel = client.getBoostedSkillLevel(skill);
}
}
private void onItemSpawned(ItemSpawned itemSpawned)
{
if (obstacles.isEmpty())

View File

@@ -39,10 +39,10 @@ import net.runelite.api.Client;
import net.runelite.api.Constants;
import net.runelite.api.Prayer;
import net.runelite.api.Skill;
import net.runelite.api.events.BoostedLevelChanged;
import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick;
import net.runelite.api.events.StatChanged;
import net.runelite.client.Notifier;
import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.EventBus;
@@ -174,7 +174,7 @@ public class BoostsPlugin extends Plugin
{
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
eventBus.subscribe(BoostedLevelChanged.class, this, this::onBoostedLevelChanged);
eventBus.subscribe(StatChanged.class, this, this::onStatChanged);
eventBus.subscribe(GameTick.class, this, this::onGameTick);
}
@@ -211,9 +211,9 @@ public class BoostsPlugin extends Plugin
}
}
private void onBoostedLevelChanged(BoostedLevelChanged boostedLevelChanged)
private void onStatChanged(StatChanged statChanged)
{
Skill skill = boostedLevelChanged.getSkill();
Skill skill = statChanged.getSkill();
if (!BOOSTABLE_COMBAT_SKILLS.contains(skill) && !BOOSTABLE_NON_COMBAT_SKILLS.contains(skill))
{

View File

@@ -63,7 +63,7 @@ public class CoordinateClue extends ClueScroll implements TextClueScroll, Locati
.put(new WorldPoint(2383, 3370, 0), "West of the outpost")
.put(new WorldPoint(3312, 3375, 0), "North-west of Exam Centre, on the hill.")
.put(new WorldPoint(3121, 3384, 0), "North-east of Draynor Manor, near River Lum.")
.put(new WorldPoint(3430, 3388, 0), "West of Mort Myre Swamp.")
.put(new WorldPoint(3430, 3388, 0), "West of Mort Myre Swamp (BKR).")
.put(new WorldPoint(2920, 3403, 0), "South-east of Taverley, near Lady of the Lake.")
.put(new WorldPoint(2594, 2899, 0), "South-east of Feldip Hills, by the crimson swifts (AKS).")
.put(new WorldPoint(2387, 3435, 0), "West of Tree Gnome Stronghold, near the pen containing terrorbirds.")
@@ -71,21 +71,21 @@ public class CoordinateClue extends ClueScroll implements TextClueScroll, Locati
.put(new WorldPoint(2381, 3468, 0), "West of Tree Gnome Stronghold, north of the pen with terrorbirds.")
.put(new WorldPoint(3005, 3475, 0), "Ice Mountain, west of Edgeville.")
.put(new WorldPoint(2585, 3505, 0), "By the shore line north of the Coal Trucks.")
.put(new WorldPoint(3443, 3515, 0), "South of Slayer Tower.")
.put(new WorldPoint(3443, 3515, 0), "South of Slayer Tower (CKS).")
.put(new WorldPoint(2416, 3516, 0), "Tree Gnome Stronghold, west of Grand Tree, near swamp.")
.put(new WorldPoint(3429, 3523, 0), "South of Slayer Tower.")
.put(new WorldPoint(2363, 3531, 0), "North-east of Eagles' Peak.")
.put(new WorldPoint(3429, 3523, 0), "South of Slayer Tower (CKS).")
.put(new WorldPoint(2363, 3531, 0), "North-east of Eagles' Peak (AKQ).")
.put(new WorldPoint(2919, 3535, 0), "East of Burthorpe pub.")
.put(new WorldPoint(3548, 3560, 0), "Inside Fenkenstrain's Castle.")
.put(new WorldPoint(1456, 3620, 0), "Graveyard west of Shayzien (DJR).")
.put(new WorldPoint(2735, 3638, 0), "East of Rellekka, north-west of Golden Apple Tree (AJR).")
.put(new WorldPoint(2681, 3653, 0), "Rellekka, in the garden of the south-east house.")
.put(new WorldPoint(2537, 3881, 0), "Miscellania.")
.put(new WorldPoint(2537, 3881, 0), "Miscellania (CIP).")
.put(new WorldPoint(2828, 3234, 0), "Southern coast of Crandor.")
.put(new WorldPoint(1247, 3726, 0), "Just inside the Farming Guild")
.put(new WorldPoint(3770, 3898, 0), "On the small island north-east of Fossil Island's mushroom forest.")
// Hard
.put(new WorldPoint(2209, 3161, 0), "North-east of Tyras Camp.")
.put(new WorldPoint(2209, 3161, 0), "North-east of Tyras Camp (BJS).")
.put(new WorldPoint(2181, 3206, 0), "South of Elf Camp.")
.put(new WorldPoint(3081, 3209, 0), "Small Island (CLP).")
.put(new WorldPoint(3374, 3250, 0), "Duel Arena combat area.")
@@ -98,12 +98,12 @@ public class CoordinateClue extends ClueScroll implements TextClueScroll, Locati
.put(new WorldPoint(2581, 3030, 0), "Gu'Tanoth island, enter cave north-west of Feldip Hills (AKS).")
.put(new WorldPoint(2961, 3024, 0), "Ship yard (DKP).")
.put(new WorldPoint(2339, 3311, 0), "East of Prifddinas on Arandar mountain pass.")
.put(new WorldPoint(3440, 3341, 0), "Nature Spirit's grotto.")
.put(new WorldPoint(2763, 2974, 0), "Cairn Isle, west of Shilo Village.")
.put(new WorldPoint(3440, 3341, 0), "Nature Spirit's grotto (BIP).")
.put(new WorldPoint(2763, 2974, 0), "Cairn Isle, west of Shilo Village (CKR).")
.put(new WorldPoint(3138, 2969, 0), "West of Bandit Camp in Kharidian Desert.")
.put(new WorldPoint(2924, 2963, 0), "On the southern part of eastern Karamja.")
.put(new WorldPoint(2838, 2914, 0), "Kharazi Jungle, near water pool.")
.put(new WorldPoint(3441, 3419, 0), "Mort Myre Swamp.")
.put(new WorldPoint(2838, 2914, 0), "Kharazi Jungle, near water pool (CKR).")
.put(new WorldPoint(3441, 3419, 0), "Mort Myre Swamp (BKR).")
.put(new WorldPoint(2950, 2902, 0), "South-east of Kharazi Jungle.")
.put(new WorldPoint(2775, 2891, 0), "South-west of Kharazi Jungle.")
.put(new WorldPoint(3113, 3602, 0), "Wilderness. North of Edgeville (level 11).")
@@ -113,8 +113,8 @@ public class CoordinateClue extends ClueScroll implements TextClueScroll, Locati
.put(new WorldPoint(3305, 3692, 0), "Wilderness. West of eastern green dragon.")
.put(new WorldPoint(3055, 3696, 0), "Wilderness. Bandit Camp.")
.put(new WorldPoint(3302, 3696, 0), "Wilderness. West of eastern green dragon.")
.put(new WorldPoint(1479, 3696, 0), "Lizardman Canyon.")
.put(new WorldPoint(2712, 3732, 0), "North-east of Rellekka.")
.put(new WorldPoint(1479, 3696, 0), "Lizardman Canyon (DJR).")
.put(new WorldPoint(2712, 3732, 0), "North-east of Rellekka (DKS).")
.put(new WorldPoint(2970, 3749, 0), "Wilderness. Forgotten Cemetery.")
.put(new WorldPoint(3094, 3764, 0), "Wilderness. Mining site north of Bandit Camp.")
.put(new WorldPoint(3311, 3769, 0), "Wilderness. North of Venenatis.")
@@ -188,7 +188,7 @@ public class CoordinateClue extends ClueScroll implements TextClueScroll, Locati
.put(new WorldPoint(1698, 3792, 0), "Arceuus church.")
.put(new WorldPoint(2951, 3820, 0), "Wilderness. Chaos Temple (level 38).")
.put(new WorldPoint(2202, 3825, 0), "Pirates' Cove, between Lunar Isle and Rellekka.")
.put(new WorldPoint(1761, 3853, 0), "Arceuus essence mine.")
.put(new WorldPoint(1761, 3853, 0), "Arceuus essence mine (CIS).")
.put(new WorldPoint(2090, 3863, 0), "South of Lunar Isle, west of Astral altar.")
.put(new WorldPoint(1442, 3878, 0), "Sulphur Mine.")
.put(new WorldPoint(3380, 3929, 0), "Wilderness. Near Volcano.")

View File

@@ -42,11 +42,10 @@ import net.runelite.api.Player;
import net.runelite.api.Skill;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.AreaSoundEffectPlayed;
import net.runelite.api.events.BoostedLevelChanged;
import net.runelite.api.events.CommandExecuted;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.MenuEntryAdded;
import net.runelite.api.events.SoundEffectPlayed;
import net.runelite.api.events.StatChanged;
import net.runelite.api.events.VarbitChanged;
import net.runelite.api.kit.KitType;
import net.runelite.client.config.ConfigManager;
@@ -301,9 +300,13 @@ public class DevToolsPlugin extends Plugin
client.queueChangedSkill(skill);
ExperienceChanged experienceChanged = new ExperienceChanged();
experienceChanged.setSkill(skill);
eventBus.post(ExperienceChanged.class, experienceChanged);
StatChanged statChanged = new StatChanged(
skill,
totalXp,
level,
level
);
eventBus.post(StatChanged.class, statChanged);
break;
}
case "setstat":
@@ -320,13 +323,13 @@ public class DevToolsPlugin extends Plugin
client.queueChangedSkill(skill);
ExperienceChanged experienceChanged = new ExperienceChanged();
experienceChanged.setSkill(skill);
eventBus.post(ExperienceChanged.class, experienceChanged);
BoostedLevelChanged boostedLevelChanged = new BoostedLevelChanged();
boostedLevelChanged.setSkill(skill);
eventBus.post(BoostedLevelChanged.class, boostedLevelChanged);
StatChanged statChanged = new StatChanged(
skill,
xp,
level,
level
);
eventBus.post(StatChanged.class, statChanged);
break;
}
case "anim":

View File

@@ -47,8 +47,8 @@ import net.runelite.api.Skill;
import net.runelite.api.WorldType;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.StatChanged;
import net.runelite.api.events.VarbitChanged;
import net.runelite.client.RuneLiteProperties;
import net.runelite.client.config.ConfigManager;
@@ -175,7 +175,7 @@ public class DiscordPlugin extends Plugin
{
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
eventBus.subscribe(ExperienceChanged.class, this, this::onExperienceChanged);
eventBus.subscribe(StatChanged.class, this, this::onStatChanged);
eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged);
eventBus.subscribe(DiscordReady.class, this, this::onDiscordReady);
eventBus.subscribe(DiscordJoinRequest.class, this, this::onDiscordJoinRequest);
@@ -222,17 +222,18 @@ public class DiscordPlugin extends Plugin
}
}
private void onExperienceChanged(ExperienceChanged event)
private void onStatChanged(StatChanged statChanged)
{
final int exp = client.getSkillExperience(event.getSkill());
final Integer previous = skillExp.put(event.getSkill(), exp);
final Skill skill = statChanged.getSkill();
final int exp = statChanged.getXp();
final Integer previous = skillExp.put(skill, exp);
if (previous == null || previous >= exp)
{
return;
}
final DiscordGameEventType discordGameEventType = DiscordGameEventType.fromSkill(event.getSkill());
final DiscordGameEventType discordGameEventType = DiscordGameEventType.fromSkill(skill);
if (discordGameEventType != null && this.showSkillingActivity)
{

View File

@@ -67,7 +67,8 @@ import net.runelite.client.plugins.PluginDescriptor;
@PluginDescriptor(
name = "Music",
description = "Adds search and filter for the music list, and additional volume control"
description = "Adds search and filter for the music list, and additional volume control",
tags = {"sound", "volume"}
)
public class MusicPlugin extends Plugin
{

View File

@@ -42,11 +42,11 @@ import net.runelite.api.NPC;
import net.runelite.api.Skill;
import net.runelite.api.WorldType;
import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick;
import net.runelite.api.events.HitsplatApplied;
import net.runelite.api.events.ScriptCallbackEvent;
import net.runelite.api.events.StatChanged;
import net.runelite.client.chat.ChatColorType;
import net.runelite.client.chat.ChatMessageBuilder;
import net.runelite.client.chat.ChatMessageManager;
@@ -165,7 +165,7 @@ public class PerformanceStatsPlugin extends Plugin
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
eventBus.subscribe(HitsplatApplied.class, this, this::onHitsplatApplied);
eventBus.subscribe(ExperienceChanged.class, this, this::onExperienceChanged);
eventBus.subscribe(StatChanged.class, this, this::onStatChanged);
eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent);
eventBus.subscribe(GameTick.class, this, this::onGameTick);
eventBus.subscribe(OverlayMenuClicked.class, this, this::onOverlayMenuClicked);
@@ -207,7 +207,7 @@ public class PerformanceStatsPlugin extends Plugin
}
}
private void onExperienceChanged(ExperienceChanged c)
private void onStatChanged(StatChanged c)
{
if (isPaused() || hopping)
{

View File

@@ -66,7 +66,6 @@ import net.runelite.api.WorldType;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.ChatMessage;
import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick;
import net.runelite.api.events.InteractingChanged;
@@ -74,6 +73,7 @@ import net.runelite.api.events.NpcDefinitionChanged;
import net.runelite.api.events.NpcDespawned;
import net.runelite.api.events.NpcSpawned;
import net.runelite.api.events.VarbitChanged;
import net.runelite.api.events.StatChanged;
import net.runelite.api.vars.SlayerUnlock;
import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetInfo;
@@ -368,7 +368,7 @@ public class SlayerPlugin extends Plugin
eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged);
eventBus.subscribe(GameTick.class, this, this::onGameTick);
eventBus.subscribe(ChatMessage.class, this, this::onChatMessage);
eventBus.subscribe(ExperienceChanged.class, this, this::onExperienceChanged);
eventBus.subscribe(StatChanged.class, this, this::onStatChanged);
eventBus.subscribe(InteractingChanged.class, this, this::onInteractingChanged);
}
@@ -730,14 +730,14 @@ public class SlayerPlugin extends Plugin
}
}
public void onExperienceChanged(ExperienceChanged event)
public void onStatChanged(StatChanged statChanged)
{
if (event.getSkill() != SLAYER)
if (statChanged.getSkill() != SLAYER)
{
return;
}
int slayerExp = client.getSkillExperience(SLAYER);
int slayerExp = statChanged.getXp();
if (slayerExp <= cachedXp)
{

View File

@@ -54,7 +54,6 @@ import net.runelite.api.Varbits;
import net.runelite.api.WorldType;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.AnimationChanged;
import net.runelite.api.events.BoostedLevelChanged;
import net.runelite.api.events.ChatMessage;
import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.GameStateChanged;
@@ -64,6 +63,7 @@ import net.runelite.api.events.LocalPlayerDeath;
import net.runelite.api.events.MenuOptionClicked;
import net.runelite.api.events.NpcDespawned;
import net.runelite.api.events.SpotAnimationChanged;
import net.runelite.api.events.StatChanged;
import net.runelite.api.events.VarbitChanged;
import net.runelite.api.events.WidgetHiddenChanged;
import net.runelite.api.widgets.Widget;
@@ -221,7 +221,7 @@ public class TimersPlugin extends Plugin
eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged);
eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned);
eventBus.subscribe(LocalPlayerDeath.class, this, this::onLocalPlayerDeath);
eventBus.subscribe(BoostedLevelChanged.class, this, this::onBoostedLevelChanged);
eventBus.subscribe(StatChanged.class, this, this::onStatChanged);
}
private void onVarbitChanged(VarbitChanged event)
@@ -942,7 +942,7 @@ public class TimersPlugin extends Plugin
infoBoxManager.removeIf(t -> t instanceof TimerTimer && ((TimerTimer) t).getTimer().isRemovedOnDeath());
}
private void onBoostedLevelChanged(BoostedLevelChanged event)
private void onStatChanged(StatChanged event)
{
Skill skill = event.getSkill();

View File

@@ -31,13 +31,12 @@ import java.awt.image.BufferedImage;
import java.util.Arrays;
import java.util.concurrent.ScheduledExecutorService;
import net.runelite.api.Client;
import net.runelite.api.Experience;
import net.runelite.api.GameState;
import net.runelite.api.Skill;
import net.runelite.api.Quest;
import net.runelite.api.QuestState;
import net.runelite.api.Skill;
import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.StatChanged;
import net.runelite.api.events.WidgetLoaded;
import net.runelite.api.widgets.WidgetID;
import net.runelite.client.callback.ClientThread;
@@ -189,7 +188,7 @@ public class WorldMapPlugin extends Plugin
private void addSubscriptions()
{
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
eventBus.subscribe(ExperienceChanged.class, this, this::onExperienceChanged);
eventBus.subscribe(StatChanged.class, this, this::onStatChanged);
eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded);
}
@@ -204,25 +203,29 @@ public class WorldMapPlugin extends Plugin
updateShownIcons();
}
private void onExperienceChanged(ExperienceChanged event)
private void onStatChanged(StatChanged statChanged)
{
if (event.getSkill() == Skill.AGILITY)
switch (statChanged.getSkill())
{
int newAgilityLevel = Experience.getLevelForXp(client.getSkillExperience(Skill.AGILITY));
if (newAgilityLevel != agilityLevel)
case AGILITY:
{
agilityLevel = newAgilityLevel;
updateAgilityIcons();
int newAgilityLevel = statChanged.getLevel();
if (newAgilityLevel != agilityLevel)
{
agilityLevel = newAgilityLevel;
updateAgilityIcons();
}
break;
}
}
if (event.getSkill() == Skill.WOODCUTTING)
{
int newWoodcutLevel = Experience.getLevelForXp(client.getSkillExperience(Skill.WOODCUTTING));
if (newWoodcutLevel != woodcuttingLevel)
case WOODCUTTING:
{
woodcuttingLevel = newWoodcutLevel;
updateRareTreeIcons();
int newWoodcutLevel = statChanged.getLevel();
if (newWoodcutLevel != woodcuttingLevel)
{
woodcuttingLevel = newWoodcutLevel;
updateRareTreeIcons();
}
break;
}
}
}

View File

@@ -39,8 +39,8 @@ import net.runelite.api.Client;
import net.runelite.api.Experience;
import net.runelite.api.Skill;
import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.StatChanged;
import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.EventBus;
import net.runelite.client.plugins.Plugin;
@@ -133,15 +133,15 @@ public class XpGlobesPlugin extends Plugin
private void addSubscriptions()
{
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
eventBus.subscribe(ExperienceChanged.class, this, this::onExperienceChanged);
eventBus.subscribe(StatChanged.class, this, this::onStatChanged);
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
}
private void onExperienceChanged(ExperienceChanged event)
private void onStatChanged(StatChanged statChanged)
{
Skill skill = event.getSkill();
int currentXp = client.getSkillExperience(skill);
int currentLevel = Experience.getLevelForXp(currentXp);
Skill skill = statChanged.getSkill();
int currentXp = statChanged.getXp();
int currentLevel = statChanged.getLevel();
int skillIdx = skill.ordinal();
XpGlobe cachedGlobe = globeCache[skillIdx];

View File

@@ -53,12 +53,12 @@ import net.runelite.api.Skill;
import net.runelite.api.VarPlayer;
import net.runelite.api.WorldType;
import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick;
import net.runelite.api.events.MenuEntryAdded;
import net.runelite.api.events.MenuOptionClicked;
import net.runelite.api.events.NpcDespawned;
import net.runelite.api.events.StatChanged;
import net.runelite.api.widgets.WidgetID;
import static net.runelite.api.widgets.WidgetInfo.TO_GROUP;
import net.runelite.client.config.ConfigManager;
@@ -195,7 +195,7 @@ public class XpTrackerPlugin extends Plugin
{
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
eventBus.subscribe(ExperienceChanged.class, this, this::onExperienceChanged);
eventBus.subscribe(StatChanged.class, this, this::onStatChanged);
eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned);
eventBus.subscribe(GameTick.class, this, this::onGameTick);
eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded);
@@ -371,11 +371,11 @@ public class XpTrackerPlugin extends Plugin
}
}
void onExperienceChanged(ExperienceChanged event)
void onStatChanged(StatChanged statChanged)
{
final Skill skill = event.getSkill();
final int currentXp = client.getSkillExperience(skill);
final int currentLevel = Experience.getLevelForXp(currentXp);
final Skill skill = statChanged.getSkill();
final int currentXp = statChanged.getXp();
final int currentLevel = statChanged.getLevel();
final VarPlayer startGoal = startGoalVarpForSkill(skill);
final VarPlayer endGoal = endGoalVarpForSkill(skill);
final int startGoalXp = startGoal != null ? client.getVar(startGoal) : -1;

View File

@@ -502,6 +502,7 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener
}
graphics.translate(point.x, point.y);
overlay.getBounds().setLocation(point);
final Dimension overlayDimension;
try
@@ -515,7 +516,7 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener
}
final Dimension dimension = MoreObjects.firstNonNull(overlayDimension, new Dimension());
overlay.setBounds(new Rectangle(point, dimension));
overlay.getBounds().setSize(dimension);
}
private boolean shouldInvalidateBounds()