From 120be3ab1380f42e878ebb356a2f17811d2e5212 Mon Sep 17 00:00:00 2001 From: Max Weber Date: Tue, 23 Oct 2018 17:02:07 -0600 Subject: [PATCH] Limit amount of LootTrackerBoxes to 500 Otherwise its incredibly slow to switch to or from the ungrouped view. This isn't entirely correct because the header is also limited. --- .../plugins/loottracker/LootTrackerPanel.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPanel.java index a4d7aaf8a3..73384afd57 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPanel.java @@ -53,6 +53,8 @@ import net.runelite.client.util.StackFormatter; class LootTrackerPanel extends PluginPanel { + private static final int MAX_LOOT_BOXES = 500; + private static final ImageIcon SINGLE_LOOT_VIEW; private static final ImageIcon SINGLE_LOOT_VIEW_FADED; private static final ImageIcon SINGLE_LOOT_VIEW_HOVER; @@ -385,7 +387,15 @@ class LootTrackerPanel extends PluginPanel { logsContainer.removeAll(); boxes.clear(); - records.forEach(this::buildBox); + int start = 0; + if (!groupLoot && records.size() > MAX_LOOT_BOXES) + { + start = records.size() - MAX_LOOT_BOXES; + } + for (int i = start; i < records.size(); i++) + { + buildBox(records.get(i)); + } boxes.forEach(LootTrackerBox::rebuild); updateOverall(); logsContainer.revalidate(); @@ -461,6 +471,11 @@ class LootTrackerPanel extends PluginPanel boxes.add(box); logsContainer.add(box, 0); + if (!groupLoot && boxes.size() > MAX_LOOT_BOXES) + { + logsContainer.remove(boxes.remove(0)); + } + return box; }