- Поддерживаемые версии
- 1.16
- 1.17
- 1.18
- 1.19
- 1.20
- 1.21
- Ядра и Прокси
- Paper
- Минимальная версия Java
- 17
- Исходный код
- https://github.com/d31zy/d31zySubscribe
d31zySubscribe - это плагин для Paper, который добавляет на сервер гибкую систему подписок (донат-привилегий). Позволяет создавать неограниченное количество тарифов, выдавать их на срок или бессрочно, автоматически снимать по истечении и выполнять любые команды при выдаче и снятии.
Ключевые особенности:
Неограниченное число подписок - каждая настраивается отдельным файлом в папке subscribes/ (например vip.yml, mvp.yml)
Срочные и бессрочные подписки - выдача на N дней либо навсегда
Автоматическое снятие истёкших подписок с выполнением привязанных команд
Команды при выдаче/снятии - интеграция с любым плагином прав (LuckPerms и др.)
Хранение в базе данных: SQLite «из коробки» или MySQL (пул соединений на HikariCP)
Полная поддержка MiniMessage — HEX-цвета, градиенты, форматирование во всех сообщениях
Плейсхолдеры PlaceholderAPI — вывод статуса и оставшегося времени подписки
Оптимизированный код — обращения к базе не блокируют основной поток
Технические требования:
- Java 17 или новее
- Ядро Paper (или его форки, например Purpur) версии 1.16.5+ (не Spigot/CraftBukkit)
- Опциональные зависимости: PlaceholderAPI, LuckPerms
- Поддерживаемые версии: 1.16.5 – 1.21.11
Конфигурации:
-
YAML:
# ██████╗░██████╗░░░███╗░░███████╗██╗░░░██╗# ██╔══██╗╚════██╗░████║░░╚════██║╚██╗░██╔╝ # ██║░░██║░█████╔╝██╔██║░░░░███╔═╝░╚████╔╝░ # ██║░░██║░╚═══██╗╚═╝██║░░██╔══╝░░░░╚██╔╝░░ # ██████╔╝██████╔╝███████╗███████╗░░░██║░░░ # ╚═════╝░╚═════╝░╚══════╝╚══════╝░░░╚═╝░░░ # Разработано с любовью от студии d31zyStudio # # Связь: # Telegram: t.me/d31zy # VK: vk.ru/d.asspi4 # storage: # sqlite ИЛИ mysql type: "sqlite" sqlite: file: "data.db" mysql: host: "localhost" port: 3306 database: "d31zysubscribe" username: "root" password: "" use-ssl: false pool-size: 10 settings: # Как часто (в секундах) проверять и снимать просроченные подписки expire-check-interval-seconds: 60 messages: no-permission: "<gray>У Вас <red><underlined>недостаточно</underlined></red> <gray>прав!" reload: "<gray>Вы <#E74C2E>успешно</#E74C2E> перезагрузили плагин!" unknown-subscription: "<gray>Подписки с ID <yellow>%id%</yellow> не существует!" no-args: - "<#E74C2E>d31zySubscribe <dark_gray>|</dark_gray> <gray>Помощь:" - "" - "<#E74C2E>/subscribe give <dark_gray>(</dark_gray><#E74C2E>игрок</#E74C2E><dark_gray>)</dark_gray> <dark_gray>(</dark_gray><#E74C2E>подписка</#E74C2E><dark_gray>)</dark_gray> <dark_gray>(</dark_gray><#E74C2E>дни/forever</#E74C2E><dark_gray>)</dark_gray> <dark_gray>-</dark_gray> <gray>выдать подписку" - "<#E74C2E>/subscribe take <dark_gray>(</dark_gray><#E74C2E>игрок</#E74C2E><dark_gray>)</dark_gray> <dark_gray>(</dark_gray><#E74C2E>подписка</#E74C2E><dark_gray>)</dark_gray> <dark_gray>-</dark_gray> <gray>снять подписку" - "<#E74C2E>/subscribe info <dark_gray>(</dark_gray><#E74C2E>игрок</#E74C2E><dark_gray>)</dark_gray> <dark_gray>-</dark_gray> <gray>посмотреть подписки игрока" - "<#E74C2E>/subscribe list <dark_gray>-</dark_gray> <gray>список всех доступных подписок" - "<#E74C2E>/subscribe reload <dark_gray>-</dark_gray> <gray>перезагрузить плагин" null-player: "<gray>Игрок не найден." no-exists: "<gray>У игрока нет такой подписки!" give-duration: "<gray>Вы выдали подписку <yellow>%subscription%</yellow> игроку <#E74C2E>%player%</#E74C2E> на <#E74C2E>%duration%</#E74C2E> дн.!" give-forever: "<gray>Вы выдали подписку <yellow>%subscription%</yellow> игроку <#E74C2E>%player%</#E74C2E> навсегда!" take: "<gray>Вы забрали подписку <yellow>%subscription%</yellow> у игрока <#E74C2E>%player%</#E74C2E>!" incorrect-duration: "<gray>Вы ввели некорректный срок подписки!" info-header: "<gray>Подписки игрока <#E74C2E>%player%</#E74C2E><dark_gray>:" info-line-forever: " <yellow>%subscription%</yellow> <dark_gray>-</dark_gray> <#E74C2E>навсегда" info-line-timed: " <yellow>%subscription%</yellow> <dark_gray>-</dark_gray> <#E74C2E>%time%" info-empty: " <gray>нет активных подписок" list-header: "<gray>Доступные подписки<dark_gray>:" list-line: " <yellow>%id%</yellow> <dark_gray>-</dark_gray> <gray>%name%" # Форматы, используемые плейсхолдером %d31zysubscribe_time_<id>% placeholder: forever: "<gray>(<#E74C2E>∞</#E74C2E>)" remaining: "<gray>(<#E74C2E>%days%д. %hours%ч. %minutes%м.</#E74C2E>)" none: "<red>Нету" has-yes: "<green>Да" has-no: "<red>Нет" -
YAML:
# Пример подписки. Имя файла (без .yml) - это её ID, используемый в командах и плейсхолдерах. # Можно создать сколько угодно таких файлов в папке subscribes/, например vip.yml, mvp.yml, premium.yml. display-name: "VIP" symbol: "&6&l+ &7" # Префикс игрока, пока подписка активна. %prefix% - префикс из LuckPerms, %symbol% - значение выше. prefix-with-subscription: "%prefix%%symbol%" # Префикс игрока, когда подписки нет или она истекла. prefix-without-subscription: "%prefix% &7" commands-on-give: - "lp user %player% permission set essentials.god true" - "lp user %player% parent add vip" commands-on-take: - "lp user %player% permission unset essentials.god" - "lp user %player% parent remove vip"
- Зависимости
- Опционально: LuckPerms, PlaceholderAPI
- Команды и права
- /d31zysubscribe || /subscribe
Главные команды плагина.
Использование:
- /subscribe give <игрок> <подписка> <дни|forever> - Выдать подписку на срок или навсегда
- Право: d31zysubscribe.admin ( Сразу доступно при OP )
- /subscribe take <игрок> <подписка> - Снять подписку
- Право: d31zysubscribe.admin ( Сразу доступно при OP )
- /subscribe info <игрок> - Показать активные подписки
- Право: d31zysubscribe.admin ( Сразу доступно при OP )
- /subscribe list - Список доступных подписок
- Право: d31zysubscribe.admin ( Сразу доступно при OP )
- /subscribe reload - Перезагрузить плагин
- Право: d31zysubscribe.admin ( Сразу доступно при OP )
- d31zysubscribe.admin - Доступ к командам /subscribe
- /subscribe give <игрок> <подписка> <дни|forever> - Выдать подписку на срок или навсегда