diff --git a/http-api/src/main/java/net/runelite/http/api/ge/GrandExchangeTrade.java b/http-api/src/main/java/net/runelite/http/api/ge/GrandExchangeTrade.java index 789ca45e63..fd6f6635d3 100644 --- a/http-api/src/main/java/net/runelite/http/api/ge/GrandExchangeTrade.java +++ b/http-api/src/main/java/net/runelite/http/api/ge/GrandExchangeTrade.java @@ -24,6 +24,7 @@ */ package net.runelite.http.api.ge; +import java.time.Instant; import lombok.Data; import net.runelite.http.api.worlds.WorldType; @@ -43,4 +44,5 @@ public class GrandExchangeTrade private int slot; private WorldType worldType; private int seq; + private Instant resetTime; } diff --git a/http-service/src/main/java/net/runelite/http/service/ge/GrandExchangeController.java b/http-service/src/main/java/net/runelite/http/service/ge/GrandExchangeController.java index 73d78986e6..509f2bdb70 100644 --- a/http-service/src/main/java/net/runelite/http/service/ge/GrandExchangeController.java +++ b/http-service/src/main/java/net/runelite/http/service/ge/GrandExchangeController.java @@ -26,6 +26,7 @@ package net.runelite.http.service.ge; import com.google.gson.Gson; import java.io.IOException; +import java.time.Instant; import java.util.Collection; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -104,6 +105,8 @@ public class GrandExchangeController trade.setUa(request.getHeader("User-Agent")); trade.setWorldType(grandExchangeTrade.getWorldType()); trade.setSeq(grandExchangeTrade.getSeq()); + Instant resetTime = grandExchangeTrade.getResetTime(); + trade.setResetTime(resetTime == null ? 0L : resetTime.getEpochSecond()); String json = GSON.toJson(trade); try (Jedis jedis = redisPool.getResource()) diff --git a/http-service/src/main/java/net/runelite/http/service/ge/Trade.java b/http-service/src/main/java/net/runelite/http/service/ge/Trade.java index bec26b3334..7ad01f322a 100644 --- a/http-service/src/main/java/net/runelite/http/service/ge/Trade.java +++ b/http-service/src/main/java/net/runelite/http/service/ge/Trade.java @@ -47,4 +47,5 @@ class Trade private String ua; private WorldType worldType; private int seq; + private long resetTime; } 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 a7e9ee3c74..4e7886292e 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 @@ -389,6 +389,8 @@ public class GrandExchangePlugin extends Plugin BufferedImage itemImage = itemManager.getImage(offer.getItemId(), offer.getTotalQuantity(), shouldStack); SwingUtilities.invokeLater(() -> panel.getOffersPanel().updateOffer(offerItem, itemImage, offer, slot)); + updateLimitTimer(offer); + submitTrade(slot, offer); updateConfig(slot, offer); @@ -418,6 +420,7 @@ public class GrandExchangePlugin extends Plugin grandExchangeTrade.setWorldType(getGeWorldType()); grandExchangeTrade.setLogin(login); grandExchangeTrade.setSeq(tradeSeq++); + grandExchangeTrade.setResetTime(getLimitResetTime(offer.getItemId())); log.debug("Submitting new trade: {}", grandExchangeTrade); grandExchangeClient.submit(grandExchangeTrade); @@ -450,6 +453,7 @@ public class GrandExchangePlugin extends Plugin grandExchangeTrade.setWorldType(getGeWorldType()); grandExchangeTrade.setLogin(login); grandExchangeTrade.setSeq(tradeSeq++); + grandExchangeTrade.setResetTime(getLimitResetTime(offer.getItemId())); log.debug("Submitting cancelled: {}", grandExchangeTrade); grandExchangeClient.submit(grandExchangeTrade); @@ -476,6 +480,7 @@ public class GrandExchangePlugin extends Plugin grandExchangeTrade.setWorldType(getGeWorldType()); grandExchangeTrade.setLogin(login); grandExchangeTrade.setSeq(tradeSeq++); + grandExchangeTrade.setResetTime(getLimitResetTime(offer.getItemId())); log.debug("Submitting trade: {}", grandExchangeTrade); grandExchangeClient.submit(grandExchangeTrade); @@ -514,8 +519,6 @@ public class GrandExchangePlugin extends Plugin savedOffer.setSpent(offer.getSpent()); savedOffer.setState(offer.getState()); setOffer(slot, savedOffer); - - updateLimitTimer(offer); } }