From 4be90f69f2b465b5586a837e681fe5f4b06085d9 Mon Sep 17 00:00:00 2001 From: Rsl1122 Date: Fri, 6 Apr 2018 10:17:34 +0300 Subject: [PATCH] Added AFK time to Inspect page (Sessions, Overview) --- .../java/com/djrapitops/plan/data/PlayerProfile.java | 4 ++++ .../system/webserver/pages/parsing/InspectPage.java | 10 ++++++++++ .../plan/utilities/html/structure/ServerAccordion.java | 2 ++ .../html/structure/SessionTabStructureCreator.java | 3 +++ 4 files changed, 19 insertions(+) diff --git a/Plan/src/main/java/com/djrapitops/plan/data/PlayerProfile.java b/Plan/src/main/java/com/djrapitops/plan/data/PlayerProfile.java index 1206073c9..7ee8a0517 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/PlayerProfile.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/PlayerProfile.java @@ -434,6 +434,10 @@ public class PlayerProfile { return oppedOnServers.contains(ServerInfo.getServerUUID()); } + public static long getAFKTime(Stream sessions) { + return sessions.mapToLong(Session::getAfkLength).sum(); + } + public void calculateWorldTimesPerServer() { if (worldTimesMap.containsKey(ServerInfo.getServerUUID())) { return; diff --git a/Plan/src/main/java/com/djrapitops/plan/system/webserver/pages/parsing/InspectPage.java b/Plan/src/main/java/com/djrapitops/plan/system/webserver/pages/parsing/InspectPage.java index cc13f25e7..680c820d2 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/webserver/pages/parsing/InspectPage.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/webserver/pages/parsing/InspectPage.java @@ -149,6 +149,11 @@ public class InspectPage extends Page { long playtimeWeek = PlayerProfile.getPlaytime(sessionsWeek.stream()); long playtimeMonth = PlayerProfile.getPlaytime(sessionsMonth.stream()); + long afk = PlayerProfile.getAFKTime(allSessions.stream()); + long afkDay = PlayerProfile.getAFKTime(sessionsDay.stream()); + long afkWeek = PlayerProfile.getAFKTime(sessionsWeek.stream()); + long afkMonth = PlayerProfile.getAFKTime(sessionsMonth.stream()); + long longestSession = PlayerProfile.getLongestSession(allSessions.stream()); long longestSessionDay = PlayerProfile.getLongestSession(sessionsDay.stream()); long longestSessionWeek = PlayerProfile.getLongestSession(sessionsWeek.stream()); @@ -174,6 +179,11 @@ public class InspectPage extends Page { addValue("playtimeWeek", playtimeWeek > 0L ? FormatUtils.formatTimeAmount(playtimeWeek) : "-"); addValue("playtimeMonth", playtimeMonth > 0L ? FormatUtils.formatTimeAmount(playtimeMonth) : "-"); + addValue("afkTotal", afk > 0L ? FormatUtils.formatTimeAmount(afk) : "-"); + addValue("afkDay", afkDay > 0L ? FormatUtils.formatTimeAmount(afkDay) : "-"); + addValue("afkWeek", afkWeek > 0L ? FormatUtils.formatTimeAmount(afkWeek) : "-"); + addValue("afkMonth", afkMonth > 0L ? FormatUtils.formatTimeAmount(afkMonth) : "-"); + addValue("sessionLengthLongest", longestSession > 0L ? FormatUtils.formatTimeAmount(longestSession) : "-"); addValue("sessionLongestDay", longestSessionDay > 0L ? FormatUtils.formatTimeAmount(longestSessionDay) : "-"); addValue("sessionLongestWeek", longestSessionWeek > 0L ? FormatUtils.formatTimeAmount(longestSessionWeek) : "-"); diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/html/structure/ServerAccordion.java b/Plan/src/main/java/com/djrapitops/plan/utilities/html/structure/ServerAccordion.java index 48040f21d..9ab3ddd31 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/html/structure/ServerAccordion.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/html/structure/ServerAccordion.java @@ -53,6 +53,7 @@ public class ServerAccordion extends AbstractAccordion { List sessions = profile.getSessions(serverUUID); long playtime = PlayerProfile.getPlaytime(sessions.stream()); + long afk = PlayerProfile.getAFKTime(sessions.stream()); int sessionCount = sessions.size(); long avgSession = MathUtils.averageLong(playtime, sessionCount); long sessionMedian = PlayerProfile.getSessionMedian(sessions.stream()); @@ -81,6 +82,7 @@ public class ServerAccordion extends AbstractAccordion { String leftSide = new AccordionElementContentBuilder() .addRowBold("teal", "calendar-check-o", "Sessions", sessionCount) .addRowBold("green", "clock-o", "Server Playtime", play) + .addRowBold("grey", "clock-o", "Time AFK", afk) .addRowBold("teal", "clock-o", "Longest Session", longest) .addRowBold("teal", "clock-o", "Session Median", median) .addBreak() diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/html/structure/SessionTabStructureCreator.java b/Plan/src/main/java/com/djrapitops/plan/utilities/html/structure/SessionTabStructureCreator.java index cc53771a7..3ddad5fd2 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/html/structure/SessionTabStructureCreator.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/html/structure/SessionTabStructureCreator.java @@ -65,6 +65,7 @@ public class SessionTabStructureCreator { String sessionStart = FormatUtils.formatTimeStampYear(session.getSessionStart()); long endOfSession = session.getSessionEnd(); String sessionLength = endOfSession == -1 ? "Online" : FormatUtils.formatTimeAmount(session.getLength()); + String afk = (endOfSession == -1 ? "(Inaccurate) " : "") + FormatUtils.formatTimeAmount(session.getAfkLength()); String sessionEnd = endOfSession == -1 ? "Online" : FormatUtils.formatTimeStampYear(endOfSession); int playerKillCount = session.getPlayerKills().size(); @@ -116,6 +117,8 @@ public class SessionTabStructureCreator { .append("
  • Session Ended").append(sessionEnd).append("
  • ") // Length .append("
  • Session Length").append(sessionLength).append("
  • ") + // AFK + .append("
  • AFK").append(afk).append("
  • ") // Server .append("
  • Server").append(serverName).append("
  • ") .append("
  • ")