Changelog для WorldAccessBlocker v0.5
Обзор
Версия 0.5 представляет собой значительное обновление плагина WorldAccessBlocker, добавляющее поддержку ограничений для кастомных миров, улучшенную блокировку элитр, исправление обхода для создания порталов в Незер, а также локализацию и управление обходами. Все изменения направлены на повышение надёжности, удобства и совместимости с серверами, включая Folia, на Minecraft 1.21.x.Новые функции
- Ограничения для кастомных миров:
- Добавлена поддержка блокировки доступа к кастомным мирам через раздел custom-worlds в config.yml.
- Игроки, пытающиеся войти в ограниченный кастомный мир, телепортируются в точку спавна оверворлда с сообщением custom_world_blocked.
- Пример конфигурации:
Код:custom-worlds: my_custom_world: disable: true restriction-date: "2025-12-31 00:00:00"
- Обходы для кастомных миров поддерживаются через команду /wab bypass <игрок> <имя_мира> <длительность>.
- Автоматическое снятие элитр:
- Если игрок имеет надетые элитры в слоте нагрудника при активных ограничениях (elytra.disable-equip: true), элитры автоматически снимаются каждую секунду (20 тиков).
- Элитры перемещаются в первый свободный слот инвентаря. Если инвентарь полон (36 занятых слотов), они выбрасываются на землю рядом с игроком.
- Игрок получает сообщение elytra_equip_blocked (например, "Надевание элитр заблокировано еще на X дней и Y часов" при language: ru).
- Локализация уведомлений об обходе:
- Добавлены сообщения bypass_granted и bypass_removed в файлы en.yml и ru.yml для уведомлений о предоставлении и снятии обхода.
- Примеры (для language: ru):
- bypass_granted: "Обход предоставлен для %s игроку %s до %s."
- bypass_removed: "Обход для %s снят для игрока %s."
- Сообщения включают имя функции, имя игрока и, для bypass_granted, время окончания обхода.
- Удаление обхода:
- Добавлена команда /wab remove <игрок> <функция> для снятия обхода для указанного игрока и функции (nether, end, elytra, или кастомный мир).
- Пример: /wab remove Steve nether снимает обход для Незера.
- Успешное удаление подтверждается сообщением bypass_removed. Если обхода нет, отправляется уведомление об этом.
- Изменения сохраняются в bypasses.yml.
✨ Добавлено
🕒 Поддержка часовых поясов
Добавлена опцияtime-zone
вconfig.yml
для указания пользовательского часового пояса для дат ограничений (например,UTC
,Europe/Moscow
).
➜ Включает ссылку на базу данных часовых поясов IANA.
🔍 Детальные ограничения
Введены подробные переключатели ограничений для:- Элитра:
- Нижнего мира:
portal-creation
,teleportation
- Конца:
portal-activation
equipping
,flight
🛡️ Команда обхода
Новая команда:
/wab bypass <игрок> <функция> <продолжительность>
Временно позволяет игроку обойти ограничения для Нижнего мира, Конца или Элитра.
⌨️ Автозаполнение
Добавлены интеллектуальные предложения для команды/wab
:
- Подкоманды (например,
bypass
)- Имена онлайн-игроков
- Функции:
nether
,end
,elytra
- Продолжительность (например,
3600
,86400
)
🚨 Активная проверка ограничений
Плагин теперь периодически проверяет, находятся ли игроки в ограниченных измерениях (Nether или End), и при необходимости телепортирует их наружу.
🐛 Исправлено
Создание портала Nether
Исправлена уязвимость, позволявшая игрокам создавать порталы Nether с помощьюPortalCreateEvent
.
Телепортация транспортных средств
Решена проблема, позволявшая телепортироваться в Нижний мир с помощью лодок или вагонеток черезEntityPortalEvent
.
Использование элитр
Исправлена уязвимость, позволявшая игрокам надевать элитры с помощью правого клика в нерабочей руке (обрабатывается черезPlayerInteractEvent
).
🔧 Изменено
⚡ Оптимизация производительности
Улучшены обработчики событий с условиями раннего выхода, чтобы снизить использование ЦП на серверах с большим количеством игроков.
🌐 Улучшения языка
Обновлены файлыen.yml
иru.yml
, чтобы отображать оставшееся время ограничения в днях и часах для более понятных сообщений пользователям.
🗂 Структура конфигурации
Перестроена структураconfig.yml
:
- Группировка функций в разделах
nether
,end
,elytra
- Добавлены ясные комментарии и описания для облегчения настройки
📝 Примечания
- ✅ Плагин теперь поддерживает Folia, хотя блокировка портала Nether может по-прежнему быть ограничена из-за поведения
PlayerPortalEvent
.- 🧭 Убедитесь, что в конфигурации установлен действительный часовой пояс IANA (
time-zone: Europe/Moscow
и т. д.).- 📁 Проверьте
config.yml
на наличие новых вложенных опций и соответствующим образом настройте параметры.
🔹 Что нового в этой версии?
✅ Полностью переработана структура кода:✅ Улучшена работа с конфигурацией:
- Логика разделена на отдельные классы (PortalBlocker, EndBlocker, ElytraBlocker, ConfigManager).
- Код стал читаемее, удобнее и масштабируемее.
✅ Добавлено подробное логирование:
- Добавлен отдельный класс ConfigManager для загрузки и обновления параметров.
- Команда /wabreload теперь корректно перезагружает настройки без перезапуска сервера.
✅ Исправлены мелкие ошибки и оптимизирован код.
- В консоли теперь отображаются все загруженные настройки.
- Добавлены предупреждения для серверов Folia о возможных проблемах с блокировкой входа в Ад.
⚠️ Важно! Если вы используете Folia, запрет входа в Ад может работать нестабильно из-за особенностей многопоточности.