Плагин Магазин Другое zAuctionHouse [4.0.1.7]

  • Добавлена поддержка banned-rules для категорий — позволяет исключать конкретные предметы из категории даже если они соответствуют правилам включения (material, tag, lore, custom-model-data и т.д.). Например, нетеритовая мотыга обычно попадает в категорию Tools, но может быть исключена по CustomModelData (например, 300)
  • Добавлена система Broadcast — отправляет сообщения всем онлайн-игрокам при продаже или покупке предметов
    • Настраивается отдельно для sell/purchase
    • Можно исключать продавца/покупателя
    • Поддерживает переопределение сообщений по категориям (MiniMessage)
    • Плейсхолдеры: %seller%, %buyer%, %items%, %price%, %category%
    • По умолчанию выключено (включается в config.yml → broadcast)
  • Добавлена система Player options — расширяемые настройки игрока с хранением в базе данных
    • Управление через /ah option (GUI) или /ah option <option_name> [value]
    • Значения кэшируются в памяти и сохраняются в БД только если отличаются от дефолта
    • Сейчас поддерживаются: broadcast_sell, broadcast_purchase (отключение broadcast-сообщений)
  • Добавлено GUI /ah option — инвентарь 27 слотов с переключателями опций и отображением текущего состояния (вкл/выкл)
  • Добавлены админ-команды для опций:
    • /ah admin option set <player> <option> <value> — установка значения
    • /ah admin option list <player> — просмотр опций игрока
    • /ah admin option reset <player> — сброс на значения по умолчанию
  • Добавлен PlaceholderAPI плейсхолдер %zauctionhouse_option_<option_name>% — возвращает true/false для конкретной опции игрока (например %zauctionhouse_option_broadcast_sell%)
Автор: bobobo
  • Добавлена кнопка ZAUCTIONHOUSE_COMBINED_ITEMS — объединяет продаваемые, просроченные и купленные предметы в единый интерфейс с пагинацией
  • Для каждого типа можно отдельно включать/отключать отображение через include-selling, include-expired и include-purchased
  • Действия по клику автоматически адаптируются под тип хранения предмета (отмена продажи, получение просроченного предмета, получение купленного предмета)
  • Для каждого типа предметов используется собственная настройка lore из config.yml
  • Исправлен дюп предметов в multi-server (Redis) сетапах — удаление лота на одном сервере и получение просроченного предмета могло оставлять «призрачную» запись на другом сервере, позволяя получить предмет повторно после естественного истечения
  • Исправлен ItemRemovedListener (Redis addon)
  • Удалена нестабильная проверка состояния БД, вызывавшая отклонение сообщений удаления из-за race condition
  • Добавлена дополнительная очистка для всех типов хранилищ
  • Исправлен ItemStatusListener (Redis addon)
  • Синхронизация статусов теперь ищет предметы во всех типах хранилищ (LISTED, EXPIRED, PURCHASED), а не только в LISTED
  • Исправлен ExpireService
  • Добавлена защита от повторного истечения предметов, уже удалённых/полученных на другом сервере
  • Добавлена поддержка Redis Sentinel (Redis addon)
  • Поддерживаются high-availability Redis-сетапы с автоматическим поиском master-ноды и failover
  • Используйте mode: "sentinel" в config.yml и укажите sentinel-ноды
  • Полностью обратно совместимо — существующие standalone-конфиги продолжат работать без изменений
  • Исправлен NullPointerException, если не настроена экономика по умолчанию
  • Команда /ah sell и все связанные кнопки теперь показывают ошибку вместо краша
  • Добавлена проверка при запуске с заметными предупреждениями в консоли, если default economy отсутствует в economies.yml
  • Исправлены неверные названия типов экономики в комментариях economies.yml
  • COINS_ENGINE и PLAYER_POINTS не соответствовали enum-значениям CurrenciesAPI (COINSENGINE, PLAYERPOINTS)
  • Из-за этого данные типы экономики не загружались, если использовались названия из документации
  • Добавлено
  • Все permissions теперь автоматически регистрируются в Spigot при запуске и reload
  • Включены статические permissions (use, sell, admin и т.д.) и динамические permissions из конфигов (лимиты лотов, уровни истечения, bypass/reduction налогов, доступ к экономикам, inventory-команды, bypass кулдаунов)
  • Все permissions сгруппированы под wildcard zauctionhouse.*
  • Исправлено выпадение предметов на землю при получении просроченных, купленных или продаваемых предметов с полным инвентарём
  • Теперь предметы остаются в хранилище, если инвентарь игрока заполнен
  • Добавлена настройка player-inventory-must-have-free-space в секциях remove-expired-item и selling-item (включена по умолчанию)
  • Добавлены кнопки:
    • ZAUCTIONHOUSE_REMOVE_ALL_EXPIRED
    • ZAUCTIONHOUSE_REMOVE_ALL_SELLING
    • ZAUCTIONHOUSE_REMOVE_ALL_PURCHASED
  • Позволяют забрать все предметы сразу из соответствующих разделов
  • Предметы выдаются по одному и процесс останавливается при заполнении инвентаря (если включён player-inventory-must-have-free-space)
  • Добавлен API ItemContentProvider
  • Система для отображения содержимого контейнеров (шалкеры, кастомные контейнеры других плагинов)
  • Сторонние плагины могут регистрировать собственные providers через:
    AuctionPlugin.getItemContentManager().registerProvider()
  • Добавлен hook для AxShulkers
  • Теперь содержимое шалкеров из AxShulkers отображается в просмотрщике содержимого предметов
  • Так как AxShulkers хранит данные вне vanilla NBT, этот hook обязателен для просмотра содержимого
  • Исправлено: продавец не получал деньги в multi-server (Redis) сетапах, если покупатель находился на другом сервере
  • Плагин пытался начислить деньги локально на сервере покупателя, где аккаунт продавца мог отсутствовать
  • Теперь деньги переводятся в статус PENDING и получаются продавцом через /ah claim или автоматически при входе
  • Добавлен AuctionClusterBridge.isDistributed()
  • Позволяет bridge-реализациям указывать, что используется multi-server окружение, чтобы плагин мог адаптировать поведение (например, откладывать выдачу денег вместо локального начисления)
Автор: bobobo
  • Добавлена кнопка ZAUCTIONHOUSE_CLAIM — отображает ожидаемые средства по каждой экономике с динамическими placeholder’ами и позволяет игрокам забирать их прямо из GUI аукциона
  • Добавлен настраиваемый loading-item для кнопки получения, который отображается во время загрузки данных о средствах
  • Добавлен формат цены PRICE_WITHOUT_DECIMAL — отображает цену без десятичных знаков (например, 10000.50 → 10000)
  • Добавлен placeholder %price-price-without-decimal% — отображает цену без десятичных знаков в описании предмета
  • Добавлено: команду /ah admin forceopen теперь можно выполнять из консоли
  • Добавлена настройка часового пояса — позволяет изменить таймзону для всех placeholder’ов дат (%date%, %formatted-expire-date%, %expires_at%). Поддерживаются все ID Java TimeZone (например, Europe/Paris, America/New_York, UTC). По умолчанию auto (часовой пояс сервера)
  • Исправлено: автодополнение команд /ah admin open и /ah admin history больше не загружает всех офлайн-игроков, что предотвращает лаги на серверах с большим количеством игроков
  • Исправлен краш updateListedItems на Folia/Canvas — доступ к inventory holder выполнялся в асинхронном потоке вместо основного тика
  • Исправлена настройка аргумента имени экономики для команды продажи — если индекс аргумента экономики не был задан, значение по умолчанию игнорировалось, что приводило к null имени экономики
Автор: bobobo
  • Добавлена миграция из ZelAuction — перенос данных из плагина ZelAuction в zAuctionHouse V4 с помощью команды /ah admin migrate zelauction confirm
  • Добавлена система поиска — игроки могут искать предметы по имени, материалу, описанию или продавцу прямо в GUI аукциона или через команду /ah search <query>
  • Добавлена кнопка ZAUCTIONHOUSE_SEARCH — открывает чат для ввода поиска с поддержкой расширенных фильтров
  • Добавлена кнопка ZAUCTIONHOUSE_CLEAR_SEARCH — очищает активный фильтр поиска, видна только при активном поиске
  • Добавлена команда /ah search <query> — поиск предметов напрямую из чата без открытия GUI
  • Добавлены расширенные фильтры поиска с операторами:
    • ~ — содержит
    • = — точное совпадение
    • ~= — содержит, без учёта регистра
    • == — точное совпадение, без учёта регистра
  • Поддерживаемые поля для поиска: имя, материал, описание, продавец (например, seller = Notch, name ~ Diamond)
  • Добавлена команда /ah admin forceopen <player> <inventory> [page] — открыть любой инвентарь игрока на определённой странице. Поддерживаются все имена инвентарей (например, auction, admin-selling-items, history, admin-logs и т.д.) с автозаполнением. Страница по умолчанию — 1
  • Добавлена опция конфигурации reset-search-on-open — при включении (по умолчанию: true) фильтр поиска очищается каждый раз при открытии аукциона, аналогично поведению reset-category-on-open
Автор: bobobo
Добавлена кнопка ZAUCTIONHOUSE_SELL_LIMIT — визуально отображает оставшиеся слоты для продажи в виде списка слотов инвентаря, настраивается для каждого типа предметов (auction, bid, rent)
Добавлен плейсхолдер %zauctionhouse_max_items_<type>% — возвращает максимальное количество предметов, которые игрок может выставить для указанного типа (auction, bid, rent)

Оптимизирована обработка плейсхолдеров в описании предметов: теперь они заранее определяются при загрузке конфигурации и обрабатываются только при использовании, что значительно снижает нагрузку на CPU и память при отображении предметов

Исправлено зависание /ah history на "Loading..." при включённом параметре action.purchased-item.give-item: true
Исправлены значения конфигурации по умолчанию
Исправлен префикс таблиц по умолчанию на zauctionhousev4 (исправляет совместимость с zAuctionHouse V3)

Плейсхолдер %zauctionhouse_max_items_<type>%
Возвращает максимальное количество предметов, которые игрок может выставить в зависимости от его прав для указанного типа:
%zauctionhouse_max_items_auction%
%zauctionhouse_max_items_bid%
%zauctionhouse_max_items_rent%
Автор: bobobo
  • Добавлено: zauctionhouse_category permissible для zMenu — позволяет условно отображать кнопки в зависимости от выбранной игроком категории (по умолчанию main)
  • Добавлена кнопка ZAUCTIONHOUSE_CATEGORY_SWITCHER — объединяет переключение категорий (ЛКМ/ПКМ) с динамическим описанием (lore), показывающим состояние включено/выключено для каждой категории
  • Добавлен плейсхолдер %zauctionhouse_category_id% — возвращает ID текущей выбранной категории игрока
  • Добавлена кнопка ZAUCTIONHOUSE_HISTORY_INVENTORY — открывает инвентарь истории продаж напрямую из любого интерфейса
  • Добавлена опция force-amount-one в config.yml (раздел item-lore) — принудительно отображает количество предмета как 1 в аукционе, при этом реальное количество сохраняется
  • Изменено: API AuctionEconomy — методы (get, has, deposit, withdraw) теперь используют UUID вместо OfflinePlayer для лучшей совместимости
  • Обновлена зависимость CurrenciesAPI с 1.0.12 до 1.0.13
  • Исправлено: fallback имени категории — теперь используется настроенное имя категории "all" вместо захардкоженного "All"
  • Исправлено: краш при пустых слотах — кнопки списков (ListedItems, ExpiredItems, PurchasedItems, SellingItems) больше не вызывают ошибку, если emptySlot = -1 и список пуст
  • Исправлено: слот загрузки истории — HistoryItemsButton корректно обрабатывает loadingSlot = -1
  • Исправлено: LoadingSlotLoader — добавлена проверка некорректных значений слотов с понятным сообщением об ошибке
Автор: bobobo
  • Лайк 0
Реакции:1 пользователя
  • Добавлен тайский язык в список поддерживаемых
  • Исправлена поддержка Minecraft 1.20.4
  • Исправлена команда /zauctionhouse — теперь она больше не является основной командой по умолчанию (можно изменить в config.yml)
  • Исправлены ошибки системы сообщений, которые могли появляться без причины
  • Добавлена опция reset-category-on-open, позволяющая сбрасывать категории при повторном открытии инвентаря
  • Добавлена поддержка экономики EXCELLENTEECONOMY
Автор: bobobo
zAuctionHouse V4 — список изменений

Что нового​

zAuctionHouse V4 — это полностью переписанная версия плагина, созданная для современных серверов Minecraft (Paper 1.21+, Java 21).

Основные улучшения​

Производительность
  • Архитектура Async-first — все операции выполняются через CompletableFuture (без блокировок)
  • Параллельная сортировка — более быстрая загрузка списков предметов
  • Кэширование FastUtil — оптимизированные кэши для игроков и глобальных данных
  • Улучшения базы данных — использование Repository-паттерна с Sarah ORM
Поддержка мультисерверов
  • Нативная поддержка кластеров — встроенный интерфейс AuctionClusterBridge
  • Распределённые блокировки — предотвращают дублирующие покупки между серверами
  • Дополнение Redis — синхронизация в реальном времени
Интеграция с Discord
  • Богатые webhook-эмбеды — заголовки, описания, поля и изображения
  • Автоматическое определение цвета — доминирующий цвет из текстуры предмета
  • Уведомления о продаже и покупке — настраиваемые события webhook

Новые функции​

Система правил
  • Гибкие правила с логикой AND/OR
  • Поддержка условий: материал, название, лор, теги, model data
13 интеграций с плагинами
  • ItemsAdder
  • Oraxen
  • Nexo
  • MMOItems
  • ExecutableItems
  • Slimefun
  • и другие
Дополнительно
  • Просмотр содержимого контейнеров — предпросмотр шалкер-боксов и других контейнеров
  • Мультиязычность — английский, французский, испанский и итальянский с автоопределением
  • Отдельный API — модуль для разработчиков сторонних плагинов
  • Админ-мониторинг — логи транзакций, просмотр истории, отслеживание действий
  • Миграция из V3 — встроенный инструмент переноса данных

Экономика и налоги​

Поддерживаемые экономики
Vault, PlayerPoints, CoinsEngine, Item-based экономика, XP, Levels, zEssentials, EcoBits, RedisEconomy

Типы налогов
  • SELL — комиссия при выставлении предмета
  • PURCHASE — вычитается из прибыли продавца
  • BOTH — применяется и при выставлении, и при продаже
  • CAPITALISM — система НДС (покупатель платит дополнительную сумму)
Новое
  • Налоги для конкретных предметов
  • Снижение налогов по уровням (VIP / Premium)
  • Права обхода налогов

Команды​

  • /ah sell <price> [amount] [economy] — выставить предмет (новое: параметр экономики)
  • /ah claim — забрать ожидающие деньги
  • /ah selling — список ваших продаж
  • /ah expired — просроченные лоты
  • /ah purchased — купленные предметы
  • /ah history — история операций
Админ-команды
  • /ah admin migrate <source> confirm — миграция из V3
  • /ah admin history — просмотр всех транзакций

Требования​

  • Paper 1.20+ (совместимость с Folia через FoliaLib)
  • Java 21
  • zMenu (обязательно)
  • PlaceholderAPI (обязательно)

Миграция из V3​

Команда:
/ah admin migrate v3 confirm
Поддерживается перенос данных из SQL и JSON.
Переносятся все предметы, транзакции и данные игроков.
Автор: bobobo
  • Исправлена работа кнопок Claim и Seller Show.
Автор: bobobo
  • Лайк 0
Реакции:1 пользователя
  • Исправлена проблема, при которой продажа не срабатывала, если игроки быстро переключали предметы.
Автор: bobobo
ВерхНиз