description = "Swap <permission> and <targetPermission> in permission list. Could be number or permission itself")
public void userSwapPermission(PermissionsEx plugin, CommandSender sender, Map<String, String> args) {
String userName = this.autoCompletePlayerName(args.get("user"));
String worldName = this.autoCompleteWorldName(args.get("world"));
PermissionUser user = plugin.getPermissionsManager().getUser(userName);
if (user == null) {
sender.sendMessage(ChatColor.RED + "User \"" + userName + "\" doesn't exist.");
return;
}
List<String> permissions = user.getOwnPermissions(worldName);
try {
int sourceIndex = this.getPosition(this.autoCompletePermission(user, args.get("permission"), worldName, "permission"), permissions);
int targetIndex = this.getPosition(this.autoCompletePermission(user, args.get("targetPermission"), worldName, "targetPermission"), permissions);
String targetPermission = permissions.get(targetIndex);
permissions.set(targetIndex, permissions.get(sourceIndex));
permissions.set(sourceIndex, targetPermission);
user.setPermissions(permissions, worldName);
sender.sendMessage("Permissions swapped!");
} catch (Throwable e) {
sender.sendMessage(ChatColor.RED + "Error: " + e.getMessage());
}