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 a3ef3f484d..00a06f195e 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 @@ -35,7 +35,7 @@ public class GrandExchangeTrade private int itemId; private int quantity; private int total; - private int price; + private int spent; private int offer; private WorldType worldType; } 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 6219b00b61..2c2cc71f4c 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 @@ -79,7 +79,9 @@ public class GrandExchangeController Integer userId = session == null ? null : session.getUser(); // We don't keep track of pending trades in the web UI, so only add cancelled or completed trades - if (userId != null && (grandExchangeTrade.isCancel() || grandExchangeTrade.getQuantity() == grandExchangeTrade.getTotal())) + if (userId != null && + grandExchangeTrade.getQuantity() > 0 && + (grandExchangeTrade.isCancel() || grandExchangeTrade.getQuantity() == grandExchangeTrade.getTotal())) { grandExchangeService.add(userId, grandExchangeTrade); } @@ -90,7 +92,7 @@ public class GrandExchangeController trade.setItemId(grandExchangeTrade.getItemId()); trade.setQuantity(grandExchangeTrade.getQuantity()); trade.setTotal(grandExchangeTrade.getTotal()); - trade.setPrice(grandExchangeTrade.getPrice()); + trade.setSpent(grandExchangeTrade.getSpent()); trade.setOffer(grandExchangeTrade.getOffer()); trade.setTime((int) (System.currentTimeMillis() / 1000L)); trade.setMachineId(request.getHeader(RuneLiteAPI.RUNELITE_MACHINEID)); diff --git a/http-service/src/main/java/net/runelite/http/service/ge/GrandExchangeService.java b/http-service/src/main/java/net/runelite/http/service/ge/GrandExchangeService.java index f53a9095c6..e5acbc6aa7 100644 --- a/http-service/src/main/java/net/runelite/http/service/ge/GrandExchangeService.java +++ b/http-service/src/main/java/net/runelite/http/service/ge/GrandExchangeService.java @@ -80,7 +80,7 @@ public class GrandExchangeService .addParameter("action", grandExchangeTrade.isBuy() ? "BUY" : "SELL") .addParameter("item", grandExchangeTrade.getItemId()) .addParameter("quantity", grandExchangeTrade.getQuantity()) - .addParameter("price", grandExchangeTrade.getPrice()) + .addParameter("price", grandExchangeTrade.getSpent() / grandExchangeTrade.getQuantity()) .executeUpdate(); } } 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 00c549bdfa..62fa30f6ac 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 @@ -35,7 +35,7 @@ class Trade private int itemId; private int quantity; private int total; - private int price; + private int spent; private int offer; private int time; private String machineId; 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 1b78aad7e8..54cc559e0a 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 @@ -404,7 +404,7 @@ public class GrandExchangePlugin extends Plugin grandExchangeTrade.setItemId(offer.getItemId()); grandExchangeTrade.setQuantity(0); grandExchangeTrade.setTotal(offer.getTotalQuantity()); - grandExchangeTrade.setPrice(0); + grandExchangeTrade.setSpent(0); grandExchangeTrade.setOffer(offer.getPrice()); grandExchangeTrade.setWorldType(getGeWorldType()); @@ -433,7 +433,7 @@ public class GrandExchangePlugin extends Plugin grandExchangeTrade.setItemId(offer.getItemId()); grandExchangeTrade.setQuantity(offer.getQuantitySold()); grandExchangeTrade.setTotal(offer.getTotalQuantity()); - grandExchangeTrade.setPrice(offer.getQuantitySold() > 0 ? offer.getSpent() / offer.getQuantitySold() : 0); + grandExchangeTrade.setSpent(offer.getSpent()); grandExchangeTrade.setOffer(offer.getPrice()); grandExchangeTrade.setWorldType(getGeWorldType()); @@ -443,16 +443,8 @@ public class GrandExchangePlugin extends Plugin } final int qty = offer.getQuantitySold() - savedOffer.getQuantitySold(); - if (qty <= 0) - { - return; - } - - // offer.getPrice() is the price of the offer, not necessarily what the item bought at, so we compute it - // based on how much was spent & the qty final int dspent = offer.getSpent() - savedOffer.getSpent(); - final int price = dspent / qty; - if (price <= 0) + if (qty <= 0 || dspent <= 0) { return; } @@ -462,7 +454,7 @@ public class GrandExchangePlugin extends Plugin grandExchangeTrade.setItemId(offer.getItemId()); grandExchangeTrade.setQuantity(qty); grandExchangeTrade.setTotal(offer.getTotalQuantity()); - grandExchangeTrade.setPrice(price); + grandExchangeTrade.setSpent(dspent); grandExchangeTrade.setOffer(offer.getPrice()); grandExchangeTrade.setWorldType(getGeWorldType()); diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/grandexchange/GrandExchangePluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/grandexchange/GrandExchangePluginTest.java index d4afc5cf0e..9f638b837d 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/grandexchange/GrandExchangePluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/grandexchange/GrandExchangePluginTest.java @@ -159,7 +159,7 @@ public class GrandExchangePluginTest assertEquals(ItemID.ABYSSAL_WHIP, trade.getItemId()); assertEquals(2, trade.getQuantity()); assertEquals(10, trade.getTotal()); - assertEquals(10, trade.getPrice()); + assertEquals(20, trade.getSpent()); } @Test @@ -216,6 +216,6 @@ public class GrandExchangePluginTest assertEquals(ItemID.ABYSSAL_WHIP, trade.getItemId()); assertEquals(1, trade.getQuantity()); assertEquals(10, trade.getTotal()); - assertEquals(25, trade.getPrice()); + assertEquals(25, trade.getSpent()); } } \ No newline at end of file