From e3340453649b75583790074ef43c4b3ccb15f8f1 Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Sat, 10 Oct 2020 15:43:09 +0200 Subject: [PATCH] Add Whois show Playtime --- src/de/steamwar/bungeecore/BungeeCore.java | 2 +- .../bungeecore/commands/WhoisCommand.java | 52 +++++++++++++++++++ .../steamwar/bungeecore/sql/SteamwarUser.java | 13 +++++ 3 files changed, 66 insertions(+), 1 deletion(-) diff --git a/src/de/steamwar/bungeecore/BungeeCore.java b/src/de/steamwar/bungeecore/BungeeCore.java index 56760a1e..2b3854b8 100644 --- a/src/de/steamwar/bungeecore/BungeeCore.java +++ b/src/de/steamwar/bungeecore/BungeeCore.java @@ -214,7 +214,7 @@ public class BungeeCore extends Plugin { return; } config = ConfigurationProvider.getProvider(YamlConfiguration.class).load(configFile); - }catch(IOException e){ + }catch(Exception e){ log("Could not save/load config.yml", e); ProxyServer.getInstance().stop(); return; diff --git a/src/de/steamwar/bungeecore/commands/WhoisCommand.java b/src/de/steamwar/bungeecore/commands/WhoisCommand.java index 72dad550..11d93bf8 100644 --- a/src/de/steamwar/bungeecore/commands/WhoisCommand.java +++ b/src/de/steamwar/bungeecore/commands/WhoisCommand.java @@ -51,6 +51,7 @@ public class WhoisCommand extends BasicCommand { BungeeCore.send(player, "§7Username§8: §e" + user.getUserName()); BungeeCore.send(player, "§7UUID§8: §e" + user.getUuid().toString(), "", new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, user.getUuid().toString())); BungeeCore.send(player, "§7ID§8: §e" + user.getId()); + BungeeCore.send(player, "§7Online Time§8: §e" + parseTime(user.getOnlinetime())); Team team = Team.get(user.getTeam()); BungeeCore.send(player, "§7Team§8: §e" + team.getTeamName()); @@ -62,4 +63,55 @@ public class WhoisCommand extends BasicCommand { player.sendMessage(user.muteMessage()); } } + + public static String parseTime(int seconds) { + if (seconds < 60) { + return seconds + "s"; + } + int minutes = seconds / 60; + int s = 60 * minutes; + int secondsLeft = seconds - s; + if (minutes < 60) { + if (secondsLeft > 0) { + return String.valueOf(minutes + "m" + " " + secondsLeft + "s"); + } + return String.valueOf(minutes + "m"); + } + if (minutes < 1440) { + String time = ""; + int hours = minutes / 60; + time = hours + "h"; + int inMins = 60 * hours; + int leftOver = minutes - inMins; + if (leftOver >= 1) { + time = time + " " + leftOver + "m"; + } + if (secondsLeft > 0) { + time = time + " " + secondsLeft + "s"; + } + return time; + } + String time = ""; + int days = minutes / 1440; + time = days + "d"; + int inMins = 1440 * days; + int leftOver = minutes - inMins; + if (leftOver >= 1) { + if (leftOver < 60) { + time = time + " " + leftOver + "m"; + } else { + int hours = leftOver / 60; + time = time + " " + hours + "h"; + int hoursInMins = 60 * hours; + int minsLeft = leftOver - hoursInMins; + if (leftOver >= 1) { + time = time + " " + minsLeft + "m"; + } + } + } + if (secondsLeft > 0) { + time = time + " " + secondsLeft + "s"; + } + return time; + } } diff --git a/src/de/steamwar/bungeecore/sql/SteamwarUser.java b/src/de/steamwar/bungeecore/sql/SteamwarUser.java index cb260031..dc68f521 100644 --- a/src/de/steamwar/bungeecore/sql/SteamwarUser.java +++ b/src/de/steamwar/bungeecore/sql/SteamwarUser.java @@ -233,4 +233,17 @@ public class SteamwarUser { throw new SecurityException(e); } } + + public int getOnlinetime() { + ResultSet set = SQL.select("SELECT StartTime, EndTime FROM Session WHERE UserID = ?", id); + long mili = 0; + try { + while (set.next()) { + mili += (set.getTimestamp("EndTime").getTime() - set.getTimestamp("StartTime").getTime()); + } + }catch (SQLException e){ + e.printStackTrace(); + } + return (int) (mili / 1000); + } }