From 238b35e8f8964c5a4403da2125614e86911c4fff Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 5 Jan 2022 15:57:00 -0500 Subject: [PATCH] Use leagues hiscores for seasonal worlds --- .../client/hiscore/HiscoreEndpoint.java | 19 +++++++++++++++++++ .../chatcommands/ChatCommandsPlugin.java | 11 +++++++---- .../client/plugins/hiscore/HiscorePlugin.java | 15 ++------------- .../loottracker/LootTrackerPlugin.java | 2 +- .../opponentinfo/OpponentInfoPlugin.java | 18 ++---------------- 5 files changed, 31 insertions(+), 34 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/hiscore/HiscoreEndpoint.java b/runelite-client/src/main/java/net/runelite/client/hiscore/HiscoreEndpoint.java index 6f1c7e8b8b..0bf3e6e4e5 100644 --- a/runelite-client/src/main/java/net/runelite/client/hiscore/HiscoreEndpoint.java +++ b/runelite-client/src/main/java/net/runelite/client/hiscore/HiscoreEndpoint.java @@ -25,7 +25,9 @@ */ package net.runelite.client.hiscore; +import java.util.Set; import lombok.Getter; +import net.runelite.api.WorldType; import okhttp3.HttpUrl; @Getter @@ -47,4 +49,21 @@ public enum HiscoreEndpoint this.name = name; this.hiscoreURL = HttpUrl.get(hiscoreURL); } + + public static HiscoreEndpoint fromWorldTypes(Set worldTypes) + { + if (worldTypes.contains(WorldType.SEASONAL)) + { + // this changes between LEAGUE and TOURNAMENT + return HiscoreEndpoint.LEAGUE; + } + else if (worldTypes.contains(WorldType.DEADMAN)) + { + return HiscoreEndpoint.DEADMAN; + } + else + { + return HiscoreEndpoint.NORMAL; + } + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java index 4973401812..61da99f6fd 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java @@ -1740,9 +1740,10 @@ public class ChatCommandsPlugin extends Plugin if (chatMessage.getType() == ChatMessageType.PUBLICCHAT || chatMessage.getType() == ChatMessageType.MODCHAT) { // Public chat on a seasonal world is always seasonal or tournament hiscores, regardless of icon - if (client.getWorldType().contains(WorldType.SEASONAL)) + HiscoreEndpoint endpoint = HiscoreEndpoint.fromWorldTypes(client.getWorldType()); + if (endpoint != HiscoreEndpoint.NORMAL) { - return new HiscoreLookup(player, HiscoreEndpoint.TOURNAMENT); + return new HiscoreLookup(player, endpoint); } } @@ -1788,9 +1789,11 @@ public class ChatCommandsPlugin extends Plugin private HiscoreEndpoint getLocalHiscoreEndpointType() { EnumSet worldType = client.getWorldType(); - if (worldType.contains(WorldType.SEASONAL)) + HiscoreEndpoint endpoint = HiscoreEndpoint.fromWorldTypes(worldType); + if (endpoint != HiscoreEndpoint.NORMAL) { - return HiscoreEndpoint.TOURNAMENT; + // leagues/dmmt or dmm + return endpoint; } return toEndPoint(client.getAccountType()); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePlugin.java index 8e567d37d7..693412bcb3 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePlugin.java @@ -26,7 +26,6 @@ package net.runelite.client.plugins.hiscore; import com.google.inject.Provides; import java.awt.image.BufferedImage; -import java.util.EnumSet; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.annotation.Nullable; @@ -39,7 +38,6 @@ import net.runelite.api.Client; import net.runelite.api.IconID; import net.runelite.api.MenuAction; import net.runelite.api.Player; -import net.runelite.api.WorldType; import net.runelite.api.events.ChatMessage; import net.runelite.api.events.MenuEntryAdded; import net.runelite.api.events.MenuOptionClicked; @@ -49,6 +47,7 @@ import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.events.ConfigChanged; +import net.runelite.client.hiscore.HiscoreEndpoint; import net.runelite.client.menus.MenuManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -56,7 +55,6 @@ import net.runelite.client.ui.ClientToolbar; import net.runelite.client.ui.NavigationButton; import net.runelite.client.util.ImageUtil; import net.runelite.client.util.Text; -import net.runelite.client.hiscore.HiscoreEndpoint; @PluginDescriptor( name = "HiScore", @@ -240,16 +238,7 @@ public class HiscorePlugin extends Plugin { if (client != null) { - EnumSet wTypes = client.getWorldType(); - - if (wTypes.contains(WorldType.SEASONAL)) - { - return HiscoreEndpoint.TOURNAMENT; - } - else if (wTypes.contains(WorldType.DEADMAN)) - { - return HiscoreEndpoint.DEADMAN; - } + return HiscoreEndpoint.fromWorldTypes(client.getWorldType()); } return HiscoreEndpoint.NORMAL; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPlugin.java index 056022045c..e407644d89 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPlugin.java @@ -487,7 +487,7 @@ public class LootTrackerPlugin extends Plugin private Integer getLootWorldId() { - // For the wiki to determine drop rates based on dmm brackets + // For the wiki to determine drop rates based on dmm brackets / identify leagues drops return client.getWorldType().contains(WorldType.SEASONAL) ? client.getWorld() : null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoPlugin.java index 855ac8953c..17c2bf39b7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoPlugin.java @@ -29,7 +29,6 @@ import com.google.common.annotations.VisibleForTesting; import com.google.inject.Provides; import java.time.Duration; import java.time.Instant; -import java.util.EnumSet; import javax.inject.Inject; import lombok.AccessLevel; import lombok.Getter; @@ -39,17 +38,16 @@ import net.runelite.api.GameState; import net.runelite.api.MenuAction; import net.runelite.api.MenuEntry; import net.runelite.api.NPC; -import net.runelite.api.WorldType; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; import net.runelite.api.events.InteractingChanged; import net.runelite.api.events.MenuEntryAdded; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.hiscore.HiscoreEndpoint; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; -import net.runelite.client.hiscore.HiscoreEndpoint; @PluginDescriptor( name = "Opponent Information", @@ -115,19 +113,7 @@ public class OpponentInfoPlugin extends Plugin return; } - final EnumSet worldType = client.getWorldType(); - if (worldType.contains(WorldType.SEASONAL)) - { - hiscoreEndpoint = HiscoreEndpoint.TOURNAMENT; - } - else if (worldType.contains(WorldType.DEADMAN)) - { - hiscoreEndpoint = HiscoreEndpoint.DEADMAN; - } - else - { - hiscoreEndpoint = HiscoreEndpoint.NORMAL; - } + hiscoreEndpoint = HiscoreEndpoint.fromWorldTypes(client.getWorldType()); } @Subscribe