- Поддерживаемые версии
- 1.16
- 1.17
- 1.18
- 1.19
- 1.20
- 1.21
- Ядра и Прокси
- Bukkit
- Spigot
- Paper
- Минимальная версия Java
- 17
hGrant
Система выдачи привилегий через GUI с лимитами, cooldown и PlaceholderAPI
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Система выдачи привилегий через GUI с лимитами, cooldown и PlaceholderAPI
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
hGrant — это настраиваемая система выдачи привилегий, наград и других grant-действий через GUI.
Плагин позволяет игроку или администратору с доступом открыть меню выдачи для выбранного игрока и выдать настроенную привилегию, временную группу, валюту или любую другую награду через actions.
Для каждой выдачи можно настроить отдельный предмет в GUI, лимит, cooldown, восстановление лимита, длительность, действия для выдающего, действия для получателя и PlaceholderAPI-плейсхолдеры.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Основные возможности
- Открытие GUI через /grant <player>.
- Отдельные GUI-файлы для разных групп.
- Настраиваемые лимиты выдач.
- Настраиваемый cooldown после выдачи.
- Опциональное восстановление лимитов.
- Значения duration для временных групп.
- Значения amount для валютных наград.
- Отдельные состояния предметов: доступно, cooldown, лимит исчерпан.
- Кастомные материалы, названия, lore, зачарования и item flags.
- Декоративные предметы в GUI.
- PlaceholderAPI-плейсхолдеры для доступных выдач, использованных выдач и cooldown.
- SQLite-хранилище по умолчанию.
- Опциональное MySQL-хранилище.
- Опциональная интеграция с LuckPerms.
- Опциональные Vault-действия.
- Публичное событие GrantEvent.
- Поддержка HEX-цветов.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Как работает
Игрок использует команду:
Код:
/grant <player>
Плагин проверяет доступ, определяет подходящее GUI для выдающего, загружает доступные выдачи и открывает меню для выбранного игрока.
При клике по предмету hGrant проверяет его состояние:
- available — выдача доступна.
- cooldown — нужно подождать перед повторной выдачей.
- notAvailable — лимит выдач исчерпан.
Если выдача доступна, плагин сохраняет обновлённые данные, выполняет actions для выдающего и затем actions для получателя, если он находится онлайн.
────────────────────────────────────────
Выбор GUI по группе
hGrant может использовать группы LuckPerms или permissions для выбора GUI, которое увидит игрок.
GUI-файлы находятся в папке:
Код:
plugins/hGrant/guis/
В комплекте есть шаблоны GUI:
Код:
phoenix.yml
overlord.yml
vlastelin.yml
paladin.yml
xozyain.yml
dadmin.yml
shulker.yml
downer.yml
yt.yml
tiktok.yml
tiktokplus.yml
Каждый файл может иметь свой title, размер, предметы выдачи и декоративные элементы.
────────────────────────────────────────
Лимиты выдач
У каждой выдачи могут быть свои ограничения.
Поддерживаемые параметры:
Код:
cooldown
uncooldown
max
duration
amount
cooldown отвечает за задержку после выдачи.
uncooldown отвечает за восстановление использованных лимитов.
max задаёт максимальное количество выдач.
duration можно использовать в actions для временных групп.
amount можно использовать в actions для валютных наград.
────────────────────────────────────────
Состояния предметов GUI
Каждый предмет выдачи может иметь три состояния:
- available
- cooldown
- notAvailable
Для каждого состояния можно отдельно настроить:
- материал
- название
- lore
- зачарования
- item flags
- actions для выдающего
- actions для получателя
Так меню может показывать игроку актуальное состояние выдачи прямо в интерфейсе.
────────────────────────────────────────
Система actions
hGrant использует настраиваемые actions для сообщений, команд, звуков, визуальных эффектов и экономики.
Примеры поддерживаемых действий:
Код:
[Message]
[Console]
[Player]
[Sound]
[Close]
[Vault]
[Title]
[ActionBar]
[BossBar]
[Particle]
[Firework]
[Effect]
[Broadcast]
Пример actions для выдачи:
Код:
grantorActions:
- "[Console] lp user {target} parent addtemp prince 14d"
- "[Message] {prefix} Вы выдали prince игроку {target}"
- "[Close]"
targetActions:
- "[Message] {prefix} Вы получили prince от {grantor}"
- "[Sound] sound: ENTITY_PLAYER_LEVELUP"
────────────────────────────────────────
Интеграция с LuckPerms
Если поддержка LuckPerms включена, hGrant может читать группы выдающего и использовать их для выбора GUI и доступных правил выдачи.
Также плагин может использовать приоритеты LuckPerms, чтобы помогать предотвращать некорректный порядок выдачи групп.
────────────────────────────────────────
Хранилище данных
hGrant сохраняет данные о выдачах в базу данных.
Поддерживаемые режимы хранения:
- SQLite
- MySQL
Сохраняются:
- UUID игрока
- ID выдачи
- количество использований
- время окончания cooldown
- время следующего восстановления
SQLite используется по умолчанию. MySQL можно включить в config.yml.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Конфигурация
Основной файл:
Код:
plugins/hGrant/config.yml
GUI-файлы:
Код:
plugins/hGrant/guis/
Пример структуры группы:
Код:
settings:
groups:
paladin:
priority: 40
list:
prince:
cooldown: 259200
uncooldown: -1
max: 5
duration: "14d"
rubles:
cooldown: 864000
uncooldown: -1
max: 3
amount: 500
Пример предмета GUI:
Код:
gui:
title: "&0Grant menu"
size: 45
grantItems:
prince:
priority: 1
slots: [21]
available:
material: ORANGE_SHULKER_BOX
displayName: "#FDBE00Prince"
lore:
- "Доступно: %hgrant_available_prince%"
- "Нажмите, чтобы выдать"
grantorActions:
- "[Console] lp user {target} parent addtemp prince 14d"
- "[Close]"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Команды
Код:
/grant <player>
Открывает GUI выдачи для выбранного игрока онлайн.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Права
Код:
hgrant.grant.*
Разрешает доступ к системе выдачи.
Также можно использовать права под конкретные группы:
Код:
hgrant.grant.phoenix
hgrant.grant.overlord
hgrant.grant.vlastelin
hgrant.grant.paladin
hgrant.grant.xozyain
hgrant.grant.dadmin
hgrant.grant.shulker
hgrant.grant.downer
hgrant.grant.yt
hgrant.grant.tiktok
hgrant.grant.tiktokplus
Эти права можно использовать, если доступ не должен зависеть только от определения группы через LuckPerms.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PlaceholderAPI
hGrant регистрирует PlaceholderAPI-плейсхолдеры с идентификатором:
Код:
hgrant
Форматы плейсхолдеров:
Код:
%hgrant_cooldown_<grant>%
%hgrant_uncooldown_<grant>%
%hgrant_max_<grant>%
%hgrant_used_<grant>%
%hgrant_available_<grant>%
Примеры:
Код:
%hgrant_cooldown_prince%
%hgrant_available_prince%
%hgrant_used_prince%
%hgrant_max_prince%
Их можно использовать в lore GUI, scoreboard, меню и других плагинах с поддержкой PlaceholderAPI.
────────────────────────────────────────
Внутренние плейсхолдеры
Плейсхолдеры для actions и текста GUI:
Код:
{prefix}
{target}
{grantor}
{sender}
{type}
{grant}
{duration}
{formattedDuration}
{formatted_duration}
{duration_formatted}
{amount}
{permission}
{player}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
API для разработчиков
hGrant может вызывать публичное событие GrantEvent после успешной выдачи.
API включается или выключается в конфиге:
Код:
settings:
api: true
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Требования
- Java 16 или новее.
- Minecraft 1.16 или новее.
- Spigot / Paper / совместимое ядро.
- PlaceholderAPI.
Опционально:
- LuckPerms
- Vault
- MySQL
Важно: PlaceholderAPI обязателен для работы плагина.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Установка
- Установите PlaceholderAPI.
- Поместите hGrant.jar в папку plugins.
- Запустите или перезапустите сервер.
- Откройте config.yml.
- Настройте группы, лимиты и базу данных.
- Настройте GUI-файлы в папке guis.
- Перезапустите сервер после изменения конфигурации.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Примечания
- Команда работает с игроками, которые находятся онлайн.
- GUI выбирается на основе группы или прав доступа.
- У каждой выдачи могут быть отдельные визуальные состояния.
- Использования выдач сохраняются в базе данных.
- LuckPerms и Vault являются опциональными интеграциями.
- Actions позволяют использовать систему для групп, наград, сообщений и эффектов.
- Зависимости
- Vault, LuckPerms (Не обязательно), PlaceholderAPI (Обязательно)
- Команды и права
- Выше всё написано