Перейти к содержимому

Префиксы

Другой подход в сравнении с примером Теги. Вместо записи в meta это меню управляет членством в группах LuckPerms. Каждый префикс соответствует одной группе; при выборе префикса игрок удаляется из других групп префиксов и добавляется в выбранную. Взаимная исключимость встроена.

  • Действия addGroup / removeGroup для членства в группах LuckPerms
  • Использование bulk для нескольких removeGroup + addGroup в одном клике
  • Префиксы более высоких рангов закрыты пермишенами

При каждом выборе префикса последовательно выполняются три действия:

bulk: [
{ removeGroup: "ame_prefix_member" }
{ removeGroup: "ame_prefix_donor" }
{ addGroup: "ame_prefix_admin" }
]

Нельзя написать removeGroup: ... дважды на верхнем уровне блока actions {} - ключи объекта в HOCON должны быть уникальными. bulk оборачивает последовательность действий, каждый элемент - своя группа действий.

Этот паттерн (удалить все остальные, добавить эту) гарантирует, что игрок состоит ровно в одной группе префикса. Без удалений у игрока накапливается членство в группах и выходит несколько префиксов одновременно.

Два способа управлять префиксом в чате:

  • Теги (lpMetaSet) - гибкие, тонкая настройка, без иерархии групп. Подходят для чисто косметических символов.
  • Префиксы (addGroup) - интегрируются с группами LuckPerms, наследуют права от группы, дружат с плагинами чата, читающими %luckperms_prefix%. Подходят, когда префикс должен ещё и давать дополнительные права.

Большинство серверов использует второй вариант для цвета имени в чате и первый - для дополнительного декоративного тега.

Перед использованием меню создай группы LuckPerms:

/lp creategroup ame_prefix_member
/lp group ame_prefix_member meta addprefix 50 "&a[Member] "
/lp creategroup ame_prefix_donor
/lp group ame_prefix_donor meta addprefix 100 "&6[Donor] "
/lp creategroup ame_prefix_admin
/lp group ame_prefix_admin meta addprefix 1000 "&c[Admin] "

Числовой вес (50, 100, 1000) задаёт приоритет, когда у игрока несколько префиксов - больший выигрывает. Это меню всё равно держит ровно один префикс, поэтому вес тут особо не важен, но привычку выставлять его лучше иметь.

  1. Положи бандл в plugins/AbstractMenus/menus/example/.
  2. Создай три группы из примера выше.
  3. Выполни /am reload.
  4. Введи /ame_prefixes в игре.
  5. Кликни на любой префикс. Проверь через /lp user <ты> info (одна из групп префикса будет в списке твоих групп).