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 slot;
private WorldType worldType;
private int seq;
}

View File

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

View File

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

View File

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