8282import net .runelite .api .MessageNode ;
8383import net .runelite .api .Player ;
8484import net .runelite .api .WorldType ;
85+ import net .runelite .api .WorldView ;
8586import net .runelite .api .coords .WorldPoint ;
8687import net .runelite .api .events .ChatMessage ;
8788import net .runelite .api .events .CommandExecuted ;
@@ -1002,6 +1003,12 @@ private void onMenuOpened(MenuOpened event)
10021003 return ;
10031004 }
10041005
1006+ final WorldView wv = client .getTopLevelWorldView ();
1007+ if (wv == null )
1008+ {
1009+ return ;
1010+ }
1011+
10051012 boolean changeReportOption = config .applyPredictColorsOnReportOption ();
10061013 // Do this once when the menu opens
10071014 // Avoids having to loop the menu entries on every 'added' event
@@ -1017,7 +1024,7 @@ private void onMenuOpened(MenuOpened event)
10171024 if (type == MenuAction .RUNELITE_PLAYER .getId ()
10181025 && entry .getOption ().equals (PREDICT_OPTION ))
10191026 {
1020- Player player = client . getCachedPlayers ()[ entry .getIdentifier ()] ;
1027+ Player player = wv . players (). byIndex ( entry .getIdentifier ()) ;
10211028 if (player != null )
10221029 {
10231030 entry .setOption (getPredictOption (player .getName ()));
@@ -1028,7 +1035,7 @@ private void onMenuOpened(MenuOpened event)
10281035 if (changeReportOption && entry .getOption ().equals (REPORT_OPTION )
10291036 && (PLAYER_MENU_ACTIONS .contains (entry .getType ()) || entry .getType () == MenuAction .CC_OP_LOW_PRIORITY ))
10301037 {
1031- Player player = client . getCachedPlayers ()[ entry .getIdentifier ()] ;
1038+ Player player = wv . players (). byIndex ( entry .getIdentifier ()) ;
10321039 if (player != null )
10331040 {
10341041 entry .setOption (getReportOption (player .getName ()));
@@ -1050,8 +1057,13 @@ private void onMenuOptionClicked(MenuOptionClicked event)
10501057 if (event .getMenuAction () == MenuAction .RUNELITE_PLAYER
10511058 || PLAYER_MENU_ACTIONS .contains (event .getMenuAction ()))
10521059 {
1053- Player player = client .getCachedPlayers ()[event .getId ()];
1060+ WorldView wv = client .getTopLevelWorldView ();
1061+ if (wv == null )
1062+ {
1063+ return ;
1064+ }
10541065
1066+ Player player = wv .players ().byIndex (event .getId ());
10551067 if (player == null )
10561068 {
10571069 return ;
0 commit comments