From 4f3d57d739529ba20aacf0f12736b1cc5e9e4657 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 9 Nov 2020 12:41:50 -0500 Subject: [PATCH] Fix offline worlds showing population of 65535 The service has been updated to return -1 when worlds are offline, and then the UI updated to display OFF when the count is less than 0 --- .../net/runelite/http/service/worlds/WorldsService.java | 2 +- .../client/plugins/worldhopper/WorldTableRow.java | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/http-service/src/main/java/net/runelite/http/service/worlds/WorldsService.java b/http-service/src/main/java/net/runelite/http/service/worlds/WorldsService.java index a3bd010430..fe85fb35dd 100644 --- a/http-service/src/main/java/net/runelite/http/service/worlds/WorldsService.java +++ b/http-service/src/main/java/net/runelite/http/service/worlds/WorldsService.java @@ -74,7 +74,7 @@ public class WorldsService .address(readString(buf)) .activity(readString(buf)) .location(buf.get() & 0xFF) - .players(buf.getShort() & 0xFFFF); + .players(buf.getShort()); worlds.add(worldBuilder.build()); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldTableRow.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldTableRow.java index d67d5b6bb4..eb39459f32 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldTableRow.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldTableRow.java @@ -207,7 +207,12 @@ class WorldTableRow extends JPanel void updatePlayerCount(int playerCount) { this.updatedPlayerCount = playerCount; - playerCountField.setText(String.valueOf(playerCount)); + playerCountField.setText(playerCountString(playerCount)); + } + + private static String playerCountString(int playerCount) + { + return playerCount < 0 ? "OFF" : Integer.toString(playerCount); } void setPing(int ping) @@ -272,7 +277,7 @@ class WorldTableRow extends JPanel JPanel column = new JPanel(new BorderLayout()); column.setBorder(new EmptyBorder(0, 5, 0, 5)); - playerCountField = new JLabel(world.getPlayers() + ""); + playerCountField = new JLabel(playerCountString(world.getPlayers())); playerCountField.setFont(FontManager.getRunescapeSmallFont()); column.add(playerCountField, BorderLayout.WEST);