diff --git a/build-number.txt b/build-number.txt index 95fa1c9d..0d30c07f 100644 --- a/build-number.txt +++ b/build-number.txt @@ -1 +1 @@ -1186 \ No newline at end of file +1189 \ 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 3d315f58..69a8a1fb 100644 --- a/src/main/java/me/chayapak1/chomens_bot/plugins/PlayersPersistentDataPlugin.java +++ b/src/main/java/me/chayapak1/chomens_bot/plugins/PlayersPersistentDataPlugin.java @@ -27,27 +27,27 @@ public class PlayersPersistentDataPlugin extends PlayersPlugin.Listener { @Override public synchronized void playerJoined(PlayerEntry target) { - lock.lock(); + bot.executorService.submit(() -> { + try { + lock.lock(); - try { - final JsonNode originalElement = playersObject.get(target.profile.getName()); + final JsonNode originalElement = playersObject.get(target.profile.getName()); - ObjectNode object; + ObjectNode object; + + if (originalElement == null || originalElement.isNull()) { + object = JsonNodeFactory.instance.objectNode(); + object.put("uuid", target.profile.getIdAsString()); + object.set("ips", JsonNodeFactory.instance.objectNode()); + } else if (originalElement instanceof ObjectNode) { + object = (ObjectNode) originalElement; + } else { + lock.unlock(); + return; + } - if (originalElement == null || originalElement.isNull()) { - object = JsonNodeFactory.instance.objectNode(); - object.put("uuid", target.profile.getIdAsString()); - object.set("ips", JsonNodeFactory.instance.objectNode()); - } else if (originalElement instanceof ObjectNode) { - object = (ObjectNode) originalElement; - } else { lock.unlock(); - return; - } - lock.unlock(); - - bot.executorService.submit(() -> { final CompletableFuture future = bot.players.getPlayerIP(target); if (future == null) { @@ -66,24 +66,28 @@ public class PlayersPersistentDataPlugin extends PlayersPlugin.Listener { return output; }); - }); + } catch (Exception e) { + e.printStackTrace(); + } + }); + } + + // is this bad? + private synchronized void setPersistentEntry (PlayerEntry target, ObjectNode object) { + try { + lock.lock(); + + playersObject.set(getName(target), object); + + PersistentDataUtilities.put("players", playersObject); + + lock.unlock(); } catch (Exception e) { e.printStackTrace(); } } - // is this bad? - private synchronized void setPersistentEntry (PlayerEntry target, ObjectNode object) { - lock.lock(); - - playersObject.set(getName(target), object); - - PersistentDataUtilities.put("players", playersObject); - - lock.unlock(); - } - - private String getName(PlayerEntry target) { + private String getName (PlayerEntry target) { return bot.options.creayun ? target.profile.getName().replaceAll("ยง.", "") : target.profile.getName(); } 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..fcfdf86f 100644 --- a/src/main/java/me/chayapak1/chomens_bot/plugins/PlayersPlugin.java +++ b/src/main/java/me/chayapak1/chomens_bot/plugins/PlayersPlugin.java @@ -149,7 +149,13 @@ public class PlayersPlugin extends Bot.Listener { list.add(target); if (duplicate == null) { - for (Listener listener : listeners) { listener.playerJoined(target); } + for (Listener listener : listeners) { + try { + listener.playerJoined(target); + } catch (Exception e) { + e.printStackTrace(); + } + } } else { for (Listener listener : listeners) { listener.playerUnVanished(target); } }