From 81cf50520bcebc4efe073f25d14f04f51985e4f6 Mon Sep 17 00:00:00 2001 From: Luck Date: Wed, 6 Sep 2017 21:56:41 +0100 Subject: [PATCH] Fix NodeFactory#nodeAsCommand when unsetting meta nodes, fix meta unset command --- .../commands/impl/generic/meta/MetaUnset.java | 18 +++++++++++------- .../impl/generic/meta/MetaUnsetTemp.java | 18 +++++++++++------- .../lucko/luckperms/common/locale/Message.java | 4 +++- .../luckperms/common/node/NodeFactory.java | 18 ++++++++++-------- 4 files changed, 35 insertions(+), 23 deletions(-) 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 8b97825cb..db48625d8 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 @@ -70,14 +70,18 @@ public class MetaUnset extends SharedSubCommand { return CommandResult.NO_PERMISSION; } - holder.clearMetaKeys(key, context, false); - Message.UNSET_META_SUCCESS.send(sender, key, holder.getFriendlyName(), Util.contextSetToString(context)); + if (holder.clearMetaKeys(key, context, false)) { + Message.UNSET_META_SUCCESS.send(sender, key, holder.getFriendlyName(), Util.contextSetToString(context)); - ExtendedLogEntry.build().actor(sender).acted(holder) - .action("meta unset " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" "))) - .build().submit(plugin, sender); + ExtendedLogEntry.build().actor(sender).acted(holder) + .action("meta unset " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" "))) + .build().submit(plugin, sender); - save(holder, sender, plugin); - return CommandResult.SUCCESS; + save(holder, sender, plugin); + return CommandResult.SUCCESS; + } else { + Message.DOESNT_HAVE_META.send(sender, holder.getFriendlyName()); + return CommandResult.STATE_ERROR; + } } } 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 f7efb1d1c..0fd3fd5e5 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 @@ -70,14 +70,18 @@ public class MetaUnsetTemp extends SharedSubCommand { return CommandResult.NO_PERMISSION; } - holder.clearMetaKeys(key, context, true); - Message.UNSET_META_TEMP_SUCCESS.send(sender, key, holder.getFriendlyName(), Util.contextSetToString(context)); + if (holder.clearMetaKeys(key, context, true)) { + Message.UNSET_META_TEMP_SUCCESS.send(sender, key, holder.getFriendlyName(), Util.contextSetToString(context)); - ExtendedLogEntry.build().actor(sender).acted(holder) - .action("meta unsettemp " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" "))) - .build().submit(plugin, sender); + ExtendedLogEntry.build().actor(sender).acted(holder) + .action("meta unsettemp " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" "))) + .build().submit(plugin, sender); - save(holder, sender, plugin); - return CommandResult.SUCCESS; + save(holder, sender, plugin); + return CommandResult.SUCCESS; + } else { + Message.DOESNT_HAVE_META.send(sender, holder.getFriendlyName()); + return CommandResult.STATE_ERROR; + } } } diff --git a/common/src/main/java/me/lucko/luckperms/common/locale/Message.java b/common/src/main/java/me/lucko/luckperms/common/locale/Message.java index f7a7cd923..ea8ae746a 100644 --- a/common/src/main/java/me/lucko/luckperms/common/locale/Message.java +++ b/common/src/main/java/me/lucko/luckperms/common/locale/Message.java @@ -265,13 +265,15 @@ public enum Message { REMOVE_TEMP_CHATMETA_SUCCESS("&b{0}&a had temporary {1} &f\"{2}&f\"&a at priority &b{3}&a removed in context {4}&a.", true), BULK_REMOVE_TEMP_CHATMETA_SUCCESS("&b{0}&a had all temporary {1}es at priority &b{2}&a removed in context {3}&a.", true), - ALREADY_HAS_META("{0} already has that meta key value pair set.", true), + ALREADY_HAS_META("{0} already has that meta pair set.", true), SET_META_SUCCESS("&aSet meta value for key &f\"{0}&f\"&a to &f\"{1}&f\"&a for &b{2}&a in context {3}&a.", true), SET_META_TEMP_SUCCESS("&aSet meta value for key &f\"{0}&f\"&a to &f\"{1}&f\"&a for &b{2}&a for a duration of &b{3}&a in context {4}&a.", true), UNSET_META_SUCCESS("&aUnset meta value with key &f\"{0}&f\"&a for &b{1}&a in context {2}&a.", true), UNSET_META_TEMP_SUCCESS("&aUnset temporary meta value with key &f\"{0}&f\"&a for &b{1}&a in context {2}&a.", true), + DOESNT_HAVE_META("{0} does not have that meta pair set.", true), + BULK_UPDATE_INVALID_DATA_TYPE("Invalid type. Was expecting 'all', 'users' or 'groups'.", true), BULK_UPDATE_INVALID_CONSTRAINT("Invalid constraint &4{0}&c. Constraints should be in the format '&f &c'.", true), BULK_UPDATE_INVALID_COMPARISON("Invalid comparison operator '&4{0}&c'. Expected one of the following: &f== != ~~ ~!", true), diff --git a/common/src/main/java/me/lucko/luckperms/common/node/NodeFactory.java b/common/src/main/java/me/lucko/luckperms/common/node/NodeFactory.java index 6d75804d2..f8c8797fc 100644 --- a/common/src/main/java/me/lucko/luckperms/common/node/NodeFactory.java +++ b/common/src/main/java/me/lucko/luckperms/common/node/NodeFactory.java @@ -180,16 +180,18 @@ public class NodeFactory { sb.append(node.getMeta().getKey()); } - sb.append(" "); + if (set) { + sb.append(" "); - if (node.getMeta().getValue().contains(" ")) { - sb.append("\"").append(node.getMeta().getValue()).append("\""); - } else { - sb.append(node.getMeta().getValue()); - } + if (node.getMeta().getValue().contains(" ")) { + sb.append("\"").append(node.getMeta().getValue()).append("\""); + } else { + sb.append(node.getMeta().getValue()); + } - if (node.isTemporary()) { - sb.append(" ").append(node.getExpiryUnixTime()); + if (node.isTemporary()) { + sb.append(" ").append(node.getExpiryUnixTime()); + } } return appendContextToCommand(sb, node).toString();