Bank tags plugin: Generate less garbage objects
This commit is contained in:
@@ -1763,8 +1763,13 @@ public interface Client extends GameShell
|
||||
|
||||
void setModulus(BigInteger modulus);
|
||||
|
||||
/*
|
||||
/**
|
||||
* Returns the max item index + 1 from cache
|
||||
*/
|
||||
int getItemCount();
|
||||
|
||||
/**
|
||||
* Adds a MenuEntry to the current menu.
|
||||
*/
|
||||
void insertMenuItem(String action, String target, int opcode, int identifier, int argument1, int argument2, boolean forceLeftClick);
|
||||
}
|
||||
@@ -35,7 +35,6 @@ import java.awt.event.KeyEvent;
|
||||
import java.awt.event.MouseWheelEvent;
|
||||
import java.text.ParseException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
@@ -50,7 +49,6 @@ import net.runelite.api.ItemDefinition;
|
||||
import net.runelite.api.ItemContainer;
|
||||
import net.runelite.api.ItemID;
|
||||
import net.runelite.api.MenuOpcode;
|
||||
import net.runelite.api.MenuEntry;
|
||||
import net.runelite.api.VarClientInt;
|
||||
import net.runelite.api.VarClientStr;
|
||||
import net.runelite.api.events.ConfigChanged;
|
||||
@@ -275,8 +273,7 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
|
||||
{
|
||||
case "lineSpace":
|
||||
// prevent Y value being incremented to account for line separators
|
||||
intStack[intStackSize - 1] = 0;
|
||||
break;
|
||||
// fallthrough
|
||||
case "tabTextSpace":
|
||||
// prevent Y value being incremented to account for "Tab x" text
|
||||
intStack[intStackSize - 1] = 0;
|
||||
@@ -322,8 +319,6 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
|
||||
|
||||
private void onMenuEntryAdded(MenuEntryAdded event)
|
||||
{
|
||||
MenuEntry[] entries = client.getMenuEntries();
|
||||
|
||||
if (event.getActionParam1() == WidgetInfo.BANK_ITEM_CONTAINER.getId()
|
||||
&& event.getOption().equals("Examine"))
|
||||
{
|
||||
@@ -338,16 +333,15 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
|
||||
text += " (" + tagCount + ")";
|
||||
}
|
||||
|
||||
MenuEntry editTags = new MenuEntry();
|
||||
editTags.setParam0(event.getActionParam0());
|
||||
editTags.setParam1(event.getActionParam1());
|
||||
editTags.setTarget(event.getTarget());
|
||||
editTags.setOption(text);
|
||||
editTags.setOpcode(MenuOpcode.RUNELITE.getId());
|
||||
editTags.setIdentifier(event.getIdentifier());
|
||||
entries = Arrays.copyOf(entries, entries.length + 1);
|
||||
entries[entries.length - 1] = editTags;
|
||||
client.setMenuEntries(entries);
|
||||
client.insertMenuItem(
|
||||
text,
|
||||
event.getTarget(),
|
||||
MenuOpcode.RUNELITE.getId(),
|
||||
event.getIdentifier(),
|
||||
event.getActionParam0(),
|
||||
event.getActionParam1(),
|
||||
false
|
||||
);
|
||||
}
|
||||
|
||||
tabInterface.handleAdd(event);
|
||||
|
||||
@@ -535,39 +535,31 @@ public class TabInterface
|
||||
return;
|
||||
}
|
||||
|
||||
MenuEntry[] entries = client.getMenuEntries();
|
||||
MenuEntry entry = entries[entries.length - 1];
|
||||
|
||||
if (activeTab != null
|
||||
&& event.getActionParam1() == WidgetInfo.BANK_ITEM_CONTAINER.getId()
|
||||
&& event.getOption().equals("Examine"))
|
||||
{
|
||||
entries = createMenuEntry(event, REMOVE_TAG + " (" + activeTab.getTag() + ")", event.getTarget(), entries);
|
||||
client.setMenuEntries(entries);
|
||||
insertMenuEntry(event, REMOVE_TAG + " (" + activeTab.getTag() + ")", event.getTarget());
|
||||
}
|
||||
else if (event.getActionParam1() == WidgetInfo.BANK_DEPOSIT_INVENTORY.getId()
|
||||
&& event.getOption().equals("Deposit inventory"))
|
||||
{
|
||||
entries = createMenuEntry(event, TAG_INVENTORY, event.getTarget(), entries);
|
||||
insertMenuEntry(event, TAG_INVENTORY, event.getTarget());
|
||||
|
||||
if (activeTab != null)
|
||||
{
|
||||
entries = createMenuEntry(event, TAG_INVENTORY, ColorUtil.wrapWithColorTag(activeTab.getTag(), HILIGHT_COLOR), entries);
|
||||
insertMenuEntry(event, TAG_INVENTORY, ColorUtil.wrapWithColorTag(activeTab.getTag(), HILIGHT_COLOR));
|
||||
}
|
||||
|
||||
client.setMenuEntries(entries);
|
||||
}
|
||||
else if (event.getActionParam1() == WidgetInfo.BANK_DEPOSIT_EQUIPMENT.getId()
|
||||
&& event.getOption().equals("Deposit worn items"))
|
||||
{
|
||||
entries = createMenuEntry(event, TAG_GEAR, event.getTarget(), entries);
|
||||
insertMenuEntry(event, TAG_GEAR, event.getTarget());
|
||||
|
||||
if (activeTab != null)
|
||||
{
|
||||
entries = createMenuEntry(event, TAG_GEAR, ColorUtil.wrapWithColorTag(activeTab.getTag(), HILIGHT_COLOR), entries);
|
||||
insertMenuEntry(event, TAG_GEAR, ColorUtil.wrapWithColorTag(activeTab.getTag(), HILIGHT_COLOR));
|
||||
}
|
||||
|
||||
client.setMenuEntries(entries);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -580,8 +572,8 @@ public class TabInterface
|
||||
|
||||
if (chatboxPanelManager.getCurrentInput() != null
|
||||
&& event.getMenuOpcode() != MenuOpcode.CANCEL
|
||||
&& !event.getMenuEntry().equals(SCROLL_UP)
|
||||
&& !event.getMenuEntry().equals(SCROLL_DOWN))
|
||||
&& !event.getOption().equals(SCROLL_UP)
|
||||
&& !event.getOption().equals(SCROLL_DOWN))
|
||||
{
|
||||
chatboxPanelManager.close();
|
||||
}
|
||||
@@ -1058,17 +1050,16 @@ public class TabInterface
|
||||
searchBackground.setSpriteId(SpriteID.EQUIPMENT_SLOT_TILE);
|
||||
}
|
||||
|
||||
private static MenuEntry[] createMenuEntry(MenuEntryAdded event, String option, String target, MenuEntry[] entries)
|
||||
private void insertMenuEntry(MenuEntryAdded event, String option, String target)
|
||||
{
|
||||
final MenuEntry entry = new MenuEntry();
|
||||
entry.setParam0(event.getActionParam0());
|
||||
entry.setParam1(event.getActionParam1());
|
||||
entry.setTarget(target);
|
||||
entry.setOption(option);
|
||||
entry.setOpcode(MenuOpcode.RUNELITE.getId());
|
||||
entry.setIdentifier(event.getIdentifier());
|
||||
entries = Arrays.copyOf(entries, entries.length + 1);
|
||||
entries[entries.length - 1] = entry;
|
||||
return entries;
|
||||
client.insertMenuItem(
|
||||
option,
|
||||
target,
|
||||
MenuOpcode.RUNELITE.getId(),
|
||||
event.getIdentifier(),
|
||||
event.getActionParam0(),
|
||||
event.getActionParam1(),
|
||||
false
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1050,4 +1050,8 @@ public interface RSClient extends RSGameShell, Client
|
||||
|
||||
@Import("ItemDefinition_fileCount")
|
||||
int getItemCount();
|
||||
|
||||
@Import("insertMenuItem")
|
||||
@Override
|
||||
void insertMenuItem(String action, String target, int opcode, int identifier, int argument1, int argument2, boolean forceLeftClick);
|
||||
}
|
||||
Reference in New Issue
Block a user