From 3a9be028d7cb981fd7f0ac4041da4d016768ebb9 Mon Sep 17 00:00:00 2001 From: 41ms_ Date: Wed, 12 Nov 2025 21:15:35 +0100 Subject: [PATCH] Fixed some issues --- .../command/permSubcommands/GroupSub.java | 59 ++++++++++++++++--- 1 file changed, 50 insertions(+), 9 deletions(-) diff --git a/src/main/java/me/monster/ranks/command/permSubcommands/GroupSub.java b/src/main/java/me/monster/ranks/command/permSubcommands/GroupSub.java index 8c76d0d..19bc6b1 100644 --- a/src/main/java/me/monster/ranks/command/permSubcommands/GroupSub.java +++ b/src/main/java/me/monster/ranks/command/permSubcommands/GroupSub.java @@ -3,6 +3,7 @@ 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; @@ -27,22 +28,62 @@ public class GroupSub extends SubCommand { @Override public String getSyntax() { - return "/perm group "; + return "/perm group [groupname]"; } @Override public void perform(CommandSender commandSender, String[] strings) { - - commandSender.sendMessage("Test"); - - } - - @Override - public List getSubcommandArguments(Player player, String[] strings) { try { - return List.of(DbManager.getAllGroups().stream().map(Groups::getGroupName).toArray(String[]::new)); + 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; } }