From 3d5e85840ce8ad39a8fcad2ee2318fc46324ea6c Mon Sep 17 00:00:00 2001 From: Cyborger1 <45152844+Cyborger1@users.noreply.github.com> Date: Tue, 18 Feb 2025 11:18:41 -0500 Subject: [PATCH] Deprecation fixes --- .../com/botdetector/BotDetectorPlugin.java | 18 +++++++++++++++--- .../com/botdetector/ui/NameAutocompleter.java | 18 +++++++++++------- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/botdetector/BotDetectorPlugin.java b/src/main/java/com/botdetector/BotDetectorPlugin.java index af3726ab..c15c7e04 100644 --- a/src/main/java/com/botdetector/BotDetectorPlugin.java +++ b/src/main/java/com/botdetector/BotDetectorPlugin.java @@ -82,6 +82,7 @@ import net.runelite.api.MessageNode; import net.runelite.api.Player; import net.runelite.api.WorldType; +import net.runelite.api.WorldView; import net.runelite.api.coords.WorldPoint; import net.runelite.api.events.ChatMessage; import net.runelite.api.events.CommandExecuted; @@ -1002,6 +1003,12 @@ private void onMenuOpened(MenuOpened event) return; } + final WorldView wv = client.getTopLevelWorldView(); + if (wv == null) + { + return; + } + boolean changeReportOption = config.applyPredictColorsOnReportOption(); // Do this once when the menu opens // Avoids having to loop the menu entries on every 'added' event @@ -1017,7 +1024,7 @@ private void onMenuOpened(MenuOpened event) if (type == MenuAction.RUNELITE_PLAYER.getId() && entry.getOption().equals(PREDICT_OPTION)) { - Player player = client.getCachedPlayers()[entry.getIdentifier()]; + Player player = wv.players().byIndex(entry.getIdentifier()); if (player != null) { entry.setOption(getPredictOption(player.getName())); @@ -1028,7 +1035,7 @@ private void onMenuOpened(MenuOpened event) if (changeReportOption && entry.getOption().equals(REPORT_OPTION) && (PLAYER_MENU_ACTIONS.contains(entry.getType()) || entry.getType() == MenuAction.CC_OP_LOW_PRIORITY)) { - Player player = client.getCachedPlayers()[entry.getIdentifier()]; + Player player = wv.players().byIndex(entry.getIdentifier()); if (player != null) { entry.setOption(getReportOption(player.getName())); @@ -1050,8 +1057,13 @@ private void onMenuOptionClicked(MenuOptionClicked event) if (event.getMenuAction() == MenuAction.RUNELITE_PLAYER || PLAYER_MENU_ACTIONS.contains(event.getMenuAction())) { - Player player = client.getCachedPlayers()[event.getId()]; + WorldView wv = client.getTopLevelWorldView(); + if (wv == null) + { + return; + } + Player player = wv.players().byIndex(event.getId()); if (player == null) { return; diff --git a/src/main/java/com/botdetector/ui/NameAutocompleter.java b/src/main/java/com/botdetector/ui/NameAutocompleter.java index 52e99db4..1f9314c1 100644 --- a/src/main/java/com/botdetector/ui/NameAutocompleter.java +++ b/src/main/java/com/botdetector/ui/NameAutocompleter.java @@ -49,6 +49,7 @@ import net.runelite.api.Nameable; import net.runelite.api.NameableContainer; import net.runelite.api.Player; +import net.runelite.api.WorldView; @Slf4j @Singleton @@ -241,13 +242,16 @@ private boolean findAutocompleteName(String nameStart) // Search cached players if a friend wasn't found if (!autocompleteName.isPresent()) { - final Player[] cachedPlayers = client.getCachedPlayers(); - autocompleteName = Arrays.stream(cachedPlayers) - .filter(Objects::nonNull) - .map(Player::getName) - .filter(Objects::nonNull) - .filter(n -> pattern.matcher(n).matches()) - .findFirst(); + final WorldView wv = client.getTopLevelWorldView(); + if (wv != null) + { + autocompleteName = wv.players().stream() + .filter(Objects::nonNull) + .map(Player::getName) + .filter(Objects::nonNull) + .filter(n -> pattern.matcher(n).matches()) + .findFirst(); + } } if (autocompleteName.isPresent())