diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeConfig.java
index 3268aa6716..9cb66911af 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeConfig.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeConfig.java
@@ -28,9 +28,11 @@ import net.runelite.client.config.Config;
import net.runelite.client.config.ConfigGroup;
import net.runelite.client.config.ConfigItem;
-@ConfigGroup("grandexchange")
+@ConfigGroup(GrandExchangeConfig.CONFIG_GROUP)
public interface GrandExchangeConfig extends Config
{
+ String CONFIG_GROUP = "grandexchange";
+
@ConfigItem(
position = 1,
keyName = "quickLookup",
@@ -77,6 +79,18 @@ public interface GrandExchangeConfig extends Config
@ConfigItem(
position = 5,
+ keyName = "enableGELimitReset",
+ name = "Enable GE Limit Reset Timer",
+ description = "Shows when GE Trade limits reset (H:MM)"
+ )
+
+ default boolean enableGELimitReset()
+ {
+ return true;
+ }
+
+ @ConfigItem(
+ position = 6,
keyName = "showTotal",
name = "Show grand exchange total",
description = "Show grand exchange total"
@@ -87,7 +101,7 @@ public interface GrandExchangeConfig extends Config
}
@ConfigItem(
- position = 6,
+ position = 7,
keyName = "showExact",
name = "Show exact total value",
description = "Show exact total value"
@@ -98,7 +112,7 @@ public interface GrandExchangeConfig extends Config
}
@ConfigItem(
- position = 7,
+ position = 8,
keyName = "highlightSearchMatch",
name = "Highlight Search Match",
description = "Highlights the search match with an underline"
@@ -109,7 +123,7 @@ public interface GrandExchangeConfig extends Config
}
@ConfigItem(
- position = 8,
+ position = 9,
keyName = "geSearchMode",
name = "Search Mode",
description = "The search mode to use for the GE
"
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangePlugin.java
index 76f51245ee..8215e16675 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangePlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangePlugin.java
@@ -30,18 +30,18 @@ package net.runelite.client.plugins.grandexchange;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.primitives.Shorts;
-import com.google.common.reflect.TypeToken;
import com.google.gson.Gson;
import com.google.inject.Provides;
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.IOException;
+import java.time.Duration;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Locale;
-import java.util.Map;
import java.util.concurrent.ScheduledExecutorService;
import java.util.function.ToIntFunction;
import java.util.stream.Collectors;
@@ -98,6 +98,7 @@ import net.runelite.http.api.ge.GrandExchangeTrade;
import net.runelite.http.api.item.ItemStats;
import net.runelite.http.api.osbuddy.OSBGrandExchangeClient;
import net.runelite.http.api.osbuddy.OSBGrandExchangeResult;
+import org.apache.commons.lang3.time.DurationFormatUtils;
import org.apache.commons.text.similarity.FuzzyScore;
@PluginDescriptor(
@@ -114,10 +115,9 @@ public class GrandExchangePlugin extends Plugin
private static final String OSB_GE_TEXT = "
OSBuddy Actively traded price: ";
private static final String BUY_LIMIT_GE_TEXT = "
Buy limit: ";
+ private static final String BUY_LIMIT_KEY = "buylimit_";
private static final Gson GSON = new Gson();
- private static final TypeToken