loot tracker: Fix "Show each kill separately" view
This commit is contained in:
@@ -26,6 +26,7 @@
|
|||||||
package net.runelite.client.plugins.loottracker;
|
package net.runelite.client.plugins.loottracker;
|
||||||
|
|
||||||
import static com.google.common.collect.Iterables.concat;
|
import static com.google.common.collect.Iterables.concat;
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
import java.awt.BorderLayout;
|
import java.awt.BorderLayout;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
@@ -33,11 +34,12 @@ import java.awt.GridLayout;
|
|||||||
import java.awt.event.MouseAdapter;
|
import java.awt.event.MouseAdapter;
|
||||||
import java.awt.event.MouseEvent;
|
import java.awt.event.MouseEvent;
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
|
import java.util.ArrayDeque;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
import javax.swing.BorderFactory;
|
import javax.swing.BorderFactory;
|
||||||
import javax.swing.BoxLayout;
|
import javax.swing.BoxLayout;
|
||||||
import javax.swing.ButtonGroup;
|
import javax.swing.ButtonGroup;
|
||||||
@@ -456,12 +458,16 @@ class LootTrackerPanel extends PluginPanel
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sessionRecords.stream()
|
// Loop in reverse insertion order so limiting includes most recent data
|
||||||
.sorted(Collections.reverseOrder())
|
Lists.reverse(sessionRecords).stream()
|
||||||
// filter records prior to limiting so that it is limited to the correct amount
|
// filter records prior to limiting so that it is limited to the correct amount
|
||||||
.filter(r -> !hideIgnoredItems || !plugin.isEventIgnored(r.getTitle()))
|
.filter(r -> !hideIgnoredItems || !plugin.isEventIgnored(r.getTitle()))
|
||||||
.limit(MAX_LOOT_BOXES)
|
.limit(MAX_LOOT_BOXES)
|
||||||
.forEach(this::buildBox);
|
// The box that is built last is first inside the UI.
|
||||||
|
// since we are looping in reverse order we need to use a data type that support reverse iterating
|
||||||
|
.collect(Collectors.toCollection(ArrayDeque::new))
|
||||||
|
.descendingIterator()
|
||||||
|
.forEachRemaining(this::buildBox);
|
||||||
}
|
}
|
||||||
|
|
||||||
boxes.forEach(LootTrackerBox::rebuild);
|
boxes.forEach(LootTrackerBox::rebuild);
|
||||||
|
|||||||
Reference in New Issue
Block a user