Gold Плагин Экономика BeastToken [4.3.14]

Этот выпуск подготавливает BeastTokens к работе с отдельным дополнением BeastTokens - AxMinions Extension, а также улучшает очистку расширений при перезагрузке и выключении плагина.

Новое необязательное расширение AxMinions
  • Игроки открывают мастерскую улучшений через существующую кнопку Upgrade в меню своего миньона AxMinions. Интеграция определяет внутреннее действие кнопки AxMinions, поэтому переведённые названия и пользовательский текст кнопки не нарушают её работу.
  • В разделе upgrades.<level>.requirements конфигурации миньона AxMinions можно указывать цены, например BeastTokens-tokens: 100 или BeastTokens-gems: 5. Можно одновременно требовать несколько валют BeastTokens и существующую валюту money. Улучшения, оплачиваемые только деньгами, по-прежнему поддерживаются. actions — это требование к прогрессу, оно не расходуется.
  • Настраиваемая мастерская на 54 слота отображает текущие и выбранные характеристики, прогресс действий, цены в валютах, баланс и недостающие средства, постраничный список уровней и отдельное окно подтверждения.
  • Перед покупкой повторно проверяются стоимость и возможность улучшения. Также предусмотрена защита от повторного выполнения улучшений и фиксация неопределённых результатов оплаты или возврата средств для последующей проверки администратором.
Дополнение распространяется отдельно и предназначено для AxMinions 1.0.21 на обычных серверах Paper/Spigot. Folia не поддерживается. Расширение использует AxMinions без изменения его JAR-файла.

Надёжность расширений
  • Теперь расширения получают уведомления о завершении работы до того, как BeastTokens перезагрузит или отключит свои кошельки и обработчики событий. Ожидающая загрузка расширений отменяется, а открытые архивы закрываются.
  • Дублирующиеся файлы расширений и главные классы пропускаются. При неудачном запуске расширения выполняется очистка.
Другие улучшения
  • Добавлено 49 дополнительных встроенных языковых файлов, которые можно выбрать через Options.Language.Settings.File. Переводы выполнены с помощью машинных средств — рекомендуется проверить формулировки перед использованием в своём сообществе.
  • Улучшены ответы PlaceholderAPI: теперь они позволяют различать некорректные запросы, отсутствие контекста игрока, загрузку данных, недоступные данные и пустые результаты.
  • Улучшена совместимость со старыми версиями серверов: сохранена поддержка эмодзи и Unicode в YAML, а обработка зелий, флагов предметов, иконок, свечения и ремонта в магазинах и меню адаптирована к доступным API сервера.
Обновление
Остановите сервер, замените BeastTokens на версию 4.3.14, убедитесь, что установлен BeastLib 1.7.0, затем запустите сервер.

Для использования необязательного дополнения также установите AxMinions 1.0.21 и поместите AxMinionsExtension-4.3.14.jar в папку plugins/BeastTokens/Extensions/ перед запуском сервера.

Настройки мастерской находятся в plugins/BeastTokens/Extensions/AxMinionsExtension/config.yml.

Используйте /bta reload для перезагрузки конфигурации дополнения и /axminions reload для перезагрузки цен миньонов.

При изменении JAR-файлов необходимо перезапустить сервер.

BeastTokens 4.3.12​

BeastTokens 4.3.12 дополняет систему плейсхолдеров баланса для всех включённых валют и значительно снижает нагрузку при частых событиях получения наград.

Плейсхолдеры PlaceholderAPI

Теперь можно выбрать обычное, сырое или сокращённое значение баланса в топе:

  • %beasttokens_<currency_id>top_balance<position>%
  • %beasttokens_<currency_id>top_balance_raw<position>%
  • %beasttokens_<currency_id>top_balance_formatted<position>%
Например:

  • %beasttokens_gems_top_balance_1%
  • %beasttokens_gems_top_balance_raw_1%
  • %beasttokens_gems_top_balance_formatted_1%
В языковых файлах, командах и меню BeastTokens также доступны встроенные форматы баланса без PlaceholderAPI, когда BeastTokens располагает контекстом игрока или суммы:

  • %balance% — настроенный/сгруппированный формат числа
  • %balance_raw% — исходное значение без группировки
  • %balance_formatted% или %balance_short% — сокращённое значение
В сообщениях для игроков можно использовать формы с указанием валюты, например %beasttokens_gems_balance%, %beasttokens_gems_balance_raw% и %beasttokens_gems_balance_formatted%, чтобы выбрать конкретный включённый кошелёк.

Старые варианты написания %balance_formated% и %beasttokens_<currency_id>top_balance_formated<position>% по-прежнему поддерживаются для существующих конфигураций. В примерах теперь используется правильное написание %balance_formatted%.

PlaceholderAPI по-прежнему требуется, если другой плагин, например плагин для скорборда или голограмм, обрабатывает значения %beasttokens_...%, а также когда валюта External получает значение PlaceholderAPI через Settings.PlaceHolderHook. Для встроенных замен %balance%, %balance_raw% и %balance_formatted% в поддерживаемых сообщениях BeastTokens PlaceholderAPI не требуется.

Справка по плейсхолдерам /bta, GitBook, реестр плейсхолдеров, описание на Spigot и BuiltByBit также обновлены.

Оптимизация получения наград​

Оптимизация распространяется на все типы дропа: Mining, Farming, Fishing, Mobs, MythicMobs, убийства игроков, PyroFishingPro, WildStacker, Scyther и все включённые валюты.

  • Все настроенные значения шансов и множителей количества теперь объединяются в один лёгкий снимок данных игрока, который используется всеми типами дропа и валютами.
  • Стандартный интервал кэширования разрешений для бустеров увеличен до 20 тиков вместо полного пересоздания набора эффективных разрешений почти при каждом разрушении блока.
  • LuckPerms использует контекстный кэш разрешений и обновляет данные только затронутого игрока при изменении разрешений или контекста.
  • Для других провайдеров разрешений используется ограниченный кэш, настроенный через boosters.yml -> Performance.PermissionCacheTicks.
  • /bta updateBoosters <player|*>, перезагрузка, вход игроков, замена каталога и изменения жизненного цикла игрока по-прежнему создают новый снимок данных.
  • Логика точного определения активных бустеров сохранена: OP, широкие wildcard-разрешения и явно отключённые (false) узлы не активируют неожиданные бустеры.
Слушатели дропа теперь заранее индексируют настроенные материалы, сущности и источники дропа при загрузке. Каждое событие обрабатывает только подходящие валюты и один раз проверяет общее разрешение на получение дропа.

Обнаружение MythicMobs, возможности WildStacker, ID мобов MythicMobs, а также данные уровня/тира PyroFishing теперь кэшируются вместо повторного поиска или разбора при каждой попытке выдачи награды.

Оптимизация отслеживания блоков​

Отслеживание блоков при добыче теперь считывает и использует физическую метку блока один раз за разрушение, применяя результат одинаково ко всем валютам и учитывая валюты, отключившие отслеживание.

На Minecraft 1.16.4+ нативный PDC-трекер использует общий разреженный кэш для каждого загруженного чанка. После инициализации кэша чистые пропуски естественных блоков в актуальном формате обрабатываются только из памяти.

Изменения меток сразу записываются в компактные данные чанка, а кэш удаляется при выгрузке чанка или мира.

Существующие метки blocks.<x><y><z>.Natural автоматически переносятся при первом обращении. Старое дерево данных сохраняется, но после миграции больше не используется.

Настройки Options.BlockTracking.Enabled, TrackPiston и Type не требуют новых параметров или изменения версии конфигурации. Старый механизм для версий до 1.16.4 и необязательный хук Type: EXPERIMENTAL остаются без изменений.

Дополнительные улучшения​

Встроенные сообщения о дропе теперь обрабатывают только те плейсхолдеры валюты, контекста и потраченных средств, которые фактически присутствуют в сообщении.

Обычные сообщения о частых наградах больше не проверяют каждый включённый кошелёк перед отправкой.

Все эти изменения сохраняют существующие API-события дропа, пользовательские награды, лимиты получения, звуки, выпадение предметов на землю, настройки по мирам и мультивалютные награды.

Хранение лимитов получения наград не переносилось в поток событий: на пути выдачи награды данные по-прежнему хранятся в памяти, а их сохранение выполняется асинхронно.
Это обновление улучшает проверку прав на бустеры в BeastTokens при добыче ресурсов, фермерстве, рыбалке и получении других валютных наград.

Что изменилось?
  • Более быстрые проверки прав
    Информация о правах на бустеры теперь повторно используется для одного и того же игрока и типа дропа в течение каждого серверного тика.
  • Снижение нагрузки на сервер
    Повторные действия при добыче, фермерстве и рыбалке больше не создают одну и ту же информацию о правах несколько раз за один тик.
  • Мгновенное обновление прав
    Изменения прав автоматически обнаруживаются на следующем серверном тике — обычно в течение примерно 50 мс при 20 TPS.
  • Улучшена производительность при работе с несколькими валютами
    Несколько валют, использующих один и тот же тип дропа, теперь могут повторно использовать полученную информацию о бустерах вместо повторного выполнения ресурсоёмких проверок прав.
  • Безопасная обработка в основном потоке
    Проверки прав по-прежнему выполняются синхронно с Bukkit и никогда не переносятся в небезопасный асинхронный поток.
  • Ручное обновление по-прежнему доступно
    Используйте /BeastTokensAdmin UpdateBoosters <player>, если необходимо принудительно обновить информацию о бустерах в рамках текущего тика.
Конфигурация

Сбрасывать конфигурацию не требуется. Существующие права и настройки бустеров продолжат работать без изменений.

Обновление
  1. Остановите сервер.
  2. Замените предыдущий JAR-файл BeastTokens на версию 4.3.10.
  3. Запустите сервер снова.
  • Добавлена надёжная миграция старых балансов Tokens из файлового/YAML-хранилища в текущий мультивалютный формат.
  • Добавлена команда /bta currency migrateLegacy Tokens preview|confirm для предварительного просмотра и подтверждения миграции.
  • Явно заданные типы хранилища для отдельных валют теперь сохраняются. Только Default наследует глобальную настройку хранилища.
  • Исправлено: редкая проблема с GUI магазина, из-за которой один клик мог обрабатываться дважды или позволять получить предметы, которые не должны были выдаваться.
  • Добавлены предупреждения о некорректно размещённых командах выдачи наград магазина.
  • Важно: перед обновлением сделайте резервную копию файлов игроков и баз данных. Изменение типа хранилища переключает валюту на другой бэкенд, но не переносит автоматически балансы между несвязанными хранилищами.

Новые возможности​

  • Полностью переработан интерфейс Beast Marketplace (54 слота): добавлены градиенты MiniMessage, RGB-оформление описаний, информация об игроке, отображение баланса, пагинация и семь новых тематических карточек магазинов.
  • Добавлены четыре новых тематических магазина:
    • Crystal Forge
    • Harvest Haven
    • Arcane Archive
    • Tidal Treasures
  • Обновлены магазины Beast Bazaar, Adventurer's Emporium и Master Merchant Lab:
    • анимации;
    • несколько страниц;
    • ротация товаров;
    • ограничения по количеству;
    • выполнение команд;
    • случайные награды;
    • права доступа;
    • расширенные механики покупки и продажи.
  • В новых установках теперь доступны валюты Tokens, Gems, Shards, а также опциональная валюта Money через Vault.
  • Добавлены примеры магазинов с использованием одной, двух или сразу трёх встроенных валют, а также их комбинаций с валютой Vault Money.
  • Добавлены автоматические шаблоны отображения цены в описании предметов (SINGLE_LINE и MULTILINE) на глобальном уровне, для отдельных магазинов и отдельных предметов.
  • Добавлена фильтрация магазинов по валюте. Например, команды /gems shops, /shards shops и /money shops отображают только магазины, использующие соответствующую валюту.
  • Добавлена глобальная панель навигации по магазинам с отображением баланса всех валют, кнопкой возврата в маркет, элементами пагинации и закрытия меню.

Исправления и улучшения​

  • Исправлено: устранена проблема с интеграцией Vault и EssentialsX Economy, из-за которой магазин мог ошибочно сообщать о невозможности изменить баланс валюты Money.
  • Цены в валюте Money теперь отображаются в формате $ без лишнего суффикса Money.
  • Сообщения о завершении транзакций теперь используют префикс, заданный в языковых файлах BeastTokens.
  • Добавлена возможность задавать собственные сообщения о транзакциях для каждой валюты.
  • Исправлено: устранены дублирующиеся и некорректно оформленные автоматически создаваемые строки с ценами.
  • Добавлены отдельные языковые шаблоны BuyPriceMultiline и SellPriceMultiline.
  • Исправлено: корректно работают покупки и продажи, использующие только случайные команды.
  • Награды за добычу ресурсов, рубку брёвен, фермерство, рыбалку, Scyther и WildStacker больше не выдаются, если соответствующее действие было отменено плагином защиты.
  • Система наград за добычу ресурсов, фермерство, рыбалку, убийство мобов, MythicMobs и игроков переведена на единую систему обработки валют.
  • Удалены 19 устаревших обработчиков и менеджеров системы выдачи наград.
  • Если папка с магазинами отсутствует или полностью пуста, автоматически восстанавливаются все семь встроенных магазинов.
  • Улучшена защита от некорректных кликов в меню магазинов и повышена надёжность навигации.

Примеры и документация​

  • Старые магазины Example* переименованы в полноценные игровые названия.
  • Все встроенные магазины переработаны и теперь служат примерами расширенной конфигурации с подробными комментариями.
  • Обновлена документация GitBook по магазинам, валютам, интеграции с Vault, отображению цен, анимациям, видимости магазинов, навигации и системе валютных наград.

Важно при обновлении​

  • Существующие пользовательские магазины, меню и папки валют не будут перезаписаны.
  • Новые стандартные конфигурации устанавливаются только при новой установке или полном сбросе соответствующих папок.
  • Чтобы вручную установить обновлённую встроенную конфигурацию магазина, используйте команду:

    /BeastTokensAdmin ShopManager defaults save <shop> --overwrite
This is one of the largest BeastTokens updates so far, focused on the new multi-currency system, shop improvements, administration tools, storage, ProxySync, and reliability.

New Multi-Currency System

  • BeastTokens now supports multiple independent currencies—not only Tokens plus one additional currency.
  • Create currencies such as Tokens, Gems, Shards, EventPoints, or any custom economy.
  • Every currency has separate settings, balance storage, drops, commands, aliases, messages, notes, limits, leaderboards, permissions, and default shops.
  • Each currency receives its own command, such as /Tokens, /Gems, or /Shards.
  • Currency command words such as balance, pay, shop, withdraw, top, and topspent can be renamed per currency.
  • Added per-currency balance and total-spent leaderboards.
  • Added per-currency permissions while keeping legacy global permissions compatible.
  • Added currency administration commands for creating, copying, listing, inspecting, validating, enabling, disabling, and reloading currencies.

/bta currency create <currency_id>
/bta currency copy <source_id> <new_id>
/bta currency list
/bta currency info <currency_id>
/bta currency validate [currency_id]
/bta currency enable <currency_id>
/bta currency disable <currency_id>

Storage & Migration

  • Added SQLite balance and spent-statistics storage.
  • Different currencies can now use different storage providers.
  • Currencies can inherit the global storage selection with Settings.Type: Default.
  • Improved MySQL connection pooling and per-currency table handling.
  • Balance calculations now use BigDecimal-safe internal math.
  • Added automatic migration from the legacy single-currency Tokens File/MySQL structure.
  • Added safe MySQL migration journaling, verification, rollback, and conflict detection.
  • Added a manual migration command with preview, confirm, and merge-missing modes.
  • ConvertData is now currency-aware and supports dry-run safety backups.
  • TokenManager and ElementalGems balance/shop imports can target a selected currency.

Code (Text):

/bta currency migrateLegacy <currency_id> [<balance_table|-> <stats_table|->] [preview|confirm|merge-missing]

Shop System Update

  • Added multi-currency shop prices.
  • Shop items can require several currencies at once using ALL mode.
  • FIRST_AFFORDABLE mode lets players use the first configured price they can afford.
  • Shops, individual items, buying, and selling can use different currency overrides.
  • Added currency-aware price, balance, required-price, and missing-price lore.
  • Added per-currency default shops and configurable shop-list filtering.
  • Added a configurable main shop selector GUI.
  • Added per-page rotating item pools.
  • Rotating shops now support CYCLE and TIMESTAMP schedules.
  • Rotating and stock state supports File, MySQL, and SQLite.
  • Added shared MySQL player/server stock limits with automatic restocking.
  • Buying can restore sell stock, and selling can restore buy stock.
  • Added new EmptySlot filler patterns, including BORDER, SIDES, TOP_BOTTOM, RECTANGLE, and CHECKERBOARD.
  • Added configurable shop-opening animations such as CENTER_OUT, SPIRAL, SNAKE, RAIN, RANDOM_POP, and slide effects.
  • Added stronger transaction menu click guards to prevent duplicate purchases, sales, confirmations, messages, and sounds.

Web & In-Game Editors

  • Greatly expanded the authenticated BeastTokens web editor.
  • Added visual Minecraft-style inventory editing with drag-and-drop item placement.
  • Create, rename, duplicate, move, swap, and delete shop items and pages.
  • Added visual editors for rotating pools, rotating slots, fillers, Buy Menu, Sell Menu, and Shop Menu.
  • Added structured editors for shop settings, plugin settings, currencies, prices, commands, stock, animations, and sounds.
  • Added a Create New Shop form with economy selection and validation.
  • Added Minecraft texture, custom player-head, MiniMessage, RGB, gradient, and resource-pack model previews.
  • Added an Economy Manager with searchable balances, player heads, balance editing, and transaction history.
  • Added Health Check, Backups, Audit Explorer, Diagnostics, Cache Tools, Shop Preview, Bulk Tools, and Setup tools.
  • Improved the in-game shop editor with page management, item previews, line-list editing, exact cursor placement, and duplicate-click protection.

Drops & Native Notes

  • Drops are now configured separately for every currency.
  • Each currency can independently reward mobs, mining, farming, fishing, players, and MythicMobs.
  • Added configurable reward sounds for direct rewards and floor-drop notes.
  • Added currency-aware drop earning limits with GLOBAL and PER_TYPE modes.
  • Added permission profiles, interval resets, scheduled resets, and File/MySQL/SQLite tracking.
  • Added currency-aware earning-limit placeholders and admin tracking commands.
  • Native notes now store their currency ID and redeem into the correct balance.
  • Added note item flags, enchants, CustomModelData, holograms, sounds, amount-based designs, and named visual overrides.
  • Improved BeastWithdraw integration so every BeastTokens currency can use separate withdraw handling.

Proxy & Network Improvements

  • Updated BungeeCord and Velocity ProxySync to handle currency-aware balance updates.
  • Added proxy balance lookup, add, remove, and set commands with optional currency selection.
  • Added MySQL stock and rotating-shop synchronization between servers.
  • Added network shop-file synchronization through the web editor.
  • Added Proxy Web Interface support for viewing connected Spigot editors.
  • Added a proxy Economy panel for viewing and managing MySQL currency balances.
  • Improved reconnect handling, startup order, currency registration, and missing-table handling.

API, Placeholders & Administration

  • Added currency-first PlaceholderAPI placeholders such as %beasttokens_tokens_balance% and %beasttokens_gems_balance%.
  • Added /bta placeholders [category] [page] to browse placeholder examples.
  • The API can now retrieve a specific manager with BeastTokensAPI.getTokensManager("Gems").
  • Events now expose the currency ID and transaction reason.
  • Shop transaction events now include a unique transaction ID.
  • Added transaction rate limiting, duplicate protection, and asynchronous JSONL audit logs.
  • Added runtime diagnostics, startup validation, safe ZIP backups, restore inspection, and structured debug categories.
  • Global messages now load from Lang/<locale>.yml and can be overridden per currency.

Examples & Fixes

  • Rebuilt Example.yml into a polished two-page, 54-slot Beast Bazaar with MiniMessage styling, rotating offers, stock, animations, custom potions, and navigation.
  • Expanded Example_Advanced.yml and Example_Ultimate.yml with current shop features.
  • Moved the internal example installation marker out of the Shops folder and into plugins/BeastTokens/.state.
  • Improved PLAYER_HEAD textures for Base64 values, player names, %player%, offline-mode servers, reward items, and web previews.
  • Fixed duplicate shop actions, duplicate messages/sounds, transaction item leaks, empty slots, timer padding, menu refreshes, shutdown handling, and multiple storage lifecycle issues.
  • Removed the obsolete Deposit GUI and MVdWPlaceholderAPI integration.

Important Before Updating

  • Back up the complete BeastTokens folder and database.
  • On MySQL networks, stop all backends and allow one updated server to complete migration first.
  • Do not run old and new BeastTokens versions against the same database simultaneously.
  • Run migrateLegacy in preview mode before confirming a manual migration.
  • Update old placeholders to the new currency-first format.
  • Global economy settings now belong in Currencies/<CurrencyId>/setting.yml.
  • Drops now belong in Currencies/<CurrencyId>/Drops.
  • Global messages now use Lang/<locale>.yml.
  • Shop GUI slots are one-based: use 1 through Shop.Size and never slot 0.
  • Добавлена поддержка 26.1.x
Only removed debug message I forgot in rotating shop
  • Добавлена поддержка ItemModel
  • Добавлена поддержка CustomData
ВерхНиз