diff --git a/http-api/src/main/java/net/runelite/http/api/hiscore/HiscoreEndpoint.java b/http-api/src/main/java/net/runelite/http/api/hiscore/HiscoreEndpoint.java index adfb017372..a88f2e208e 100644 --- a/http-api/src/main/java/net/runelite/http/api/hiscore/HiscoreEndpoint.java +++ b/http-api/src/main/java/net/runelite/http/api/hiscore/HiscoreEndpoint.java @@ -35,7 +35,8 @@ public enum HiscoreEndpoint HARDCORE_IRONMAN("Hardcore Ironman", "https://services.runescape.com/m=hiscore_oldschool_hardcore_ironman/index_lite.ws"), ULTIMATE_IRONMAN("Ultimate Ironman", "https://services.runescape.com/m=hiscore_oldschool_ultimate/index_lite.ws"), DEADMAN("Deadman", "https://services.runescape.com/m=hiscore_oldschool_deadman/index_lite.ws"), - SEASONAL_DEADMAN("Seasonal Deadman", "https://services.runescape.com/m=hiscore_oldschool_seasonal/index_lite.ws"); + SEASONAL_DEADMAN("Seasonal Deadman", "https://services.runescape.com/m=hiscore_oldschool_seasonal/index_lite.ws"), + DEADMAN_TOURNAMENT("Deadman Tournament", "https://services.runescape.com/m=hiscore_oldschool_tournament/index_lite.ws"); private final String name; private final HttpUrl hiscoreURL; diff --git a/http-api/src/main/java/net/runelite/http/api/worlds/WorldType.java b/http-api/src/main/java/net/runelite/http/api/worlds/WorldType.java index a913f63bb5..3bea0a4cbc 100644 --- a/http-api/src/main/java/net/runelite/http/api/worlds/WorldType.java +++ b/http-api/src/main/java/net/runelite/http/api/worlds/WorldType.java @@ -34,5 +34,6 @@ public enum WorldType LAST_MAN_STANDING, TOURNAMENT, DEADMAN, - SEASONAL_DEADMAN + SEASONAL_DEADMAN, + DEADMAN_TOURNAMENT } diff --git a/http-service/src/main/java/net/runelite/http/service/worlds/ServiceWorldType.java b/http-service/src/main/java/net/runelite/http/service/worlds/ServiceWorldType.java index 1c7bf52180..1a3c1271f9 100644 --- a/http-service/src/main/java/net/runelite/http/service/worlds/ServiceWorldType.java +++ b/http-service/src/main/java/net/runelite/http/service/worlds/ServiceWorldType.java @@ -35,6 +35,7 @@ enum ServiceWorldType PVP_HIGH_RISK(WorldType.PVP_HIGH_RISK, 1 << 10), LAST_MAN_STANDING(WorldType.LAST_MAN_STANDING, 1 << 14), TOURNAMENT(WorldType.TOURNAMENT, 1 << 25), + DEADMAN_TOURNAMENT(WorldType.DEADMAN_TOURNAMENT, 1 << 26), DEADMAN(WorldType.DEADMAN, 1 << 29), SEASONAL_DEADMAN(WorldType.SEASONAL_DEADMAN, 1 << 30); diff --git a/runelite-api/src/main/java/net/runelite/api/WorldType.java b/runelite-api/src/main/java/net/runelite/api/WorldType.java index 81f2ae1d2d..b22bc17fb3 100644 --- a/runelite-api/src/main/java/net/runelite/api/WorldType.java +++ b/runelite-api/src/main/java/net/runelite/api/WorldType.java @@ -60,6 +60,10 @@ public enum WorldType * Tournament world type. */ TOURNAMENT(1 << 25), + /** + * Deadman Tournament world type. + */ + DEADMAN_TOURNAMENT(1 << 26), /** * Deadman world type. */ @@ -76,8 +80,9 @@ public enum WorldType this.mask = mask; } - private static EnumSet PVP_WORLD_TYPES = EnumSet.of( + private static final EnumSet PVP_WORLD_TYPES = EnumSet.of( DEADMAN, + DEADMAN_TOURNAMENT, PVP, PVP_HIGH_RISK, SEASONAL_DEADMAN 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 d52bdc7f43..6e36665a8b 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 @@ -108,8 +108,12 @@ public class OpponentInfoPlugin extends Plugin return; } - EnumSet worldType = client.getWorldType(); - if (worldType.contains(WorldType.SEASONAL_DEADMAN)) + final EnumSet worldType = client.getWorldType(); + if (worldType.contains(WorldType.DEADMAN_TOURNAMENT)) + { + hiscoreEndpoint = HiscoreEndpoint.DEADMAN_TOURNAMENT; + } + else if (worldType.contains(WorldType.SEASONAL_DEADMAN)) { hiscoreEndpoint = HiscoreEndpoint.SEASONAL_DEADMAN; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java index c15db92117..9cfd1c8d68 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java @@ -555,7 +555,8 @@ public class ScreenshotPlugin extends Plugin final EnumSet worldTypes = client.getWorldType(); final boolean dmm = worldTypes.contains(WorldType.DEADMAN); final boolean sdmm = worldTypes.contains(WorldType.SEASONAL_DEADMAN); - final boolean isDmmWorld = dmm || sdmm; + final boolean dmmt = worldTypes.contains(WorldType.DEADMAN_TOURNAMENT); + final boolean isDmmWorld = dmm || sdmm || dmmt; String playerDir = client.getLocalPlayer().getName(); if (isDmmWorld) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java index 15cdbdb36d..85ebdc9da3 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java @@ -448,7 +448,9 @@ public class TimersPlugin extends Plugin if (config.showTeleblock() && event.getMessage().equals(HALF_TELEBLOCK_MESSAGE)) { - if (client.getWorldType().contains(WorldType.DEADMAN)) + if (client.getWorldType().contains(WorldType.DEADMAN) + && !client.getWorldType().contains(WorldType.SEASONAL_DEADMAN) + && !client.getWorldType().contains(WorldType.DEADMAN_TOURNAMENT)) { createGameTimer(DMM_FULLTB); } @@ -673,7 +675,8 @@ public class TimersPlugin extends Plugin if (actor.getGraphic() == BIND.getGraphicId()) { if (client.isPrayerActive(Prayer.PROTECT_FROM_MAGIC) - && !client.getWorldType().contains(WorldType.SEASONAL_DEADMAN)) + && !client.getWorldType().contains(WorldType.SEASONAL_DEADMAN) + && !client.getWorldType().contains(WorldType.DEADMAN_TOURNAMENT)) { createGameTimer(HALFBIND); } @@ -686,7 +689,8 @@ public class TimersPlugin extends Plugin if (actor.getGraphic() == SNARE.getGraphicId()) { if (client.isPrayerActive(Prayer.PROTECT_FROM_MAGIC) - && !client.getWorldType().contains(WorldType.SEASONAL_DEADMAN)) + && !client.getWorldType().contains(WorldType.SEASONAL_DEADMAN) + && !client.getWorldType().contains(WorldType.DEADMAN_TOURNAMENT)) { createGameTimer(HALFSNARE); } @@ -699,7 +703,8 @@ public class TimersPlugin extends Plugin if (actor.getGraphic() == ENTANGLE.getGraphicId()) { if (client.isPrayerActive(Prayer.PROTECT_FROM_MAGIC) - && !client.getWorldType().contains(WorldType.SEASONAL_DEADMAN)) + && !client.getWorldType().contains(WorldType.SEASONAL_DEADMAN) + && !client.getWorldType().contains(WorldType.DEADMAN_TOURNAMENT)) { createGameTimer(HALFENTANGLE); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpWorldType.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpWorldType.java index e411024326..a907381347 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpWorldType.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpWorldType.java @@ -31,7 +31,8 @@ enum XpWorldType NORMAL, TOURNEY, DMM, - SDMM; + SDMM, + DMMT; static XpWorldType of(WorldType type) { @@ -43,6 +44,8 @@ enum XpWorldType return DMM; case SEASONAL_DEADMAN: return SDMM; + case DEADMAN_TOURNAMENT: + return DMMT; default: return NORMAL; } diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/hiscore/deadman_tournament.png b/runelite-client/src/main/resources/net/runelite/client/plugins/hiscore/deadman_tournament.png new file mode 100644 index 0000000000..e74b1d940b Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/hiscore/deadman_tournament.png differ