From 36d292747a15e0065f0fad2399e340a3ecf3c476 Mon Sep 17 00:00:00 2001 From: Luck Date: Sat, 19 Aug 2017 11:38:08 +0200 Subject: [PATCH] Format times in /lp log into a shorter form --- .../commands/impl/log/LogGroupHistory.java | 4 +- .../common/commands/impl/log/LogRecent.java | 4 +- .../common/commands/impl/log/LogSearch.java | 4 +- .../commands/impl/log/LogTrackHistory.java | 4 +- .../commands/impl/log/LogUserHistory.java | 4 +- .../commands/impl/misc/InfoCommand.java | 2 +- .../luckperms/common/utils/DateUtil.java | 41 ++++++++++++++----- .../common/verbose/VerboseListener.java | 2 +- 8 files changed, 48 insertions(+), 17 deletions(-) diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogGroupHistory.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogGroupHistory.java index 31dbbc564..11dbca791 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogGroupHistory.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogGroupHistory.java @@ -89,7 +89,9 @@ public class LogGroupHistory extends SubCommand { Message.LOG_HISTORY_GROUP_HEADER.send(sender, name, page, maxPage); for (Map.Entry e : entries.entrySet()) { - Message.LOG_ENTRY.send(sender, e.getKey(), DateUtil.formatDateDiff(e.getValue().getTimestamp()), e.getValue().getFormatted()); + long time = e.getValue().getTimestamp(); + long now = DateUtil.unixSecondsNow(); + Message.LOG_ENTRY.send(sender, e.getKey(), DateUtil.formatTimeShort(now - time), e.getValue().getFormatted()); } return CommandResult.SUCCESS; diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogRecent.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogRecent.java index 7da927b1e..1f694a968 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogRecent.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogRecent.java @@ -142,7 +142,9 @@ public class LogRecent extends SubCommand { } for (Map.Entry e : entries.entrySet()) { - Message.LOG_ENTRY.send(sender, e.getKey(), DateUtil.formatDateDiff(e.getValue().getTimestamp()), e.getValue().getFormatted()); + long time = e.getValue().getTimestamp(); + long now = DateUtil.unixSecondsNow(); + Message.LOG_ENTRY.send(sender, e.getKey(), DateUtil.formatTimeShort(now - time), e.getValue().getFormatted()); } return CommandResult.SUCCESS; } diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogSearch.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogSearch.java index 115458d27..1bc7170b9 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogSearch.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogSearch.java @@ -81,7 +81,9 @@ public class LogSearch extends SubCommand { Message.LOG_SEARCH_HEADER.send(sender, query, page, maxPage); for (Map.Entry e : entries.entrySet()) { - Message.LOG_ENTRY.send(sender, e.getKey(), DateUtil.formatDateDiff(e.getValue().getTimestamp()), e.getValue().getFormatted()); + long time = e.getValue().getTimestamp(); + long now = DateUtil.unixSecondsNow(); + Message.LOG_ENTRY.send(sender, e.getKey(), DateUtil.formatTimeShort(now - time), e.getValue().getFormatted()); } return CommandResult.SUCCESS; diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogTrackHistory.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogTrackHistory.java index 1caf15b6e..59dd16d90 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogTrackHistory.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogTrackHistory.java @@ -89,7 +89,9 @@ public class LogTrackHistory extends SubCommand { Message.LOG_HISTORY_TRACK_HEADER.send(sender, name, page, maxPage); for (Map.Entry e : entries.entrySet()) { - Message.LOG_ENTRY.send(sender, e.getKey(), DateUtil.formatDateDiff(e.getValue().getTimestamp()), e.getValue().getFormatted()); + long time = e.getValue().getTimestamp(); + long now = DateUtil.unixSecondsNow(); + Message.LOG_ENTRY.send(sender, e.getKey(), DateUtil.formatTimeShort(now - time), e.getValue().getFormatted()); } return CommandResult.SUCCESS; diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogUserHistory.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogUserHistory.java index a2b1b4b61..82dadc6f2 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogUserHistory.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogUserHistory.java @@ -115,7 +115,9 @@ public class LogUserHistory extends SubCommand { Message.LOG_HISTORY_USER_HEADER.send(sender, name, page, maxPage); for (Map.Entry e : entries.entrySet()) { - Message.LOG_ENTRY.send(sender, e.getKey(), DateUtil.formatDateDiff(e.getValue().getTimestamp()), e.getValue().getFormatted()); + long time = e.getValue().getTimestamp(); + long now = DateUtil.unixSecondsNow(); + Message.LOG_ENTRY.send(sender, e.getKey(), DateUtil.formatTimeShort(now - time), e.getValue().getFormatted()); } return CommandResult.SUCCESS; diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/misc/InfoCommand.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/misc/InfoCommand.java index a42522fe7..98ff1c2eb 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/misc/InfoCommand.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/misc/InfoCommand.java @@ -74,7 +74,7 @@ public class InfoCommand extends SingleCommand { c.get(ConfigKeys.SERVER), plugin.getPlayerCount(), plugin.getUniqueConnections().size(), - DateUtil.formatTime((System.currentTimeMillis() - plugin.getStartTime()) / 1000L), + DateUtil.formatTimeShort((System.currentTimeMillis() - plugin.getStartTime()) / 1000L), plugin.getUserManager().getAll().size(), plugin.getGroupManager().getAll().size(), plugin.getTrackManager().getAll().size(), diff --git a/common/src/main/java/me/lucko/luckperms/common/utils/DateUtil.java b/common/src/main/java/me/lucko/luckperms/common/utils/DateUtil.java index 4813d3e53..c8ec12532 100644 --- a/common/src/main/java/me/lucko/luckperms/common/utils/DateUtil.java +++ b/common/src/main/java/me/lucko/luckperms/common/utils/DateUtil.java @@ -158,19 +158,40 @@ public class DateUtil { return diff; } - public static String formatDateDiff(long unixTime) { - Calendar c = new GregorianCalendar(); - c.setTimeInMillis(unixTime * 1000); + public static String formatDateDiff(long seconds) { Calendar now = new GregorianCalendar(); - return DateUtil.formatDateDiff(now, c); + Calendar then = new GregorianCalendar(); + then.setTimeInMillis(seconds * 1000L); + return DateUtil.formatDateDiff(now, then); } - public static String formatTime(long seconds) { - Calendar c = new GregorianCalendar(); - c.setTimeInMillis(0L); - Calendar c2 = new GregorianCalendar(); - c2.setTimeInMillis(seconds * 1000L); - return DateUtil.formatDateDiff(c, c2); + public static String formatTimeShort(long seconds) { + if (seconds == 0) { + return "0s"; + } + + long minute = seconds / 60; + seconds = seconds % 60; + long hour = minute / 60; + minute = minute % 60; + long day = hour / 24; + hour = hour % 24; + + StringBuilder time = new StringBuilder(); + if (day != 0) { + time.append(day).append("d "); + } + if (hour != 0) { + time.append(hour).append("h "); + } + if (minute != 0) { + time.append(minute).append("m "); + } + if (seconds != 0) { + time.append(seconds).append("s"); + } + + return time.toString().trim(); } private static String formatDateDiff(Calendar fromDate, Calendar toDate) { diff --git a/common/src/main/java/me/lucko/luckperms/common/verbose/VerboseListener.java b/common/src/main/java/me/lucko/luckperms/common/verbose/VerboseListener.java index d4549e367..b6e333673 100644 --- a/common/src/main/java/me/lucko/luckperms/common/verbose/VerboseListener.java +++ b/common/src/main/java/me/lucko/luckperms/common/verbose/VerboseListener.java @@ -113,7 +113,7 @@ public class VerboseListener { String startDate = DATE_FORMAT.format(new Date(startTime)); String endDate = DATE_FORMAT.format(new Date(now)); long secondsTaken = (now - startTime) / 1000L; - String duration = DateUtil.formatTime(secondsTaken); + String duration = DateUtil.formatTimeShort(secondsTaken); String filter = this.filter; if (filter == null || filter.equals("")){