ge plugin: include world type in trades
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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())
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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<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)
|
||||
{
|
||||
if (offer.getState() == GrandExchangeOfferState.EMPTY)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user