Туториал LuckPerms, что это и с чем его едят

Часть первая. Быстрый старт.​
Содержание:
Поскольку плагин имеет свойство обновляться, а сидеть на старых версиях ни мне ни вам не хочется, я решил все инструкции разделить на разделы. Каждый раздел пишется для определённой версии плагина и игры, которые упоминаются в первых частях каждого из этих разделов.
  1. Первый раздел
    1. Часть первая. Быстрый старт.
    2. Часть вторая. Префиксы и суффиксы.
    3. Часть третья. Форматы хранения.
    4. Часть четвёртая. BungeeCord.
    5. Часть пятая. Мелкие, но важные детали.
  2. Второй раздел
    1. Часть первая. Локальные и файловые БД.

Приветствую!
Сегодня мы с вами будем разбирать плагин, который смог выполнить очень сложную задачу — обойти по всем параметрам привычный нам PermissionsEx. Да, это действительно так, LuckPerms технически и функционально выигрывает в любом бою с вышеупомянутым PEX.
Многие сейчас зададутся вопросом:

Дык а зачем он мне? У меня сервер уже долгое время стабильно использует PEX и мне нет резона менять его на что бы то ни было.

Действительно, вас никто, и уж тем более я, не заставляет переходить на LuckPerms. Но время идёт и последние сообщения от разработчика PEX не утешают:
Снимок экрана 2018-04-09 в 0.06.24.png
Сообщение о закрытии разработки, перевод репозитория в read-only и совет перейти на тот же LuckPerms ни о чём хорошем не говорят. Разработка PEX приостановлена на неопределённый срок, а это значит, что ни фиксов, ни обновлений на другие версии, ни поддержки от разработчика больше осуществляться не будет. А проблемы есть:
Снимок экрана 2018-04-09 в 0.13.44.png

Но и у LP есть свои недостатки. Пусть он и работает на всех свежих версиях, а сервера с forge для него могут стать проблемой. Thermos, Cauldron и KCauldron в их нынешнем состоянии (заброшенная разработка и версия 1.7.10) не будут работать с LuckPerms. Вообще. А вот с губкой проблем не будет.

И да, самое важное. LuckPerms теперь не поддерживает вообще ничего, что ниже 1.8.8. Очень важно это помнить и смотреть на версию. И обновляться своевременно.
В обновлении 4.2.58 была возвращена поддержка Minecraft 1.7.10. Не знаю, как это сказалось на работе с forge-совместимыми серверами, поживём — увидим.
Поддержки версий ниже 1.8.8 больше нет.

Разработчик некоторое время назад таки выпустил версию для старых версий. Называется она LuckPerms Legacy и достать её можно на официальном сайте.
Это было небольшое отступление, вернёмся к LuckPerms.


Для настройки и работы LP в этом руководстве использовались:
  • Minecraft 1.12.2
  • PaperSpigot (git-Paper-1389)
  • LuckPerms v4.1.25
  • Java 8 (версии ниже нам не подойдут)
Установка​

Если вы хотите перенести все уже настроенные права из, скажем, того же PEX, прошу в спойлер. Остальные могут его пропустить.
Миграция из PEX отличается от нормальной установки совсем немного. На свой сервер с PEX установите LP, загруженный по ссылке ниже. Но не спешите удалять PEX, после запуска сервера пропишите в чате/консоле команду "/lp migration PermissionsEx", после чего будет запущена процедура миграции. Это перенесёт все ваши настройки из PEX в LP. Здорово? Ещё бы. А теперь можно пройти мимо установки и проследовать к следующему пункту.

Установка довольно проста:
  1. Скачиваем LuckPerms с официальной страницы плагина на Spigot.
  2. Перемещаем загруженный оттуда файл в папку plugins своего сервера. Предварительно удостоверьтесь, что там нет других плагинов на права.
  3. (Пере)запускаем сервер.
Если в plugins появилась папка LuckPerms, значит всё прошло хорошо и плагин запустился.

Настройка плагина​

В папке LuckPerms нас интересует только файл config.yml, к остальному мы притрагиваться не будем. Поскольку BungeeCord мы не используем, настройка будет быстрой и не сложной, и часть параметров можно просто не трогать. Самые важные параметры я описал здесь, остальное лучше изучать самим на LuckPerms Wiki (англ.). В этом руководстве единственный пункт, который я изменю в конфиге, будет "apply-bukkit-default-permissions: false", подробнее про него по ссылке выше.

Настройка прав​

Самая интересная часть. Наверное, самым сложным будет создание групп. Поэтому сразу пишу, как это сделать:
Код:
/lp creategroup <название> — создать группу
/lp deletegroup <название> — удалить группу
Стандартная группа для всех — default. Очень желательно её не удалять, если есть желание её переименовать можно сменить видимое имя командой (потом поймёте зачем):
Код:
/lp group <группа> setdisplayname <имя> — устанавливает отображаемое имя для группы
У меня, в итоге, получилось 3 группы с названиями:
Код:
> lp creategroup admin
[01:04:56 INFO]: [LP] admin was successfully created.
> lp creategroup donate
[01:04:59 INFO]: [LP] donate was successfully created.
> lp group default setdisplayname "Обычные игроки"
[01:11:34 INFO]: [LP] Set display name to Обычные игроки for group default.
> lp group donate setdisplayname "Донат"
[01:11:53 INFO]: [LP] Set display name to Донат for group donate.
> lp group admin setdisplayname "Администраторы"
[01:12:07 INFO]: [LP] Set display name to Администраторы for group admin.

Всё, хватит медлить, переходим к самому интересному. Для настройки прав мы не будем использовать ни редакторы БД, ни текстовые редакторы. Нам понадобится только интернет, веб-браузер (надеюсь это не Internet Explorer) и запущенный сервер с LP на борту. Прописываем команду:
Код:
> lp editor groups
[01:15:49 INFO]: [LP] Preparing a new editor session. Please wait...
[01:15:52 INFO]: [LP] Click the link below to open the editor:
[01:15:52 INFO]: https://luckperms.github.io/editor/?*******
Если вы делаете это в игре — достаточно просто нажать в чате на ссылку https://luckperms.github.io/editor/?******* и она откроется в браузере. Из консоли её можно скопировать строку браузера. Открываем...
Снимок экрана 2018-04-09 в 1.18.54.png
Да, это и есть наша настройка прав. Вверху список наших групп, потом поля для добавления и список добавленных прав.
Не бойтесь вносить правки, они не применятся, пока вы сами не сохраните и не пропишете в игре/консоли необходимую команду. Здесь полная свобода действий.
Для администраторов у нас доступны все права, для донатеров добавим право /say и /me, а обычным юзерам и так хорошо. Хотя лучше будет им запретить все доступные права, а потом добавлять необходимые.
Работают права здесь таким же образом, как и в PEX (кстати, * даёт все права, никаких кавычек не надо). В поле Permission пишем необходимое право и нажимаем справа "+". Всё. Некоторые права LP будет распознавать сам и подсказывать при вводе:
Снимок экрана 2018-04-09 в 1.31.53.png
С добавлением прав всё просто, а как запрещать?
Очень просто. Достаточно добавить право, которое надо запретить, и нажать в его строке на зелёное слово "true", которое сразу же изменится на "false", обозначая запрет.
В результате должно получиться так:
Снимок экрана 2018-04-09 в 1.33.29.png
Снимок экрана 2018-04-09 в 1.33.31.png
Снимок экрана 2018-04-09 в 1.33.33.png
Выглядит замечательно! Но мы совсем забыли про наследование групп. Помните inheritance из пекса? Так вот, здесь это делается тоже добавлением прав для группы. Надеюсь все заметили право displayname с названием группы. Так вот, здесь все параметры решаются через такие же права, как и для игроков. Только не для игроков, а для групп, и не права, а параметры.
Чтобы добавить наследование для группы достаточно будет добавить ей право:
Код:
group.<название наследуемой группы>
В моём случае это будет group.default:
Снимок экрана 2018-04-09 в 1.42.52.png

Всё, с правами мы закончили, давайте сохраним наши изменения. Справа вверху, около стрелок, нажимаем на значок дискеты и появляется сообщение:
Снимок экрана 2018-04-09 в 1.45.38.png
На белом фоне появилась команда (само собой, у вас она будет отличаться), которую необходимо выполнить на сервере, чтобы применить наши изменения. Она сама скопируется, если на неё нажать. Переходим на сервер и выполняем:
Код:
> lp applyedits **********
[01:47:38 INFO]: [LP] Web editor data was applied to admin (Администраторы) successfully.
[01:47:38 INFO]: [LP] (1 addition and 0 deletions)
[01:47:38 INFO]: +  * (true)
[01:47:38 INFO]: [LP] Web editor data was applied to default (Обычные игроки) successfully.
[01:47:38 INFO]: [LP] (1 addition and 0 deletions)
[01:47:38 INFO]: +  * (false)
[01:47:38 INFO]: [LP] Web editor data was applied to donate (Донат) successfully.
[01:47:38 INFO]: [LP] (3 additions and 0 deletions)
[01:47:38 INFO]: +  minecraft.command.me (true)
[01:47:38 INFO]: +  minecraft.command.say (true)
[01:47:38 INFO]: +  group.default (true)
Как видим, все наши изменения применились и теперь права на сервере регулируются по заданным параметрам.
Но у нас осталась проблема. Группа default убирает все права игрока, а группа admin их все обратно добавляет. Почему это проблема? Дело в том, что в LP все группы друг для друга одинаковы, пока не обозначено наследование в группе остаётся одинаковый приоритет для запрета и разрешения. Но не беда, каждый раз лезть в редактор мы не будем. Для наследования также есть команды:
Код:
/lp group <группа> parent add <группа-1> — добавить группе наследование прав из группы-1
/lp group <группа> parent remove <группа-1> — убрать наследование группы от группы-1.
Командой у себя пропишу наследование от donate к admin:
Код:
/lp group admin parent add donate

Добавление игрока в группу​

Здесь всё просто, достаточно будет ввести команду:
Код:
/lp user <игрок> parent add <группа> — добавить игроку группу
/lp user <игрок> parent remove <группа> — удалить игроку группу
/lp user <игрок> parent set <группа> — установить игроку группу и удалить все остальные

На этом всё. Естественно, охватить весь объём LP в одном посте трудно, это самые самые основы, мы с вами даже префиксы/суффиксы не разбирали. Поговорим о них в следующий раз.
А с вами был InterWall. До встречи!
 
Последнее редактирование:
Ребят, можно ли как-нибудь продлить временные разрешения или группы?
Например "/lp user User parent addtemp Group 1m" даст игроку группу на 1 минуту, но никак не получается к текущему (истекающему) времени временной группы добавить ещё времени.
В конфиге temporary-add-behaviour поставь на accumulate
 
Ребят, можно ли как-нибудь продлить временные разрешения или группы?
Например "/lp user User parent addtemp Group 1m" даст игроку группу на 1 минуту, но никак не получается к текущему (истекающему) времени временной группы добавить ещё времени.
В конфиге плагина нужно значение "temporary-add-behaviour" изменить на "accumulate", тогда при прописывании временного права его значение будет прибавляться к текущему. Если поставить на "replace", то будет заменять, а если "deny", то просто отклонит ввод команды.
 
Возможно стоит написать про Verbose? Огромное количество людей спрашивает про то, какие права на то или иное действие
 
как узнать кому выдали привилегию
В пермишенсе в самом конце были ники игроков и привелегии то в лаки перм все игроки с привелегиями отдельно
 
как узнать кому выдали привилегию
В пермишенсе в самом конце были ники игроков и привелегии то в лаки перм все игроки с привелегиями отдельно
Хз то что тебе надо или нет, но /lp group группа listmembers
 
Хз то что тебе надо или нет, но /lp group группа listmembers
а как запретить все команды для админа?
Еще не работает звезда дающие все права это. Не могу понять это изза лакиперма или так устроена версия 1.14.2?
 
Последнее редактирование:
Ну вот его пост и цетируй. Что ты от меня хочешь то?
Чтобы ты прежде чем что-то вякнуть, сначала подумал, а потом уже писал это сюда. На форуме spongeapi.com нет ничего плохого, чтобы о нем говорить «Дык это сайт хакера, че ты хотел. Он свое говно пиарит так».
 
Чтобы ты прежде чем что-то вякнуть, сначала подумал, а потом уже писал это сюда. На форуме spongeapi.com нет ничего плохого, чтобы о нем говорить «Дык это сайт хакера, че ты хотел. Он свое говно пиарит так».
Подумал уж поверь. Мне пришлось его в своей конфе забанить, ибо он всех достал пиарам своего форума. Это не дело. И в конфе пиариля и в лс спамил участникам конфы. А еще использовал слитую базу руведра для спама всем на почту. Ну и вот это копирование тем с рб теперь.
Так что не надо тут вякать, еще и обвинять меня в чем то. Я никого ворами не назвал в этой теме.
 
Как отключить оповещение в чате, когда выдают игроку разрешение или добавляют в группу?
 
Как отключить оповещение в чате, когда выдают игроку разрешение или добавляют в группу?
log-notify в конфиге
Если что, его видят только админы (игроки. с определённым правом) и сообщение можно отключить индивидуально.
 
Ребята подскажите пожалуйста, никогда не пользовался LP но очень хочется, можно ли юзать на Термосе?
 
Ребята подскажите пожалуйста, никогда не пользовался LP но очень хочется, можно ли юзать на Термосе?
Но и у LP есть свои недостатки. Пусть он и работает на всех свежих версиях, а сервера с forge для него могут стать проблемой. Thermos, Cauldron и KCauldron в их нынешнем состоянии (заброшенная разработка и версия 1.7.10) не будут работать с LuckPerms. Вообще. А вот с губкой проблем не будет.
 
Назад
Верх Низ