diff --git a/build-number.txt b/build-number.txt index 77e48ce7..51b4bee7 100644 --- a/build-number.txt +++ b/build-number.txt @@ -1 +1 @@ -1193 \ No newline at end of file +1194 \ No newline at end of file diff --git a/src/main/java/me/chayapak1/chomens_bot/plugins/CorePlugin.java b/src/main/java/me/chayapak1/chomens_bot/plugins/CorePlugin.java index d679f31b..447a80f0 100644 --- a/src/main/java/me/chayapak1/chomens_bot/plugins/CorePlugin.java +++ b/src/main/java/me/chayapak1/chomens_bot/plugins/CorePlugin.java @@ -55,8 +55,7 @@ public class CorePlugin extends PositionPlugin.Listener { public final List placeBlockQueue = Collections.synchronizedList(new ArrayList<>()); private int nextTransactionId = 0; - private final Map> transactions = new HashMap<>(); - + private final Map> transactions = new HashMap<>(); private final List secrets = new ArrayList<>(); private int commandsPerSecond = 0; @@ -100,7 +99,11 @@ public class CorePlugin extends PositionPlugin.Listener { public void disconnected (DisconnectedEvent event) { ready = false; - refillTask.cancel(true); + refillTask.cancel(false); + + nextTransactionId = 0; + transactions.clear(); + secrets.clear(); reset(); } @@ -221,7 +224,7 @@ public class CorePlugin extends PositionPlugin.Listener { run(command); - final int transactionId = nextTransactionId++; + final long transactionId = nextTransactionId++; final CompletableFuture future = new CompletableFuture<>(); transactions.put(transactionId, future); @@ -255,7 +258,11 @@ public class CorePlugin extends PositionPlugin.Listener { if (!(component instanceof TextComponent textComponent)) return true; try { - if (!secrets.contains(Double.parseDouble(textComponent.content()))) return true; + final double inputSecret = Double.parseDouble(textComponent.content()); + + if (!secrets.contains(inputSecret)) return true; + + secrets.remove(inputSecret); final List children = component.children(); @@ -263,7 +270,9 @@ public class CorePlugin extends PositionPlugin.Listener { if (children.size() == 1) return false; - final int transactionId = Integer.parseInt(((TextComponent) children.get(0)).content()); + if (!(children.get(0) instanceof TextComponent) || !(children.get(1) instanceof TextComponent)) return true; + + final long transactionId = Integer.parseInt(((TextComponent) children.get(0)).content()); if (!transactions.containsKey(transactionId)) return true;