Fix issue with bulk removing suffixes

This commit is contained in:
Luck 2017-04-25 16:51:21 +01:00
parent 7c398d2c67
commit 152ca99276
No known key found for this signature in database
GPG Key ID: EFA9B3EC5FD90F8B
3 changed files with 14 additions and 14 deletions

View File

@ -68,14 +68,14 @@ public class MetaRemoveChatMeta extends SharedSubCommand {
@Override @Override
public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List<String> args, String label) throws CommandException { public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List<String> args, String label) throws CommandException {
int priority = ArgumentUtils.handlePriority(0, args); int priority = ArgumentUtils.handlePriority(0, args);
String prefix = ArgumentUtils.handleStringOrElse(1, args, "null"); String meta = ArgumentUtils.handleStringOrElse(1, args, "null");
MutableContextSet context = ArgumentUtils.handleContext(2, args); MutableContextSet context = ArgumentUtils.handleContext(2, args);
// Handle bulk removal // Handle bulk removal
if (prefix.equalsIgnoreCase("null")) { if (meta.equalsIgnoreCase("null") || meta.equals("*")) {
holder.removeIf(n -> holder.removeIf(n ->
n.isPrefix() && (isPrefix ? n.isPrefix() : n.isSuffix()) &&
n.getPrefix().getKey() == priority && (isPrefix ? n.getPrefix() : n.getSuffix()).getKey() == priority &&
!n.isTemporary() && !n.isTemporary() &&
n.getFullContexts().makeImmutable().equals(context.makeImmutable()) n.getFullContexts().makeImmutable().equals(context.makeImmutable())
); );
@ -84,10 +84,10 @@ public class MetaRemoveChatMeta extends SharedSubCommand {
return CommandResult.SUCCESS; return CommandResult.SUCCESS;
} }
DataMutateResult result = holder.unsetPermission(NodeFactory.makeChatMetaNode(isPrefix, priority, prefix).withExtraContext(context).build()); DataMutateResult result = holder.unsetPermission(NodeFactory.makeChatMetaNode(isPrefix, priority, meta).withExtraContext(context).build());
if (result.asBoolean()) { if (result.asBoolean()) {
Message.REMOVE_CHATMETA_SUCCESS.send(sender, holder.getFriendlyName(), DESCRIPTOR.apply(isPrefix), prefix, priority, Util.contextSetToString(context)); Message.REMOVE_CHATMETA_SUCCESS.send(sender, holder.getFriendlyName(), DESCRIPTOR.apply(isPrefix), meta, priority, Util.contextSetToString(context));
LogEntry.build().actor(sender).acted(holder) LogEntry.build().actor(sender).acted(holder)
.action("meta remove" + DESCRIPTOR.apply(isPrefix) + " " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" "))) .action("meta remove" + DESCRIPTOR.apply(isPrefix) + " " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" ")))

View File

@ -68,14 +68,14 @@ public class MetaRemoveTempChatMeta extends SharedSubCommand {
@Override @Override
public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List<String> args, String label) throws CommandException { public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List<String> args, String label) throws CommandException {
int priority = ArgumentUtils.handlePriority(0, args); int priority = ArgumentUtils.handlePriority(0, args);
String prefix = ArgumentUtils.handleStringOrElse(1, args, "null"); String meta = ArgumentUtils.handleStringOrElse(1, args, "null");
MutableContextSet context = ArgumentUtils.handleContext(2, args); MutableContextSet context = ArgumentUtils.handleContext(2, args);
// Handle bulk removal // Handle bulk removal
if (prefix.equalsIgnoreCase("null")) { if (meta.equalsIgnoreCase("null") || meta.equals("*")) {
holder.removeIf(n -> holder.removeIf(n ->
n.isPrefix() && (isPrefix ? n.isPrefix() : n.isSuffix()) &&
n.getPrefix().getKey() == priority && (isPrefix ? n.getPrefix() : n.getSuffix()).getKey() == priority &&
!n.isPermanent() && !n.isPermanent() &&
n.getFullContexts().makeImmutable().equals(context.makeImmutable()) n.getFullContexts().makeImmutable().equals(context.makeImmutable())
); );
@ -84,10 +84,10 @@ public class MetaRemoveTempChatMeta extends SharedSubCommand {
return CommandResult.SUCCESS; return CommandResult.SUCCESS;
} }
DataMutateResult result = holder.unsetPermission(NodeFactory.makeChatMetaNode(isPrefix, priority, prefix).setExpiry(10L).withExtraContext(context).build()); DataMutateResult result = holder.unsetPermission(NodeFactory.makeChatMetaNode(isPrefix, priority, meta).setExpiry(10L).withExtraContext(context).build());
if (result.asBoolean()) { if (result.asBoolean()) {
Message.REMOVE_TEMP_CHATMETA_SUCCESS.send(sender, holder.getFriendlyName(), DESCRIPTOR.apply(isPrefix), prefix, priority, Util.contextSetToString(context)); Message.REMOVE_TEMP_CHATMETA_SUCCESS.send(sender, holder.getFriendlyName(), DESCRIPTOR.apply(isPrefix), meta, priority, Util.contextSetToString(context));
LogEntry.build().actor(sender).acted(holder) LogEntry.build().actor(sender).acted(holder)
.action("meta removetemp" + DESCRIPTOR.apply(isPrefix) + " " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" "))) .action("meta removetemp" + DESCRIPTOR.apply(isPrefix) + " " + args.stream().map(ArgumentUtils.WRAPPER).collect(Collectors.joining(" ")))

View File

@ -253,9 +253,9 @@ public enum Message {
ADD_CHATMETA_SUCCESS("&b{0}&a had {1} &f\"{2}&f\"&a set at a priority of &b{3}&a in context {4}&a.", true), ADD_CHATMETA_SUCCESS("&b{0}&a had {1} &f\"{2}&f\"&a set at a priority of &b{3}&a in context {4}&a.", true),
ADD_TEMP_CHATMETA_SUCCESS("&b{0}&a had {1} &f\"{2}&f\"&a set at a priority of &b{3}&a for a duration of &b{4}&a in context {5}&a.", true), ADD_TEMP_CHATMETA_SUCCESS("&b{0}&a had {1} &f\"{2}&f\"&a set at a priority of &b{3}&a for a duration of &b{4}&a in context {5}&a.", true),
REMOVE_CHATMETA_SUCCESS("&b{0}&a had {1} &f\"{2}&f\"&a at priority &b{3}&a removed in context {4}&a.", true), REMOVE_CHATMETA_SUCCESS("&b{0}&a had {1} &f\"{2}&f\"&a at priority &b{3}&a removed in context {4}&a.", true),
BULK_REMOVE_CHATMETA_SUCCESS("&b{0}&a had all {1}es at priority &b{3}&a removed in context {4}&a.", true), BULK_REMOVE_CHATMETA_SUCCESS("&b{0}&a had all {1}es at priority &b{2}&a removed in context {3}&a.", true),
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), 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{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 key value pair set.", true),