Глобальное обновление
Folia
- Поддержка Folia. Диапозон поддерживаемых версий: 1.21 - 26.3.
- Сброс шахты идёт по чанкам: каждая часть выполняется в потоке региона своего чанка (за шаг до 10 000 блоков или 10 мс).
- Все задачи идут через планировщик библиотеки LLib: таймеры - глобальный, база данные - асинхронно, действия - в потоке игрока, телепорт -
teleportAsync.- Голограммы создаются и обновляются в потоке региона своей точки.
Статистика добычи
- Счёт добытых блоков: всего и по материалам. Приращения копятся в памяти и пишутся в базу пачкой (по умолчанию раз в 5 с, асинхронно). При ошибке возвращаются в очередь, при выключении плагина — последняя синхронная запись.
- Команды:
/lm stats [игрок] [материал],/lm top [материал] [страница]. Права:lastmines.stats,lastmines.stats.others,lastmines.top(statsиtopдоступны безlastmines.admin).- Плейсхолдеры:
%lm_top_<N>_name%,%lm_top_<N>_value%(и с материалом),%lm_blocks_total%,%lm_blocks_<материал>%,%lm_rank%,%lm_rank_<материал>%. Те же значения как%lastmines_top_…%/%lastmines_stats_…%. Читают только память, базу не трогают. Пустое место в топе:-и0.
База данных
- Плагин получил поддержку баз данных, для её быстрой работы и меж-серверности.
- Файл
sql.yml: Memory, H2, SQLite, MySQL, MariaDB, PostgreSQL (пул HikariCP, драйверы подгружаются сами). Версия схемы хранится в базе, добавлены индексы для топа. В общей базе нескольких серверов данные суммируются.Синтаксис файла:Код:driver: H2 table_prefix: 'lastmines' h2: name: 'LastMines' # <name>.db sqlite: name: 'LastMines' # <name>.db mysql: host: 'localhost' # IP:PORT - если не указан PORT то будет по умолчанию 3306 name: 'lastmines' user: 'Last' pass: 'LastStudio' mariadb: host: 'localhost' # IP:PORT - если не указан PORT то будет по умолчанию 3306 name: 'lastmines' user: 'Last' pass: 'LastStudio' postgresql: host: 'localhost' # IP:PORT - если не указан PORT то будет по умолчанию 5432 name: 'lastmines' user: 'Last' pass: 'LastStudio' # Статистика добычи / Mining statistics stats: enable: true flush_interval: 5s # как часто отправлять накопленное в бд top_refresh: 45s # как часто обновлять кэш топа top_size: 100 # сколько позиций топа держать в кэше
Действия
- Все типы действий берутся из LLib:
message,title,actionbar,sound,console,player,vault,playerpoints,give,particleи другие.- Строка разбирается один раз при загрузке конфига; ошибка в одной строке не мешает остальным.
- Новая запись
[тип] [когда] [кому] [chance:N] значение:- когда:[update],[update:N], а также новые[break]и[break:МАТЕРИАЛ](при добыче блока)
- кому:[all],[mine],[radius:N], новое[self](игроку, сломавшему блок; для[break]— по умолчанию)
- шанс:[chance:N]
- Подстановки:
%player%,%breaker%,%material%,%mine%и PlaceholderAPI.[console],[broadcast]и*_allвыполняются один раз от консоли (раньше - по разу на игрока, а без игроков не выполнялись).- Право
lastmines.edit.commandsдля добавления[console]и[player]через меню. Сделано для безопасности.
Режимы и команда копирования
- ALL_BLOCKS рабочий режим: Не будет хватать нужных блоков - автошахта сразу же перезаполняется и работает без таймера.
- Сброс по проценту (
reset_percent: N): осталось ≤ N% блоков - шахта сразу перезаполняется. Работает в любом режиме./lm copy <шахта> <новая>(правоlastmines.copy): копирует все настройки автошахты и делает её копию, кроме области, точки телепорта, голограммы и статистики. Копия создаётся остановленной и без области.- Шахта может существовать без области (
positionsотсутствует) - такая шахта не сбрасывается.
Исправления
- Версия сервера вида
26.2.build.7-betaне распознавалась (предупреждение и пропуск проверки версии).- Проверка обновлений говорила «вышла новая версия», даже если у вас версия новее; ошибка проверки молча терялась.
- Сообщение «Шахта с ID %mine% уже существует» показывало
%mine%вместо названия (/lm create).
- Поддержка 26.3 версии майнкрафта
- Теперь автошахтам можно менять их фигуру размещения. Доступны 4 вида фигур:
cuboid(Куб, обычный как и был в плагине),polygon(Многоугольник),cillinder(Цилиндр) иellipsoid(Эллипсоид). Все эти функции уже есть в вики- Из-за того что старые
positions.oneиpositions.twoтеперь не рабочие в плагине, они буду переноситься автоматически при полном перезагрузке плагина- Исправлено переключение шахты между режимами «блоки» и «редкости» больше не стирает остальные редкости - данные сохраняются и восстанавливаются при обратном переключении
- Новая команда
/lastmines defaultmine(алиасыdm,dmine,dfmine,dfm) - восстанавливает стандартные шахты (blocks,rarity) и перезагружает плагин/lastmines reloadбольше не пересоздаёт стандартные шахты, если они были удалены вручную- Исправлен GUI-меню при некорректном/выходящем за границы номере слота в конфиге меню
- Исправлена проверка вводимого в чат шанса блока - отклоняются некорректные значения (NaN/Infinity)
- Исправлена утечка в GUI: данные об открытой игроком шахте теперь очищаются при выходе с сервера
- Исправлены редкие гонки потоков при вводе значений в чат (могли приводить к сбоям меню)
- Исправлено отображение лора в меню списка онлайн-игроков шахты - раньше не отображалось вовсе
- Плагин полностью был переписан под собственную библиотеку LLib, теперь BLibV2 больше не нужен кроме BMenu так как он написан на нём полностью
- Оптимизация и производительность плагина
- Исправление всех известных багов в плагине
- Теперь BMenu ТОЧНО не обязателен (надеюсь)
- Удаление ненужного плейсхолдера
%lastmines_rarities_<mine_id>%
- Теперь плагин поддерживает версии 1.21 - 26.2, ниже поддержки больше не будет!
- Исправление всех багов в плагине
- BMenu теперь не обязателен. Работает лишь для управления шахт через меню/GUI
- Теперь в меню можно полностью сделать под себя почти всё что угодно, что позволяет плагин на меню и сам плагин на шахты
- Оптимизация плагина
- Добавлена мультиязычность для плагина. Доступно пока что английский (en) и русский (ru) язык
- Добавление минимального зачарования чтобы ломать блоки в автошахте
- При полной перезагрузке плагина сервер смотрит вашу версию и пишет личный
.jsonфайл со всеми доступными блоками для меню. Можно добавить свои, но не добавляйте предметы из-за этого могут быть баги- Добавлено приостановка шахты через меню
- WorldEdit/FAWE рекомендуется для работы с плагином из-за подкоманду
create
Также был полностью переделан вики сайт для плагина по ссылке