diff --git a/api/src/main/java/me/lucko/luckperms/api/Log.java b/api/src/main/java/me/lucko/luckperms/api/Log.java
index 27a626ee..f1298204 100644
--- a/api/src/main/java/me/lucko/luckperms/api/Log.java
+++ b/api/src/main/java/me/lucko/luckperms/api/Log.java
@@ -34,18 +34,26 @@ import javax.annotation.Nonnull;
/**
* Represents the internal LuckPerms log.
*
- *
The returned instance provides a copy of the data at the time of retrieval. Any changes made to log entries will
- * only apply to this instance of the log. You can add to the log using the {@link Storage}, and then request an updated copy.
+ * The returned instance provides a copy of the data at the time of retrieval.
+ *
+ * Any changes made to log entries will only apply to this instance of the log.
+ * You can add to the log using the {@link Storage}, and then request an updated copy.
+ *
+ * All methods are thread safe, and return immutable & thread safe collections.
*/
public interface Log {
/**
+ * Get the content of the log
+ *
* @return a {@link SortedSet} of all of the {@link LogEntry} objects in this {@link Log}
*/
@Nonnull
SortedSet getContent();
/**
+ * Get the content of the log
+ *
* @return all content in this log
*/
@Nonnull
@@ -57,18 +65,22 @@ public interface Log {
* @param pageNo the page number
* @return the page content
* @throws IllegalArgumentException if the pageNo is less than 1
- * @throws IllegalStateException if the log doesn't contain enough entries to populate the page. See {@link #getRecentMaxPages()}}
+ * @throws IllegalStateException if the log doesn't contain enough entries to populate the page. See {@link #getRecentMaxPages()}
*/
@Nonnull
SortedMap getRecent(int pageNo);
/**
+ * Gets the max page number for the recent pages.
+ *
* @return the max page number allowed in the {@link #getRecent(int)} method
*/
int getRecentMaxPages();
/**
+ * Gets the recent content for a given actor
+ *
* @param actor the uuid of the actor to filter by
* @return all content in this log where is actor = uuid
*/
@@ -76,18 +88,20 @@ public interface Log {
SortedSet getRecent(@Nonnull UUID actor);
/**
- * Gets the recent content for the uuid, separated into pages
+ * Gets the recent content for a given actor, separated by page
*
* @param pageNo the page number
* @param actor the uuid of the actor to filter by
* @return the page content
* @throws IllegalArgumentException if the pageNo is less than 1
- * @throws IllegalStateException if the log doesn't contain enough entries to populate the page. See {@link #getRecentMaxPages(UUID)}}
+ * @throws IllegalStateException if the log doesn't contain enough entries to populate the page. See {@link #getRecentMaxPages(UUID)}
*/
@Nonnull
SortedMap getRecent(int pageNo, @Nonnull UUID actor);
/**
+ * Gets the max page number for the recent pages.
+ *
* @param actor the actor to filter by
* @return the max page number allowed in the {@link #getRecent(int, UUID)} method
*/
@@ -95,6 +109,8 @@ public interface Log {
/**
+ * Gets the log content for a given user
+ *
* @param uuid the uuid to filter by
* @return all content in this log where the user = uuid
*/
@@ -102,18 +118,20 @@ public interface Log {
SortedSet getUserHistory(@Nonnull UUID uuid);
/**
- * Gets the user history content, separated by pages
+ * Gets the log content for a given user, separated by page
*
* @param pageNo the page number
* @param uuid the uuid of the acted user to filter by
* @return the page content
* @throws IllegalArgumentException if the pageNo is less than 1
- * @throws IllegalStateException if the log doesn't contain enough entries to populate the page. See {@link #getUserHistoryMaxPages(UUID)}}
+ * @throws IllegalStateException if the log doesn't contain enough entries to populate the page. See {@link #getUserHistoryMaxPages(UUID)}
*/
@Nonnull
SortedMap getUserHistory(int pageNo, @Nonnull UUID uuid);
/**
+ * Gets the max page number for the user history pages.
+ *
* @param uuid the uuid to filter by
* @return the max page number allowed in the {@link #getUserHistory(int, UUID)} method
*/
@@ -121,6 +139,8 @@ public interface Log {
/**
+ * Gets the log content for a given group
+ *
* @param name the name to filter by
* @return all content in this log where the group = name
*/
@@ -128,18 +148,20 @@ public interface Log {
SortedSet getGroupHistory(@Nonnull String name);
/**
- * Gets the group history content, separated by pages
+ * Gets the log content for a given group, separated by page
*
* @param pageNo the page number
* @param name the name of the acted group to filter by
* @return the page content
* @throws IllegalArgumentException if the pageNo is less than 1
- * @throws IllegalStateException if the log doesn't contain enough entries to populate the page. See {@link #getGroupHistoryMaxPages(String)}}
+ * @throws IllegalStateException if the log doesn't contain enough entries to populate the page. See {@link #getGroupHistoryMaxPages(String)}
*/
@Nonnull
SortedMap getGroupHistory(int pageNo, @Nonnull String name);
/**
+ * Gets the max page number for the group history pages.
+ *
* @param name the name to filter by
* @return the max page number allowed in the {@link #getGroupHistory(int, String)} method
*/
@@ -147,6 +169,8 @@ public interface Log {
/**
+ * Gets the log content for a given track
+ *
* @param name the name to filter by
* @return all content in this log where the track = name
*/
@@ -154,25 +178,29 @@ public interface Log {
SortedSet getTrackHistory(@Nonnull String name);
/**
- * Gets the track history content, separated by pages
+ * Gets the log content for a given track, separated by page
*
* @param pageNo the page number
* @param name the name of the acted track to filter by
* @return the page content
+ * @throws IllegalArgumentException if the pageNo is less than 1
+ * @throws IllegalStateException if the log doesn't contain enough entries to populate the page. See {@link #getTrackHistoryMaxPages(String)}
*/
@Nonnull
SortedMap getTrackHistory(int pageNo, @Nonnull String name);
/**
+ * Gets the max page number for the track history pages.
+ *
* @param name the name to filter by
* @return the max page number allowed in the {@link #getTrackHistory(int, String)} method
- * @throws IllegalArgumentException if the pageNo is less than 1
- * @throws IllegalStateException if the log doesn't contain enough entries to populate the page. See {@link #getTrackHistoryMaxPages(String)}}
*/
int getTrackHistoryMaxPages(@Nonnull String name);
/**
+ * Gets the log content for a given search query
+ *
* @param query the query to filter by
* @return all content in this log where the content matches query
*/
@@ -180,7 +208,7 @@ public interface Log {
SortedSet getSearch(@Nonnull String query);
/**
- * Gets the search content, separated by pages
+ * Gets the log content for a given search query, separated by page
*
* @param pageNo the page number
* @param query the query to filter by
@@ -192,8 +220,11 @@ public interface Log {
SortedMap getSearch(int pageNo, @Nonnull String query);
/**
+ * Gets the max page number for the search query pages.
+ *
* @param query the query to filter by
* @return the max page number allowed in the {@link #getSearch(int, String)} method
*/
int getSearchMaxPages(@Nonnull String query);
+
}
diff --git a/api/src/main/java/me/lucko/luckperms/api/LogEntry.java b/api/src/main/java/me/lucko/luckperms/api/LogEntry.java
index d6431203..f2918656 100644
--- a/api/src/main/java/me/lucko/luckperms/api/LogEntry.java
+++ b/api/src/main/java/me/lucko/luckperms/api/LogEntry.java
@@ -25,45 +25,112 @@
package me.lucko.luckperms.api;
+import com.google.common.base.Preconditions;
+
+import java.util.Comparator;
import java.util.UUID;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
/**
- * A single entry in the log
- *
- * Implements {@link Comparable} ordering based upon the timestamp of the entry.
+ * A single entry in the log.
*/
public class LogEntry implements Comparable {
+
+ /**
+ * Compares two LogEntries
+ *
+ * @since 3.3
+ */
+ public static final Comparator COMPARATOR = Comparator
+ .comparingLong(LogEntry::getTimestamp)
+ .thenComparing(LogEntry::getActor)
+ .thenComparing(LogEntry::getActorName, String.CASE_INSENSITIVE_ORDER)
+ .thenComparing(LogEntry::getEntryType)
+ .thenComparing(Comparator.nullsFirst(Comparator.comparing(LogEntry::getActed)))
+ .thenComparing(LogEntry::getActorName, String.CASE_INSENSITIVE_ORDER)
+ .thenComparing(LogEntry::getAction);
+
+ /**
+ * Compares two LogEntries in reverse order
+ *
+ * @since 3.3
+ * @see #COMPARATOR
+ */
+ public static final Comparator REVERSE_ORDER = COMPARATOR.reversed();
+
private static final String FORMAT = "&8(&e%s&8) [&a%s&8] (&b%s&8) &7--> &f%s";
+ /**
+ * Creates a new LogEntry builder
+ *
+ * @return a new builder
+ */
@Nonnull
public static LogEntryBuilder builder() {
return new LogEntryBuilder();
}
+ /**
+ * The time when the log event occurred in unix seconds.
+ */
private long timestamp;
+
+ /**
+ * The player who enacted the change
+ */
+ @Nonnull
private UUID actor;
+
+ /**
+ * The name of the player who enacted the change
+ */
+ @Nonnull
private String actorName;
- private char type;
+
+ /**
+ * The entry type.
+ */
+ @Nonnull
+ private Type type;
+
+ /**
+ * The user who was acted upon
+ */
+ @Nullable
private UUID acted;
+
+ /**
+ * The name of the object who was acted upon
+ */
+ @Nonnull
private String actedName;
+
+ /**
+ * A description of the action
+ */
+ @Nonnull
private String action;
- public LogEntry(long timestamp, @Nonnull UUID actor, @Nonnull String actorName, char type, @Nullable UUID acted, @Nonnull String actedName, @Nonnull String action) {
- if (actor == null) {
- throw new NullPointerException("actor");
- }
- if (actorName == null) {
- throw new NullPointerException("actorName");
- }
- if (actedName == null) {
- throw new NullPointerException("actedName");
- }
- if (action == null) {
- throw new NullPointerException("action");
- }
+ /**
+ * Creates a new log entry
+ *
+ * @param timestamp the timestamp
+ * @param actor the actor
+ * @param actorName the actorName
+ * @param type the type
+ * @param acted the acted object, or null
+ * @param actedName the acted object name
+ * @param action the action
+ * @since 3.3
+ */
+ public LogEntry(long timestamp, @Nonnull UUID actor, @Nonnull String actorName, @Nonnull Type type, @Nullable UUID acted, @Nonnull String actedName, @Nonnull String action) {
+ Preconditions.checkNotNull(actor, "actor");
+ Preconditions.checkNotNull(actorName, "actorName");
+ Preconditions.checkNotNull(type, "type");
+ Preconditions.checkNotNull(actedName, "actedName");
+ Preconditions.checkNotNull(action, "action");
this.timestamp = timestamp;
this.actor = actor;
@@ -74,35 +141,72 @@ public class LogEntry implements Comparable {
this.action = action;
}
+ /**
+ * Creates a new log entry
+ *
+ * @param timestamp the timestamp
+ * @param actor the actor
+ * @param actorName the actorName
+ * @param type the type code
+ * @param acted the acted object, or null
+ * @param actedName the acted object name
+ * @param action the action
+ */
+ public LogEntry(long timestamp, @Nonnull UUID actor, @Nonnull String actorName, char type, @Nullable UUID acted, @Nonnull String actedName, @Nonnull String action) {
+ Preconditions.checkNotNull(actor, "actor");
+ Preconditions.checkNotNull(actorName, "actorName");
+ Preconditions.checkNotNull(actedName, "actedName");
+ Preconditions.checkNotNull(action, "action");
+
+ this.timestamp = timestamp;
+ this.actor = actor;
+ this.actorName = actorName;
+ this.type = Type.valueOf(type);
+ this.acted = acted;
+ this.actedName = actedName;
+ this.action = action;
+ }
+
+ /**
+ * Creates a new LogEntry and copies the values from another
+ *
+ * @param other the entry to copy values from
+ * @since 3.3
+ */
+ protected LogEntry(@Nonnull LogEntry other) {
+ this.timestamp = other.timestamp;
+ this.actor = other.actor;
+ this.actorName = other.actorName;
+ this.type = other.type;
+ this.acted = other.acted;
+ this.actedName = other.actedName;
+ this.action = other.action;
+ }
+
protected LogEntry() {
this.timestamp = 0L;
this.actor = null;
this.actorName = null;
- this.type = Character.MIN_VALUE;
+ this.type = null;
this.acted = null;
this.actedName = null;
this.action = null;
}
@Override
- public int compareTo(LogEntry o) {
- return equals(o) ? 0 : (Long.compare(timestamp, o.getTimestamp()) == 0 ? 1 : Long.compare(timestamp, o.getTimestamp()));
+ public int compareTo(@Nonnull LogEntry other) {
+ Preconditions.checkNotNull(other, "other");
+ return COMPARATOR.compare(this, other);
}
- public boolean matchesSearch(@Nonnull String query) {
- query = query.toLowerCase();
- return actorName.toLowerCase().contains(query) || actedName.toLowerCase().contains(query)
- || action.toLowerCase().contains(query);
- }
-
- @Nonnull
- public String getFormatted() {
- return String.format(FORMAT,
- String.valueOf(actorName).equals("null") ? actor.toString() : actorName,
- Character.toString(type),
- String.valueOf(actedName).equals("null") && acted != null ? acted.toString() : actedName,
- action
- );
+ /**
+ * Creates a copy of this log entry
+ *
+ * @return a copy of this log entry
+ * @since 3.3
+ */
+ public LogEntry copy() {
+ return new LogEntry(this);
}
public long getTimestamp() {
@@ -119,7 +223,7 @@ public class LogEntry implements Comparable {
}
void setActor(@Nonnull UUID actor) {
- this.actor = actor;
+ this.actor = Preconditions.checkNotNull(actor, "actor");
}
@Nonnull
@@ -128,15 +232,50 @@ public class LogEntry implements Comparable {
}
void setActorName(@Nonnull String actorName) {
- this.actorName = actorName;
+ this.actorName = Preconditions.checkNotNull(actorName, "actorName");
}
- public char getType() {
+ /**
+ * Gets the type of this entry
+ *
+ * @return the type of this entry
+ * @since 3.3
+ */
+ @Nonnull
+ public Type getEntryType() {
return type;
}
- void setType(char type) {
- this.type = type;
+ /**
+ * Sets the type of this entry
+ *
+ * @param type the new type
+ * @since 3.3
+ */
+ public void setEntryType(@Nonnull Type type) {
+ this.type = Preconditions.checkNotNull(type, "type");
+ }
+
+ /**
+ * Gets the code representing this entry type
+ *
+ * @return the code representing this entry type
+ * @deprecated in favour of {@link #getEntryType()}
+ */
+ @Deprecated
+ public char getType() {
+ return type.getCode();
+ }
+
+ /**
+ * Sets the type of this entry by code
+ *
+ * @param code the code type
+ * @deprecated in favour of {@link #setEntryType(Type)}
+ */
+ @Deprecated
+ void setType(char code) {
+ setEntryType(Type.valueOf(code));
}
@Nullable
@@ -154,7 +293,7 @@ public class LogEntry implements Comparable {
}
void setActedName(@Nonnull String actedName) {
- this.actedName = actedName;
+ this.actedName = Preconditions.checkNotNull(actedName, "actedName");
}
@Nonnull
@@ -163,7 +302,24 @@ public class LogEntry implements Comparable {
}
void setAction(@Nonnull String action) {
- this.action = action;
+ this.action = Preconditions.checkNotNull(action, "action");
+ }
+
+ public boolean matchesSearch(@Nonnull String query) {
+ query = Preconditions.checkNotNull(query, "query").toLowerCase();
+ return actorName.toLowerCase().contains(query) ||
+ actedName.toLowerCase().contains(query) ||
+ action.toLowerCase().contains(query);
+ }
+
+ @Nonnull
+ 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
+ );
}
@Override
@@ -172,11 +328,10 @@ public class LogEntry implements Comparable {
"timestamp=" + this.getTimestamp() + ", " +
"actor=" + this.getActor() + ", " +
"actorName=" + this.getActorName() + ", " +
- "type=" + this.getType() + ", " +
+ "type=" + this.getEntryType() + ", " +
"acted=" + this.getActed() + ", " +
"actedName=" + this.getActedName() + ", " +
- "action=" + this.getAction() +
- ")";
+ "action=" + this.getAction() + ")";
}
@Override
@@ -184,13 +339,14 @@ public class LogEntry implements Comparable {
if (o == this) return true;
if (!(o instanceof LogEntry)) return false;
final LogEntry other = (LogEntry) o;
+
return this.getTimestamp() == other.getTimestamp() &&
- (this.getActor() == null ? other.getActor() == null : this.getActor().equals(other.getActor())) &&
- (this.getActorName() == null ? other.getActorName() == null : this.getActorName().equals(other.getActorName())) &&
- this.getType() == other.getType() &&
+ this.getActor().equals(other.getActor()) &&
+ this.getActorName().equals(other.getActorName()) &&
+ this.getEntryType() == other.getEntryType() &&
(this.getActed() == null ? other.getActed() == null : this.getActed().equals(other.getActed())) &&
- (this.getActedName() == null ? other.getActedName() == null : this.getActedName().equals(other.getActedName())) &&
- (this.getAction() == null ? other.getAction() == null : this.getAction().equals(other.getAction()));
+ this.getActedName().equals(other.getActedName()) &&
+ this.getAction().equals(other.getAction());
}
@Override
@@ -198,118 +354,183 @@ public class LogEntry implements Comparable {
final int PRIME = 59;
int result = 1;
result = result * PRIME + (int) (this.getTimestamp() >>> 32 ^ this.getTimestamp());
- result = result * PRIME + (this.getActor() == null ? 43 : this.getActor().hashCode());
- result = result * PRIME + (this.getActorName() == null ? 43 : this.getActorName().hashCode());
- result = result * PRIME + this.getType();
+ result = result * PRIME + this.getActor().hashCode();
+ result = result * PRIME + this.getActorName().hashCode();
+ result = result * PRIME + this.getEntryType().hashCode();
result = result * PRIME + (this.getActed() == null ? 43 : this.getActed().hashCode());
- result = result * PRIME + (this.getActedName() == null ? 43 : this.getActedName().hashCode());
- result = result * PRIME + (this.getAction() == null ? 43 : this.getAction().hashCode());
+ result = result * PRIME + this.getActedName().hashCode();
+ result = result * PRIME + this.getAction().hashCode();
return result;
}
+ /**
+ * The LogEntry type
+ * @since 3.3
+ */
+ public enum Type {
+ USER('U'),
+ GROUP('G'),
+ TRACK('T');
+
+ private final char code;
+
+ Type(char code) {
+ this.code = code;
+ }
+
+ public char getCode() {
+ return this.code;
+ }
+
+ public static Type valueOf(char code) {
+ switch (code) {
+ case 'U':
+ case 'u':
+ return USER;
+ case 'G':
+ case 'g':
+ return GROUP;
+ case 'T':
+ case 't':
+ return TRACK;
+ default:
+ throw new IllegalArgumentException("Unknown code: " + code);
+ }
+ }
+ }
+
+ /**
+ * Builds LogEntry instances
+ */
public static class LogEntryBuilder extends AbstractLogEntryBuilder {
@Override
- protected LogEntry createObj() {
+ protected LogEntry createEmptyLog() {
return new LogEntry();
}
@Override
- protected LogEntryBuilder getThis() {
+ protected LogEntryBuilder getThisBuilder() {
return this;
}
}
+ /**
+ * An abstract log entry builder
+ *
+ * @param the log type
+ * @param the log builder type
+ */
public static abstract class AbstractLogEntryBuilder> {
private T obj;
private B thisObj;
public AbstractLogEntryBuilder() {
- obj = createObj();
- thisObj = getThis();
+ obj = createEmptyLog();
+ thisObj = getThisBuilder();
}
- protected abstract T createObj();
+ protected abstract T createEmptyLog();
- protected abstract B getThis();
+ protected abstract B getThisBuilder();
public long getTimestamp() {
return obj.getTimestamp();
}
+ @Nonnull
public UUID getActor() {
return obj.getActor();
}
+ @Nonnull
public String getActorName() {
return obj.getActorName();
}
+ @Nonnull
+ public Type getEntryType() {
+ return obj.getEntryType();
+ }
+
+ @Nonnull
+ @Deprecated
public char getType() {
return obj.getType();
}
+ @Nullable
public UUID getActed() {
return obj.getActed();
}
+ @Nonnull
public String getActedName() {
return obj.getActedName();
}
+ @Nonnull
public String getAction() {
return obj.getAction();
}
+ @Nonnull
public B timestamp(long timestamp) {
obj.setTimestamp(timestamp);
return thisObj;
}
- public B actor(UUID actor) {
+ @Nonnull
+ public B actor(@Nonnull UUID actor) {
obj.setActor(actor);
return thisObj;
}
- public B actorName(String actorName) {
+ @Nonnull
+ public B actorName(@Nonnull String actorName) {
obj.setActorName(actorName);
return thisObj;
}
+ @Nonnull
+ public B entryType(@Nonnull Type type) {
+ obj.setEntryType(type);
+ return thisObj;
+ }
+
+ @Nonnull
+ @Deprecated
public B type(char type) {
obj.setType(type);
return thisObj;
}
- public B acted(UUID acted) {
+ @Nonnull
+ public B acted(@Nullable UUID acted) {
obj.setActed(acted);
return thisObj;
}
- public B actedName(String actedName) {
+ @Nonnull
+ public B actedName(@Nonnull String actedName) {
obj.setActedName(actedName);
return thisObj;
}
- public B action(String action) {
+ @Nonnull
+ public B action(@Nonnull String action) {
obj.setAction(action);
return thisObj;
}
+ @Nonnull
public T build() {
- if (getActor() == null) {
- throw new NullPointerException("actor");
- }
- if (getActorName() == null) {
- throw new NullPointerException("actorName");
- }
- if (getActedName() == null) {
- throw new NullPointerException("actedName");
- }
- if (getAction() == null) {
- throw new NullPointerException("action");
- }
+ Preconditions.checkNotNull(getActor(), "actor");
+ Preconditions.checkNotNull(getActorName(), "actorName");
+ Preconditions.checkNotNull(getEntryType(), "type");
+ Preconditions.checkNotNull(getActedName(), "actedName");
+ Preconditions.checkNotNull(getAction(), "action");
return obj;
}
@@ -320,11 +541,10 @@ public class LogEntry implements Comparable {
"timestamp=" + this.getTimestamp() + ", " +
"actor=" + this.getActor() + ", " +
"actorName=" + this.getActorName() + ", " +
- "type=" + this.getType() + ", " +
+ "type=" + this.getEntryType() + ", " +
"acted=" + this.getActed() + ", " +
"actedName=" + this.getActedName() + ", " +
- "action=" + this.getAction() +
- ")";
+ "action=" + this.getAction() + ")";
}
}
diff --git a/common/src/main/java/me/lucko/luckperms/common/data/LogEntry.java b/common/src/main/java/me/lucko/luckperms/common/actionlog/ExtendedLogEntry.java
similarity index 74%
rename from common/src/main/java/me/lucko/luckperms/common/data/LogEntry.java
rename to common/src/main/java/me/lucko/luckperms/common/actionlog/ExtendedLogEntry.java
index e0f68907..f093aafe 100644
--- a/common/src/main/java/me/lucko/luckperms/common/data/LogEntry.java
+++ b/common/src/main/java/me/lucko/luckperms/common/actionlog/ExtendedLogEntry.java
@@ -23,8 +23,9 @@
* SOFTWARE.
*/
-package me.lucko.luckperms.common.data;
+package me.lucko.luckperms.common.actionlog;
+import me.lucko.luckperms.api.LogEntry;
import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.config.ConfigKeys;
import me.lucko.luckperms.common.constants.CommandPermission;
@@ -38,13 +39,17 @@ import me.lucko.luckperms.common.utils.DateUtil;
import java.util.List;
-public class LogEntry extends me.lucko.luckperms.api.LogEntry {
- public static LogEntryBuilder build() {
- return new LogEntryBuilder();
+/**
+ * An extended version of {@link LogEntry}, with helper methods for
+ * populating and using the entry using internal LuckPerms classes.
+ */
+public class ExtendedLogEntry extends LogEntry {
+ public static ExtendedLogEntryBuilder build() {
+ return new ExtendedLogEntryBuilder();
}
- private LogEntry() {
- super();
+ public ExtendedLogEntry copy() {
+ return (ExtendedLogEntry) super.copy();
}
public void submit(LuckPermsPlugin plugin) {
@@ -79,62 +84,44 @@ public class LogEntry extends me.lucko.luckperms.api.LogEntry {
}
}
- public static class LogEntryBuilder extends AbstractLogEntryBuilder {
+ public static class ExtendedLogEntryBuilder extends AbstractLogEntryBuilder {
@Override
- protected LogEntry createObj() {
- return new LogEntry();
+ protected ExtendedLogEntry createEmptyLog() {
+ return new ExtendedLogEntry();
}
@Override
- protected LogEntryBuilder getThis() {
+ protected ExtendedLogEntryBuilder getThisBuilder() {
return this;
}
- public LogEntryBuilder actor(Sender actor) {
+ public ExtendedLogEntryBuilder actor(Sender actor) {
super.actorName(actor.getName());
super.actor(actor.getUuid());
return this;
}
- public LogEntryBuilder type(String type) {
- super.type(type.toCharArray()[0]);
- return this;
- }
-
- public LogEntryBuilder type(Object object) {
- if (object instanceof User) {
- super.type('U');
- } else if (object instanceof Group) {
- super.type('G');
- } else if (object instanceof Track) {
- super.type('T');
- } else {
- throw new IllegalArgumentException();
- }
- return this;
- }
-
- public LogEntryBuilder acted(PermissionHolder acted) {
+ public ExtendedLogEntryBuilder acted(PermissionHolder acted) {
if (acted instanceof User) {
super.actedName(((User) acted).getName().orElse("null"));
super.acted(((User) acted).getUuid());
- super.type('U');
+ super.entryType(Type.USER);
} else if (acted instanceof Group) {
super.actedName(((Group) acted).getName());
- super.type('G');
+ super.entryType(Type.GROUP);
}
return this;
}
- public LogEntryBuilder acted(Track track) {
+ public ExtendedLogEntryBuilder acted(Track track) {
super.actedName(track.getName());
- super.type('T');
+ super.entryType(Type.TRACK);
return this;
}
@Override
- public LogEntry build() {
+ public ExtendedLogEntry build() {
if (getTimestamp() == 0L) {
super.timestamp(DateUtil.unixSecondsNow());
}
diff --git a/common/src/main/java/me/lucko/luckperms/common/data/Log.java b/common/src/main/java/me/lucko/luckperms/common/actionlog/Log.java
similarity index 92%
rename from common/src/main/java/me/lucko/luckperms/common/data/Log.java
rename to common/src/main/java/me/lucko/luckperms/common/actionlog/Log.java
index 907b3ddc..461cd39d 100644
--- a/common/src/main/java/me/lucko/luckperms/common/data/Log.java
+++ b/common/src/main/java/me/lucko/luckperms/common/actionlog/Log.java
@@ -23,7 +23,7 @@
* SOFTWARE.
*/
-package me.lucko.luckperms.common.data;
+package me.lucko.luckperms.common.actionlog;
import lombok.Getter;
@@ -119,7 +119,8 @@ public class Log {
public SortedSet getUserHistory(UUID uuid) {
return content.stream()
- .filter(e -> e.getType() == 'U')
+ .filter(e -> e.getEntryType() == LogEntry.Type.USER)
+ .filter(e -> e.getActed() != null)
.filter(e -> e.getActed().equals(uuid))
.collect(Collectors.toCollection(TreeSet::new));
}
@@ -130,14 +131,15 @@ public class Log {
public int getUserHistoryMaxPages(UUID uuid) {
return getMaxPages(content.stream()
- .filter(e -> e.getType() == 'U')
+ .filter(e -> e.getEntryType() == LogEntry.Type.USER)
+ .filter(e -> e.getActed() != null)
.filter(e -> e.getActed().equals(uuid))
.count(), PAGE_ENTRIES);
}
public SortedSet getGroupHistory(String name) {
return content.stream()
- .filter(e -> e.getType() == 'G')
+ .filter(e -> e.getEntryType() == LogEntry.Type.GROUP)
.filter(e -> e.getActedName().equals(name))
.collect(Collectors.toCollection(TreeSet::new));
}
@@ -148,14 +150,14 @@ public class Log {
public int getGroupHistoryMaxPages(String name) {
return getMaxPages(content.stream()
- .filter(e -> e.getType() == 'G')
+ .filter(e -> e.getEntryType() == LogEntry.Type.GROUP)
.filter(e -> e.getActedName().equals(name))
.count(), PAGE_ENTRIES);
}
public SortedSet getTrackHistory(String name) {
return content.stream()
- .filter(e -> e.getType() == 'T')
+ .filter(e -> e.getEntryType() == LogEntry.Type.TRACK)
.filter(e -> e.getActedName().equals(name))
.collect(Collectors.toCollection(TreeSet::new));
}
@@ -166,7 +168,7 @@ public class Log {
public int getTrackHistoryMaxPages(String name) {
return getMaxPages(content.stream()
- .filter(e -> e.getType() == 'T')
+ .filter(e -> e.getEntryType() == LogEntry.Type.TRACK)
.filter(e -> e.getActedName().equals(name))
.count(), PAGE_ENTRIES);
}
diff --git a/common/src/main/java/me/lucko/luckperms/common/api/delegates/LogDelegate.java b/common/src/main/java/me/lucko/luckperms/common/api/delegates/LogDelegate.java
index 4f8b2ef6..0d0c3126 100644
--- a/common/src/main/java/me/lucko/luckperms/common/api/delegates/LogDelegate.java
+++ b/common/src/main/java/me/lucko/luckperms/common/api/delegates/LogDelegate.java
@@ -38,11 +38,11 @@ import java.util.UUID;
import static me.lucko.luckperms.common.api.ApiUtils.checkName;
/**
- * Provides a link between {@link Log} and {@link me.lucko.luckperms.common.data.Log}
+ * Provides a link between {@link Log} and {@link me.lucko.luckperms.common.actionlog.Log}
*/
@AllArgsConstructor
public class LogDelegate implements Log {
- private final me.lucko.luckperms.common.data.Log handle;
+ private final me.lucko.luckperms.common.actionlog.Log handle;
@Override
public SortedSet getContent() {
diff --git a/common/src/main/java/me/lucko/luckperms/common/data/Exporter.java b/common/src/main/java/me/lucko/luckperms/common/backup/Exporter.java
similarity index 99%
rename from common/src/main/java/me/lucko/luckperms/common/data/Exporter.java
rename to common/src/main/java/me/lucko/luckperms/common/backup/Exporter.java
index 1525b278..2c525a13 100644
--- a/common/src/main/java/me/lucko/luckperms/common/data/Exporter.java
+++ b/common/src/main/java/me/lucko/luckperms/common/backup/Exporter.java
@@ -23,7 +23,7 @@
* SOFTWARE.
*/
-package me.lucko.luckperms.common.data;
+package me.lucko.luckperms.common.backup;
import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.common.commands.sender.Sender;
diff --git a/common/src/main/java/me/lucko/luckperms/common/data/Importer.java b/common/src/main/java/me/lucko/luckperms/common/backup/Importer.java
similarity index 99%
rename from common/src/main/java/me/lucko/luckperms/common/data/Importer.java
rename to common/src/main/java/me/lucko/luckperms/common/backup/Importer.java
index c7fed613..77bee9f1 100644
--- a/common/src/main/java/me/lucko/luckperms/common/data/Importer.java
+++ b/common/src/main/java/me/lucko/luckperms/common/backup/Importer.java
@@ -23,7 +23,7 @@
* SOFTWARE.
*/
-package me.lucko.luckperms.common.data;
+package me.lucko.luckperms.common.backup;
import lombok.AccessLevel;
import lombok.Getter;
diff --git a/common/src/main/java/me/lucko/luckperms/common/data/ImporterSender.java b/common/src/main/java/me/lucko/luckperms/common/backup/ImporterSender.java
similarity index 98%
rename from common/src/main/java/me/lucko/luckperms/common/data/ImporterSender.java
rename to common/src/main/java/me/lucko/luckperms/common/backup/ImporterSender.java
index 162cf136..5bb47ec9 100644
--- a/common/src/main/java/me/lucko/luckperms/common/data/ImporterSender.java
+++ b/common/src/main/java/me/lucko/luckperms/common/backup/ImporterSender.java
@@ -23,7 +23,7 @@
* SOFTWARE.
*/
-package me.lucko.luckperms.common.data;
+package me.lucko.luckperms.common.backup;
import lombok.AllArgsConstructor;
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaAddChatMeta.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaAddChatMeta.java
index 28d607e4..efffe60f 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaAddChatMeta.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaAddChatMeta.java
@@ -28,6 +28,7 @@ package me.lucko.luckperms.common.commands.impl.generic.meta;
import me.lucko.luckperms.api.ChatMetaType;
import me.lucko.luckperms.api.DataMutateResult;
import me.lucko.luckperms.api.context.MutableContextSet;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.ArgumentPermissions;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
@@ -37,7 +38,6 @@ import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.CommandPermission;
import me.lucko.luckperms.common.constants.Constants;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -93,7 +93,7 @@ public class MetaAddChatMeta extends SharedSubCommand {
builder.applyDeep(c -> c.hoverEvent(event));
sender.sendMessage(builder.build());
- LogEntry.build().actor(sender).acted(holder)
+ ExtendedLogEntry.build().actor(sender).acted(holder)
.action("meta add" + type.name().toLowerCase() + " " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" ")))
.build().submit(plugin, sender);
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaAddTempChatMeta.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaAddTempChatMeta.java
index 16b5a207..fd334827 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaAddTempChatMeta.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaAddTempChatMeta.java
@@ -29,6 +29,7 @@ import me.lucko.luckperms.api.ChatMetaType;
import me.lucko.luckperms.api.DataMutateResult;
import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.api.context.MutableContextSet;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.ArgumentPermissions;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
@@ -39,7 +40,6 @@ import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.config.ConfigKeys;
import me.lucko.luckperms.common.constants.CommandPermission;
import me.lucko.luckperms.common.constants.Constants;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -103,7 +103,7 @@ public class MetaAddTempChatMeta extends SharedSubCommand {
builder.applyDeep(c -> c.hoverEvent(event));
sender.sendMessage(builder.build());
- LogEntry.build().actor(sender).acted(holder)
+ ExtendedLogEntry.build().actor(sender).acted(holder)
.action("meta addtemp" + type.name().toLowerCase() + " " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" ")))
.build().submit(plugin, sender);
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaClear.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaClear.java
index 90725673..efe21c05 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaClear.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaClear.java
@@ -26,6 +26,7 @@
package me.lucko.luckperms.common.commands.impl.generic.meta;
import me.lucko.luckperms.api.context.MutableContextSet;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.ArgumentPermissions;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
@@ -34,7 +35,6 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.CommandPermission;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -79,7 +79,7 @@ public class MetaClear extends SharedSubCommand {
Message.META_CLEAR_SUCCESS.send(sender, holder.getFriendlyName(), Util.contextSetToString(context), changed);
}
- LogEntry.build().actor(sender).acted(holder)
+ ExtendedLogEntry.build().actor(sender).acted(holder)
.action("meta clear " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" ")))
.build().submit(plugin, sender);
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaRemoveChatMeta.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaRemoveChatMeta.java
index a7ae81b3..fd13b6bc 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaRemoveChatMeta.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaRemoveChatMeta.java
@@ -28,6 +28,7 @@ package me.lucko.luckperms.common.commands.impl.generic.meta;
import me.lucko.luckperms.api.ChatMetaType;
import me.lucko.luckperms.api.DataMutateResult;
import me.lucko.luckperms.api.context.MutableContextSet;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.ArgumentPermissions;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
@@ -37,7 +38,6 @@ import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.CommandPermission;
import me.lucko.luckperms.common.constants.Constants;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -107,7 +107,7 @@ public class MetaRemoveChatMeta extends SharedSubCommand {
builder.applyDeep(c -> c.hoverEvent(event));
sender.sendMessage(builder.build());
- LogEntry.build().actor(sender).acted(holder)
+ ExtendedLogEntry.build().actor(sender).acted(holder)
.action("meta remove" + type.name().toLowerCase() + " " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" ")))
.build().submit(plugin, sender);
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaRemoveTempChatMeta.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaRemoveTempChatMeta.java
index deb81bd7..8ce17e2f 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaRemoveTempChatMeta.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaRemoveTempChatMeta.java
@@ -28,6 +28,7 @@ package me.lucko.luckperms.common.commands.impl.generic.meta;
import me.lucko.luckperms.api.ChatMetaType;
import me.lucko.luckperms.api.DataMutateResult;
import me.lucko.luckperms.api.context.MutableContextSet;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.ArgumentPermissions;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
@@ -37,7 +38,6 @@ import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.CommandPermission;
import me.lucko.luckperms.common.constants.Constants;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -107,7 +107,7 @@ public class MetaRemoveTempChatMeta extends SharedSubCommand {
builder.applyDeep(c -> c.hoverEvent(event));
sender.sendMessage(builder.build());
- LogEntry.build().actor(sender).acted(holder)
+ ExtendedLogEntry.build().actor(sender).acted(holder)
.action("meta removetemp" + type.name().toLowerCase() + " " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" ")))
.build().submit(plugin, sender);
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaSet.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaSet.java
index 79103b42..e6463f9b 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaSet.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaSet.java
@@ -27,6 +27,7 @@ package me.lucko.luckperms.common.commands.impl.generic.meta;
import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.api.context.MutableContextSet;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.ArgumentPermissions;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
@@ -35,7 +36,6 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.CommandPermission;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -96,7 +96,7 @@ public class MetaSet extends SharedSubCommand {
builder.applyDeep(c -> c.hoverEvent(event));
sender.sendMessage(builder.build());
- LogEntry.build().actor(sender).acted(holder)
+ ExtendedLogEntry.build().actor(sender).acted(holder)
.action("meta set " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" ")))
.build().submit(plugin, sender);
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaSetTemp.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaSetTemp.java
index 14116287..ce0f7ba5 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaSetTemp.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaSetTemp.java
@@ -27,6 +27,7 @@ package me.lucko.luckperms.common.commands.impl.generic.meta;
import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.api.context.MutableContextSet;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.ArgumentPermissions;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
@@ -37,7 +38,6 @@ import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.config.ConfigKeys;
import me.lucko.luckperms.common.constants.CommandPermission;
import me.lucko.luckperms.common.constants.Constants;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -102,7 +102,7 @@ public class MetaSetTemp extends SharedSubCommand {
builder.applyDeep(c -> c.hoverEvent(event));
sender.sendMessage(builder.build());
- LogEntry.build().actor(sender).acted(holder)
+ ExtendedLogEntry.build().actor(sender).acted(holder)
.action("meta settemp " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" ")))
.build().submit(plugin, sender);
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaUnset.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaUnset.java
index 04f1629a..8b97825c 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaUnset.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaUnset.java
@@ -26,6 +26,7 @@
package me.lucko.luckperms.common.commands.impl.generic.meta;
import me.lucko.luckperms.api.context.MutableContextSet;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.ArgumentPermissions;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
@@ -34,7 +35,6 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.CommandPermission;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -73,7 +73,7 @@ public class MetaUnset extends SharedSubCommand {
holder.clearMetaKeys(key, context, false);
Message.UNSET_META_SUCCESS.send(sender, key, holder.getFriendlyName(), Util.contextSetToString(context));
- LogEntry.build().actor(sender).acted(holder)
+ ExtendedLogEntry.build().actor(sender).acted(holder)
.action("meta unset " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" ")))
.build().submit(plugin, sender);
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaUnsetTemp.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaUnsetTemp.java
index bfaabe17..f7efb1d1 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaUnsetTemp.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaUnsetTemp.java
@@ -26,6 +26,7 @@
package me.lucko.luckperms.common.commands.impl.generic.meta;
import me.lucko.luckperms.api.context.MutableContextSet;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.ArgumentPermissions;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
@@ -34,7 +35,6 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.CommandPermission;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -73,7 +73,7 @@ public class MetaUnsetTemp extends SharedSubCommand {
holder.clearMetaKeys(key, context, true);
Message.UNSET_META_TEMP_SUCCESS.send(sender, key, holder.getFriendlyName(), Util.contextSetToString(context));
- LogEntry.build().actor(sender).acted(holder)
+ ExtendedLogEntry.build().actor(sender).acted(holder)
.action("meta unsettemp " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" ")))
.build().submit(plugin, sender);
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/other/HolderClear.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/other/HolderClear.java
index 72168443..3c6c5982 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/other/HolderClear.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/other/HolderClear.java
@@ -26,6 +26,7 @@
package me.lucko.luckperms.common.commands.impl.generic.other;
import me.lucko.luckperms.api.context.MutableContextSet;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.ArgumentPermissions;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
@@ -34,7 +35,6 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.CommandPermission;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -81,7 +81,7 @@ public class HolderClear extends SubCommand {
Message.CLEAR_SUCCESS.send(sender, holder.getFriendlyName(), Util.contextSetToString(context), changed);
}
- LogEntry.build().actor(sender).acted(holder)
+ ExtendedLogEntry.build().actor(sender).acted(holder)
.action("clear " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" ")))
.build().submit(plugin, sender);
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentAdd.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentAdd.java
index 7ff1fbf4..33bd4643 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentAdd.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentAdd.java
@@ -27,6 +27,7 @@ package me.lucko.luckperms.common.commands.impl.generic.parent;
import me.lucko.luckperms.api.DataMutateResult;
import me.lucko.luckperms.api.context.MutableContextSet;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.ArgumentPermissions;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
@@ -35,7 +36,6 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.CommandPermission;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -90,7 +90,7 @@ public class ParentAdd extends SharedSubCommand {
if (result.asBoolean()) {
Message.SET_INHERIT_SUCCESS.send(sender, holder.getFriendlyName(), group.getDisplayName(), Util.contextSetToString(context));
- LogEntry.build().actor(sender).acted(holder)
+ ExtendedLogEntry.build().actor(sender).acted(holder)
.action("parent add " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" ")))
.build().submit(plugin, sender);
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentAddTemp.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentAddTemp.java
index 77a18117..b0394065 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentAddTemp.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentAddTemp.java
@@ -28,6 +28,7 @@ package me.lucko.luckperms.common.commands.impl.generic.parent;
import me.lucko.luckperms.api.DataMutateResult;
import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.api.context.MutableContextSet;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.ArgumentPermissions;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
@@ -37,7 +38,6 @@ import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.config.ConfigKeys;
import me.lucko.luckperms.common.constants.CommandPermission;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -104,7 +104,7 @@ public class ParentAddTemp extends SharedSubCommand {
duration = ret.getValue().getExpiryUnixTime();
Message.SET_TEMP_INHERIT_SUCCESS.send(sender, holder.getFriendlyName(), group.getDisplayName(), DateUtil.formatDateDiff(duration), Util.contextSetToString(context));
- LogEntry.build().actor(sender).acted(holder)
+ ExtendedLogEntry.build().actor(sender).acted(holder)
.action("parent addtemp " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" ")))
.build().submit(plugin, sender);
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentClear.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentClear.java
index c5ed2df4..6183fc1c 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentClear.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentClear.java
@@ -26,6 +26,7 @@
package me.lucko.luckperms.common.commands.impl.generic.parent;
import me.lucko.luckperms.api.context.MutableContextSet;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.ArgumentPermissions;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
@@ -34,7 +35,6 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.CommandPermission;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -79,7 +79,7 @@ public class ParentClear extends SharedSubCommand {
Message.PARENT_CLEAR_SUCCESS.send(sender, holder.getFriendlyName(), Util.contextSetToString(context), changed);
}
- LogEntry.build().actor(sender).acted(holder)
+ ExtendedLogEntry.build().actor(sender).acted(holder)
.action("parent clear " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" ")))
.build().submit(plugin, sender);
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentClearTrack.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentClearTrack.java
index 2819a417..796f0d0b 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentClearTrack.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentClearTrack.java
@@ -26,6 +26,7 @@
package me.lucko.luckperms.common.commands.impl.generic.parent;
import me.lucko.luckperms.api.context.MutableContextSet;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.ArgumentPermissions;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
@@ -35,7 +36,6 @@ import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.CommandPermission;
import me.lucko.luckperms.common.constants.DataConstraints;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -116,7 +116,7 @@ public class ParentClearTrack extends SharedSubCommand {
Message.PARENT_CLEAR_TRACK_SUCCESS.send(sender, holder.getFriendlyName(), track.getName(), Util.contextSetToString(context), changed);
}
- LogEntry.build().actor(sender).acted(holder)
+ ExtendedLogEntry.build().actor(sender).acted(holder)
.action("parent cleartrack " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" ")))
.build().submit(plugin, sender);
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentRemove.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentRemove.java
index 6890b798..6cd111fb 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentRemove.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentRemove.java
@@ -27,6 +27,7 @@ package me.lucko.luckperms.common.commands.impl.generic.parent;
import me.lucko.luckperms.api.DataMutateResult;
import me.lucko.luckperms.api.context.MutableContextSet;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.ArgumentPermissions;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
@@ -36,7 +37,6 @@ import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.config.ConfigKeys;
import me.lucko.luckperms.common.constants.CommandPermission;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -93,7 +93,7 @@ public class ParentRemove extends SharedSubCommand {
if (result.asBoolean()) {
Message.UNSET_INHERIT_SUCCESS.send(sender, holder.getFriendlyName(), groupName, Util.contextSetToString(context));
- LogEntry.build().actor(sender).acted(holder)
+ ExtendedLogEntry.build().actor(sender).acted(holder)
.action("parent remove " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" ")))
.build().submit(plugin, sender);
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentRemoveTemp.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentRemoveTemp.java
index 22692125..f9d2cab6 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentRemoveTemp.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentRemoveTemp.java
@@ -27,6 +27,7 @@ package me.lucko.luckperms.common.commands.impl.generic.parent;
import me.lucko.luckperms.api.DataMutateResult;
import me.lucko.luckperms.api.context.MutableContextSet;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.ArgumentPermissions;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
@@ -35,7 +36,6 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.CommandPermission;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -79,7 +79,7 @@ public class ParentRemoveTemp extends SharedSubCommand {
if (result.asBoolean()) {
Message.UNSET_TEMP_INHERIT_SUCCESS.send(sender, holder.getFriendlyName(), groupName, Util.contextSetToString(context));
- LogEntry.build().actor(sender).acted(holder)
+ ExtendedLogEntry.build().actor(sender).acted(holder)
.action("parent removetemp " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" ")))
.build().submit(plugin, sender);
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentSet.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentSet.java
index f9315bcc..f6fdedce 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentSet.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentSet.java
@@ -26,6 +26,7 @@
package me.lucko.luckperms.common.commands.impl.generic.parent;
import me.lucko.luckperms.api.context.MutableContextSet;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.ArgumentPermissions;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
@@ -34,7 +35,6 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.CommandPermission;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -93,7 +93,7 @@ public class ParentSet extends SharedSubCommand {
Message.SET_PARENT_SUCCESS.send(sender, holder.getFriendlyName(), group.getDisplayName(), Util.contextSetToString(context));
- LogEntry.build().actor(sender).acted(holder)
+ ExtendedLogEntry.build().actor(sender).acted(holder)
.action("parent set " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" ")))
.build().submit(plugin, sender);
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentSetTrack.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentSetTrack.java
index 255b45d7..ee392268 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentSetTrack.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentSetTrack.java
@@ -26,6 +26,7 @@
package me.lucko.luckperms.common.commands.impl.generic.parent;
import me.lucko.luckperms.api.context.MutableContextSet;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.ArgumentPermissions;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
@@ -35,7 +36,6 @@ import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.CommandPermission;
import me.lucko.luckperms.common.constants.DataConstraints;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -130,7 +130,7 @@ public class ParentSetTrack extends SharedSubCommand {
Message.SET_TRACK_PARENT_SUCCESS.send(sender, holder.getFriendlyName(), track.getName(), group.getDisplayName(), Util.contextSetToString(context));
- LogEntry.build().actor(sender).acted(holder)
+ ExtendedLogEntry.build().actor(sender).acted(holder)
.action("parent settrack " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" ")))
.build().submit(plugin, sender);
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/permission/PermissionSet.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/permission/PermissionSet.java
index 845be76b..a10a9b18 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/permission/PermissionSet.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/permission/PermissionSet.java
@@ -27,6 +27,7 @@ package me.lucko.luckperms.common.commands.impl.generic.permission;
import me.lucko.luckperms.api.DataMutateResult;
import me.lucko.luckperms.api.context.MutableContextSet;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.ArgumentPermissions;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
@@ -35,7 +36,6 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.CommandPermission;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -81,7 +81,7 @@ public class PermissionSet extends SharedSubCommand {
if (result.asBoolean()) {
Message.SETPERMISSION_SUCCESS.send(sender, node, b, holder.getFriendlyName(), Util.contextSetToString(context));
- LogEntry.build().actor(sender).acted(holder)
+ ExtendedLogEntry.build().actor(sender).acted(holder)
.action("permission set " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" ")))
.build().submit(plugin, sender);
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/permission/PermissionSetTemp.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/permission/PermissionSetTemp.java
index ec67e647..17bde8c2 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/permission/PermissionSetTemp.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/permission/PermissionSetTemp.java
@@ -28,6 +28,7 @@ package me.lucko.luckperms.common.commands.impl.generic.permission;
import me.lucko.luckperms.api.DataMutateResult;
import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.api.context.MutableContextSet;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.ArgumentPermissions;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
@@ -37,7 +38,6 @@ import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.config.ConfigKeys;
import me.lucko.luckperms.common.constants.CommandPermission;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -89,7 +89,7 @@ public class PermissionSetTemp extends SharedSubCommand {
duration = result.getValue().getExpiryUnixTime();
Message.SETPERMISSION_TEMP_SUCCESS.send(sender, node, b, holder.getFriendlyName(), DateUtil.formatDateDiff(duration), Util.contextSetToString(context));
- LogEntry.build().actor(sender).acted(holder)
+ ExtendedLogEntry.build().actor(sender).acted(holder)
.action("permission settemp " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" ")))
.build().submit(plugin, sender);
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/permission/PermissionUnset.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/permission/PermissionUnset.java
index 7027cee6..ddda521f 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/permission/PermissionUnset.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/permission/PermissionUnset.java
@@ -27,6 +27,7 @@ package me.lucko.luckperms.common.commands.impl.generic.permission;
import me.lucko.luckperms.api.DataMutateResult;
import me.lucko.luckperms.api.context.MutableContextSet;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.ArgumentPermissions;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
@@ -35,7 +36,6 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.CommandPermission;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -86,7 +86,7 @@ public class PermissionUnset extends SharedSubCommand {
if (result.asBoolean()) {
Message.UNSETPERMISSION_SUCCESS.send(sender, node, holder.getFriendlyName(), Util.contextSetToString(context));
- LogEntry.build().actor(sender).acted(holder)
+ ExtendedLogEntry.build().actor(sender).acted(holder)
.action("permission unset " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" ")))
.build().submit(plugin, sender);
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/permission/PermissionUnsetTemp.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/permission/PermissionUnsetTemp.java
index aba9a55b..648409ee 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/permission/PermissionUnsetTemp.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/permission/PermissionUnsetTemp.java
@@ -27,6 +27,7 @@ package me.lucko.luckperms.common.commands.impl.generic.permission;
import me.lucko.luckperms.api.DataMutateResult;
import me.lucko.luckperms.api.context.MutableContextSet;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.ArgumentPermissions;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
@@ -35,7 +36,6 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.ArgumentUtils;
import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.CommandPermission;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -79,7 +79,7 @@ public class PermissionUnsetTemp extends SharedSubCommand {
if (result.asBoolean()) {
Message.UNSET_TEMP_PERMISSION_SUCCESS.send(sender, node, holder.getFriendlyName(), Util.contextSetToString(context));
- LogEntry.build().actor(sender).acted(holder)
+ ExtendedLogEntry.build().actor(sender).acted(holder)
.action("permission unsettemp " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" ")))
.build().submit(plugin, sender);
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/group/CreateGroup.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/group/CreateGroup.java
index b8508f32..853186b7 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/group/CreateGroup.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/group/CreateGroup.java
@@ -26,12 +26,12 @@
package me.lucko.luckperms.common.commands.impl.group;
import me.lucko.luckperms.api.event.cause.CreationCause;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SingleCommand;
import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.CommandPermission;
import me.lucko.luckperms.common.constants.DataConstraints;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -69,7 +69,7 @@ public class CreateGroup extends SingleCommand {
}
Message.CREATE_SUCCESS.send(sender, groupName);
- LogEntry.build().actor(sender).actedName(groupName).type('G').action("create").build().submit(plugin, sender);
+ ExtendedLogEntry.build().actor(sender).actedName(groupName).type('G').action("create").build().submit(plugin, sender);
return CommandResult.SUCCESS;
}
}
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/group/DeleteGroup.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/group/DeleteGroup.java
index 2215d9f6..5ad01759 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/group/DeleteGroup.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/group/DeleteGroup.java
@@ -26,13 +26,13 @@
package me.lucko.luckperms.common.commands.impl.group;
import me.lucko.luckperms.api.event.cause.DeletionCause;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SingleCommand;
import me.lucko.luckperms.common.commands.abstraction.SubCommand;
import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.config.ConfigKeys;
import me.lucko.luckperms.common.constants.CommandPermission;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -78,7 +78,7 @@ public class DeleteGroup extends SingleCommand {
}
Message.DELETE_SUCCESS.send(sender, group.getDisplayName());
- LogEntry.build().actor(sender).actedName(groupName).type('G').action("delete").build().submit(plugin, sender);
+ ExtendedLogEntry.build().actor(sender).actedName(groupName).type('G').action("delete").build().submit(plugin, sender);
plugin.getUpdateTaskBuffer().request();
return CommandResult.SUCCESS;
}
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/group/GroupClone.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/group/GroupClone.java
index 19cb78b8..774830f4 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/group/GroupClone.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/group/GroupClone.java
@@ -26,6 +26,7 @@
package me.lucko.luckperms.common.commands.impl.group;
import me.lucko.luckperms.api.event.cause.CreationCause;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.ArgumentPermissions;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
@@ -33,7 +34,6 @@ import me.lucko.luckperms.common.commands.abstraction.SubCommand;
import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.CommandPermission;
import me.lucko.luckperms.common.constants.DataConstraints;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -77,7 +77,7 @@ public class GroupClone extends SubCommand {
newGroup.replaceEnduringNodes(group.getEnduringNodes());
Message.CLONE_SUCCESS.send(sender, group.getName(), newGroup.getName());
- LogEntry.build().actor(sender).acted(group).action("clone " + newGroup.getName()).build().submit(plugin, sender);
+ ExtendedLogEntry.build().actor(sender).acted(group).action("clone " + newGroup.getName()).build().submit(plugin, sender);
save(newGroup, sender, plugin);
return CommandResult.SUCCESS;
}
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/group/GroupRename.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/group/GroupRename.java
index c4315a63..77ccf2ee 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/group/GroupRename.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/group/GroupRename.java
@@ -27,13 +27,13 @@ package me.lucko.luckperms.common.commands.impl.group;
import me.lucko.luckperms.api.event.cause.CreationCause;
import me.lucko.luckperms.api.event.cause.DeletionCause;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SubCommand;
import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.CommandPermission;
import me.lucko.luckperms.common.constants.DataConstraints;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -80,7 +80,7 @@ public class GroupRename extends SubCommand {
newGroup.replaceEnduringNodes(group.getEnduringNodes());
Message.RENAME_SUCCESS.send(sender, group.getName(), newGroup.getName());
- LogEntry.build().actor(sender).acted(group).action("rename " + newGroup.getName()).build().submit(plugin, sender);
+ ExtendedLogEntry.build().actor(sender).acted(group).action("rename " + newGroup.getName()).build().submit(plugin, sender);
save(newGroup, sender, plugin);
return CommandResult.SUCCESS;
}
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 11dbca79..65d811a6 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
@@ -26,13 +26,13 @@
package me.lucko.luckperms.common.commands.impl.log;
import me.lucko.luckperms.api.LogEntry;
+import me.lucko.luckperms.common.actionlog.Log;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SubCommand;
import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.CommandPermission;
import me.lucko.luckperms.common.constants.DataConstraints;
-import me.lucko.luckperms.common.data.Log;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogMainCommand.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogMainCommand.java
index c55a277d..71eaf661 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogMainCommand.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogMainCommand.java
@@ -27,10 +27,10 @@ package me.lucko.luckperms.common.commands.impl.log;
import com.google.common.collect.ImmutableList;
+import me.lucko.luckperms.common.actionlog.Log;
import me.lucko.luckperms.common.commands.abstraction.Command;
import me.lucko.luckperms.common.commands.abstraction.MainCommand;
import me.lucko.luckperms.common.commands.sender.Sender;
-import me.lucko.luckperms.common.data.Log;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogNotify.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogNotify.java
index 3bfedd13..6d0a64aa 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogNotify.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/log/LogNotify.java
@@ -25,12 +25,12 @@
package me.lucko.luckperms.common.commands.impl.log;
+import me.lucko.luckperms.common.actionlog.Log;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SubCommand;
import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.CommandPermission;
-import me.lucko.luckperms.common.data.Log;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
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 1f694a96..c4094a82 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
@@ -26,6 +26,7 @@
package me.lucko.luckperms.common.commands.impl.log;
import me.lucko.luckperms.api.LogEntry;
+import me.lucko.luckperms.common.actionlog.Log;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SubCommand;
@@ -33,7 +34,6 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.CommandPermission;
import me.lucko.luckperms.common.constants.DataConstraints;
-import me.lucko.luckperms.common.data.Log;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
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 1bc7170b..4a9022d9 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
@@ -26,12 +26,12 @@
package me.lucko.luckperms.common.commands.impl.log;
import me.lucko.luckperms.api.LogEntry;
+import me.lucko.luckperms.common.actionlog.Log;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SubCommand;
import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.CommandPermission;
-import me.lucko.luckperms.common.data.Log;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
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 59dd16d9..3d0c572b 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
@@ -26,13 +26,13 @@
package me.lucko.luckperms.common.commands.impl.log;
import me.lucko.luckperms.api.LogEntry;
+import me.lucko.luckperms.common.actionlog.Log;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SubCommand;
import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.CommandPermission;
import me.lucko.luckperms.common.constants.DataConstraints;
-import me.lucko.luckperms.common.data.Log;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
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 82dadc6f..60339b3a 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
@@ -26,6 +26,7 @@
package me.lucko.luckperms.common.commands.impl.log;
import me.lucko.luckperms.api.LogEntry;
+import me.lucko.luckperms.common.actionlog.Log;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SubCommand;
@@ -33,7 +34,6 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.CommandPermission;
import me.lucko.luckperms.common.constants.DataConstraints;
-import me.lucko.luckperms.common.data.Log;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/misc/ExportCommand.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/misc/ExportCommand.java
index febab7a2..e9310c92 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/misc/ExportCommand.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/misc/ExportCommand.java
@@ -25,11 +25,11 @@
package me.lucko.luckperms.common.commands.impl.misc;
+import me.lucko.luckperms.common.backup.Exporter;
import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SingleCommand;
import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.CommandPermission;
-import me.lucko.luckperms.common.data.Exporter;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/misc/ImportCommand.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/misc/ImportCommand.java
index cb669968..135743bb 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/misc/ImportCommand.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/misc/ImportCommand.java
@@ -25,11 +25,11 @@
package me.lucko.luckperms.common.commands.impl.misc;
+import me.lucko.luckperms.common.backup.Importer;
import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SingleCommand;
import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.CommandPermission;
-import me.lucko.luckperms.common.data.Importer;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/track/CreateTrack.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/track/CreateTrack.java
index e5a837a7..1d59ad49 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/track/CreateTrack.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/track/CreateTrack.java
@@ -26,12 +26,12 @@
package me.lucko.luckperms.common.commands.impl.track;
import me.lucko.luckperms.api.event.cause.CreationCause;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SingleCommand;
import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.CommandPermission;
import me.lucko.luckperms.common.constants.DataConstraints;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -69,7 +69,7 @@ public class CreateTrack extends SingleCommand {
}
Message.CREATE_SUCCESS.send(sender, trackName);
- LogEntry.build().actor(sender).actedName(trackName).type('T').action("create").build().submit(plugin, sender);
+ ExtendedLogEntry.build().actor(sender).actedName(trackName).type('T').action("create").build().submit(plugin, sender);
return CommandResult.SUCCESS;
}
}
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/track/DeleteTrack.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/track/DeleteTrack.java
index 333e5600..c288a570 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/track/DeleteTrack.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/track/DeleteTrack.java
@@ -26,12 +26,12 @@
package me.lucko.luckperms.common.commands.impl.track;
import me.lucko.luckperms.api.event.cause.DeletionCause;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SingleCommand;
import me.lucko.luckperms.common.commands.abstraction.SubCommand;
import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.constants.CommandPermission;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -71,7 +71,7 @@ public class DeleteTrack extends SingleCommand {
}
Message.DELETE_SUCCESS.send(sender, trackName);
- LogEntry.build().actor(sender).actedName(trackName).type('T').action("delete").build().submit(plugin, sender);
+ ExtendedLogEntry.build().actor(sender).actedName(trackName).type('T').action("delete").build().submit(plugin, sender);
plugin.getUpdateTaskBuffer().request();
return CommandResult.SUCCESS;
}
diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/track/TrackAppend.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/track/TrackAppend.java
index e4feb9c2..c8d96e42 100644
--- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/track/TrackAppend.java
+++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/track/TrackAppend.java
@@ -25,6 +25,7 @@
package me.lucko.luckperms.common.commands.impl.track;
+import me.lucko.luckperms.common.actionlog.ExtendedLogEntry;
import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.commands.CommandResult;
import me.lucko.luckperms.common.commands.abstraction.SubCommand;
@@ -32,7 +33,6 @@ import me.lucko.luckperms.common.commands.sender.Sender;
import me.lucko.luckperms.common.commands.utils.Util;
import me.lucko.luckperms.common.constants.CommandPermission;
import me.lucko.luckperms.common.constants.DataConstraints;
-import me.lucko.luckperms.common.data.LogEntry;
import me.lucko.luckperms.common.locale.CommandSpec;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.Message;
@@ -74,7 +74,7 @@ public class TrackAppend extends SubCommand