diff --git a/build-number.txt b/build-number.txt index fdbec449..7aba66c1 100644 --- a/build-number.txt +++ b/build-number.txt @@ -1 +1 @@ -1459 \ No newline at end of file +1461 \ No newline at end of file diff --git a/src/main/java/me/chayapak1/chomens_bot/plugins/PlayersDatabasePlugin.java b/src/main/java/me/chayapak1/chomens_bot/plugins/PlayersDatabasePlugin.java index 00e4dccd..037b2f96 100644 --- a/src/main/java/me/chayapak1/chomens_bot/plugins/PlayersDatabasePlugin.java +++ b/src/main/java/me/chayapak1/chomens_bot/plugins/PlayersDatabasePlugin.java @@ -103,7 +103,10 @@ public class PlayersDatabasePlugin extends PlayersPlugin.Listener { final ObjectNode baseObject = JsonNodeFactory.instance.objectNode(); baseObject.put("uuid", target.profile.getIdAsString()); baseObject.set("ips", JsonNodeFactory.instance.objectNode()); - baseObject.set("lastSeen", JsonNodeFactory.instance.objectNode()); + // ||| this will be replaced after the player leaves, it is here + // ||| in case the bot leaves before the player leaves it will + // VVV prevent the last seen entry being empty + baseObject.set("lastSeen", getLastSeenObject()); insertPlayerStatement.setString(2, objectMapper.writeValueAsString(baseObject)); @@ -151,11 +154,9 @@ public class PlayersDatabasePlugin extends PlayersPlugin.Listener { updatePlayerStatement.setString(1, "$.lastSeen"); updatePlayerStatement.setString(2, "$.lastSeen"); - final ObjectNode object = JsonNodeFactory.instance.objectNode(); - object.put("time", Instant.now().toEpochMilli()); - object.put("server", bot.host + ":" + bot.port); + final ObjectNode lastSeenObject = getLastSeenObject(); - updatePlayerStatement.setString(3, objectMapper.writeValueAsString(object)); + updatePlayerStatement.setString(3, objectMapper.writeValueAsString(lastSeenObject)); updatePlayerStatement.setString(4, target.profile.getName()); @@ -165,4 +166,13 @@ public class PlayersDatabasePlugin extends PlayersPlugin.Listener { } }); } + + private ObjectNode getLastSeenObject () { + final ObjectNode object = JsonNodeFactory.instance.objectNode(); + + object.put("time", Instant.now().toEpochMilli()); + object.put("server", bot.host + ":" + bot.port); + + return object; + } }