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 0ab9260f7f..789ca45e63 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 @@ -42,4 +42,5 @@ public class GrandExchangeTrade private int offer; private int slot; private WorldType worldType; + private int seq; } 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 a8922a27be..73d78986e6 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 @@ -103,6 +103,7 @@ public class GrandExchangeController trade.setIp(request.getHeader("X-Forwarded-For")); trade.setUa(request.getHeader("User-Agent")); trade.setWorldType(grandExchangeTrade.getWorldType()); + trade.setSeq(grandExchangeTrade.getSeq()); 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 56cdc304a0..bec26b3334 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 @@ -46,4 +46,5 @@ class Trade private String ip; private String ua; private WorldType worldType; + private int seq; } 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 95a154221e..a7e9ee3c74 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 @@ -201,6 +201,7 @@ public class GrandExchangePlugin extends Plugin private String machineUuid; private String lastUsername; + private int tradeSeq; /** * Logic from {@link org.apache.commons.text.similarity.FuzzyScore} @@ -330,6 +331,7 @@ public class GrandExchangePlugin extends Plugin grandExchangeText = null; grandExchangeItem = null; lastUsername = machineUuid = null; + tradeSeq = 0; } @Subscribe @@ -415,6 +417,7 @@ public class GrandExchangePlugin extends Plugin grandExchangeTrade.setSlot(slot); grandExchangeTrade.setWorldType(getGeWorldType()); grandExchangeTrade.setLogin(login); + grandExchangeTrade.setSeq(tradeSeq++); log.debug("Submitting new trade: {}", grandExchangeTrade); grandExchangeClient.submit(grandExchangeTrade); @@ -446,6 +449,7 @@ public class GrandExchangePlugin extends Plugin grandExchangeTrade.setSlot(slot); grandExchangeTrade.setWorldType(getGeWorldType()); grandExchangeTrade.setLogin(login); + grandExchangeTrade.setSeq(tradeSeq++); log.debug("Submitting cancelled: {}", grandExchangeTrade); grandExchangeClient.submit(grandExchangeTrade); @@ -471,6 +475,7 @@ public class GrandExchangePlugin extends Plugin grandExchangeTrade.setSlot(slot); grandExchangeTrade.setWorldType(getGeWorldType()); grandExchangeTrade.setLogin(login); + grandExchangeTrade.setSeq(tradeSeq++); log.debug("Submitting trade: {}", grandExchangeTrade); grandExchangeClient.submit(grandExchangeTrade); @@ -958,12 +963,14 @@ public class GrandExchangePlugin extends Plugin } hasher.putUnencodedChars(username); machineUuid = hasher.hash().toString(); + tradeSeq = 0; return machineUuid; } catch (SocketException ex) { log.debug("unable to generate machine id", ex); machineUuid = null; + tradeSeq = 0; return null; } }