diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaInfo.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaInfo.java index 801174fa5..3e369082d 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaInfo.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/meta/MetaInfo.java @@ -169,12 +169,8 @@ public class MetaInfo extends SharedSubCommand { ), '¥')); boolean group = !(holder instanceof User); - String command = NodeFactory.nodeAsCommand(node, group ? holder.getObjectName() : holder.getFriendlyName(), group) - .replace("/luckperms", "/" + label) - .replace("permission set", "permission unset") - .replace("parent add", "parent remove") - .replace(" true", "") - .replace(" false", ""); + String command = NodeFactory.nodeAsCommand(node, group ? holder.getObjectName() : holder.getFriendlyName(), group, false) + .replace("/luckperms", "/" + label); return component -> { component.hoverEvent(hoverEvent); @@ -198,12 +194,8 @@ public class MetaInfo extends SharedSubCommand { ), '¥')); boolean group = !(holder instanceof User); - String command = NodeFactory.nodeAsCommand(node, group ? holder.getObjectName() : holder.getFriendlyName(), group) - .replace("/luckperms", "/" + label) - .replace("permission set", "permission unset") - .replace("parent add", "parent remove") - .replace(" true", "") - .replace(" false", ""); + String command = NodeFactory.nodeAsCommand(node, group ? holder.getObjectName() : holder.getFriendlyName(), group, false) + .replace("/luckperms", "/" + label); return component -> { component.hoverEvent(hoverEvent); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentInfo.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentInfo.java index a3ead6406..bbf88312e 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentInfo.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/parent/ParentInfo.java @@ -128,12 +128,8 @@ public class ParentInfo extends SharedSubCommand { ), Constants.FORMAT_CHAR)); boolean group = !(holder instanceof User); - String command = NodeFactory.nodeAsCommand(node, group ? holder.getObjectName() : holder.getFriendlyName(), group) - .replace("/luckperms", "/" + label) - .replace("permission set", "permission unset") - .replace("parent add", "parent remove") - .replace(" true", "") - .replace(" false", ""); + String command = NodeFactory.nodeAsCommand(node, group ? holder.getObjectName() : holder.getFriendlyName(), group, false) + .replace("/luckperms", "/" + label); return component -> { component.hoverEvent(hoverEvent); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/permission/PermissionInfo.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/permission/PermissionInfo.java index 127bc3252..390d74009 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/permission/PermissionInfo.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/generic/permission/PermissionInfo.java @@ -159,12 +159,8 @@ public class PermissionInfo extends SharedSubCommand { ), '¥')); boolean group = !(holder instanceof User); - String command = NodeFactory.nodeAsCommand(node, group ? holder.getObjectName() : holder.getFriendlyName(), group) - .replace("/luckperms", "/" + label) - .replace("permission set", "permission unset") - .replace("parent add", "parent remove") - .replace(" true", "") - .replace(" false", ""); + String command = NodeFactory.nodeAsCommand(node, group ? holder.getObjectName() : holder.getFriendlyName(), group, false) + .replace("/luckperms", "/" + label); return component -> { component.hoverEvent(hoverEvent); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/group/GroupListMembers.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/group/GroupListMembers.java index de94d5854..8aac373a5 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/group/GroupListMembers.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/group/GroupListMembers.java @@ -196,12 +196,8 @@ public class GroupListMembers extends SubCommand { "&7Click to remove this parent from " + holderName ), Constants.FORMAT_CHAR)); - String command = NodeFactory.nodeAsCommand(perm.asNode(), holderName, group) - .replace("/luckperms", "/" + label) - .replace("permission set", "permission unset") - .replace("parent add", "parent remove") - .replace(" true", "") - .replace(" false", ""); + String command = NodeFactory.nodeAsCommand(perm.asNode(), holderName, group, false) + .replace("/luckperms", "/" + label); return component -> { component.hoverEvent(hoverEvent); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/impl/misc/SearchCommand.java b/common/src/main/java/me/lucko/luckperms/common/commands/impl/misc/SearchCommand.java index 6c34adcd5..e0d370acf 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/impl/misc/SearchCommand.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/impl/misc/SearchCommand.java @@ -195,12 +195,8 @@ public class SearchCommand extends SingleCommand { "&7Click to remove this node from " + holderName ), Constants.FORMAT_CHAR)); - String command = NodeFactory.nodeAsCommand(perm.asNode(), holderName, group) - .replace("/luckperms", "/" + label) - .replace("permission set", "permission unset") - .replace("parent add", "parent remove") - .replace(" true", "") - .replace(" false", ""); + String command = NodeFactory.nodeAsCommand(perm.asNode(), holderName, group, false) + .replace("/luckperms", "/" + label); return component -> { component.hoverEvent(hoverEvent); diff --git a/common/src/main/java/me/lucko/luckperms/common/core/NodeFactory.java b/common/src/main/java/me/lucko/luckperms/common/core/NodeFactory.java index b5fbcff60..985af04ba 100644 --- a/common/src/main/java/me/lucko/luckperms/common/core/NodeFactory.java +++ b/common/src/main/java/me/lucko/luckperms/common/core/NodeFactory.java @@ -135,33 +135,34 @@ public class NodeFactory { return new NodeBuilder("suffix." + priority + "." + MetaUtils.escapeCharacters(suffix)); } - public static String nodeAsCommand(Node node, String id, boolean group) { + public static String nodeAsCommand(Node node, String id, boolean group, boolean set) { StringBuilder sb = new StringBuilder(); sb.append("/luckperms ").append(group ? "group " : "user ").append(id).append(" "); if (node.isGroupNode()) { if (node.isTemporary()) { - sb.append("parent addtemp "); + sb.append(set ? "parent addtemp " : "parent removetemp "); sb.append(node.getGroupName()); - sb.append(" ").append(node.getExpiryUnixTime()); } else { - sb.append("parent add "); + sb.append(set ? "parent add " : "parent remove "); sb.append(node.getGroupName()); } return appendContextToCommand(sb, node).toString(); } - sb.append(node.isTemporary() ? "permission settemp " : "permission set "); + sb.append(node.isTemporary() ? (set ? "permission settemp " : "permission unsettemp ") : (set ? "permission set " : "permission unset ")); if (node.getPermission().contains(" ")) { sb.append("\"").append(node.getPermission()).append("\""); } else { sb.append(node.getPermission()); } - sb.append(" ").append(node.getValue()); + if (set) { + sb.append(" ").append(node.getValue()); - if (node.isTemporary()) { - sb.append(" ").append(node.getExpiryUnixTime()); + if (node.isTemporary()) { + sb.append(" ").append(node.getExpiryUnixTime()); + } } return appendContextToCommand(sb, node).toString(); diff --git a/common/src/main/java/me/lucko/luckperms/common/data/Exporter.java b/common/src/main/java/me/lucko/luckperms/common/data/Exporter.java index a10b90973..577744c65 100644 --- a/common/src/main/java/me/lucko/luckperms/common/data/Exporter.java +++ b/common/src/main/java/me/lucko/luckperms/common/data/Exporter.java @@ -132,7 +132,7 @@ public class Exporter implements Runnable { .forEach(group -> { write(writer, "# Export group: " + group.getName()); for (Node node : group.getNodes().values()) { - write(writer, NodeFactory.nodeAsCommand(node, group.getName(), true)); + write(writer, NodeFactory.nodeAsCommand(node, group.getName(), true, true)); } write(writer, ""); log.logAllProgress("Exported {} groups so far.", groupCount.incrementAndGet()); @@ -240,7 +240,7 @@ public class Exporter implements Runnable { continue; } - output.add(NodeFactory.nodeAsCommand(node, user.getUuid().toString(), false)); + output.add(NodeFactory.nodeAsCommand(node, user.getUuid().toString(), false, true)); } if (!user.getPrimaryGroup().getStoredValue().equalsIgnoreCase("default")) {