mirror of
https://github.com/LuckPerms/LuckPerms.git
synced 2024-11-24 11:38:40 +01:00
Implement bulk prefix/suffix removal
This commit is contained in:
parent
1da1df156e
commit
58e223e74b
@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user