90 lines
3.1 KiB
Java
90 lines
3.1 KiB
Java
package me.monster.ranks.command.permSubcommands;
|
|
|
|
import me.monster.commands.SubCommand;
|
|
import me.monster.ranks.database.DbManager;
|
|
import me.monster.ranks.database.models.Groups;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.command.CommandSender;
|
|
import org.bukkit.entity.Player;
|
|
|
|
import java.sql.SQLException;
|
|
import java.util.List;
|
|
|
|
public class GroupSub extends SubCommand {
|
|
@Override
|
|
public String getName() {
|
|
return "group";
|
|
}
|
|
|
|
@Override
|
|
public List<String> getAliases() {
|
|
return List.of("group", "groups", "rank", "ranks");
|
|
}
|
|
|
|
@Override
|
|
public String getDescription() {
|
|
return "Manage Groups";
|
|
}
|
|
|
|
@Override
|
|
public String getSyntax() {
|
|
return "/perm group <create/delete/edit/list> [groupname]";
|
|
}
|
|
|
|
@Override
|
|
public void perform(CommandSender commandSender, String[] strings) {
|
|
try {
|
|
manageSystem(List.of(strings), commandSender);
|
|
} catch (SQLException e) {
|
|
throw new RuntimeException(e);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
public void manageSystem(List<String> args, CommandSender sender) throws SQLException {
|
|
|
|
}
|
|
|
|
|
|
//
|
|
// Commmand /perm group edit <group> permission set/unset <permission>
|
|
//
|
|
|
|
@Override
|
|
public List<String> getSubcommandArguments(Player player, String[] strings) {
|
|
if (player.hasPermission("ranks.manage.group")){
|
|
if (strings.length == 2) {
|
|
return List.of("create", "delete", "edit", "list", "info");
|
|
}
|
|
if (strings.length == 3) {
|
|
if (strings[1].equalsIgnoreCase("create") || strings[1].equalsIgnoreCase("list")) {
|
|
return null;
|
|
} else if (strings[1].equalsIgnoreCase("delete") || strings[1].equalsIgnoreCase("edit") || strings[1].equalsIgnoreCase("info")) {
|
|
try {
|
|
return List.of(DbManager.getAllGroups().stream().map(Groups::getGroupName).toArray(String[]::new));
|
|
} catch (SQLException e) {
|
|
throw new RuntimeException(e);
|
|
}
|
|
}
|
|
}
|
|
if (strings.length >= 4) {
|
|
if (strings.length == 4) {
|
|
if (strings[1].equalsIgnoreCase("create") || strings[1].equalsIgnoreCase("list") || strings[1].equalsIgnoreCase("delete")) {
|
|
return null;
|
|
}
|
|
if (strings[1].equalsIgnoreCase("edit")) {
|
|
return List.of("permission", "prefix", "suffix", "name", "parent", "weight");
|
|
}
|
|
}
|
|
if (strings.length == 5 && strings[1].equalsIgnoreCase("edit") && strings[3].equalsIgnoreCase("permission")) {
|
|
return List.of("set", "unset");
|
|
} else if (strings.length == 6 && strings[1].equalsIgnoreCase("edit") && strings[3].equalsIgnoreCase("permission")) {
|
|
return List.of(Bukkit.getPluginManager().getPermissions().stream().map(org.bukkit.permissions.Permission::getName).toArray(String[]::new));
|
|
}
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
}
|