Плагин ⛏️ VeinMiner Enhanced Edition - Smart Ore Mining ⚡ 1.21+ [2.1.0]

Что исправлено (критичное)
  • Совместимость с защитами регионов
  • Хард-кап absolute-max-vein-size (по умолчанию 1024). Раньше право veinminer.bypass.limit давало Integer.MAX_VALUE, и BFS по незераку мог заморозить сервер. Теперь кап непробиваем ни правами, ни -1 в конфиге
  • max-vein-size: -1 работает (раньше молча отключал плагин), трактуется как «без лимита в пределах хард-капа»
  • Слушатель перенесён на приоритет HIGHEST — защитные плагины успевают отменить исходное событие до нас
Что исправлено (геймплей)
  • Silk Touch: дропы считаются через getDrops(tool) — исчез баг с недоступным дропом BUDDING_AMETHYST; опыт при шёлке не выпадает (как в ванили)
  • apply-fortune: false теперь работает — для расчёта дропа используется клон инструмента без Fortune
  • Проверка инструмента: tool-restrictions (кирки→руды, топоры→брёвна…) плюс require-preferred-tool через Block#isPreferredTool — нельзя снести жилу алмазов топором или деревянной киркой без дропа
  • Прочность: урон списывается поблочно с учётом Unbreaking; при поломке инструмента добыча останавливается, вызывается PlayerItemBreakEvent, предварительная оценка прочности учитывает Unbreaking
  • ANIMATED-режим переписан: тип блока перепроверяется каждый тик, инструмент перечитывается из руки (смена слота/поломка корректно завершают добычу), есть silk-ветка, дроп и опыт считаются как в INSTANT
Данные и производительность
  • Автосохранение статистики и лимитов (auto-save-minutes, по умолчанию 5): сериализация в основном потоке, запись файла — асинхронно. Раньше данные сохранялись только в onDisable и терялись при краше
  • Утечки памяти устранены: при выходе игрока его данные пишутся в конфиг и удаляются из всех кэшей; статистика/лимиты грузятся лениво (не все игроки при старте)
  • Переключатель /vm toggle сохраняется между рестартами (PDC игрока)
  • Счётчики лимитов переживают рестарт (limits-data.yml подхватывается)
  • findVein переписан: ArrayDeque + Set<Block> вместо строковых ключей
Новые возможности
  • Группы жил (vein-groups): руда + её deepslate-вариант добываются как одна жила
  • Голод: exhaustion-per-block: 0.005 — как в ванили
  • Право veinminer.max.<n> — персональный максимум жилы (например, veinminer.max.128), в пределах хард-капа
  • Команды: /vm toggle|on|off [игрок] (veinminer.toggle.others), /vm stats [игрок] (veinminer.stats.others), /vm top (veinminer.top) + таб-комплит с именами игроков
  • PlaceholderAPI (softdepend): %veinminer_total%, %veinminer_session%, %veinminer_favorite%, %veinminer_enabled%
  • config-version — предупреждение в консоли при устаревшем конфиге
  • ColorUtil переписан: legacy-коды, &#hex, {#hex} и MiniMessage-теги можно смешивать в одной строке
ВерхНиз