From 2c79d051ffb863579f316c0a69365a8bca6e8745 Mon Sep 17 00:00:00 2001 From: PKLite Date: Wed, 26 Jun 2019 03:39:05 -0400 Subject: [PATCH] adds support for date and adds date display to loot tracker panel Signed-off-by: PKLite --- .../plugins/loottracker/LootRecordSortType.java | 2 +- .../client/plugins/loottracker/LootTrackerBox.java | 12 ++++++++++++ .../client/plugins/loottracker/LootTrackerPanel.java | 5 +++-- .../plugins/loottracker/LootTrackerPlugin.java | 2 +- .../plugins/loottracker/LootTrackerRecord.java | 3 ++- 5 files changed, 19 insertions(+), 5 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootRecordSortType.java b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootRecordSortType.java index 6dc01e960c..9d72d9e8c0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootRecordSortType.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootRecordSortType.java @@ -17,7 +17,7 @@ public enum LootRecordSortType implements Comparator @Override public int compare(LootTrackerRecord o1, LootTrackerRecord o2) { - return Long.compare(o1.getTimestamp(), o2.getTimestamp()); + return Long.compare(o1.getTimestamp().toEpochMilli(), o2.getTimestamp().toEpochMilli()); } }, TOTAL_VALUE diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerBox.java b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerBox.java index b111fde570..a7454387e9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerBox.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerBox.java @@ -32,6 +32,7 @@ import java.awt.GridLayout; import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.List; import java.util.function.BiConsumer; import javax.annotation.Nullable; @@ -59,6 +60,7 @@ class LootTrackerBox extends JPanel private final JPanel itemContainer = new JPanel(); private final JLabel priceLabel = new JLabel(); private final JLabel subTitleLabel = new JLabel(); + private final JLabel dateLabel = new JLabel(); private final ItemManager itemManager; @Getter(AccessLevel.PACKAGE) private final String id; @@ -69,14 +71,17 @@ class LootTrackerBox extends JPanel private long totalPrice; private boolean hideIgnoredItems; private BiConsumer onItemToggle; + private final long timeStamp; LootTrackerBox( + final long timeStamp, final ItemManager itemManager, final String id, @Nullable final String subtitle, final boolean hideIgnoredItems, final BiConsumer onItemToggle) { + this.timeStamp = timeStamp; this.id = id; this.itemManager = itemManager; this.onItemToggle = onItemToggle; @@ -99,6 +104,12 @@ class LootTrackerBox extends JPanel subTitleLabel.setForeground(ColorScheme.LIGHT_GRAY_COLOR); logTitle.add(subTitleLabel, BorderLayout.CENTER); + dateLabel.setFont(FontManager.getRunescapeSmallFont().deriveFont(FontManager.getRunescapeSmallFont().getSize() - 2)); + dateLabel.setForeground(Color.LIGHT_GRAY); + dateLabel.setText(new Date(timeStamp).toLocaleString()); + logTitle.add(dateLabel, BorderLayout.SOUTH); + + if (!Strings.isNullOrEmpty(subtitle)) { subTitleLabel.setText(subtitle); @@ -110,6 +121,7 @@ class LootTrackerBox extends JPanel add(logTitle, BorderLayout.NORTH); add(itemContainer, BorderLayout.CENTER); + } /** 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 f1f054eadf..dc0d7c34d7 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 @@ -32,6 +32,7 @@ import java.awt.GridLayout; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.image.BufferedImage; +import java.time.Instant; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -390,7 +391,7 @@ class LootTrackerPanel extends PluginPanel void add(final String eventName, final String localUsername, final int actorLevel, LootTrackerItem[] items) { final String subTitle = actorLevel > -1 ? "(lvl-" + actorLevel + ")" : ""; - final LootTrackerRecord record = new LootTrackerRecord( eventName, localUsername, subTitle, items, System.currentTimeMillis()); + final LootTrackerRecord record = new LootTrackerRecord( eventName, localUsername, subTitle, items, Instant.now()); records.add(record); LootTrackerBox box = buildBox(record); if (box != null) @@ -545,7 +546,7 @@ class LootTrackerPanel extends PluginPanel overallPanel.setVisible(true); // Create box - final LootTrackerBox box = new LootTrackerBox(itemManager, record.getTitle(), record.getSubTitle(), + final LootTrackerBox box = new LootTrackerBox(record.getTimestamp().toEpochMilli(), itemManager, record.getTitle(), record.getSubTitle(), hideIgnoredItems, plugin::toggleItem); box.combine(record); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPlugin.java index 94847fe8eb..a71d4ff31e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPlugin.java @@ -823,7 +823,7 @@ public class LootTrackerPlugin extends Plugin ).toArray(LootTrackerItem[]::new); trackerRecords.add(new LootTrackerRecord(record.getEventId(), record.getUsername(), - "", drops, -1)); + "", drops, record.getTime())); } return trackerRecords; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerRecord.java b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerRecord.java index a92ff0009f..cadec0680f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerRecord.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerRecord.java @@ -25,6 +25,7 @@ package net.runelite.client.plugins.loottracker; import com.google.gson.annotations.SerializedName; +import java.time.Instant; import lombok.Value; @Value @@ -35,7 +36,7 @@ class LootTrackerRecord private final String subTitle; @SerializedName("item_records") private final LootTrackerItem[] items; - private final long timestamp; + private final Instant timestamp; /** * Checks if this record matches specified id