1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Bezobrazie, 24 июл 2021.

  1. Автор темы
    Bezobrazie

    Bezobrazie Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    MySoulIsCry
    Допустим у меня есть пермишны
    - названиеПлагина.префикс.тест1
    - названиеПлагина.префикс.тест2
    - названиеПлагина.префикс.тест3
    И мы знаем что наши пермы находятся по ветке названиеПлагина.префикс. но сами персы мы не знаем. Так вот. Возможно ли получить все пермишны данной ветки которые имеются у игрока?
    Допустим в форыче получать пермы делать над ними проверки и уже после мне их надо выводить в гуи
     
  2. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    /lp group groupname permission info
     
  3. Автор темы
    Bezobrazie

    Bezobrazie Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    MySoulIsCry
    Ты не правильно меня понял
    Во первых мне нужно это делать в коде
    Во вторых мне не нужны все пермишны а только определенной ветки
     
  4. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Получи все права и отфильтруй те, которые начинаются с нужного тебе текста.
    Не знаю, можно ли это сделать через апи, но в крайнем случае можешь глянуть реализацию команды, приведённой выше
     
  5. Автор темы
    Bezobrazie

    Bezobrazie Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    MySoulIsCry
    Идея не плохая но, мне просто нужно было узнать возможно ли получить таким образом пермы. А так я тогда воспользуюсь немного другим способом.
    Все пермишны будут записаны в конфиг и там хранится как ветки и от туда буду уже брать какое действие проводить если у игрока есть перм. И Далее все просто, форычем перебирать все пермы из кфг и проверять есть ли у игрока такой. Просто пермов будет много, где-то 50шт и я подумал если постоянно перебирать конфиг и делать проверки на 50 пермов серверу будет не очень. Ну и понятно дело если перебирать только те пермы которые есть у игрока и именно определенной ветки то тогда кол-во интераций цикла будет меньше и мы пропустим некоторые проверки. Как-то так, мб есть способ и полегче.
     
  6. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Не силен в апи лукперма, но попробуй что то типа.
    Код:
            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());
                }
            });
     

Поделиться этой страницей