ge plugin: include world type in trades

This commit is contained in:
Adam
2020-05-30 19:58:20 -04:00
parent 44ea837346
commit 6a2e15643f
5 changed files with 31 additions and 0 deletions

View File

@@ -25,6 +25,7 @@
package net.runelite.http.api.ge; package net.runelite.http.api.ge;
import lombok.Data; import lombok.Data;
import net.runelite.http.api.worlds.WorldType;
@Data @Data
public class GrandExchangeTrade public class GrandExchangeTrade
@@ -36,4 +37,5 @@ public class GrandExchangeTrade
private int total; private int total;
private int price; private int price;
private int offer; private int offer;
private WorldType worldType;
} }

View File

@@ -95,6 +95,8 @@ public class GrandExchangeController
trade.setMachineId(request.getHeader(RuneLiteAPI.RUNELITE_MACHINEID)); trade.setMachineId(request.getHeader(RuneLiteAPI.RUNELITE_MACHINEID));
trade.setUserId(userId); trade.setUserId(userId);
trade.setIp(request.getHeader("X-Forwarded-For")); trade.setIp(request.getHeader("X-Forwarded-For"));
trade.setWorldType(grandExchangeTrade.getWorldType());
String json = GSON.toJson(trade); String json = GSON.toJson(trade);
try (Jedis jedis = redisPool.getResource()) try (Jedis jedis = redisPool.getResource())
{ {

View File

@@ -25,6 +25,7 @@
package net.runelite.http.service.ge; package net.runelite.http.service.ge;
import lombok.Data; import lombok.Data;
import net.runelite.http.api.worlds.WorldType;
@Data @Data
class Trade class Trade
@@ -39,4 +40,5 @@ class Trade
private String machineId; private String machineId;
private Integer userId; private Integer userId;
private String ip; private String ip;
private WorldType worldType;
} }

View File

@@ -43,6 +43,7 @@ import java.time.Instant;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.EnumSet;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.List; import java.util.List;
import java.util.Locale; 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.item.ItemStats;
import net.runelite.http.api.osbuddy.OSBGrandExchangeClient; import net.runelite.http.api.osbuddy.OSBGrandExchangeClient;
import net.runelite.http.api.osbuddy.OSBGrandExchangeResult; 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.lang3.time.DurationFormatUtils;
import org.apache.commons.text.similarity.FuzzyScore; import org.apache.commons.text.similarity.FuzzyScore;
@@ -397,6 +399,7 @@ public class GrandExchangePlugin extends Plugin
grandExchangeTrade.setTotal(offer.getTotalQuantity()); grandExchangeTrade.setTotal(offer.getTotalQuantity());
grandExchangeTrade.setPrice(0); grandExchangeTrade.setPrice(0);
grandExchangeTrade.setOffer(offer.getPrice()); grandExchangeTrade.setOffer(offer.getPrice());
grandExchangeTrade.setWorldType(getGeWorldType());
log.debug("Submitting new trade: {}", grandExchangeTrade); log.debug("Submitting new trade: {}", grandExchangeTrade);
grandExchangeClient.submit(grandExchangeTrade); grandExchangeClient.submit(grandExchangeTrade);
@@ -425,6 +428,7 @@ public class GrandExchangePlugin extends Plugin
grandExchangeTrade.setTotal(offer.getTotalQuantity()); grandExchangeTrade.setTotal(offer.getTotalQuantity());
grandExchangeTrade.setPrice(offer.getQuantitySold() > 0 ? offer.getSpent() / offer.getQuantitySold() : 0); grandExchangeTrade.setPrice(offer.getQuantitySold() > 0 ? offer.getSpent() / offer.getQuantitySold() : 0);
grandExchangeTrade.setOffer(offer.getPrice()); grandExchangeTrade.setOffer(offer.getPrice());
grandExchangeTrade.setWorldType(getGeWorldType());
log.debug("Submitting cancelled: {}", grandExchangeTrade); log.debug("Submitting cancelled: {}", grandExchangeTrade);
grandExchangeClient.submit(grandExchangeTrade); grandExchangeClient.submit(grandExchangeTrade);
@@ -453,11 +457,29 @@ public class GrandExchangePlugin extends Plugin
grandExchangeTrade.setTotal(offer.getTotalQuantity()); grandExchangeTrade.setTotal(offer.getTotalQuantity());
grandExchangeTrade.setPrice(price); grandExchangeTrade.setPrice(price);
grandExchangeTrade.setOffer(offer.getPrice()); grandExchangeTrade.setOffer(offer.getPrice());
grandExchangeTrade.setWorldType(getGeWorldType());
log.debug("Submitting trade: {}", grandExchangeTrade); log.debug("Submitting trade: {}", grandExchangeTrade);
grandExchangeClient.submit(grandExchangeTrade); grandExchangeClient.submit(grandExchangeTrade);
} }
private WorldType getGeWorldType()
{
EnumSet<net.runelite.api.WorldType> 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) private void updateConfig(int slot, GrandExchangeOffer offer)
{ {
if (offer.getState() == GrandExchangeOfferState.EMPTY) if (offer.getState() == GrandExchangeOfferState.EMPTY)

View File

@@ -28,6 +28,7 @@ import com.google.inject.Guice;
import com.google.inject.testing.fieldbinder.Bind; import com.google.inject.testing.fieldbinder.Bind;
import com.google.inject.testing.fieldbinder.BoundFieldModule; import com.google.inject.testing.fieldbinder.BoundFieldModule;
import java.util.Arrays; import java.util.Arrays;
import java.util.EnumSet;
import java.util.List; import java.util.List;
import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledExecutorService;
import javax.inject.Inject; import javax.inject.Inject;
@@ -35,6 +36,7 @@ import net.runelite.api.Client;
import net.runelite.api.GrandExchangeOffer; import net.runelite.api.GrandExchangeOffer;
import net.runelite.api.GrandExchangeOfferState; import net.runelite.api.GrandExchangeOfferState;
import net.runelite.api.ItemID; import net.runelite.api.ItemID;
import net.runelite.api.WorldType;
import net.runelite.client.Notifier; import net.runelite.client.Notifier;
import net.runelite.client.account.SessionManager; import net.runelite.client.account.SessionManager;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
@@ -116,6 +118,7 @@ public class GrandExchangePluginTest
{ {
Guice.createInjector(BoundFieldModule.of(this)).injectMembers(this); Guice.createInjector(BoundFieldModule.of(this)).injectMembers(this);
when(client.getUsername()).thenReturn("adam"); when(client.getUsername()).thenReturn("adam");
when(client.getWorldType()).thenReturn(EnumSet.noneOf(WorldType.class));
} }
@Test @Test