Помогите Возможно ли получить пермишны определенной ветки?

Bezobrazie

Активный участник
Пользователь
Баллы
46
Имя в Minecraft
MySoulIsCry
Допустим у меня есть пермишны
- названиеПлагина.префикс.тест1
- названиеПлагина.префикс.тест2
- названиеПлагина.префикс.тест3
И мы знаем что наши пермы находятся по ветке названиеПлагина.префикс. но сами персы мы не знаем. Так вот. Возможно ли получить все пермишны данной ветки которые имеются у игрока?
Допустим в форыче получать пермы делать над ними проверки и уже после мне их надо выводить в гуи
 
Ты не правильно меня понял
Во первых мне нужно это делать в коде
Во вторых мне не нужны все пермишны а только определенной ветки
Получи все права и отфильтруй те, которые начинаются с нужного тебе текста.
Не знаю, можно ли это сделать через апи, но в крайнем случае можешь глянуть реализацию команды, приведённой выше
 
Получи все права и отфильтруй те, которые начинаются с нужного тебе текста.
Не знаю, можно ли это сделать через апи, но в крайнем случае можешь глянуть реализацию команды, приведённой выше
Идея не плохая но, мне просто нужно было узнать возможно ли получить таким образом пермы. А так я тогда воспользуюсь немного другим способом.
Все пермишны будут записаны в конфиг и там хранится как ветки и от туда буду уже брать какое действие проводить если у игрока есть перм. И Далее все просто, форычем перебирать все пермы из кфг и проверять есть ли у игрока такой. Просто пермов будет много, где-то 50шт и я подумал если постоянно перебирать конфиг и делать проверки на 50 пермов серверу будет не очень. Ну и понятно дело если перебирать только те пермы которые есть у игрока и именно определенной ветки то тогда кол-во интераций цикла будет меньше и мы пропустим некоторые проверки. Как-то так, мб есть способ и полегче.
 
Ты не правильно меня понял
Во первых мне нужно это делать в коде
Во вторых мне не нужны все пермишны а только определенной ветки
Не силен в апи лукперма, но попробуй что то типа.
Код:
        List<String> perms = new ArrayList<String>();
   
        RegisteredServiceProvider<LuckPerms> provider = Bukkit.getServicesManager().getRegistration(LuckPerms.class);

        LuckPerms api = provider.getProvider();
        User user = api.getUserManager().getUser(player.getUniqueId());
        SortedSet<Node> nodes = user.getDistinctNodes();
        nodes.forEach(node -> {
            if (node.getValue()) {
                perms.add(node.getKey());
            }
        });
 
Назад
Верх