From 2c517b73260e19a1a1853eb85c2e11e56eaec3f1 Mon Sep 17 00:00:00 2001 From: ChomeNS <95471003+ChomeNS@users.noreply.github.com> Date: Thu, 5 Dec 2024 14:47:17 +0700 Subject: [PATCH] fix: fix for unlimited --- build-number.txt | 2 +- .../plugins/PlayersPersistentDataPlugin.java | 27 +++++++++---------- .../chomens_bot/plugins/PlayersPlugin.java | 3 +++ 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/build-number.txt b/build-number.txt index 51b4bee7..1f168c59 100644 --- a/build-number.txt +++ b/build-number.txt @@ -1 +1 @@ -1194 \ No newline at end of file +1199 \ No newline at end of file diff --git a/src/main/java/me/chayapak1/chomens_bot/plugins/PlayersPersistentDataPlugin.java b/src/main/java/me/chayapak1/chomens_bot/plugins/PlayersPersistentDataPlugin.java index 706806a8..621aa5f7 100644 --- a/src/main/java/me/chayapak1/chomens_bot/plugins/PlayersPersistentDataPlugin.java +++ b/src/main/java/me/chayapak1/chomens_bot/plugins/PlayersPersistentDataPlugin.java @@ -9,7 +9,6 @@ import me.chayapak1.chomens_bot.util.PersistentDataUtilities; import java.time.Instant; import java.util.concurrent.CompletableFuture; -import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantLock; public class PlayersPersistentDataPlugin extends PlayersPlugin.Listener { @@ -49,8 +48,6 @@ public class PlayersPersistentDataPlugin extends PlayersPlugin.Listener { return; } - future.completeOnTimeout(null, 5, TimeUnit.SECONDS); - future.thenApplyAsync(output -> { if (output != null) { ((ObjectNode) object.get("ips")).put(bot.host + ":" + bot.port, output); @@ -66,7 +63,7 @@ public class PlayersPersistentDataPlugin extends PlayersPlugin.Listener { } // is this bad? - private synchronized void setPersistentEntry (PlayerEntry target, ObjectNode object) { + private void setPersistentEntry (PlayerEntry target, ObjectNode object) { lock.lock(); try { playersObject.set(getName(target), object); @@ -83,21 +80,21 @@ public class PlayersPersistentDataPlugin extends PlayersPlugin.Listener { } @Override - public synchronized void playerLeft(PlayerEntry target) { - lock.lock(); + public void playerLeft(PlayerEntry target) { + bot.executorService.submit(() -> { + if (!playersObject.has(getName(target))) return; - if (!playersObject.has(getName(target))) return; + final ObjectNode player = (ObjectNode) playersObject.get(getName(target)); - final ObjectNode player = (ObjectNode) playersObject.get(getName(target)); + final ObjectNode object = JsonNodeFactory.instance.objectNode(); + object.put("time", Instant.now().toEpochMilli()); + object.put("server", bot.host + ":" + bot.port); - final ObjectNode object = JsonNodeFactory.instance.objectNode(); - object.put("time", Instant.now().toEpochMilli()); - object.put("server", bot.host + ":" + bot.port); + player.set("lastSeen", object); - player.set("lastSeen", object); + PersistentDataUtilities.put("players", playersObject); - PersistentDataUtilities.put("players", playersObject); - - lock.unlock(); + lock.unlock(); + }); } } diff --git a/src/main/java/me/chayapak1/chomens_bot/plugins/PlayersPlugin.java b/src/main/java/me/chayapak1/chomens_bot/plugins/PlayersPlugin.java index 2cfb839c..6d36e950 100644 --- a/src/main/java/me/chayapak1/chomens_bot/plugins/PlayersPlugin.java +++ b/src/main/java/me/chayapak1/chomens_bot/plugins/PlayersPlugin.java @@ -19,6 +19,7 @@ import java.util.EnumSet; import java.util.List; import java.util.UUID; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.TimeUnit; public class PlayersPlugin extends Bot.Listener { private final Bot bot; @@ -68,6 +69,8 @@ public class PlayersPlugin extends Bot.Listener { if (trackedCoreFuture == null) return null; + trackedCoreFuture.completeOnTimeout(null, 5, TimeUnit.SECONDS); + trackedCoreFuture.thenApplyAsync(output -> { final List children = output.children();