From aa871dc08092521a8f135ce3facf7443c72e21c9 Mon Sep 17 00:00:00 2001 From: ChomeNS <95471003+ChomeNS@users.noreply.github.com> Date: Tue, 10 Dec 2024 17:37:43 +0700 Subject: [PATCH] fix: more garbage try-catch es --- build-number.txt | 2 +- .../java/me/chayapak1/chomens_bot/Bot.java | 6 ++++- .../plugins/PlayersPersistentDataPlugin.java | 27 ++++++++++++------- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/build-number.txt b/build-number.txt index dd091307..2b7e6090 100644 --- a/build-number.txt +++ b/build-number.txt @@ -1 +1 @@ -1230 \ No newline at end of file +1232 \ No newline at end of file diff --git a/src/main/java/me/chayapak1/chomens_bot/Bot.java b/src/main/java/me/chayapak1/chomens_bot/Bot.java index 7185df70..3981e18e 100644 --- a/src/main/java/me/chayapak1/chomens_bot/Bot.java +++ b/src/main/java/me/chayapak1/chomens_bot/Bot.java @@ -178,7 +178,11 @@ public class Bot { @Override public void packetReceived(Session session, Packet packet) { for (SessionListener listener : listeners) { - listener.packetReceived(session, packet); + try { + listener.packetReceived(session, packet); + } catch (Exception e) { + e.printStackTrace(); + } } if (packet instanceof ClientboundLoginPacket) { 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 621aa5f7..8f45de6b 100644 --- a/src/main/java/me/chayapak1/chomens_bot/plugins/PlayersPersistentDataPlugin.java +++ b/src/main/java/me/chayapak1/chomens_bot/plugins/PlayersPersistentDataPlugin.java @@ -11,6 +11,7 @@ import java.time.Instant; import java.util.concurrent.CompletableFuture; import java.util.concurrent.locks.ReentrantLock; +// this is the most problematic plugin that breaks everything when it crashes public class PlayersPersistentDataPlugin extends PlayersPlugin.Listener { public static ObjectNode playersObject = (ObjectNode) PersistentDataUtilities.getOrDefault("players", JsonNodeFactory.instance.objectNode()); @@ -64,15 +65,17 @@ public class PlayersPersistentDataPlugin extends PlayersPlugin.Listener { // is this bad? private void setPersistentEntry (PlayerEntry target, ObjectNode object) { - lock.lock(); try { + lock.lock(); + playersObject.set(getName(target), object); PersistentDataUtilities.put("players", playersObject); + + lock.unlock(); } catch (Exception e) { e.printStackTrace(); } - lock.unlock(); } private String getName (PlayerEntry target) { @@ -82,19 +85,23 @@ public class PlayersPersistentDataPlugin extends PlayersPlugin.Listener { @Override public void playerLeft(PlayerEntry target) { bot.executorService.submit(() -> { - if (!playersObject.has(getName(target))) return; + try { + 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(); + } catch (Exception e) { + e.printStackTrace(); + } }); } }