
Donut Shards - валюта и экономика сервера
Плагин Donut Shards добавляет на сервер Minecraft виртуальную валюту-осколки с SQL-хранилищем, переводами между игроками, налогом на переводы и магазином Cosmic Confection Exchange. Работает на Paper и Folia.
Donut Shards - плагин для серверов Paper и Folia, который добавляет в Minecraft полноценную виртуальную валюту. Не просто очки в файле, а настоящую экономику с SQL-базой, историей транзакций и защитой от дюпа. Если вы строите сервер с прогрессией, магазинами или наградами за активность - это фундамент, на котором всё держится.
Скачать Donut Shards стоит тем, кто устал от костылей вроде экономики на табличках или плагинов, которые падают при первом же рестарте. Тут балансы хранятся как 64-битные числа в SQL-ledger, а не в текстовике, который может сломаться от одного неправильного символа.
Что вообще за осколки и зачем они нужны
В ванильном Майнкрафте нет встроенной валюты. Серверы обычно крутят экономику на изумрудах, золоте или плагинах вроде Vault с Essentials. Но это либо неудобно, либо небезопасно. Donut Shards предлагает альтернативу - отдельную валюту, которую нельзя подделать, потому что она живёт в базе данных, а не в инвентаре.
Осколки можно выдавать за задания, продажу в магазине, участие в ивентах или просто за время на сервере. Игроки переводят их друг другу с настраиваемым налогом. Админы контролируют максимальный баланс, чтобы не было инфляции. Всё как в нормальной MMO, только внутри Minecraft.
Основные возможности плагина
| Функция | Что это даёт |
|---|---|
| Виртуальная валюта | Балансы игроков хранятся как 64-битные целые числа |
| Операции с экономикой | Добавление, снятие, установка и перевод осколков |
| Атомарные переводы | Переводы между игроками с налогом обрабатываются как единая транзакция |
| Защита баланса | Защита от отрицательных значений и переполнения |
| Журнал транзакций | История операций с идемпотентными ключами |
| SQLite | Локальная база данных по умолчанию, без внешних зависимостей |
| MariaDB и MySQL | Опциональное подключение к внешней базе |
| HikariCP | Пул соединений для эффективной работы с SQL |
| Повторяющиеся награды | Базовая система периодических начислений |
| Cosmic Confection Exchange | Оригинальный GUI-магазин на инвентаре |
| MiniMessage | Форматирование сообщений через MiniMessage |
| Асинхронный API | Публичный Java API для интеграций с другими плагинами |
| Paper и Folia | Абстракция планировщика для обеих платформ |
Экономика осколков в деталях
Плагин Donut Shards создаёт отдельную валюту, которая может стать основой для наград, магазинов, систем прогрессии и кастомных механик сервера. Балансы хранятся как 64-битные целые числа в надёжном SQL-журнале.
Что можно делать с осколками:
- Начислять игрокам
- Списывать
- Устанавливать точное значение
- Переводить между игроками
- Настраивать налог на переводы
- Ограничивать максимальный баланс
- Блокировать отрицательные значения
- Защищаться от переполнения чисел
Важный нюанс: 64-битное целое - это long в Java. Максимум около 9 квинтиллионов. Для серверной валюты это с запасом, но защита от переполнения всё равно есть. Потому что мало ли, вдруг кто-то решит выдать себе Long.MAX_VALUE через баг.
Переводы между игроками
Игроки могут передавать осколки напрямую друг другу. Переводы обрабатываются атомарно - списание и зачисление происходят как одна транзакция. Если что-то пошло не так, операция откатывается целиком, а не оставляет одного игрока без денег, а другого без получения.
Особенности переводов:
- Прямые платежи между игроками
- Настраиваемый налог на перевод
- Атомарное обновление балансов
- Защита от отрицательного баланса
- Защита от переполнения
- История транзакций
- Идемпотентные ключи транзакций
Идемпотентные ключи - это защита от повторного выполнения одной и той же операции при ретраях. Если сеть моргнула и плагин решил повторить транзакцию, ключ не даст списать деньги дважды.
Журнал транзакций
Donut Shards хранит всю экономическую активность в постоянной SQL-базе. Это не просто текущий баланс, а полная история:
- Постоянные балансы игроков
- История транзакций
- Идемпотентные ключи
- Атомарные операции
- Надёжность через SQL
Для админа это значит, что можно отследить, кто кому когда сколько перевёл. Полезно при разборе жалоб на дюп или мошенничество.
Хранилище данных
Плагин поддерживает несколько вариантов SQL-хранилища.
SQLite
SQLite работает по умолчанию и не требует внешней базы данных. Подходит для:
- Одиночных серверов
- Простых установок
- Разработки и тестирования
- Серверов без внешней БД
Файл базы лежит в папке плагина. Бэкапится копированием. Для небольшого сервера - идеально.
MariaDB и MySQL
Если нужна внешняя база, можно подключить MariaDB или совместимый MySQL. Соединения идут через пул HikariCP, что снижает нагрузку и ускоряет работу.
Совет: для продакшена заведите отдельного пользователя базы с минимальными правами. Не надо давать плагину root-доступ к MySQL. Это базовая гигиена, которую многие почему-то игнорят.
Повторяющиеся награды
В Donut Shards есть базовая система периодических наград. Можно настроить автоматическое начисление осколков игрокам за время на сервере или другие условия. Это фундамент для AFK-зон и пассивного дохода.
Правда, продвинутое управление AFK-зонами пока не завершено в версии 1.0.0. Так что если вам нужны сложные зоны с проверкой на афк - придётся подождать или доработать самим.
Cosmic Confection Exchange
Это оригинальный GUI-магазин на инвентаре. Игроки открывают интерфейс и обменивают осколки на предметы или награды. Сделано в стиле космической кондитерской - отсюда и название.
Постоянная сверка доставки покупок и продвинутые редакторы для админов пока в планах. Но базовый магазин уже работает.
Производительность и безопасность
Плагин построен вокруг асинхронных операций с базой данных и современных требований к планировщику Minecraft.
Что внутри:
- Асинхронные операции с экономикой
- Асинхронный публичный Java API
- Пул соединений HikariCP
- Абстракция планировщика Paper
- Нативная абстракция планировщика Folia
- Регионально-безопасные взаимодействия с Bukkit
- Атомарная обработка переводов
- Защита от переполнения баланса
- Защита от отрицательного баланса
- Идемпотентная обработка транзакций
Для Folia это критично. На региональных серверах нельзя просто взять и выполнить SQL-запрос в основном потоке - получите лаги или краш. Donut Shards умеет работать с региональным планировщиком Folia, не ломая тики.
Команды плагина
| Команда | Что делает |
|---|---|
/shards balance [player] | Показать баланс осколков |
/shards pay <player> <amount> | Перевести осколки другому игроку |
/shardshop | Открыть магазин осколков |
/afk leave | Выйти из текущего AFK-взаимодействия |
/shardmanager give <player> <amount> | Выдать осколки игроку |
/shardmanager take <player> <amount> | Забрать осколки у игрока |
/shardmanager set <player> <amount> | Установить баланс игрока |
Алиасы для /shards:
/donutshards/dshards
Java API для разработчиков
Donut Shards предоставляет асинхронный публичный Java API для интеграций с другими плагинами. API построен вокруг асинхронных операций с экономикой, так что интеграциям не нужно выполнять SQL-запросы напрямую в потоках сервера или регионов.
Если вы пишете свой плагин с квестами, магазином или системой достижений - можете подключиться к Donut Shards и использовать его валюту, не изобретая велосипед.
Настройка
Текущая конфигурация поддерживает:
- Максимальный баланс осколков
- Налог на переводы между игроками
- Хранилище SQLite
- Хранилище MariaDB/MySQL
- Настройки подключения к базе
- Поведение повторяющихся наград
- Сообщения в формате MiniMessage
Для MariaDB/MySQL настройте отдельного пользователя с минимальными правами в database.yml. Не используйте root.
Установка
- Скачайте JAR-файл Donut Shards.
- Положите его в папку
plugins/сервера. - Запустите сервер и дождитесь сообщения о готовности базы данных.
- Остановите сервер перед редактированием конфигов.
- Настройте базу данных и экономику.
- Перезапустите сервер.
- Проверьте, что подключение к базе инициализируется успешно.
SQLite работает без дополнительной настройки. Просто положили плагин и поехали.
Совместимость
| Требование | Версия |
|---|---|
| Серверное ПО | Paper и Folia |
| Minecraft | 1.20.1 - 26.1.2 |
| Байткод плагина | Java 21 |
| Рантайм Minecraft 26.1.2 | Java 25 |
Minecraft 26.2 пока не заявлен, потому что стабильного релиза для Paper/Folia на момент сборки не было.
Статус релиза
Donut Shards 1.0.0 - это ранняя функциональная основа. Следующие возможности запланированы, но не завершены в этой сборке:
- Продвинутое управление AFK-зонами
- Постоянная сверка доставки покупок в магазине
- Команды отката транзакций
- Таблицы лидеров
- Интеграция с Vault
- Интеграция с PlaceholderAPI
- Инструменты миграции
- Редакторы для администрирования
Если вам нужны эти функции прямо сейчас - придётся подождать или искать альтернативы. Но базовая экономика уже стабильна.
Почему именно Donut Shards
- Отдельная валюта - независимая виртуальная валюта для кастомной прогрессии и наград.
- Надёжные транзакции - SQL-балансы, история и идемпотентные ключи дают надёжный фундамент.
- Безопасные переводы - атомарные переводы, защита баланса, защита от переполнения и настраиваемый налог.
- Гибкое хранилище - SQLite из коробки или подключение к MariaDB/MySQL.
- Современная производительность - асинхронные операции и поддержка Paper/Folia.
- Для разработчиков - асинхронный публичный Java API для интеграций.
- Расширяемая основа - релиз 1.0.0 закладывает базу для будущих магазинов, наград, лидербордов и интеграций.
Лицензия
Donut Shards распространяется под Apache License 2.0. Можно свободно использовать, модифицировать и распространять в рамках условий лицензии.
Где поиграть с друзьями
Если вы хотите запустить сервер с Donut Shards для игры с друзьями, плагин отлично заработает на BungeeHost (https://bungee.host). Там его можно установить в один клик, и он будет стабильно работать на Paper или Folia. Для кооператива с экономикой - самое то.
Скачать Donut Shards и попробовать на своём сервере - лучший способ понять, подходит ли он под ваши задачи. Базовая экономика работает из коробки, а дальше уже можно наращивать функционал через API или ждать обновлений.
Сервер для плагина Donut Shards - валюта и экономика сервера - как у профи
Плагин Donut Shards - валюта и экономика сервера создан для серверов: на своём сервере вы настраиваете его под себя и решаете, кому играть. Создать сервер с плагином Donut Shards - валюта и экономика сервера для друзей можно за пару минут - BungeeHost всё уже подготовил.
