diff --git a/common/pom.xml b/common/pom.xml
index 46e2671ed..67f03e48c 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -54,6 +54,10 @@
com.google.guava
guava
+
+ net.kyori
+ blizzard
+
diff --git a/common/src/main/java/me/lucko/luckperms/common/actionlog/ExtendedLogEntry.java b/common/src/main/java/me/lucko/luckperms/common/actionlog/ExtendedLogEntry.java
index 9f522cd0f..95e143810 100644
--- a/common/src/main/java/me/lucko/luckperms/common/actionlog/ExtendedLogEntry.java
+++ b/common/src/main/java/me/lucko/luckperms/common/actionlog/ExtendedLogEntry.java
@@ -30,6 +30,7 @@ import lombok.AllArgsConstructor;
import lombok.ToString;
import com.google.common.base.Preconditions;
+import com.google.common.base.Strings;
import com.google.common.collect.Maps;
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
@@ -60,8 +61,6 @@ import java.util.stream.Collectors;
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public class ExtendedLogEntry implements LogEntry {
- private static final String FORMAT = "&8(&e%s&8) [&a%s&8] (&b%s&8) &7--> &f%s";
-
private static final Comparator COMPARATOR = Comparator
.comparingLong(LogEntry::getTimestamp)
.thenComparing(LogEntry::getActor)
@@ -103,6 +102,13 @@ public class ExtendedLogEntry implements LogEntry {
return actorName;
}
+ public String getActorFriendlyString() {
+ if (Strings.isNullOrEmpty(actorName) || actorName.equals("null")) {
+ return actor.toString();
+ }
+ return actorName;
+ }
+
@Override
public Type getType() {
return type;
@@ -118,6 +124,15 @@ public class ExtendedLogEntry implements LogEntry {
return actedName;
}
+ public String getActedFriendlyString() {
+ if (Strings.isNullOrEmpty(actedName) || actedName.equals("null")) {
+ if (acted != null) {
+ return acted.toString();
+ }
+ }
+ return String.valueOf(actorName);
+ }
+
@Override
public String getAction() {
return action;
@@ -136,15 +151,6 @@ public class ExtendedLogEntry implements LogEntry {
action.toLowerCase().contains(query);
}
- public String getFormatted() {
- return String.format(FORMAT,
- String.valueOf(actorName).equals("null") ? actor.toString() : actorName,
- Character.toString(type.getCode()),
- String.valueOf(actedName).equals("null") && acted != null ? acted.toString() : actedName,
- action
- );
- }
-
public void submit(LuckPermsPlugin plugin, Sender sender) {
plugin.getLogDispatcher().dispatch(this, sender);
}
diff --git a/common/src/main/java/me/lucko/luckperms/common/actionlog/Log.java b/common/src/main/java/me/lucko/luckperms/common/actionlog/Log.java
index ec871f43f..ce3420281 100644
--- a/common/src/main/java/me/lucko/luckperms/common/actionlog/Log.java
+++ b/common/src/main/java/me/lucko/luckperms/common/actionlog/Log.java
@@ -40,7 +40,6 @@ import java.util.UUID;
import java.util.stream.Collectors;
public class Log {
- private static final int PAGE_ENTRIES = 5;
public static Builder builder() {
return new Builder();
@@ -74,10 +73,6 @@ public class Log {
return out;
}
- private static int getMaxPages(int size, int entries) {
- return (int) Math.ceil((double) size / entries);
- }
-
private static int getMaxPages(long size, int entries) {
return (int) Math.ceil((double) size / entries);
}
@@ -93,12 +88,12 @@ public class Log {
return content;
}
- public SortedMap getRecent(int pageNo) {
- return getPage(content, pageNo, PAGE_ENTRIES);
+ public SortedMap getRecent(int pageNo, int entriesPerPage) {
+ return getPage(content, pageNo, entriesPerPage);
}
- public int getRecentMaxPages() {
- return getMaxPages(content.size(), PAGE_ENTRIES);
+ public int getRecentMaxPages(int entriesPerPage) {
+ return getMaxPages(content.size(), entriesPerPage);
}
public SortedSet getRecent(UUID actor) {
@@ -107,14 +102,14 @@ public class Log {
.collect(Collectors.toCollection(TreeSet::new));
}
- public SortedMap getRecent(int pageNo, UUID actor) {
- return getPage(getRecent(actor), pageNo, PAGE_ENTRIES);
+ public SortedMap getRecent(int pageNo, UUID actor, int entriesPerPage) {
+ return getPage(getRecent(actor), pageNo, entriesPerPage);
}
- public int getRecentMaxPages(UUID actor) {
+ public int getRecentMaxPages(UUID actor, int entriesPerPage) {
return getMaxPages(content.stream()
.filter(e -> e.getActor().equals(actor))
- .count(), PAGE_ENTRIES);
+ .count(), entriesPerPage);
}
public SortedSet getUserHistory(UUID uuid) {
@@ -125,16 +120,16 @@ public class Log {
.collect(Collectors.toCollection(TreeSet::new));
}
- public SortedMap getUserHistory(int pageNo, UUID uuid) {
- return getPage(getUserHistory(uuid), pageNo, PAGE_ENTRIES);
+ public SortedMap getUserHistory(int pageNo, UUID uuid, int entriesPerPage) {
+ return getPage(getUserHistory(uuid), pageNo, entriesPerPage);
}
- public int getUserHistoryMaxPages(UUID uuid) {
+ public int getUserHistoryMaxPages(UUID uuid, int entriesPerPage) {
return getMaxPages(content.stream()
.filter(e -> e.getType() == LogEntry.Type.USER)
.filter(e -> e.getActed().isPresent())
.filter(e -> e.getActed().get().equals(uuid))
- .count(), PAGE_ENTRIES);
+ .count(), entriesPerPage);
}
public SortedSet getGroupHistory(String name) {
@@ -144,15 +139,15 @@ public class Log {
.collect(Collectors.toCollection(TreeSet::new));
}
- public SortedMap getGroupHistory(int pageNo, String name) {
- return getPage(getGroupHistory(name), pageNo, PAGE_ENTRIES);
+ public SortedMap getGroupHistory(int pageNo, String name, int entriesPerPage) {
+ return getPage(getGroupHistory(name), pageNo, entriesPerPage);
}
- public int getGroupHistoryMaxPages(String name) {
+ public int getGroupHistoryMaxPages(String name, int entriesPerPage) {
return getMaxPages(content.stream()
.filter(e -> e.getType() == LogEntry.Type.GROUP)
.filter(e -> e.getActedName().equals(name))
- .count(), PAGE_ENTRIES);
+ .count(), entriesPerPage);
}
public SortedSet getTrackHistory(String name) {
@@ -162,15 +157,15 @@ public class Log {
.collect(Collectors.toCollection(TreeSet::new));
}
- public SortedMap getTrackHistory(int pageNo, String name) {
- return getPage(getTrackHistory(name), pageNo, PAGE_ENTRIES);
+ public SortedMap getTrackHistory(int pageNo, String name, int entriesPerPage) {
+ return getPage(getTrackHistory(name), pageNo, entriesPerPage);
}
- public int getTrackHistoryMaxPages(String name) {
+ public int getTrackHistoryMaxPages(String name, int entriesPerPage) {
return getMaxPages(content.stream()
.filter(e -> e.getType() == LogEntry.Type.TRACK)
.filter(e -> e.getActedName().equals(name))
- .count(), PAGE_ENTRIES);
+ .count(), entriesPerPage);
}
public SortedSet getSearch(String query) {
@@ -179,14 +174,14 @@ public class Log {
.collect(Collectors.toCollection(TreeSet::new));
}
- public SortedMap getSearch(int pageNo, String query) {
- return getPage(getSearch(query), pageNo, PAGE_ENTRIES);
+ public SortedMap getSearch(int pageNo, String query, int entriesPerPage) {
+ return getPage(getSearch(query), pageNo, entriesPerPage);
}
- public int getSearchMaxPages(String query) {
+ public int getSearchMaxPages(String query, int entriesPerPage) {
return getMaxPages(content.stream()
.filter(e -> e.matchesSearch(query))
- .count(), PAGE_ENTRIES);
+ .count(), entriesPerPage);
}
@SuppressWarnings("WeakerAccess")
diff --git a/common/src/main/java/me/lucko/luckperms/common/actionlog/LogDispatcher.java b/common/src/main/java/me/lucko/luckperms/common/actionlog/LogDispatcher.java
index 9d7dfefbe..3535e0cb3 100644
--- a/common/src/main/java/me/lucko/luckperms/common/actionlog/LogDispatcher.java
+++ b/common/src/main/java/me/lucko/luckperms/common/actionlog/LogDispatcher.java
@@ -59,13 +59,16 @@ public class LogDispatcher {
}
if (!plugin.getApiProvider().getEventFactory().handleLogBroadcast(!plugin.getConfiguration().get(ConfigKeys.LOG_NOTIFY), entry, LogBroadcastEvent.Origin.LOCAL)) {
- final String msg = entry.getFormatted();
-
plugin.getOnlineSenders()
.filter(CommandPermission.LOG_NOTIFY::isAuthorized)
.filter(s -> !LogNotify.isIgnoring(plugin, s.getUuid()))
.filter(s -> !s.getUuid().equals(sender.getUuid()))
- .forEach(s -> Message.LOG.send(s, msg));
+ .forEach(s -> Message.LOG.send(s,
+ entry.getActorFriendlyString(),
+ Character.toString(entry.getType().getCode()),
+ entry.getActedFriendlyString(),
+ entry.getAction()
+ ));
}
}
@@ -75,12 +78,15 @@ public class LogDispatcher {
}
if (!plugin.getApiProvider().getEventFactory().handleLogBroadcast(!plugin.getConfiguration().get(ConfigKeys.LOG_NOTIFY), entry, LogBroadcastEvent.Origin.REMOTE)) {
- final String msg = entry.getFormatted();
-
plugin.getOnlineSenders()
.filter(CommandPermission.LOG_NOTIFY::isAuthorized)
.filter(s -> !LogNotify.isIgnoring(plugin, s.getUuid()))
- .forEach(s -> Message.LOG.send(s, msg));
+ .forEach(s -> Message.LOG.send(s,
+ entry.getActorFriendlyString(),
+ Character.toString(entry.getType().getCode()),
+ entry.getActedFriendlyString(),
+ entry.getAction()
+ ));
}
}
}
diff --git a/common/src/main/java/me/lucko/luckperms/common/api/delegates/model/ApiLog.java b/common/src/main/java/me/lucko/luckperms/common/api/delegates/model/ApiLog.java
index 48b41ee3d..8091070ac 100644
--- a/common/src/main/java/me/lucko/luckperms/common/api/delegates/model/ApiLog.java
+++ b/common/src/main/java/me/lucko/luckperms/common/api/delegates/model/ApiLog.java
@@ -40,6 +40,7 @@ import static me.lucko.luckperms.common.api.ApiUtils.checkName;
@SuppressWarnings("unchecked")
@AllArgsConstructor
public class ApiLog implements Log {
+ private static final int ENTRIES_PER_PAGE = 5;
private final me.lucko.luckperms.common.actionlog.Log handle;
@Override
@@ -54,12 +55,12 @@ public class ApiLog implements Log {
@Override
public SortedMap getRecent(int pageNo) {
- return (SortedMap) handle.getRecent(pageNo);
+ return (SortedMap) handle.getRecent(pageNo, ENTRIES_PER_PAGE);
}
@Override
public int getRecentMaxPages() {
- return handle.getRecentMaxPages();
+ return handle.getRecentMaxPages(ENTRIES_PER_PAGE);
}
@Override
@@ -69,12 +70,12 @@ public class ApiLog implements Log {
@Override
public SortedMap getRecent(int pageNo, @NonNull UUID actor) {
- return (SortedMap) handle.getRecent(pageNo, actor);
+ return (SortedMap) handle.getRecent(pageNo, actor, ENTRIES_PER_PAGE);
}
@Override
public int getRecentMaxPages(@NonNull UUID actor) {
- return handle.getRecentMaxPages(actor);
+ return handle.getRecentMaxPages(actor, ENTRIES_PER_PAGE);
}
@Override
@@ -84,12 +85,12 @@ public class ApiLog implements Log {
@Override
public SortedMap getUserHistory(int pageNo, @NonNull UUID uuid) {
- return (SortedMap) handle.getUserHistory(pageNo, uuid);
+ return (SortedMap) handle.getUserHistory(pageNo, uuid, ENTRIES_PER_PAGE);
}
@Override
public int getUserHistoryMaxPages(@NonNull UUID uuid) {
- return handle.getUserHistoryMaxPages(uuid);
+ return handle.getUserHistoryMaxPages(uuid, ENTRIES_PER_PAGE);
}
@Override
@@ -99,12 +100,12 @@ public class ApiLog implements Log {
@Override
public SortedMap getGroupHistory(int pageNo, @NonNull String name) {
- return (SortedMap) handle.getGroupHistory(pageNo, checkName(name));
+ return (SortedMap) handle.getGroupHistory(pageNo, checkName(name), ENTRIES_PER_PAGE);
}
@Override
public int getGroupHistoryMaxPages(@NonNull String name) {
- return handle.getGroupHistoryMaxPages(checkName(name));
+ return handle.getGroupHistoryMaxPages(checkName(name), ENTRIES_PER_PAGE);
}
@Override
@@ -114,12 +115,12 @@ public class ApiLog implements Log {
@Override
public SortedMap getTrackHistory(int pageNo, @NonNull String name) {
- return (SortedMap) handle.getTrackHistory(pageNo, checkName(name));
+ return (SortedMap) handle.getTrackHistory(pageNo, checkName(name), ENTRIES_PER_PAGE);
}
@Override
public int getTrackHistoryMaxPages(@NonNull String name) {
- return handle.getTrackHistoryMaxPages(checkName(name));
+ return handle.getTrackHistoryMaxPages(checkName(name), ENTRIES_PER_PAGE);
}
@Override
@@ -129,11 +130,11 @@ public class ApiLog implements Log {
@Override
public SortedMap getSearch(int pageNo, @NonNull String query) {
- return (SortedMap) handle.getSearch(pageNo, query);
+ return (SortedMap) handle.getSearch(pageNo, query, ENTRIES_PER_PAGE);
}
@Override
public int getSearchMaxPages(@NonNull String query) {
- return handle.getSearchMaxPages(query);
+ return handle.getSearchMaxPages(query, ENTRIES_PER_PAGE);
}
}
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 b440dff2a..f6ad55ef5 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
@@ -45,6 +45,8 @@ import java.util.Map;
import java.util.SortedMap;
public class LogGroupHistory extends SubCommand {
+ private static final int ENTRIES_PER_PAGE = 10;
+
public LogGroupHistory(LocaleManager locale) {
super(CommandSpec.LOG_GROUP_HISTORY.spec(locale), "grouphistory", CommandPermission.LOG_GROUP_HISTORY, Predicates.notInRange(1, 2));
}
@@ -69,7 +71,7 @@ public class LogGroupHistory extends SubCommand {
return CommandResult.INVALID_ARGS;
}
- int maxPage = log.getGroupHistoryMaxPages(group);
+ int maxPage = log.getGroupHistoryMaxPages(group, ENTRIES_PER_PAGE);
if (maxPage == 0) {
Message.LOG_NO_ENTRIES.send(sender);
return CommandResult.STATE_ERROR;
@@ -84,14 +86,21 @@ public class LogGroupHistory extends SubCommand {
return CommandResult.INVALID_ARGS;
}
- SortedMap entries = log.getGroupHistory(page, group);
+ SortedMap entries = log.getGroupHistory(page, group, ENTRIES_PER_PAGE);
String name = entries.values().stream().findAny().get().getActedName();
Message.LOG_HISTORY_GROUP_HEADER.send(sender, name, page, maxPage);
+ long now = DateUtil.unixSecondsNow();
for (Map.Entry e : entries.entrySet()) {
long time = e.getValue().getTimestamp();
- long now = DateUtil.unixSecondsNow();
- Message.LOG_ENTRY.send(sender, e.getKey(), DateUtil.formatTimeShort(now - time), e.getValue().getFormatted());
+ Message.LOG_ENTRY.send(sender,
+ e.getKey(),
+ DateUtil.formatTimeShort(now - time),
+ e.getValue().getActorFriendlyString(),
+ Character.toString(e.getValue().getType().getCode()),
+ e.getValue().getActedFriendlyString(),
+ e.getValue().getAction()
+ );
}
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 0db5e4046..663412e92 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
@@ -48,6 +48,8 @@ import java.util.SortedMap;
import java.util.UUID;
public class LogRecent extends SubCommand {
+ private static final int ENTRIES_PER_PAGE = 10;
+
public LogRecent(LocaleManager locale) {
super(CommandSpec.LOG_RECENT.spec(locale), "recent", CommandPermission.LOG_RECENT, Predicates.notInRange(0, 2));
}
@@ -56,7 +58,7 @@ public class LogRecent extends SubCommand {
public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Log log, List args, String label) throws CommandException {
if (args.size() == 0) {
// No page or user
- return showLog(log.getRecentMaxPages(), null, sender, log);
+ return showLog(log.getRecentMaxPages(ENTRIES_PER_PAGE), null, sender, log);
}
if (args.size() == 1) {
@@ -102,7 +104,7 @@ public class LogRecent extends SubCommand {
if (args.size() != 2) {
// Just user
- return showLog(log.getRecentMaxPages(uuid), uuid, sender, log);
+ return showLog(log.getRecentMaxPages(uuid, ENTRIES_PER_PAGE), uuid, sender, log);
} else {
try {
int p = Integer.parseInt(args.get(1));
@@ -116,7 +118,7 @@ public class LogRecent extends SubCommand {
}
private static CommandResult showLog(int page, UUID filter, Sender sender, Log log) {
- int maxPage = (filter != null) ? log.getRecentMaxPages(filter) : log.getRecentMaxPages();
+ int maxPage = (filter != null) ? log.getRecentMaxPages(filter, ENTRIES_PER_PAGE) : log.getRecentMaxPages(ENTRIES_PER_PAGE);
if (maxPage == 0) {
Message.LOG_NO_ENTRIES.send(sender);
return CommandResult.STATE_ERROR;
@@ -127,18 +129,28 @@ public class LogRecent extends SubCommand {
return CommandResult.INVALID_ARGS;
}
- SortedMap entries = (filter != null) ? log.getRecent(page, filter) : log.getRecent(page);
+ SortedMap entries = (filter != null) ? log.getRecent(page, filter, ENTRIES_PER_PAGE) : log.getRecent(page, ENTRIES_PER_PAGE);
if (filter != null) {
String name = entries.values().stream().findAny().get().getActorName();
+ if (name.contains("@")) {
+ name = name.split("@")[0];
+ }
Message.LOG_RECENT_BY_HEADER.send(sender, name, page, maxPage);
} else {
Message.LOG_RECENT_HEADER.send(sender, page, maxPage);
}
+ long now = DateUtil.unixSecondsNow();
for (Map.Entry e : entries.entrySet()) {
long time = e.getValue().getTimestamp();
- long now = DateUtil.unixSecondsNow();
- Message.LOG_ENTRY.send(sender, e.getKey(), DateUtil.formatTimeShort(now - time), e.getValue().getFormatted());
+ Message.LOG_ENTRY.send(sender,
+ e.getKey(),
+ DateUtil.formatTimeShort(now - time),
+ e.getValue().getActorFriendlyString(),
+ Character.toString(e.getValue().getType().getCode()),
+ e.getValue().getActedFriendlyString(),
+ e.getValue().getAction()
+ );
}
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 0e78478f9..1b099098a 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
@@ -45,6 +45,8 @@ import java.util.SortedMap;
import java.util.stream.Collectors;
public class LogSearch extends SubCommand {
+ private static final int ENTRIES_PER_PAGE = 10;
+
public LogSearch(LocaleManager locale) {
super(CommandSpec.LOG_SEARCH.spec(locale), "search", CommandPermission.LOG_SEARCH, Predicates.is(0));
}
@@ -62,7 +64,7 @@ public class LogSearch extends SubCommand {
final String query = args.stream().collect(Collectors.joining(" "));
- int maxPage = log.getSearchMaxPages(query);
+ int maxPage = log.getSearchMaxPages(query, ENTRIES_PER_PAGE);
if (maxPage == 0) {
Message.LOG_NO_ENTRIES.send(sender);
return CommandResult.STATE_ERROR;
@@ -77,13 +79,20 @@ public class LogSearch extends SubCommand {
return CommandResult.INVALID_ARGS;
}
- SortedMap entries = log.getSearch(page, query);
+ SortedMap entries = log.getSearch(page, query, ENTRIES_PER_PAGE);
Message.LOG_SEARCH_HEADER.send(sender, query, page, maxPage);
+ long now = DateUtil.unixSecondsNow();
for (Map.Entry e : entries.entrySet()) {
long time = e.getValue().getTimestamp();
- long now = DateUtil.unixSecondsNow();
- Message.LOG_ENTRY.send(sender, e.getKey(), DateUtil.formatTimeShort(now - time), e.getValue().getFormatted());
+ Message.LOG_ENTRY.send(sender,
+ e.getKey(),
+ DateUtil.formatTimeShort(now - time),
+ e.getValue().getActorFriendlyString(),
+ Character.toString(e.getValue().getType().getCode()),
+ e.getValue().getActedFriendlyString(),
+ e.getValue().getAction()
+ );
}
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 90b4dbabd..0c6248f31 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
@@ -45,6 +45,8 @@ import java.util.Map;
import java.util.SortedMap;
public class LogTrackHistory extends SubCommand {
+ private static final int ENTRIES_PER_PAGE = 10;
+
public LogTrackHistory(LocaleManager locale) {
super(CommandSpec.LOG_TRACK_HISTORY.spec(locale), "trackhistory", CommandPermission.LOG_TRACK_HISTORY, Predicates.notInRange(1, 2));
}
@@ -69,7 +71,7 @@ public class LogTrackHistory extends SubCommand {
return CommandResult.INVALID_ARGS;
}
- int maxPage = log.getTrackHistoryMaxPages(track);
+ int maxPage = log.getTrackHistoryMaxPages(track, ENTRIES_PER_PAGE);
if (maxPage == 0) {
Message.LOG_NO_ENTRIES.send(sender);
return CommandResult.STATE_ERROR;
@@ -84,14 +86,21 @@ public class LogTrackHistory extends SubCommand {
return CommandResult.INVALID_ARGS;
}
- SortedMap entries = log.getTrackHistory(page, track);
+ SortedMap entries = log.getTrackHistory(page, track, ENTRIES_PER_PAGE);
String name = entries.values().stream().findAny().get().getActedName();
Message.LOG_HISTORY_TRACK_HEADER.send(sender, name, page, maxPage);
+ long now = DateUtil.unixSecondsNow();
for (Map.Entry e : entries.entrySet()) {
long time = e.getValue().getTimestamp();
- long now = DateUtil.unixSecondsNow();
- Message.LOG_ENTRY.send(sender, e.getKey(), DateUtil.formatTimeShort(now - time), e.getValue().getFormatted());
+ Message.LOG_ENTRY.send(sender,
+ e.getKey(),
+ DateUtil.formatTimeShort(now - time),
+ e.getValue().getActorFriendlyString(),
+ Character.toString(e.getValue().getType().getCode()),
+ e.getValue().getActedFriendlyString(),
+ e.getValue().getAction()
+ );
}
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 36bbe7c16..341cf3935 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
@@ -48,6 +48,8 @@ import java.util.SortedMap;
import java.util.UUID;
public class LogUserHistory extends SubCommand {
+ private static final int ENTRIES_PER_PAGE = 10;
+
public LogUserHistory(LocaleManager locale) {
super(CommandSpec.LOG_USER_HISTORY.spec(locale), "userhistory", CommandPermission.LOG_USER_HISTORY, Predicates.notInRange(1, 2));
}
@@ -96,14 +98,14 @@ public class LogUserHistory extends SubCommand {
}
if (page == Integer.MIN_VALUE) {
- page = log.getUserHistoryMaxPages(uuid);
+ page = log.getUserHistoryMaxPages(uuid, ENTRIES_PER_PAGE);
}
return showLog(page, uuid, sender, log);
}
private static CommandResult showLog(int page, UUID user, Sender sender, Log log) {
- int maxPage = log.getUserHistoryMaxPages(user);
+ int maxPage = log.getUserHistoryMaxPages(user, ENTRIES_PER_PAGE);
if (maxPage == 0) {
Message.LOG_NO_ENTRIES.send(sender);
return CommandResult.STATE_ERROR;
@@ -114,14 +116,21 @@ public class LogUserHistory extends SubCommand {
return CommandResult.INVALID_ARGS;
}
- SortedMap entries = log.getUserHistory(page, user);
+ SortedMap entries = log.getUserHistory(page, user, ENTRIES_PER_PAGE);
String name = entries.values().stream().findAny().get().getActedName();
Message.LOG_HISTORY_USER_HEADER.send(sender, name, page, maxPage);
+ long now = DateUtil.unixSecondsNow();
for (Map.Entry e : entries.entrySet()) {
long time = e.getValue().getTimestamp();
- long now = DateUtil.unixSecondsNow();
- Message.LOG_ENTRY.send(sender, e.getKey(), DateUtil.formatTimeShort(now - time), e.getValue().getFormatted());
+ Message.LOG_ENTRY.send(sender,
+ e.getKey(),
+ DateUtil.formatTimeShort(now - time),
+ e.getValue().getActorFriendlyString(),
+ Character.toString(e.getValue().getType().getCode()),
+ e.getValue().getActedFriendlyString(),
+ e.getValue().getAction()
+ );
}
return CommandResult.SUCCESS;
diff --git a/common/src/main/java/me/lucko/luckperms/common/locale/Message.java b/common/src/main/java/me/lucko/luckperms/common/locale/Message.java
index a3efacb05..c7e7bbdac 100644
--- a/common/src/main/java/me/lucko/luckperms/common/locale/Message.java
+++ b/common/src/main/java/me/lucko/luckperms/common/locale/Message.java
@@ -62,7 +62,7 @@ public enum Message {
LOG_INFO("&7&l[&bL&3P&7&l] &3{}", false),
LOG_WARN("&7&l[&bLuck&3Perms&7&l] &c[WARN] {}", false),
LOG_ERROR("&7&l[&bLuck&3Perms&7&l] &4[ERROR] {}", false),
- LOG("&3LOG &3&l> {}", true),
+ LOG("&3LOG &3&l> &8(&e{}&8) [&a{}&8] (&b{}&8)&f: {}", true),
VERBOSE_LOG("&3VB &3&l> {}", true),
EXPORT_LOG("&3EXPORT &3&l> &f{}", true),
EXPORT_LOG_PROGRESS("&3EXPORT &3&l> &7{}", true),
@@ -117,8 +117,8 @@ public enum Message {
SEARCH_SEARCHING_MEMBERS("&aSearching for users and groups who inherit from &b{}&a...", true),
SEARCH_RESULT("&aFound &b{}&a entries from &b{}&a users and &b{}&a groups.", true),
- SEARCH_SHOWING_USERS("&bShowing user entries: &7(showing page &f{}&7 of &f{}&7 - &f{}&7 entries)", true),
- SEARCH_SHOWING_GROUPS("&bShowing group entries: &7(showing page &f{}&7 of &f{}&7 - &f{}&7 entries)", true),
+ SEARCH_SHOWING_USERS("&bShowing user entries: &7(page &f{}&7 of &f{}&7 - &f{}&7 entries)", true),
+ SEARCH_SHOWING_GROUPS("&bShowing group entries: &7(page &f{}&7 of &f{}&7 - &f{}&7 entries)", true),
APPLY_EDITS_INVALID_CODE("&cInvalid code. &7({})", true),
APPLY_EDITS_UNABLE_TO_READ("&cUnable to read data using the given code. &7({})", true),
@@ -202,10 +202,10 @@ public enum Message {
TRACKS_LIST("&aTracks: {}", true),
- PERMISSION_INFO("&b{}'s Permissions: &7(showing page &f{}&7 of &f{}&7 - &f{}&7 entries)", true),
+ PERMISSION_INFO("&b{}'s Permissions: &7(page &f{}&7 of &f{}&7 - &f{}&7 entries)", true),
PERMISSION_INFO_NO_DATA("&b{}&a does not have any permissions set.", true),
- PARENT_INFO("&b{}'s Parents: &7(showing page &f{}&7 of &f{}&7 - &f{}&7 entries)", true),
+ PARENT_INFO("&b{}'s Parents: &7(page &f{}&7 of &f{}&7 - &f{}&7 entries)", true),
PARENT_INFO_NO_DATA("&b{}&a does not have any parents defined.", true),
LIST_TRACKS("&b{}'s Tracks:", true),
@@ -387,7 +387,12 @@ public enum Message {
LOG_INVALID_PAGE("&cInvalid page number.", true),
LOG_INVALID_PAGE_RANGE("&cInvalid page number. Please enter a value between &41&c and &4{}&c.", true),
LOG_NO_ENTRIES("&bNo log entries to show.", true),
- LOG_ENTRY("&b#{} -> &8(&7{} ago&8) {}", true),
+
+ LOG_ENTRY(
+ "{PREFIX}&b#{} &8(&7{} ago&8) &8(&e{}&8) [&a{}&8] (&b{}&8)" + "\n" +
+ "{PERFIX}&7> &f{}",
+ false
+ ),
LOG_NOTIFY_CONSOLE("&cCannot toggle notifications for console.", true),
LOG_NOTIFY_TOGGLE_ON("&aEnabled&b logging output.", true),
@@ -396,14 +401,12 @@ public enum Message {
LOG_NOTIFY_ALREADY_OFF("&cYou aren't currently receiving notifications.", true),
LOG_NOTIFY_UNKNOWN("&cState unknown. Expecting \"on\" or \"off\".", true),
- LOG_SEARCH_HEADER("&aShowing recent actions for query &b{} &a(page &f{}&a of &f{}&a)", true),
-
- LOG_RECENT_HEADER("&aShowing recent actions (page &f{}&a of &f{}&a)", true),
- LOG_RECENT_BY_HEADER("&aShowing recent actions by &b{} &a(page &f{}&a of &f{}&a)", true),
-
- LOG_HISTORY_USER_HEADER("&aShowing history for user &b{} &a(page &f{}&a of &f{}&a)", true),
- LOG_HISTORY_GROUP_HEADER("&aShowing history for group &b{} &a(page &f{}&a of &f{}&a)", true),
- LOG_HISTORY_TRACK_HEADER("&aShowing history for track &b{} &a(page &f{}&a of &f{}&a)", true),
+ LOG_SEARCH_HEADER("&aShowing recent actions for query &b{} &7(page &f{}&7 of &f{}&7)", true),
+ LOG_RECENT_HEADER("&aShowing recent actions &7(page &f{}&7 of &f{}&7)", true),
+ LOG_RECENT_BY_HEADER("&aShowing recent actions by &b{} &7(page &f{}&7 of &f{}&7)", true),
+ LOG_HISTORY_USER_HEADER("&aShowing history for user &b{} &7(page &f{}&7 of &f{}&7)", true),
+ LOG_HISTORY_GROUP_HEADER("&aShowing history for group &b{} &7(page &f{}&7 of &f{}&7)", true),
+ LOG_HISTORY_TRACK_HEADER("&aShowing history for track &b{} &7(page &f{}&7 of &f{}&7)", true),
LOG_EXPORT_ALREADY_EXISTS("&cError: File &4{}&c already exists.", true),
LOG_EXPORT_NOT_WRITABLE("&cError: File &4{}&c is not writable.", true),