Implement bulk prefix/suffix removal

This commit is contained in:
Luck 2016-10-02 21:17:59 +01:00
parent 1da1df156e
commit 58e223e74b
No known key found for this signature in database
GPG Key ID: EFA9B3EC5FD90F8B
8 changed files with 632 additions and 200 deletions

View File

@ -23,6 +23,7 @@
package me.lucko.luckperms.commands.group.subcommands; package me.lucko.luckperms.commands.group.subcommands;
import me.lucko.luckperms.LuckPermsPlugin; import me.lucko.luckperms.LuckPermsPlugin;
import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.commands.*; import me.lucko.luckperms.commands.*;
import me.lucko.luckperms.constants.Message; import me.lucko.luckperms.constants.Message;
import me.lucko.luckperms.constants.Permission; import me.lucko.luckperms.constants.Permission;
@ -31,6 +32,7 @@ import me.lucko.luckperms.exceptions.ObjectLacksException;
import me.lucko.luckperms.groups.Group; import me.lucko.luckperms.groups.Group;
import me.lucko.luckperms.utils.ArgumentChecker; import me.lucko.luckperms.utils.ArgumentChecker;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public class GroupRemovePrefix extends SubCommand<Group> { public class GroupRemovePrefix extends SubCommand<Group> {
@ -56,44 +58,96 @@ public class GroupRemovePrefix extends SubCommand<Group> {
return CommandResult.INVALID_ARGS; return CommandResult.INVALID_ARGS;
} }
final String node = "prefix." + priority + "." + ArgumentChecker.escapeCharacters(prefix); if (prefix.equalsIgnoreCase("null")) {
String server = null;
String world = null;
try {
if (args.size() >= 3) { if (args.size() >= 3) {
final String server = args.get(2).toLowerCase(); server = args.get(2).toLowerCase();
if (ArgumentChecker.checkServer(server)) { if (ArgumentChecker.checkServer(server)) {
Message.SERVER_INVALID_ENTRY.send(sender); Message.SERVER_INVALID_ENTRY.send(sender);
return CommandResult.INVALID_ARGS; return CommandResult.INVALID_ARGS;
} }
if (args.size() == 3) { if (args.size() != 3) {
group.unsetPermission(node, server); world = args.get(3).toLowerCase();
Message.REMOVEPREFIX_SERVER_SUCCESS.send(sender, group.getDisplayName(), prefix, priority, server); }
LogEntry.build().actor(sender).acted(group) }
.action("removeprefix " + priority + " " + args.get(1) + " " + server)
.build().submit(plugin, sender); List<Node> toRemove = new ArrayList<>();
for (Node node : group.getNodes()) {
if (!node.isPrefix()) continue;
if (node.getPrefix().getKey() != priority) continue;
if (node.isTemporary()) continue;
if (node.getServer().isPresent()) {
if (server == null) continue;
if (!node.getServer().get().equalsIgnoreCase(server)) continue;
} else { } else {
final String world = args.get(3).toLowerCase(); if (server != null) continue;
group.unsetPermission(node, server, world); }
Message.REMOVEPREFIX_SERVER_WORLD_SUCCESS.send(sender, group.getDisplayName(), prefix, priority, server, world);
if (node.getWorld().isPresent()) {
if (world == null) continue;
if (!node.getWorld().get().equalsIgnoreCase(world)) continue;
} else {
if (world != null) continue;
}
toRemove.add(node);
}
toRemove.forEach(n -> {
try {
group.unsetPermission(n);
} catch (ObjectLacksException ignored) {}
});
Message.BULK_CHANGE_SUCCESS.send(sender, toRemove.size());
save(group, sender, plugin);
return CommandResult.SUCCESS;
} else {
final String node = "prefix." + priority + "." + ArgumentChecker.escapeCharacters(prefix);
try {
if (args.size() >= 3) {
final String server = args.get(2).toLowerCase();
if (ArgumentChecker.checkServer(server)) {
Message.SERVER_INVALID_ENTRY.send(sender);
return CommandResult.INVALID_ARGS;
}
if (args.size() == 3) {
group.unsetPermission(node, server);
Message.REMOVEPREFIX_SERVER_SUCCESS.send(sender, group.getDisplayName(), prefix, priority, server);
LogEntry.build().actor(sender).acted(group)
.action("removeprefix " + priority + " " + args.get(1) + " " + server)
.build().submit(plugin, sender);
} else {
final String world = args.get(3).toLowerCase();
group.unsetPermission(node, server, world);
Message.REMOVEPREFIX_SERVER_WORLD_SUCCESS.send(sender, group.getDisplayName(), prefix, priority, server, world);
LogEntry.build().actor(sender).acted(group)
.action("removeprefix " + priority + " " + args.get(1) + " " + server + " " + world)
.build().submit(plugin, sender);
}
} else {
group.unsetPermission(node);
Message.REMOVEPREFIX_SUCCESS.send(sender, group.getDisplayName(), prefix, priority);
LogEntry.build().actor(sender).acted(group) LogEntry.build().actor(sender).acted(group)
.action("removeprefix " + priority + " " + args.get(1) + " " + server + " " + world) .action("removeprefix " + priority + " " + args.get(1))
.build().submit(plugin, sender); .build().submit(plugin, sender);
} }
} else { save(group, sender, plugin);
group.unsetPermission(node); return CommandResult.SUCCESS;
Message.REMOVEPREFIX_SUCCESS.send(sender, group.getDisplayName(), prefix, priority); } catch (ObjectLacksException e) {
LogEntry.build().actor(sender).acted(group) Message.DOES_NOT_HAVE_PREFIX.send(sender, group.getDisplayName());
.action("removeprefix " + priority + " " + args.get(1)) return CommandResult.STATE_ERROR;
.build().submit(plugin, sender);
} }
save(group, sender, plugin);
return CommandResult.SUCCESS;
} catch (ObjectLacksException e) {
Message.DOES_NOT_HAVE_PREFIX.send(sender, group.getDisplayName());
return CommandResult.STATE_ERROR;
} }
} }
} }

View File

@ -23,6 +23,7 @@
package me.lucko.luckperms.commands.group.subcommands; package me.lucko.luckperms.commands.group.subcommands;
import me.lucko.luckperms.LuckPermsPlugin; import me.lucko.luckperms.LuckPermsPlugin;
import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.commands.*; import me.lucko.luckperms.commands.*;
import me.lucko.luckperms.constants.Message; import me.lucko.luckperms.constants.Message;
import me.lucko.luckperms.constants.Permission; import me.lucko.luckperms.constants.Permission;
@ -31,6 +32,7 @@ import me.lucko.luckperms.exceptions.ObjectLacksException;
import me.lucko.luckperms.groups.Group; import me.lucko.luckperms.groups.Group;
import me.lucko.luckperms.utils.ArgumentChecker; import me.lucko.luckperms.utils.ArgumentChecker;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public class GroupRemoveSuffix extends SubCommand<Group> { public class GroupRemoveSuffix extends SubCommand<Group> {
@ -56,44 +58,96 @@ public class GroupRemoveSuffix extends SubCommand<Group> {
return CommandResult.INVALID_ARGS; return CommandResult.INVALID_ARGS;
} }
final String node = "suffix." + priority + "." + ArgumentChecker.escapeCharacters(suffix); if (suffix.equalsIgnoreCase("null")) {
String server = null;
String world = null;
try {
if (args.size() >= 3) { if (args.size() >= 3) {
final String server = args.get(2).toLowerCase(); server = args.get(2).toLowerCase();
if (ArgumentChecker.checkServer(server)) { if (ArgumentChecker.checkServer(server)) {
Message.SERVER_INVALID_ENTRY.send(sender); Message.SERVER_INVALID_ENTRY.send(sender);
return CommandResult.INVALID_ARGS; return CommandResult.INVALID_ARGS;
} }
if (args.size() == 3) { if (args.size() != 3) {
group.unsetPermission(node, server); world = args.get(3).toLowerCase();
Message.REMOVESUFFIX_SERVER_SUCCESS.send(sender, group.getDisplayName(), suffix, priority, server); }
LogEntry.build().actor(sender).acted(group) }
.action("removesuffix " + priority + " " + args.get(1) + " " + server)
.build().submit(plugin, sender); List<Node> toRemove = new ArrayList<>();
for (Node node : group.getNodes()) {
if (!node.isSuffix()) continue;
if (node.getSuffix().getKey() != priority) continue;
if (node.isTemporary()) continue;
if (node.getServer().isPresent()) {
if (server == null) continue;
if (!node.getServer().get().equalsIgnoreCase(server)) continue;
} else { } else {
final String world = args.get(3).toLowerCase(); if (server != null) continue;
group.unsetPermission(node, server, world); }
Message.REMOVESUFFIX_SERVER_WORLD_SUCCESS.send(sender, group.getDisplayName(), suffix, priority, server, world);
if (node.getWorld().isPresent()) {
if (world == null) continue;
if (!node.getWorld().get().equalsIgnoreCase(world)) continue;
} else {
if (world != null) continue;
}
toRemove.add(node);
}
toRemove.forEach(n -> {
try {
group.unsetPermission(n);
} catch (ObjectLacksException ignored) {}
});
Message.BULK_CHANGE_SUCCESS.send(sender, toRemove.size());
save(group, sender, plugin);
return CommandResult.SUCCESS;
} else {
final String node = "suffix." + priority + "." + ArgumentChecker.escapeCharacters(suffix);
try {
if (args.size() >= 3) {
final String server = args.get(2).toLowerCase();
if (ArgumentChecker.checkServer(server)) {
Message.SERVER_INVALID_ENTRY.send(sender);
return CommandResult.INVALID_ARGS;
}
if (args.size() == 3) {
group.unsetPermission(node, server);
Message.REMOVESUFFIX_SERVER_SUCCESS.send(sender, group.getDisplayName(), suffix, priority, server);
LogEntry.build().actor(sender).acted(group)
.action("removesuffix " + priority + " " + args.get(1) + " " + server)
.build().submit(plugin, sender);
} else {
final String world = args.get(3).toLowerCase();
group.unsetPermission(node, server, world);
Message.REMOVESUFFIX_SERVER_WORLD_SUCCESS.send(sender, group.getDisplayName(), suffix, priority, server, world);
LogEntry.build().actor(sender).acted(group)
.action("removesuffix " + priority + " " + args.get(1) + " " + server + " " + world)
.build().submit(plugin, sender);
}
} else {
group.unsetPermission(node);
Message.REMOVESUFFIX_SUCCESS.send(sender, group.getDisplayName(), suffix, priority);
LogEntry.build().actor(sender).acted(group) LogEntry.build().actor(sender).acted(group)
.action("removesuffix " + priority + " " + args.get(1) + " " + server + " " + world) .action("removesuffix " + priority + " " + args.get(1))
.build().submit(plugin, sender); .build().submit(plugin, sender);
} }
} else { save(group, sender, plugin);
group.unsetPermission(node); return CommandResult.SUCCESS;
Message.REMOVESUFFIX_SUCCESS.send(sender, group.getDisplayName(), suffix, priority); } catch (ObjectLacksException e) {
LogEntry.build().actor(sender).acted(group) Message.DOES_NOT_HAVE_SUFFIX.send(sender, group.getDisplayName());
.action("removesuffix " + priority + " " + args.get(1)) return CommandResult.STATE_ERROR;
.build().submit(plugin, sender);
} }
save(group, sender, plugin);
return CommandResult.SUCCESS;
} catch (ObjectLacksException e) {
Message.DOES_NOT_HAVE_SUFFIX.send(sender, group.getDisplayName());
return CommandResult.STATE_ERROR;
} }
} }
} }

View File

@ -23,6 +23,7 @@
package me.lucko.luckperms.commands.group.subcommands; package me.lucko.luckperms.commands.group.subcommands;
import me.lucko.luckperms.LuckPermsPlugin; import me.lucko.luckperms.LuckPermsPlugin;
import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.commands.*; import me.lucko.luckperms.commands.*;
import me.lucko.luckperms.constants.Message; import me.lucko.luckperms.constants.Message;
import me.lucko.luckperms.constants.Permission; import me.lucko.luckperms.constants.Permission;
@ -31,6 +32,7 @@ import me.lucko.luckperms.exceptions.ObjectLacksException;
import me.lucko.luckperms.groups.Group; import me.lucko.luckperms.groups.Group;
import me.lucko.luckperms.utils.ArgumentChecker; import me.lucko.luckperms.utils.ArgumentChecker;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public class GroupRemoveTempPrefix extends SubCommand<Group> { public class GroupRemoveTempPrefix extends SubCommand<Group> {
@ -57,44 +59,96 @@ public class GroupRemoveTempPrefix extends SubCommand<Group> {
return CommandResult.INVALID_ARGS; return CommandResult.INVALID_ARGS;
} }
final String node = "prefix." + priority + "." + ArgumentChecker.escapeCharacters(prefix); if (prefix.equalsIgnoreCase("null")) {
String server = null;
String world = null;
try {
if (args.size() >= 3) { if (args.size() >= 3) {
final String server = args.get(2).toLowerCase(); server = args.get(2).toLowerCase();
if (ArgumentChecker.checkServer(server)) { if (ArgumentChecker.checkServer(server)) {
Message.SERVER_INVALID_ENTRY.send(sender); Message.SERVER_INVALID_ENTRY.send(sender);
return CommandResult.INVALID_ARGS; return CommandResult.INVALID_ARGS;
} }
if (args.size() == 3) { if (args.size() != 3) {
group.unsetPermission(node, server, true); world = args.get(3).toLowerCase();
Message.REMOVE_TEMP_PREFIX_SERVER_SUCCESS.send(sender, group.getDisplayName(), prefix, priority, server); }
LogEntry.build().actor(sender).acted(group) }
.action("removetempprefix " + priority + " " + args.get(1) + " " + server)
.build().submit(plugin, sender); List<Node> toRemove = new ArrayList<>();
for (Node node : group.getNodes()) {
if (!node.isPrefix()) continue;
if (node.getPrefix().getKey() != priority) continue;
if (node.isPermanent()) continue;
if (node.getServer().isPresent()) {
if (server == null) continue;
if (!node.getServer().get().equalsIgnoreCase(server)) continue;
} else { } else {
final String world = args.get(3).toLowerCase(); if (server != null) continue;
group.unsetPermission(node, server, world, true); }
Message.REMOVE_TEMP_PREFIX_SERVER_WORLD_SUCCESS.send(sender, group.getDisplayName(), prefix, priority, server, world);
if (node.getWorld().isPresent()) {
if (world == null) continue;
if (!node.getWorld().get().equalsIgnoreCase(world)) continue;
} else {
if (world != null) continue;
}
toRemove.add(node);
}
toRemove.forEach(n -> {
try {
group.unsetPermission(n);
} catch (ObjectLacksException ignored) {}
});
Message.BULK_CHANGE_SUCCESS.send(sender, toRemove.size());
save(group, sender, plugin);
return CommandResult.SUCCESS;
} else {
final String node = "prefix." + priority + "." + ArgumentChecker.escapeCharacters(prefix);
try {
if (args.size() >= 3) {
final String server = args.get(2).toLowerCase();
if (ArgumentChecker.checkServer(server)) {
Message.SERVER_INVALID_ENTRY.send(sender);
return CommandResult.INVALID_ARGS;
}
if (args.size() == 3) {
group.unsetPermission(node, server, true);
Message.REMOVE_TEMP_PREFIX_SERVER_SUCCESS.send(sender, group.getDisplayName(), prefix, priority, server);
LogEntry.build().actor(sender).acted(group)
.action("removetempprefix " + priority + " " + args.get(1) + " " + server)
.build().submit(plugin, sender);
} else {
final String world = args.get(3).toLowerCase();
group.unsetPermission(node, server, world, true);
Message.REMOVE_TEMP_PREFIX_SERVER_WORLD_SUCCESS.send(sender, group.getDisplayName(), prefix, priority, server, world);
LogEntry.build().actor(sender).acted(group)
.action("removetempprefix " + priority + " " + args.get(1) + " " + server + " " + world)
.build().submit(plugin, sender);
}
} else {
group.unsetPermission(node, true);
Message.REMOVE_TEMP_PREFIX_SUCCESS.send(sender, group.getDisplayName(), prefix, priority);
LogEntry.build().actor(sender).acted(group) LogEntry.build().actor(sender).acted(group)
.action("removetempprefix " + priority + " " + args.get(1) + " " + server + " " + world) .action("removetempprefix " + priority + " " + args.get(1))
.build().submit(plugin, sender); .build().submit(plugin, sender);
} }
} else { save(group, sender, plugin);
group.unsetPermission(node, true); return CommandResult.SUCCESS;
Message.REMOVE_TEMP_PREFIX_SUCCESS.send(sender, group.getDisplayName(), prefix, priority); } catch (ObjectLacksException e) {
LogEntry.build().actor(sender).acted(group) Message.DOES_NOT_HAVE_PREFIX.send(sender, group.getDisplayName());
.action("removetempprefix " + priority + " " + args.get(1)) return CommandResult.STATE_ERROR;
.build().submit(plugin, sender);
} }
save(group, sender, plugin);
return CommandResult.SUCCESS;
} catch (ObjectLacksException e) {
Message.DOES_NOT_HAVE_PREFIX.send(sender, group.getDisplayName());
return CommandResult.STATE_ERROR;
} }
} }
} }

View File

@ -23,6 +23,7 @@
package me.lucko.luckperms.commands.group.subcommands; package me.lucko.luckperms.commands.group.subcommands;
import me.lucko.luckperms.LuckPermsPlugin; import me.lucko.luckperms.LuckPermsPlugin;
import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.commands.*; import me.lucko.luckperms.commands.*;
import me.lucko.luckperms.constants.Message; import me.lucko.luckperms.constants.Message;
import me.lucko.luckperms.constants.Permission; import me.lucko.luckperms.constants.Permission;
@ -31,6 +32,7 @@ import me.lucko.luckperms.exceptions.ObjectLacksException;
import me.lucko.luckperms.groups.Group; import me.lucko.luckperms.groups.Group;
import me.lucko.luckperms.utils.ArgumentChecker; import me.lucko.luckperms.utils.ArgumentChecker;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public class GroupRemoveTempSuffix extends SubCommand<Group> { public class GroupRemoveTempSuffix extends SubCommand<Group> {
@ -57,44 +59,96 @@ public class GroupRemoveTempSuffix extends SubCommand<Group> {
return CommandResult.INVALID_ARGS; return CommandResult.INVALID_ARGS;
} }
final String node = "suffix." + priority + "." + ArgumentChecker.escapeCharacters(suffix); if (suffix.equalsIgnoreCase("null")) {
String server = null;
String world = null;
try {
if (args.size() >= 3) { if (args.size() >= 3) {
final String server = args.get(2).toLowerCase(); server = args.get(2).toLowerCase();
if (ArgumentChecker.checkServer(server)) { if (ArgumentChecker.checkServer(server)) {
Message.SERVER_INVALID_ENTRY.send(sender); Message.SERVER_INVALID_ENTRY.send(sender);
return CommandResult.INVALID_ARGS; return CommandResult.INVALID_ARGS;
} }
if (args.size() == 3) { if (args.size() != 3) {
group.unsetPermission(node, server, true); world = args.get(3).toLowerCase();
Message.REMOVE_TEMP_SUFFIX_SERVER_SUCCESS.send(sender, group.getDisplayName(), suffix, priority, server); }
LogEntry.build().actor(sender).acted(group) }
.action("removetempsuffix " + priority + " " + args.get(1) + " " + server)
.build().submit(plugin, sender); List<Node> toRemove = new ArrayList<>();
for (Node node : group.getNodes()) {
if (!node.isSuffix()) continue;
if (node.getSuffix().getKey() != priority) continue;
if (node.isPermanent()) continue;
if (node.getServer().isPresent()) {
if (server == null) continue;
if (!node.getServer().get().equalsIgnoreCase(server)) continue;
} else { } else {
final String world = args.get(3).toLowerCase(); if (server != null) continue;
group.unsetPermission(node, server, world, true); }
Message.REMOVE_TEMP_SUFFIX_SERVER_WORLD_SUCCESS.send(sender, group.getDisplayName(), suffix, priority, server, world);
if (node.getWorld().isPresent()) {
if (world == null) continue;
if (!node.getWorld().get().equalsIgnoreCase(world)) continue;
} else {
if (world != null) continue;
}
toRemove.add(node);
}
toRemove.forEach(n -> {
try {
group.unsetPermission(n);
} catch (ObjectLacksException ignored) {}
});
Message.BULK_CHANGE_SUCCESS.send(sender, toRemove.size());
save(group, sender, plugin);
return CommandResult.SUCCESS;
} else {
final String node = "suffix." + priority + "." + ArgumentChecker.escapeCharacters(suffix);
try {
if (args.size() >= 3) {
final String server = args.get(2).toLowerCase();
if (ArgumentChecker.checkServer(server)) {
Message.SERVER_INVALID_ENTRY.send(sender);
return CommandResult.INVALID_ARGS;
}
if (args.size() == 3) {
group.unsetPermission(node, server, true);
Message.REMOVE_TEMP_SUFFIX_SERVER_SUCCESS.send(sender, group.getDisplayName(), suffix, priority, server);
LogEntry.build().actor(sender).acted(group)
.action("removetempsuffix " + priority + " " + args.get(1) + " " + server)
.build().submit(plugin, sender);
} else {
final String world = args.get(3).toLowerCase();
group.unsetPermission(node, server, world, true);
Message.REMOVE_TEMP_SUFFIX_SERVER_WORLD_SUCCESS.send(sender, group.getDisplayName(), suffix, priority, server, world);
LogEntry.build().actor(sender).acted(group)
.action("removetempsuffix " + priority + " " + args.get(1) + " " + server + " " + world)
.build().submit(plugin, sender);
}
} else {
group.unsetPermission(node, true);
Message.REMOVE_TEMP_SUFFIX_SUCCESS.send(sender, group.getDisplayName(), suffix, priority);
LogEntry.build().actor(sender).acted(group) LogEntry.build().actor(sender).acted(group)
.action("removetempsuffix " + priority + " " + args.get(1) + " " + server + " " + world) .action("removetempsuffix " + priority + " " + args.get(1))
.build().submit(plugin, sender); .build().submit(plugin, sender);
} }
} else { save(group, sender, plugin);
group.unsetPermission(node, true); return CommandResult.SUCCESS;
Message.REMOVE_TEMP_SUFFIX_SUCCESS.send(sender, group.getDisplayName(), suffix, priority); } catch (ObjectLacksException e) {
LogEntry.build().actor(sender).acted(group) Message.DOES_NOT_HAVE_SUFFIX.send(sender, group.getDisplayName());
.action("removetempsuffix " + priority + " " + args.get(1)) return CommandResult.STATE_ERROR;
.build().submit(plugin, sender);
} }
save(group, sender, plugin);
return CommandResult.SUCCESS;
} catch (ObjectLacksException e) {
Message.DOES_NOT_HAVE_SUFFIX.send(sender, group.getDisplayName());
return CommandResult.STATE_ERROR;
} }
} }
} }

View File

@ -23,6 +23,7 @@
package me.lucko.luckperms.commands.user.subcommands; package me.lucko.luckperms.commands.user.subcommands;
import me.lucko.luckperms.LuckPermsPlugin; import me.lucko.luckperms.LuckPermsPlugin;
import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.commands.*; import me.lucko.luckperms.commands.*;
import me.lucko.luckperms.constants.Message; import me.lucko.luckperms.constants.Message;
import me.lucko.luckperms.constants.Permission; import me.lucko.luckperms.constants.Permission;
@ -31,6 +32,7 @@ import me.lucko.luckperms.exceptions.ObjectLacksException;
import me.lucko.luckperms.users.User; import me.lucko.luckperms.users.User;
import me.lucko.luckperms.utils.ArgumentChecker; import me.lucko.luckperms.utils.ArgumentChecker;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public class UserRemovePrefix extends SubCommand<User> { public class UserRemovePrefix extends SubCommand<User> {
@ -56,44 +58,96 @@ public class UserRemovePrefix extends SubCommand<User> {
return CommandResult.INVALID_ARGS; return CommandResult.INVALID_ARGS;
} }
final String node = "prefix." + priority + "." + ArgumentChecker.escapeCharacters(prefix); if (prefix.equalsIgnoreCase("null")) {
String server = null;
String world = null;
try {
if (args.size() >= 3) { if (args.size() >= 3) {
final String server = args.get(2).toLowerCase(); server = args.get(2).toLowerCase();
if (ArgumentChecker.checkServer(server)) { if (ArgumentChecker.checkServer(server)) {
Message.SERVER_INVALID_ENTRY.send(sender); Message.SERVER_INVALID_ENTRY.send(sender);
return CommandResult.INVALID_ARGS; return CommandResult.INVALID_ARGS;
} }
if (args.size() == 3) { if (args.size() != 3) {
user.unsetPermission(node, server); world = args.get(3).toLowerCase();
Message.REMOVEPREFIX_SERVER_SUCCESS.send(sender, user.getName(), prefix, priority, server); }
LogEntry.build().actor(sender).acted(user) }
.action("removeprefix " + priority + " " + args.get(1) + " " + server)
.build().submit(plugin, sender); List<Node> toRemove = new ArrayList<>();
for (Node node : user.getNodes()) {
if (!node.isPrefix()) continue;
if (node.getPrefix().getKey() != priority) continue;
if (node.isTemporary()) continue;
if (node.getServer().isPresent()) {
if (server == null) continue;
if (!node.getServer().get().equalsIgnoreCase(server)) continue;
} else { } else {
final String world = args.get(3).toLowerCase(); if (server != null) continue;
user.unsetPermission(node, server, world); }
Message.REMOVEPREFIX_SERVER_WORLD_SUCCESS.send(sender, user.getName(), prefix, priority, server, world);
if (node.getWorld().isPresent()) {
if (world == null) continue;
if (!node.getWorld().get().equalsIgnoreCase(world)) continue;
} else {
if (world != null) continue;
}
toRemove.add(node);
}
toRemove.forEach(n -> {
try {
user.unsetPermission(n);
} catch (ObjectLacksException ignored) {}
});
Message.BULK_CHANGE_SUCCESS.send(sender, toRemove.size());
save(user, sender, plugin);
return CommandResult.SUCCESS;
} else {
final String node = "prefix." + priority + "." + ArgumentChecker.escapeCharacters(prefix);
try {
if (args.size() >= 3) {
final String server = args.get(2).toLowerCase();
if (ArgumentChecker.checkServer(server)) {
Message.SERVER_INVALID_ENTRY.send(sender);
return CommandResult.INVALID_ARGS;
}
if (args.size() == 3) {
user.unsetPermission(node, server);
Message.REMOVEPREFIX_SERVER_SUCCESS.send(sender, user.getName(), prefix, priority, server);
LogEntry.build().actor(sender).acted(user)
.action("removeprefix " + priority + " " + args.get(1) + " " + server)
.build().submit(plugin, sender);
} else {
final String world = args.get(3).toLowerCase();
user.unsetPermission(node, server, world);
Message.REMOVEPREFIX_SERVER_WORLD_SUCCESS.send(sender, user.getName(), prefix, priority, server, world);
LogEntry.build().actor(sender).acted(user)
.action("removeprefix " + priority + " " + args.get(1) + " " + server + " " + world)
.build().submit(plugin, sender);
}
} else {
user.unsetPermission(node);
Message.REMOVEPREFIX_SUCCESS.send(sender, user.getName(), prefix, priority);
LogEntry.build().actor(sender).acted(user) LogEntry.build().actor(sender).acted(user)
.action("removeprefix " + priority + " " + args.get(1) + " " + server + " " + world) .action("removeprefix " + priority + " " + args.get(1))
.build().submit(plugin, sender); .build().submit(plugin, sender);
} }
} else { save(user, sender, plugin);
user.unsetPermission(node); return CommandResult.SUCCESS;
Message.REMOVEPREFIX_SUCCESS.send(sender, user.getName(), prefix, priority); } catch (ObjectLacksException e) {
LogEntry.build().actor(sender).acted(user) Message.DOES_NOT_HAVE_PREFIX.send(sender, user.getName());
.action("removeprefix " + priority + " " + args.get(1)) return CommandResult.STATE_ERROR;
.build().submit(plugin, sender);
} }
save(user, sender, plugin);
return CommandResult.SUCCESS;
} catch (ObjectLacksException e) {
Message.DOES_NOT_HAVE_PREFIX.send(sender, user.getName());
return CommandResult.STATE_ERROR;
} }
} }
} }

View File

@ -23,6 +23,7 @@
package me.lucko.luckperms.commands.user.subcommands; package me.lucko.luckperms.commands.user.subcommands;
import me.lucko.luckperms.LuckPermsPlugin; import me.lucko.luckperms.LuckPermsPlugin;
import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.commands.*; import me.lucko.luckperms.commands.*;
import me.lucko.luckperms.constants.Message; import me.lucko.luckperms.constants.Message;
import me.lucko.luckperms.constants.Permission; import me.lucko.luckperms.constants.Permission;
@ -31,6 +32,7 @@ import me.lucko.luckperms.exceptions.ObjectLacksException;
import me.lucko.luckperms.users.User; import me.lucko.luckperms.users.User;
import me.lucko.luckperms.utils.ArgumentChecker; import me.lucko.luckperms.utils.ArgumentChecker;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public class UserRemoveSuffix extends SubCommand<User> { public class UserRemoveSuffix extends SubCommand<User> {
@ -56,44 +58,96 @@ public class UserRemoveSuffix extends SubCommand<User> {
return CommandResult.INVALID_ARGS; return CommandResult.INVALID_ARGS;
} }
final String node = "suffix." + priority + "." + ArgumentChecker.escapeCharacters(suffix); if (suffix.equalsIgnoreCase("null")) {
String server = null;
String world = null;
try {
if (args.size() >= 3) { if (args.size() >= 3) {
final String server = args.get(2).toLowerCase(); server = args.get(2).toLowerCase();
if (ArgumentChecker.checkServer(server)) { if (ArgumentChecker.checkServer(server)) {
Message.SERVER_INVALID_ENTRY.send(sender); Message.SERVER_INVALID_ENTRY.send(sender);
return CommandResult.INVALID_ARGS; return CommandResult.INVALID_ARGS;
} }
if (args.size() == 3) { if (args.size() != 3) {
user.unsetPermission(node, server); world = args.get(3).toLowerCase();
Message.REMOVESUFFIX_SERVER_SUCCESS.send(sender, user.getName(), suffix, priority, server); }
LogEntry.build().actor(sender).acted(user) }
.action("removesuffix " + priority + " " + args.get(1) + " " + server)
.build().submit(plugin, sender); List<Node> toRemove = new ArrayList<>();
for (Node node : user.getNodes()) {
if (!node.isSuffix()) continue;
if (node.getSuffix().getKey() != priority) continue;
if (node.isTemporary()) continue;
if (node.getServer().isPresent()) {
if (server == null) continue;
if (!node.getServer().get().equalsIgnoreCase(server)) continue;
} else { } else {
final String world = args.get(3).toLowerCase(); if (server != null) continue;
user.unsetPermission(node, server, world); }
Message.REMOVESUFFIX_SERVER_WORLD_SUCCESS.send(sender, user.getName(), suffix, priority, server, world);
if (node.getWorld().isPresent()) {
if (world == null) continue;
if (!node.getWorld().get().equalsIgnoreCase(world)) continue;
} else {
if (world != null) continue;
}
toRemove.add(node);
}
toRemove.forEach(n -> {
try {
user.unsetPermission(n);
} catch (ObjectLacksException ignored) {}
});
Message.BULK_CHANGE_SUCCESS.send(sender, toRemove.size());
save(user, sender, plugin);
return CommandResult.SUCCESS;
} else {
final String node = "suffix." + priority + "." + ArgumentChecker.escapeCharacters(suffix);
try {
if (args.size() >= 3) {
final String server = args.get(2).toLowerCase();
if (ArgumentChecker.checkServer(server)) {
Message.SERVER_INVALID_ENTRY.send(sender);
return CommandResult.INVALID_ARGS;
}
if (args.size() == 3) {
user.unsetPermission(node, server);
Message.REMOVESUFFIX_SERVER_SUCCESS.send(sender, user.getName(), suffix, priority, server);
LogEntry.build().actor(sender).acted(user)
.action("removesuffix " + priority + " " + args.get(1) + " " + server)
.build().submit(plugin, sender);
} else {
final String world = args.get(3).toLowerCase();
user.unsetPermission(node, server, world);
Message.REMOVESUFFIX_SERVER_WORLD_SUCCESS.send(sender, user.getName(), suffix, priority, server, world);
LogEntry.build().actor(sender).acted(user)
.action("removesuffix " + priority + " " + args.get(1) + " " + server + " " + world)
.build().submit(plugin, sender);
}
} else {
user.unsetPermission(node);
Message.REMOVESUFFIX_SUCCESS.send(sender, user.getName(), suffix, priority);
LogEntry.build().actor(sender).acted(user) LogEntry.build().actor(sender).acted(user)
.action("removesuffix " + priority + " " + args.get(1) + " " + server + " " + world) .action("removesuffix " + priority + " " + args.get(1))
.build().submit(plugin, sender); .build().submit(plugin, sender);
} }
} else { save(user, sender, plugin);
user.unsetPermission(node); return CommandResult.SUCCESS;
Message.REMOVESUFFIX_SUCCESS.send(sender, user.getName(), suffix, priority); } catch (ObjectLacksException e) {
LogEntry.build().actor(sender).acted(user) Message.DOES_NOT_HAVE_SUFFIX.send(sender, user.getName());
.action("removesuffix " + priority + " " + args.get(1)) return CommandResult.STATE_ERROR;
.build().submit(plugin, sender);
} }
save(user, sender, plugin);
return CommandResult.SUCCESS;
} catch (ObjectLacksException e) {
Message.DOES_NOT_HAVE_SUFFIX.send(sender, user.getName());
return CommandResult.STATE_ERROR;
} }
} }
} }

View File

@ -23,6 +23,7 @@
package me.lucko.luckperms.commands.user.subcommands; package me.lucko.luckperms.commands.user.subcommands;
import me.lucko.luckperms.LuckPermsPlugin; import me.lucko.luckperms.LuckPermsPlugin;
import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.commands.*; import me.lucko.luckperms.commands.*;
import me.lucko.luckperms.constants.Message; import me.lucko.luckperms.constants.Message;
import me.lucko.luckperms.constants.Permission; import me.lucko.luckperms.constants.Permission;
@ -31,6 +32,7 @@ import me.lucko.luckperms.exceptions.ObjectLacksException;
import me.lucko.luckperms.users.User; import me.lucko.luckperms.users.User;
import me.lucko.luckperms.utils.ArgumentChecker; import me.lucko.luckperms.utils.ArgumentChecker;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public class UserRemoveTempPrefix extends SubCommand<User> { public class UserRemoveTempPrefix extends SubCommand<User> {
@ -57,44 +59,96 @@ public class UserRemoveTempPrefix extends SubCommand<User> {
return CommandResult.INVALID_ARGS; return CommandResult.INVALID_ARGS;
} }
final String node = "prefix." + priority + "." + ArgumentChecker.escapeCharacters(prefix); if (prefix.equalsIgnoreCase("null")) {
String server = null;
String world = null;
try {
if (args.size() >= 3) { if (args.size() >= 3) {
final String server = args.get(2).toLowerCase(); server = args.get(2).toLowerCase();
if (ArgumentChecker.checkServer(server)) { if (ArgumentChecker.checkServer(server)) {
Message.SERVER_INVALID_ENTRY.send(sender); Message.SERVER_INVALID_ENTRY.send(sender);
return CommandResult.INVALID_ARGS; return CommandResult.INVALID_ARGS;
} }
if (args.size() == 3) { if (args.size() != 3) {
user.unsetPermission(node, server, true); world = args.get(3).toLowerCase();
Message.REMOVE_TEMP_PREFIX_SERVER_SUCCESS.send(sender, user.getName(), prefix, priority, server); }
LogEntry.build().actor(sender).acted(user) }
.action("removetempprefix " + priority + " " + args.get(1) + " " + server)
.build().submit(plugin, sender); List<Node> toRemove = new ArrayList<>();
for (Node node : user.getNodes()) {
if (!node.isPrefix()) continue;
if (node.getPrefix().getKey() != priority) continue;
if (node.isPermanent()) continue;
if (node.getServer().isPresent()) {
if (server == null) continue;
if (!node.getServer().get().equalsIgnoreCase(server)) continue;
} else { } else {
final String world = args.get(3).toLowerCase(); if (server != null) continue;
user.unsetPermission(node, server, world, true); }
Message.REMOVE_TEMP_PREFIX_SERVER_WORLD_SUCCESS.send(sender, user.getName(), prefix, priority, server, world);
if (node.getWorld().isPresent()) {
if (world == null) continue;
if (!node.getWorld().get().equalsIgnoreCase(world)) continue;
} else {
if (world != null) continue;
}
toRemove.add(node);
}
toRemove.forEach(n -> {
try {
user.unsetPermission(n);
} catch (ObjectLacksException ignored) {}
});
Message.BULK_CHANGE_SUCCESS.send(sender, toRemove.size());
save(user, sender, plugin);
return CommandResult.SUCCESS;
} else {
final String node = "prefix." + priority + "." + ArgumentChecker.escapeCharacters(prefix);
try {
if (args.size() >= 3) {
final String server = args.get(2).toLowerCase();
if (ArgumentChecker.checkServer(server)) {
Message.SERVER_INVALID_ENTRY.send(sender);
return CommandResult.INVALID_ARGS;
}
if (args.size() == 3) {
user.unsetPermission(node, server, true);
Message.REMOVE_TEMP_PREFIX_SERVER_SUCCESS.send(sender, user.getName(), prefix, priority, server);
LogEntry.build().actor(sender).acted(user)
.action("removetempprefix " + priority + " " + args.get(1) + " " + server)
.build().submit(plugin, sender);
} else {
final String world = args.get(3).toLowerCase();
user.unsetPermission(node, server, world, true);
Message.REMOVE_TEMP_PREFIX_SERVER_WORLD_SUCCESS.send(sender, user.getName(), prefix, priority, server, world);
LogEntry.build().actor(sender).acted(user)
.action("removetempprefix " + priority + " " + args.get(1) + " " + server + " " + world)
.build().submit(plugin, sender);
}
} else {
user.unsetPermission(node, true);
Message.REMOVE_TEMP_PREFIX_SUCCESS.send(sender, user.getName(), prefix, priority);
LogEntry.build().actor(sender).acted(user) LogEntry.build().actor(sender).acted(user)
.action("removetempprefix " + priority + " " + args.get(1) + " " + server + " " + world) .action("removetempprefix " + priority + " " + args.get(1))
.build().submit(plugin, sender); .build().submit(plugin, sender);
} }
} else { save(user, sender, plugin);
user.unsetPermission(node, true); return CommandResult.SUCCESS;
Message.REMOVE_TEMP_PREFIX_SUCCESS.send(sender, user.getName(), prefix, priority); } catch (ObjectLacksException e) {
LogEntry.build().actor(sender).acted(user) Message.DOES_NOT_HAVE_PREFIX.send(sender, user.getName());
.action("removetempprefix " + priority + " " + args.get(1)) return CommandResult.STATE_ERROR;
.build().submit(plugin, sender);
} }
save(user, sender, plugin);
return CommandResult.SUCCESS;
} catch (ObjectLacksException e) {
Message.DOES_NOT_HAVE_PREFIX.send(sender, user.getName());
return CommandResult.STATE_ERROR;
} }
} }
} }

View File

@ -23,6 +23,7 @@
package me.lucko.luckperms.commands.user.subcommands; package me.lucko.luckperms.commands.user.subcommands;
import me.lucko.luckperms.LuckPermsPlugin; import me.lucko.luckperms.LuckPermsPlugin;
import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.commands.*; import me.lucko.luckperms.commands.*;
import me.lucko.luckperms.constants.Message; import me.lucko.luckperms.constants.Message;
import me.lucko.luckperms.constants.Permission; import me.lucko.luckperms.constants.Permission;
@ -31,6 +32,7 @@ import me.lucko.luckperms.exceptions.ObjectLacksException;
import me.lucko.luckperms.users.User; import me.lucko.luckperms.users.User;
import me.lucko.luckperms.utils.ArgumentChecker; import me.lucko.luckperms.utils.ArgumentChecker;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public class UserRemoveTempSuffix extends SubCommand<User> { public class UserRemoveTempSuffix extends SubCommand<User> {
@ -57,44 +59,96 @@ public class UserRemoveTempSuffix extends SubCommand<User> {
return CommandResult.INVALID_ARGS; return CommandResult.INVALID_ARGS;
} }
final String node = "suffix." + priority + "." + ArgumentChecker.escapeCharacters(suffix); if (suffix.equalsIgnoreCase("null")) {
String server = null;
String world = null;
try {
if (args.size() >= 3) { if (args.size() >= 3) {
final String server = args.get(2).toLowerCase(); server = args.get(2).toLowerCase();
if (ArgumentChecker.checkServer(server)) { if (ArgumentChecker.checkServer(server)) {
Message.SERVER_INVALID_ENTRY.send(sender); Message.SERVER_INVALID_ENTRY.send(sender);
return CommandResult.INVALID_ARGS; return CommandResult.INVALID_ARGS;
} }
if (args.size() == 3) { if (args.size() != 3) {
user.unsetPermission(node, server, true); world = args.get(3).toLowerCase();
Message.REMOVE_TEMP_SUFFIX_SERVER_SUCCESS.send(sender, user.getName(), suffix, priority, server); }
LogEntry.build().actor(sender).acted(user) }
.action("removetempsuffix " + priority + " " + args.get(1) + " " + server)
.build().submit(plugin, sender); List<Node> toRemove = new ArrayList<>();
for (Node node : user.getNodes()) {
if (!node.isSuffix()) continue;
if (node.getSuffix().getKey() != priority) continue;
if (node.isPermanent()) continue;
if (node.getServer().isPresent()) {
if (server == null) continue;
if (!node.getServer().get().equalsIgnoreCase(server)) continue;
} else { } else {
final String world = args.get(3).toLowerCase(); if (server != null) continue;
user.unsetPermission(node, server, world, true); }
Message.REMOVE_TEMP_SUFFIX_SERVER_WORLD_SUCCESS.send(sender, user.getName(), suffix, priority, server, world);
if (node.getWorld().isPresent()) {
if (world == null) continue;
if (!node.getWorld().get().equalsIgnoreCase(world)) continue;
} else {
if (world != null) continue;
}
toRemove.add(node);
}
toRemove.forEach(n -> {
try {
user.unsetPermission(n);
} catch (ObjectLacksException ignored) {}
});
Message.BULK_CHANGE_SUCCESS.send(sender, toRemove.size());
save(user, sender, plugin);
return CommandResult.SUCCESS;
} else {
final String node = "suffix." + priority + "." + ArgumentChecker.escapeCharacters(suffix);
try {
if (args.size() >= 3) {
final String server = args.get(2).toLowerCase();
if (ArgumentChecker.checkServer(server)) {
Message.SERVER_INVALID_ENTRY.send(sender);
return CommandResult.INVALID_ARGS;
}
if (args.size() == 3) {
user.unsetPermission(node, server, true);
Message.REMOVE_TEMP_SUFFIX_SERVER_SUCCESS.send(sender, user.getName(), suffix, priority, server);
LogEntry.build().actor(sender).acted(user)
.action("removetempsuffix " + priority + " " + args.get(1) + " " + server)
.build().submit(plugin, sender);
} else {
final String world = args.get(3).toLowerCase();
user.unsetPermission(node, server, world, true);
Message.REMOVE_TEMP_SUFFIX_SERVER_WORLD_SUCCESS.send(sender, user.getName(), suffix, priority, server, world);
LogEntry.build().actor(sender).acted(user)
.action("removetempsuffix " + priority + " " + args.get(1) + " " + server + " " + world)
.build().submit(plugin, sender);
}
} else {
user.unsetPermission(node, true);
Message.REMOVE_TEMP_SUFFIX_SUCCESS.send(sender, user.getName(), suffix, priority);
LogEntry.build().actor(sender).acted(user) LogEntry.build().actor(sender).acted(user)
.action("removetempsuffix " + priority + " " + args.get(1) + " " + server + " " + world) .action("removetempsuffix " + priority + " " + args.get(1))
.build().submit(plugin, sender); .build().submit(plugin, sender);
} }
} else { save(user, sender, plugin);
user.unsetPermission(node, true); return CommandResult.SUCCESS;
Message.REMOVE_TEMP_SUFFIX_SUCCESS.send(sender, user.getName(), suffix, priority); } catch (ObjectLacksException e) {
LogEntry.build().actor(sender).acted(user) Message.DOES_NOT_HAVE_SUFFIX.send(sender, user.getName());
.action("removetempsuffix " + priority + " " + args.get(1)) return CommandResult.STATE_ERROR;
.build().submit(plugin, sender);
} }
save(user, sender, plugin);
return CommandResult.SUCCESS;
} catch (ObjectLacksException e) {
Message.DOES_NOT_HAVE_SUFFIX.send(sender, user.getName());
return CommandResult.STATE_ERROR;
} }
} }
} }