Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Получить строку права от LuckPerms

Метки:
Теги Теги
luckperms permission
Статус
Закрыто для дальнейших ответов.

perezzloy

Активный участник
Баллы
61
Имя в Minecraft
Bagomot
Здравствуйте!
Перебрался таки я наконец то на LuckPerms, но вот есть у меня плагин, который завязан на PermissionEX. Стало быть хочу я в него добавить подхват LP, но не хватает мне знаний. Поэтому прошу помощи у вас.

Есть у меня в плагине право вроде myplugin.node.3, где цифра может быть любой, и её мне нужно получить в моем плагине, чтобы обработать.

С PEX я делал так:
Код:
PermissionUser user = PermissionsEx.getUser(player);
int test;
for (String per : user.getPermissions(player.getLocation().getWorld().getName())) {
   if (per.contains("myplugin.node.")) {
      String[] sb = per.split("\\.");
      try  {
         test = Integer.parseInt(sb[2]);
      }
      catch(NumberFormatException e) {}
   }
}
То есть элементарно. Но вот с LP так не получается. Да я получил экземпляр API и даже сделал
Код:
User user = api.getUserManager().getUser(player.getUniqueId());

А что дальше? Как мне получить право (если есть) и вытащить из него цифру?
Еще я слышал про контексты в LP, но плохо понял что они такое и как их использовать. Может быть тут они подойдут?

В общем, прошу подсказать мне адекватный вариант.

P.S.: Да, я смотрел документацию, да я погуглил, не помогло.
 
Вроде можно воспользоваться баккитовским Player#getEffectivePermissions.
P.S.: Да, я смотрел документацию, да я погуглил, не помогло.
Плохо смотрел. Если прям нужно через LP - User#getNodes(NodeType.PERMISSION), далее просто через for-each сравниваешь PermissionNode#getPermission() со своим.

А вообще, это определенно неправильное использование системы прав, и где-то ты свернул не туда. Впрочем, не мне судить.
 
Спасибо за ответы. Мне подсказали, что в бакките есть getEffectivePermissions().
Получил
Код:
Set<PermissionAttachmentInfo> perms = player.getEffectivePermissions();
и далее разобрал просто в цикле.
Заодно вообще избавился от жесткой зависимости LP или PEX.
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх