player-indicators: move menu logic to ClientTick

This commit is contained in:
Lotto
2020-03-19 00:13:56 +01:00
committed by Adam
parent e7171ee386
commit d4f2753e05

View File

@@ -34,7 +34,7 @@ import net.runelite.api.Client;
import static net.runelite.api.MenuAction.*; import static net.runelite.api.MenuAction.*;
import net.runelite.api.MenuEntry; import net.runelite.api.MenuEntry;
import net.runelite.api.Player; import net.runelite.api.Player;
import net.runelite.api.events.MenuEntryAdded; import net.runelite.api.events.ClientTick;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.game.ClanManager; import net.runelite.client.game.ClanManager;
@@ -94,16 +94,21 @@ public class PlayerIndicatorsPlugin extends Plugin
} }
@Subscribe @Subscribe
public void onMenuEntryAdded(MenuEntryAdded menuEntryAdded) public void onClientTick(ClientTick clientTick)
{ {
int type = menuEntryAdded.getType(); MenuEntry[] menuEntries = client.getMenuEntries();
boolean modified = false;
if (type >= 2000) for (MenuEntry entry : menuEntries)
{ {
type -= 2000; int type = entry.getType();
if (type >= MENU_ACTION_DEPRIORITIZE_OFFSET)
{
type -= MENU_ACTION_DEPRIORITIZE_OFFSET;
} }
int identifier = menuEntryAdded.getIdentifier(); int identifier = entry.getIdentifier();
if (type == SPELL_CAST_ON_PLAYER.getId() if (type == SPELL_CAST_ON_PLAYER.getId()
|| type == ITEM_USE_ON_PLAYER.getId() || type == ITEM_USE_ON_PLAYER.getId()
|| type == PLAYER_FIRST_OPTION.getId() || type == PLAYER_FIRST_OPTION.getId()
@@ -126,24 +131,26 @@ public class PlayerIndicatorsPlugin extends Plugin
if (player == null) if (player == null)
{ {
return; continue;
} }
Decorations decorations = getDecorations(player); Decorations decorations = getDecorations(player);
if (decorations == null) if (decorations == null)
{ {
return; continue;
} }
MenuEntry[] menuEntries = client.getMenuEntries();
MenuEntry entry = menuEntries[menuEntries.length - 1];
String oldTarget = entry.getTarget(); String oldTarget = entry.getTarget();
String newTarget = decorateTarget(oldTarget, decorations); String newTarget = decorateTarget(oldTarget, decorations);
entry.setTarget(newTarget); entry.setTarget(newTarget);
modified = true;
}
}
if (modified)
{
client.setMenuEntries(menuEntries); client.setMenuEntries(menuEntries);
} }
} }