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 getAliases() { return List.of("group", "groups", "rank", "ranks"); } @Override public String getDescription() { return "Manage Groups"; } @Override public String getSyntax() { return "/perm group [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 args, CommandSender sender) throws SQLException { } // // Commmand /perm group edit permission set/unset // @Override public List 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; } }