From 6a2e15643f7815bf32e6ff490242ccfbb39157f2 Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 30 May 2020 19:58:20 -0400 Subject: [PATCH] ge plugin: include world type in trades --- .../http/api/ge/GrandExchangeTrade.java | 2 ++ .../service/ge/GrandExchangeController.java | 2 ++ .../net/runelite/http/service/ge/Trade.java | 2 ++ .../grandexchange/GrandExchangePlugin.java | 22 +++++++++++++++++++ .../GrandExchangePluginTest.java | 3 +++ 5 files changed, 31 insertions(+) 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 85dccbc793..a3ef3f484d 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 @@ -25,6 +25,7 @@ package net.runelite.http.api.ge; import lombok.Data; +import net.runelite.http.api.worlds.WorldType; @Data public class GrandExchangeTrade @@ -36,4 +37,5 @@ public class GrandExchangeTrade private int total; private int price; 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 cfba3812fb..2a67655b6a 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 @@ -95,6 +95,8 @@ public class GrandExchangeController trade.setMachineId(request.getHeader(RuneLiteAPI.RUNELITE_MACHINEID)); trade.setUserId(userId); trade.setIp(request.getHeader("X-Forwarded-For")); + trade.setWorldType(grandExchangeTrade.getWorldType()); + 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 e78f2073a3..6e71efbb13 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 @@ -25,6 +25,7 @@ package net.runelite.http.service.ge; import lombok.Data; +import net.runelite.http.api.worlds.WorldType; @Data class Trade @@ -39,4 +40,5 @@ class Trade private String machineId; private Integer userId; private String ip; + private WorldType worldType; } 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 46dbb93c64..b421dd7aaf 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 @@ -43,6 +43,7 @@ import java.time.Instant; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; +import java.util.EnumSet; import java.util.Enumeration; import java.util.List; import java.util.Locale; @@ -102,6 +103,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 net.runelite.http.api.worlds.WorldType; import org.apache.commons.lang3.time.DurationFormatUtils; import org.apache.commons.text.similarity.FuzzyScore; @@ -397,6 +399,7 @@ public class GrandExchangePlugin extends Plugin grandExchangeTrade.setTotal(offer.getTotalQuantity()); grandExchangeTrade.setPrice(0); grandExchangeTrade.setOffer(offer.getPrice()); + grandExchangeTrade.setWorldType(getGeWorldType()); log.debug("Submitting new trade: {}", grandExchangeTrade); grandExchangeClient.submit(grandExchangeTrade); @@ -425,6 +428,7 @@ public class GrandExchangePlugin extends Plugin grandExchangeTrade.setTotal(offer.getTotalQuantity()); grandExchangeTrade.setPrice(offer.getQuantitySold() > 0 ? offer.getSpent() / offer.getQuantitySold() : 0); grandExchangeTrade.setOffer(offer.getPrice()); + grandExchangeTrade.setWorldType(getGeWorldType()); log.debug("Submitting cancelled: {}", grandExchangeTrade); grandExchangeClient.submit(grandExchangeTrade); @@ -453,11 +457,29 @@ public class GrandExchangePlugin extends Plugin grandExchangeTrade.setTotal(offer.getTotalQuantity()); grandExchangeTrade.setPrice(price); grandExchangeTrade.setOffer(offer.getPrice()); + grandExchangeTrade.setWorldType(getGeWorldType()); log.debug("Submitting trade: {}", grandExchangeTrade); grandExchangeClient.submit(grandExchangeTrade); } + private WorldType getGeWorldType() + { + EnumSet worldTypes = client.getWorldType(); + if (worldTypes.contains(net.runelite.api.WorldType.DEADMAN)) + { + return WorldType.DEADMAN; + } + else if (worldTypes.contains(net.runelite.api.WorldType.DEADMAN_TOURNAMENT)) + { + return WorldType.DEADMAN_TOURNAMENT; + } + else + { + return null; + } + } + private void updateConfig(int slot, GrandExchangeOffer offer) { if (offer.getState() == GrandExchangeOfferState.EMPTY) 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 d95df70528..d4afc5cf0e 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 @@ -28,6 +28,7 @@ import com.google.inject.Guice; import com.google.inject.testing.fieldbinder.Bind; import com.google.inject.testing.fieldbinder.BoundFieldModule; import java.util.Arrays; +import java.util.EnumSet; import java.util.List; import java.util.concurrent.ScheduledExecutorService; import javax.inject.Inject; @@ -35,6 +36,7 @@ import net.runelite.api.Client; import net.runelite.api.GrandExchangeOffer; import net.runelite.api.GrandExchangeOfferState; import net.runelite.api.ItemID; +import net.runelite.api.WorldType; import net.runelite.client.Notifier; import net.runelite.client.account.SessionManager; import net.runelite.client.config.ConfigManager; @@ -116,6 +118,7 @@ public class GrandExchangePluginTest { Guice.createInjector(BoundFieldModule.of(this)).injectMembers(this); when(client.getUsername()).thenReturn("adam"); + when(client.getWorldType()).thenReturn(EnumSet.noneOf(WorldType.class)); } @Test