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

Помогите Разные настройки для игроков через пермишины

Статус
Закрыто для дальнейших ответов.

Bopik_QYVI

Участник
Баллы
31
Имя в Minecraft
Bopik_QYVI
Как можно узнать цифру из пермишина и есть ли он вообще, тоесть например из plugin.delay.[число] узнать [число] и как такие пермишены регистрировать если это надо?
 
Код:
    public double findPermissionNumber(Player player, String startPerm){
        return player
                .getEffectivePermissions()
                .stream()
                .filter(info -> info.getPermission().startsWith(startPerm)
                        && NumberUtils.isParsable(info.getPermission().substring(startPerm.length())))
                .mapToDouble(info -> Double.parseDouble(info.getPermission().substring(startPerm.length())))
                .findFirst()
                .orElse(0);
    }
Передаешь туда player и plugin.delay.
Но я бы не советовал так делать, постоянно перебирать все пермишены может быть ресурсо затратным,
тут либо добавить кеширование пермишенов либо сделать в конфиге их настройку
Допустим конфиг:

Код:
permissionsDelay:
  example.delay.one: 10
  example.delay.two: 100
А потом просто пробегаешься по всем пермам которые есть в конфиге, и если игрок имеет это право можешь использовать значение из конфига
 
Код:
    public double findPermissionNumber(Player player, String startPerm){
        return player
                .getEffectivePermissions()
                .stream()
                .filter(info -> info.getPermission().startsWith(startPerm)
                        && NumberUtils.isParsable(info.getPermission().substring(startPerm.length())))
                .mapToDouble(info -> Double.parseDouble(info.getPermission().substring(startPerm.length())))
                .findFirst()
                .orElse(0);
    }
Передаешь туда player и plugin.delay.
Но я бы не советовал так делать, постоянно перебирать все пермишены может быть ресурсо затратным,
тут либо добавить кеширование пермишенов либо сделать в конфиге их настройку
Допустим конфиг:

Код:
permissionsDelay:
  example.delay.one: 10
  example.delay.two: 100
А потом просто пробегаешься по всем пермам которые есть в конфиге, и если игрок имеет это право можешь использовать значение из конфига
Спасибо, выберу второй вариант с конфигом, раз первый ресурсо затратный.
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх