timers: Fix leagues area teleport bug

Teleporting using a trailblazer leagues area teleport previously caused
a home or minigame teleport timer to be created, depending on which of
the two was most recently stored as `lastTeleportClicked`. To avoid
this, a new TeleportWidget has been registered which does not follow any
code paths in the plugin.
This commit is contained in:
Jordan Atwood
2020-11-12 18:36:15 -08:00
committed by Adam
parent 909acea9f7
commit cb31e1ddd4
3 changed files with 17 additions and 2 deletions

View File

@@ -162,6 +162,7 @@ public class WidgetID
public static final int CHAMBERS_OF_XERIC_STORAGE_UNIT_INVENTORY_GROUP_ID = 551; public static final int CHAMBERS_OF_XERIC_STORAGE_UNIT_INVENTORY_GROUP_ID = 551;
public static final int DUEL_INVENTORY_GROUP_ID = 421; public static final int DUEL_INVENTORY_GROUP_ID = 421;
public static final int DUEL_INVENTORY_OTHER_GROUP_ID = 481; public static final int DUEL_INVENTORY_OTHER_GROUP_ID = 481;
public static final int TRAILBLAZER_AREAS_GROUP_ID = 512;
static class WorldMap static class WorldMap
{ {
@@ -936,4 +937,9 @@ public class WidgetID
{ {
static final int CONTAINER = 6; static final int CONTAINER = 6;
} }
static class TrailblazerAreas
{
static final int TELEPORT = 59;
}
} }

View File

@@ -544,7 +544,10 @@ public enum WidgetInfo
GAUNTLET_TIMER_CONTAINER(WidgetID.GAUNTLET_TIMER_GROUP_ID, WidgetID.GauntletTimer.CONTAINER), GAUNTLET_TIMER_CONTAINER(WidgetID.GAUNTLET_TIMER_GROUP_ID, WidgetID.GauntletTimer.CONTAINER),
HALLOWED_SEPULCHRE_TIMER_CONTAINER(WidgetID.HALLOWED_SEPULCHRE_TIMER_GROUP_ID, WidgetID.HallowedSepulchreTimer.CONTAINER), HALLOWED_SEPULCHRE_TIMER_CONTAINER(WidgetID.HALLOWED_SEPULCHRE_TIMER_GROUP_ID, WidgetID.HallowedSepulchreTimer.CONTAINER),
HEALTH_OVERLAY_BAR(WidgetID.HEALTH_OVERLAY_BAR_GROUP_ID, WidgetID.EncounterHealthBar.CONTAINER); HEALTH_OVERLAY_BAR(WidgetID.HEALTH_OVERLAY_BAR_GROUP_ID, WidgetID.EncounterHealthBar.CONTAINER),
TRAILBLAZER_AREA_TELEPORT(WidgetID.TRAILBLAZER_AREAS_GROUP_ID, WidgetID.TrailblazerAreas.TELEPORT),
;
private final int groupId; private final int groupId;
private final int childId; private final int childId;

View File

@@ -32,7 +32,9 @@ import net.runelite.api.widgets.WidgetInfo;
enum TeleportWidget enum TeleportWidget
{ {
HOME_TELEPORT, HOME_TELEPORT,
MINIGAME_TELEPORT; MINIGAME_TELEPORT,
TRAILBLAZER_AREA_TELEPORT,
;
private static final Collection HOME_TELEPORT_IDS = ImmutableList.of( private static final Collection HOME_TELEPORT_IDS = ImmutableList.of(
WidgetInfo.SPELL_LUMBRIDGE_HOME_TELEPORT.getId(), WidgetInfo.SPELL_LUMBRIDGE_HOME_TELEPORT.getId(),
@@ -56,6 +58,10 @@ enum TeleportWidget
{ {
return MINIGAME_TELEPORT; return MINIGAME_TELEPORT;
} }
else if (widgetId == WidgetInfo.TRAILBLAZER_AREA_TELEPORT.getId())
{
return TRAILBLAZER_AREA_TELEPORT;
}
return null; return null;
} }
} }