ge: add trade seq number

Occasionally the trades are delivered out of order, this allows us to reassemble them in the correct order
This commit is contained in:
Adam
2020-12-25 18:01:58 -05:00
parent 2c8984e380
commit 9a322c70d0
4 changed files with 10 additions and 0 deletions

View File

@@ -42,4 +42,5 @@ public class GrandExchangeTrade
private int offer; private int offer;
private int slot; private int slot;
private WorldType worldType; private WorldType worldType;
private int seq;
} }

View File

@@ -103,6 +103,7 @@ public class GrandExchangeController
trade.setIp(request.getHeader("X-Forwarded-For")); trade.setIp(request.getHeader("X-Forwarded-For"));
trade.setUa(request.getHeader("User-Agent")); trade.setUa(request.getHeader("User-Agent"));
trade.setWorldType(grandExchangeTrade.getWorldType()); trade.setWorldType(grandExchangeTrade.getWorldType());
trade.setSeq(grandExchangeTrade.getSeq());
String json = GSON.toJson(trade); String json = GSON.toJson(trade);
try (Jedis jedis = redisPool.getResource()) try (Jedis jedis = redisPool.getResource())

View File

@@ -46,4 +46,5 @@ class Trade
private String ip; private String ip;
private String ua; private String ua;
private WorldType worldType; private WorldType worldType;
private int seq;
} }

View File

@@ -201,6 +201,7 @@ public class GrandExchangePlugin extends Plugin
private String machineUuid; private String machineUuid;
private String lastUsername; private String lastUsername;
private int tradeSeq;
/** /**
* Logic from {@link org.apache.commons.text.similarity.FuzzyScore} * Logic from {@link org.apache.commons.text.similarity.FuzzyScore}
@@ -330,6 +331,7 @@ public class GrandExchangePlugin extends Plugin
grandExchangeText = null; grandExchangeText = null;
grandExchangeItem = null; grandExchangeItem = null;
lastUsername = machineUuid = null; lastUsername = machineUuid = null;
tradeSeq = 0;
} }
@Subscribe @Subscribe
@@ -415,6 +417,7 @@ public class GrandExchangePlugin extends Plugin
grandExchangeTrade.setSlot(slot); grandExchangeTrade.setSlot(slot);
grandExchangeTrade.setWorldType(getGeWorldType()); grandExchangeTrade.setWorldType(getGeWorldType());
grandExchangeTrade.setLogin(login); grandExchangeTrade.setLogin(login);
grandExchangeTrade.setSeq(tradeSeq++);
log.debug("Submitting new trade: {}", grandExchangeTrade); log.debug("Submitting new trade: {}", grandExchangeTrade);
grandExchangeClient.submit(grandExchangeTrade); grandExchangeClient.submit(grandExchangeTrade);
@@ -446,6 +449,7 @@ public class GrandExchangePlugin extends Plugin
grandExchangeTrade.setSlot(slot); grandExchangeTrade.setSlot(slot);
grandExchangeTrade.setWorldType(getGeWorldType()); grandExchangeTrade.setWorldType(getGeWorldType());
grandExchangeTrade.setLogin(login); grandExchangeTrade.setLogin(login);
grandExchangeTrade.setSeq(tradeSeq++);
log.debug("Submitting cancelled: {}", grandExchangeTrade); log.debug("Submitting cancelled: {}", grandExchangeTrade);
grandExchangeClient.submit(grandExchangeTrade); grandExchangeClient.submit(grandExchangeTrade);
@@ -471,6 +475,7 @@ public class GrandExchangePlugin extends Plugin
grandExchangeTrade.setSlot(slot); grandExchangeTrade.setSlot(slot);
grandExchangeTrade.setWorldType(getGeWorldType()); grandExchangeTrade.setWorldType(getGeWorldType());
grandExchangeTrade.setLogin(login); grandExchangeTrade.setLogin(login);
grandExchangeTrade.setSeq(tradeSeq++);
log.debug("Submitting trade: {}", grandExchangeTrade); log.debug("Submitting trade: {}", grandExchangeTrade);
grandExchangeClient.submit(grandExchangeTrade); grandExchangeClient.submit(grandExchangeTrade);
@@ -958,12 +963,14 @@ public class GrandExchangePlugin extends Plugin
} }
hasher.putUnencodedChars(username); hasher.putUnencodedChars(username);
machineUuid = hasher.hash().toString(); machineUuid = hasher.hash().toString();
tradeSeq = 0;
return machineUuid; return machineUuid;
} }
catch (SocketException ex) catch (SocketException ex)
{ {
log.debug("unable to generate machine id", ex); log.debug("unable to generate machine id", ex);
machineUuid = null; machineUuid = null;
tradeSeq = 0;
return null; return null;
} }
} }