src Плагин GUI Магазин NGVKauction [1.1]

Ключевые нововведения:

  • Полноценная асинхронная база данных: Хранилище активных и просроченных лотов переведено на SQLite / MySQL через HikariCP. Синхронная запись файлов с главного потока полностью удалена, что исключает микрофризы сервера при операциях с аукционом.
  • Фоновая проверка срока лотов: Истекшие товары теперь автоматически перемещаются в хранилище (/ah storage) в асинхронном таймере с настраиваемым интервалом (expiration-check-interval-seconds), не дожидаясь ввода команд игроками.
  • Встроенный автомигратор: Плагин самостоятельно адаптирует файлы предыдущей версии при первом запуске:
    • messages.yml автоматически переименовывается в lang.yml с сохранением пользовательских переводов.
    • Старый файл data.yml переносится в базу данных и архивируется в data.yml.converted.
    • В config.yml автоматически добавляются новые параметры (config-version: '1.1', размер пула подключений БД и интервалы).
Исправления ошибок и безопасности:

  • Устранена уязвимость в инвентаре: Исправлен баг, из-за которого Shift-клик по предмету в собственном инвентаре при открытом меню аукциона принудительно отправлял команду выставления на продажу.
  • Утечки памяти: Состояния страниц, категорий и сортировки игроков перенесены из статических коллекций непосредственно в объект меню (InventoryHolder), что полностью исключает утечки оперативной памяти.
  • Потокобезопасность: Все внутренние списки товаров заменены на потокобезопасные структуры (ConcurrentHashMap, CopyOnWriteArrayList), предотвращая ошибки ConcurrentModificationException при высокой нагрузке.
  • Удалены конфликты слушателей: Устранено дублирование обработки кликов и перетаскиваний в GUI.
ВерхНиз