From f8e4b11c901594cc7cb14963a74c4c3a9ddce60a Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Wed, 22 Dec 2021 20:59:24 +0100 Subject: [PATCH] Added last seen queries --- src/main/java/com/alttd/database/Queries.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/src/main/java/com/alttd/database/Queries.java b/src/main/java/com/alttd/database/Queries.java index 93860f0..4cf7636 100644 --- a/src/main/java/com/alttd/database/Queries.java +++ b/src/main/java/com/alttd/database/Queries.java @@ -73,6 +73,7 @@ public class Queries { e.printStackTrace(); return (false); } + setLastUpdated(uuid); return (true); } @@ -126,4 +127,48 @@ public class Queries { } return (null); } + + /** + * @param uuid + */ + private static void setLastUpdated(UUID uuid) { + String sql = "INSERT INTO user_seen " + + "(uuid, seen) " + + "VALUES (?, ?) " + + "ON DUPLICATE KEY UPDATE seen = ?"; + + try { + PreparedStatement preparedStatement = Database.connection.prepareStatement(sql); + preparedStatement.setString(1, uuid.toString()); + preparedStatement.setLong(2, new Date().getTime()); + preparedStatement.execute(); + } catch (SQLException e) { + e.printStackTrace(); + Logger.warning("Unable to set last updated time for %.", uuid.toString()); + } + } + + /** + * @param uuid UUID of user to get last seen for + * + * @return minutes since last seen + */ + public static int getMinutesSinceUpdated(UUID uuid) { + String sql = "SELECT seen FROM user_seen WHERE uuid = ?"; + + try { + PreparedStatement preparedStatement = Database.connection.prepareStatement(sql); + preparedStatement.setString(1, uuid.toString()); + + ResultSet resultSet = preparedStatement.executeQuery(); + long time = resultSet.getLong("seen"); + if (time != 0) + return (int) TimeUnit.MILLISECONDS.toMinutes(new Date().getTime() - time); + } catch (SQLException e) { + e.printStackTrace(); + Logger.warning("Unable to set last updated time for %.", uuid.toString()); + } + + return (0); + } }