diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/SharedMainCommand.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/SharedMainCommand.java index cf78a5e4..3f477101 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/SharedMainCommand.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/SharedMainCommand.java @@ -122,7 +122,7 @@ public class SharedMainCommand extends SubCommand CommandResult result; try { - result = sub.execute(plugin, sender, t, strippedArgs); + result = sub.execute(plugin, sender, t, strippedArgs, label); } catch (CommandException e) { result = handleException(e, sender, sub); } diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/SharedSubCommand.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/SharedSubCommand.java index daf3e97c..6babb889 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/SharedSubCommand.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/SharedSubCommand.java @@ -82,7 +82,7 @@ public abstract class SharedSubCommand { private final Predicate isArgumentInvalid; private final ImmutableList args; - public abstract CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException; + public abstract CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException; public List onTabComplete(LuckPermsPlugin plugin, Sender sender, List args) { return Collections.emptyList(); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaAddPrefix.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaAddPrefix.java index 4b5791d2..99016af1 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaAddPrefix.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaAddPrefix.java @@ -55,7 +55,7 @@ public class MetaAddPrefix extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { int priority = ArgumentUtils.handlePriority(0, args); String prefix = ArgumentUtils.handleNodeWithoutCheck(1, args); String server = ArgumentUtils.handleServer(2, args); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaAddSuffix.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaAddSuffix.java index 8f4c6458..a122873b 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaAddSuffix.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaAddSuffix.java @@ -55,7 +55,7 @@ public class MetaAddSuffix extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { int priority = ArgumentUtils.handlePriority(0, args); String suffix = ArgumentUtils.handleNodeWithoutCheck(1, args); String server = ArgumentUtils.handleServer(2, args); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaAddTempPrefix.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaAddTempPrefix.java index 0c481902..6e993292 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaAddTempPrefix.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaAddTempPrefix.java @@ -57,7 +57,7 @@ public class MetaAddTempPrefix extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { int priority = ArgumentUtils.handlePriority(0, args); String prefix = ArgumentUtils.handleNodeWithoutCheck(1, args); long duration = ArgumentUtils.handleDuration(2, args); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaAddTempSuffix.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaAddTempSuffix.java index 1faeab0e..5b23a04d 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaAddTempSuffix.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaAddTempSuffix.java @@ -57,7 +57,7 @@ public class MetaAddTempSuffix extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { int priority = ArgumentUtils.handlePriority(0, args); String suffix = ArgumentUtils.handleNodeWithoutCheck(1, args); long duration = ArgumentUtils.handleDuration(2, args); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaClear.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaClear.java index 0ba49ec8..0e4bc742 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaClear.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaClear.java @@ -50,7 +50,7 @@ public class MetaClear extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { int before = holder.getNodes().size(); String server = ArgumentUtils.handleServer(0, args); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaInfo.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaInfo.java index 76614a2d..b890f3ee 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaInfo.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaInfo.java @@ -54,7 +54,7 @@ public class MetaInfo extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { SortedSet> prefixes = new TreeSet<>(Util.META_COMPARATOR.reversed()); SortedSet> suffixes = new TreeSet<>(Util.META_COMPARATOR.reversed()); Set meta = new HashSet<>(); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaRemovePrefix.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaRemovePrefix.java index d21ae39d..7f7fdb37 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaRemovePrefix.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaRemovePrefix.java @@ -57,7 +57,7 @@ public class MetaRemovePrefix extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { int priority = ArgumentUtils.handlePriority(0, args); String prefix = ArgumentUtils.handleNodeWithoutCheck(1, args); String server = ArgumentUtils.handleServer(2, args); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaRemoveSuffix.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaRemoveSuffix.java index 251061b3..6d203170 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaRemoveSuffix.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaRemoveSuffix.java @@ -57,7 +57,7 @@ public class MetaRemoveSuffix extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { int priority = ArgumentUtils.handlePriority(0, args); String suffix = ArgumentUtils.handleNodeWithoutCheck(1, args); String server = ArgumentUtils.handleServer(2, args); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaRemoveTempPrefix.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaRemoveTempPrefix.java index 69e3b1d7..7b886871 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaRemoveTempPrefix.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaRemoveTempPrefix.java @@ -56,7 +56,7 @@ public class MetaRemoveTempPrefix extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { int priority = ArgumentUtils.handlePriority(0, args); String prefix = ArgumentUtils.handleNodeWithoutCheck(1, args); String server = ArgumentUtils.handleServer(2, args); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaRemoveTempSuffix.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaRemoveTempSuffix.java index e5c0f1d1..aeb58eab 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaRemoveTempSuffix.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaRemoveTempSuffix.java @@ -56,7 +56,7 @@ public class MetaRemoveTempSuffix extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { int priority = ArgumentUtils.handlePriority(0, args); String suffix = ArgumentUtils.handleNodeWithoutCheck(1, args); String server = ArgumentUtils.handleServer(2, args); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaSet.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaSet.java index 91218b5f..023a5096 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaSet.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaSet.java @@ -55,7 +55,7 @@ public class MetaSet extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { String key = args.get(0); String value = args.get(1); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaSetTemp.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaSetTemp.java index 183139a2..5e74d366 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaSetTemp.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaSetTemp.java @@ -57,7 +57,7 @@ public class MetaSetTemp extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { String key = args.get(0); String value = args.get(1); long duration = ArgumentUtils.handleDuration(2, args); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaUnset.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaUnset.java index 79a0eece..58324b32 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaUnset.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaUnset.java @@ -52,7 +52,7 @@ public class MetaUnset extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { String key = args.get(0); String server = ArgumentUtils.handleServer(1, args); String world = ArgumentUtils.handleWorld(2, args); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaUnsetTemp.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaUnsetTemp.java index 7e87f95a..5b14807f 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaUnsetTemp.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/meta/MetaUnsetTemp.java @@ -52,7 +52,7 @@ public class MetaUnsetTemp extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { String key = args.get(0); String server = ArgumentUtils.handleServer(1, args); String world = ArgumentUtils.handleWorld(2, args); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/parent/ParentAdd.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/parent/ParentAdd.java index fec33a2f..3d4a079d 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/parent/ParentAdd.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/parent/ParentAdd.java @@ -56,7 +56,7 @@ public class ParentAdd extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { String groupName = ArgumentUtils.handleName(0, args); String server = ArgumentUtils.handleServer(1, args); String world = ArgumentUtils.handleWorld(2, args); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/parent/ParentAddTemp.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/parent/ParentAddTemp.java index d1744491..effa2ba7 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/parent/ParentAddTemp.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/parent/ParentAddTemp.java @@ -58,7 +58,7 @@ public class ParentAddTemp extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { String groupName = ArgumentUtils.handleName(0, args); long duration = ArgumentUtils.handleDuration(1, args); String server = ArgumentUtils.handleServer(2, args); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/parent/ParentInfo.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/parent/ParentInfo.java index 0592b8e3..a0e3b8dc 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/parent/ParentInfo.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/parent/ParentInfo.java @@ -42,7 +42,7 @@ public class ParentInfo extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { Message.LISTPARENTS.send(sender, holder.getFriendlyName(), Util.permGroupsToString(holder.getPermissions(false))); Message.LISTPARENTS_TEMP.send(sender, holder.getFriendlyName(), Util.tempGroupsToString(holder.getPermissions(false))); return CommandResult.SUCCESS; diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/parent/ParentRemove.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/parent/ParentRemove.java index 132fe53b..04aab8a5 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/parent/ParentRemove.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/parent/ParentRemove.java @@ -56,7 +56,7 @@ public class ParentRemove extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { String groupName = ArgumentUtils.handleName(0, args); String server = ArgumentUtils.handleServer(1, args); String world = ArgumentUtils.handleWorld(2, args); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/parent/ParentRemoveTemp.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/parent/ParentRemoveTemp.java index e74305be..e463b8c2 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/parent/ParentRemoveTemp.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/parent/ParentRemoveTemp.java @@ -55,7 +55,7 @@ public class ParentRemoveTemp extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { String groupName = ArgumentUtils.handleName(0, args); String server = ArgumentUtils.handleServer(1, args); String world = ArgumentUtils.handleWorld(2, args); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/parent/ParentSet.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/parent/ParentSet.java index 4e4b618b..7e8d16ea 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/parent/ParentSet.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/parent/ParentSet.java @@ -57,7 +57,7 @@ public class ParentSet extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { String groupName = ArgumentUtils.handleName(0, args); String server = ArgumentUtils.handleServer(1, args); String world = ArgumentUtils.handleWorld(2, args); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionCheck.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionCheck.java index 72776212..d6278aea 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionCheck.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionCheck.java @@ -53,7 +53,7 @@ public class PermissionCheck extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { String node = ArgumentUtils.handleNodeWithoutCheck(0, args); String server = ArgumentUtils.handleServer(1, args); String world = ArgumentUtils.handleWorld(2, args); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionCheckInherits.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionCheckInherits.java index cc5fd5bd..10599985 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionCheckInherits.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionCheckInherits.java @@ -54,7 +54,7 @@ public class PermissionCheckInherits extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { String node = ArgumentUtils.handleNodeWithoutCheck(0, args); String server = ArgumentUtils.handleServer(1, args); String world = ArgumentUtils.handleWorld(2, args); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionInfo.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionInfo.java index 93c3e13f..6083f649 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionInfo.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionInfo.java @@ -41,8 +41,9 @@ public class PermissionInfo extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { - Message.LISTNODES.send(sender, holder.getFriendlyName(), Util.permNodesToString(holder.getPermissions(false))); + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { + Message.LISTNODES.send(sender, holder.getFriendlyName()); + sender.sendMessage(Util.permNodesToMessage(holder.getPermissions(false), holder, label)); Message.LISTNODES_TEMP.send(sender, holder.getFriendlyName(), Util.tempNodesToString(holder.getPermissions(false))); return CommandResult.SUCCESS; } diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionSet.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionSet.java index 5bb6ff0b..9efaeacc 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionSet.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionSet.java @@ -57,7 +57,7 @@ public class PermissionSet extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { String node = ArgumentUtils.handleNode(0, args); boolean b = ArgumentUtils.handleBoolean(1, args); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionSetTemp.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionSetTemp.java index c429362b..654563da 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionSetTemp.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionSetTemp.java @@ -59,7 +59,7 @@ public class PermissionSetTemp extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { String node = ArgumentUtils.handleNode(0, args); boolean b = ArgumentUtils.handleBoolean(1, args); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionUnset.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionUnset.java index a12ff07d..971355fa 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionUnset.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionUnset.java @@ -53,7 +53,7 @@ public class PermissionUnset extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { String node = ArgumentUtils.handleNode(0, args); String server = ArgumentUtils.handleServer(1, args); String world = ArgumentUtils.handleWorld(2, args); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionUnsetTemp.java b/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionUnsetTemp.java index b5698b1b..7eebc236 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionUnsetTemp.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/generic/permission/PermissionUnsetTemp.java @@ -53,7 +53,7 @@ public class PermissionUnsetTemp extends SharedSubCommand { } @Override - public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args) throws CommandException { + public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List args, String label) throws CommandException { String node = ArgumentUtils.handleNode(0, args); String server = ArgumentUtils.handleServer(1, args); String world = ArgumentUtils.handleWorld(2, args); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/misc/ExportCommand.java b/common/src/main/java/me/lucko/luckperms/common/commands/misc/ExportCommand.java index 99758bf9..192889f5 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/misc/ExportCommand.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/misc/ExportCommand.java @@ -57,7 +57,7 @@ public class ExportCommand extends SingleCommand { } } - private static String nodeToString(Node node, String id, boolean group) { + public static String nodeToString(Node node, String id, boolean group) { StringBuilder sb = new StringBuilder(); sb.append("/luckperms ").append(group ? "group " : "user ").append(id).append(" "); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/utils/Util.java b/common/src/main/java/me/lucko/luckperms/common/commands/utils/Util.java index eb38ab59..60559273 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/utils/Util.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/utils/Util.java @@ -27,11 +27,17 @@ import lombok.experimental.UtilityClass; import me.lucko.luckperms.api.LocalizedNode; import me.lucko.luckperms.api.Node; import me.lucko.luckperms.api.Tristate; +import me.lucko.luckperms.common.commands.misc.ExportCommand; import me.lucko.luckperms.common.commands.sender.Sender; import me.lucko.luckperms.common.constants.Message; import me.lucko.luckperms.common.constants.Patterns; +import me.lucko.luckperms.common.core.model.PermissionHolder; +import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.utils.DateUtil; +import io.github.mkremins.fanciful.ChatColor; +import io.github.mkremins.fanciful.FancyMessage; + import java.util.ArrayList; import java.util.Comparator; import java.util.List; @@ -124,10 +130,35 @@ public class Util { return sb.toString(); } + public static FancyMessage appendNodeContextDescription(Node node, FancyMessage message) { + if (node.isServerSpecific()) { + message = message.then(" "); + message = appendContext("server", node.getServer().get(), message); + } + if (node.isWorldSpecific()) { + message = message.then(" "); + message = appendContext("world", node.getWorld().get(), message); + } + for (Map.Entry c : node.getContexts().toSet()) { + message = message.then(" "); + message = appendContext(c.getKey(), c.getValue(), message); + } + + return message; + } + public static String contextToString(String key, String value) { return "&8(&7" + key + "=&f" + value + "&8)"; } + public static FancyMessage appendContext(String key, String value, FancyMessage message) { + return message + .then("(").color(ChatColor.getByChar('8')) + .then(key + "=").color(ChatColor.getByChar('7')) + .then(value).color(ChatColor.getByChar('f')) + .then(")").color(ChatColor.getByChar('8')); + } + public static String permNodesToString(SortedSet nodes) { StringBuilder sb = new StringBuilder(); for (Node node : nodes) { @@ -142,6 +173,42 @@ public class Util { return sb.length() == 0 ? "&3None" : sb.toString(); } + private static FancyMessage makeFancy(PermissionHolder holder, String label, Node node, FancyMessage message) { + message = message.formattedTooltip( + new FancyMessage("> ") + .color(ChatColor.getByChar('3')) + .then(node.getPermission()) + .color(node.getValue() ? ChatColor.getByChar('a') : ChatColor.getByChar('c')), + new FancyMessage(" "), + new FancyMessage("Click to remove this node from " + holder.getFriendlyName()).color(ChatColor.getByChar('7')) + ); + + boolean group = !(holder instanceof User); + String command = ExportCommand.nodeToString(node, group ? holder.getObjectName() : holder.getFriendlyName(), group) + .replace("/luckperms", "/" + label) + .replace("set", "unset") + .replace(" true", "") + .replace(" false", ""); + + message = message.suggest(command); + return message; + } + + public static FancyMessage permNodesToMessage(SortedSet nodes, PermissionHolder holder, String label) { + FancyMessage message = new FancyMessage(""); + + boolean found = false; + for (Node node : nodes) { + if (node.isTemporary()) continue; + found = true; + message = makeFancy(holder, label, node, message.then("> ").color(ChatColor.getByChar('3'))); + message = makeFancy(holder, label, node, message.then(Util.color(node.getPermission())).color(node.getValue() ? ChatColor.getByChar('a') : ChatColor.getByChar('c'))); + message = makeFancy(holder, label, node, appendNodeContextDescription(node, message)); + message = message.then("\n"); + } + return !found ? new FancyMessage("None").color(ChatColor.getByChar('3')) : message; + } + public static String tempNodesToString(SortedSet nodes) { StringBuilder sb = new StringBuilder(); for (Node node : nodes) { diff --git a/common/src/main/java/me/lucko/luckperms/common/constants/Message.java b/common/src/main/java/me/lucko/luckperms/common/constants/Message.java index 8e4a8de2..d9769452 100644 --- a/common/src/main/java/me/lucko/luckperms/common/constants/Message.java +++ b/common/src/main/java/me/lucko/luckperms/common/constants/Message.java @@ -160,7 +160,7 @@ public enum Message { DELETE_TRACK_ERROR("There was an error whilst deleting the track.", true), TRACKS_LIST("&aTracks: {0}", true), - LISTNODES("&b{0}'s Nodes:" + "\n" + "{1}", true), + LISTNODES("&b{0}'s Nodes:", true), LISTNODES_TEMP("&b{0}'s Temporary Nodes:" + "\n" + "{1}", true), LISTPARENTS("&b{0}'s Parent Groups:" + "\n" + "{1}", true), LISTPARENTS_TEMP("&b{0}'s Temporary Parent Groups:" + "\n" + "{1}", true),