Version 0.8.0
Added-
- New
/wab status [player|uuid]command to view restriction status.- PlaceholderAPI support (soft dependency).
- New placeholders:
%wab_nether_blocked%
-%wab_end_blocked%
-%wab_elytra_blocked%
-%wab_time_left_nether%
-%wab_time_left_end%
-%wab_time_left_elytra%Changed
- Per-feature/custom-world fallback spawn configuration (
fallback-spawns).- Unit tests for core restriction logic (
ConfigManagerTest).Fixed
/wab bypassand/wab removenow support offline players and UUIDs.- Bypass expiration timestamps now use configured plugin timezone.
- Bypass persistence optimized with delayed save scheduling to reduce disk writes.
- Updated README with new commands, placeholders, and config examples.
Notes
- Fixed recurring behavior:
periods: []now correctly means "always blocked".- Fixed date parsing with configured timezone for
restriction-date.- Fixed Elytra equip checks (inventory edge cases and null-safety).
- Fixed potential crash in portal creation handling when block list is empty.
- Fixed teleport fallback handling when blocking Nether/End/custom world access.
- Fixed broken README encoding.
- PlaceholderAPI integration is optional and auto-enabled when the plugin is installed.
Плагин теперь работает на 1.16-1.21+
Добавлена полноценная поддержка расписаний — теперь можно задавать точные временные рамки по дням недели. Например, указать, что функция активна только по воскресеньям с 15:00 до 17:00.
Ключевые возможности:
- Гибкая настройка периодов (recurring.periods): выбор дней, времени или указание «весь день».
- Умные подсказки для пользователей: система автоматически формирует понятные сообщения вроде «доступно по выходным с 10:00 до 22:00, а по понедельникам — весь день».
- Поддержка расписаний для пользовательских миров.
Пример из нового config.yml:YAML:# =================================================================== # Nether # =================================================================== nether: disable: true # Если recurring НЕТ — используется эта дата (до какого момента заблокировано) restriction-date: "2025-03-10 00:00:00" disable-portal-creation: true disable-teleportation: true # НОВОЕ: расписание по дням и времени # Если этот блок есть — restriction-date ИГНОРИРУЕТСЯ recurring: periods: # Пример 1: только по воскресеньям с 15:00 до 17:00 - days: [SUNDAY] start-time: "15:00" end-time: "17:00" # Пример 2: по выходным весь день - days: [SATURDAY, SUNDAY] # Пример 3: каждый понедельник с 18:00 до 23:59 - days: [MONDAY] start-time: "18:00" end-time: "23:59"
Исправил телепортацию в запрещенные миры с помощью эндер-жемчуга, также добавил больше проверок на поджигание портала в ад разными способами. Уменьшил задержку телепортации игрока из запрещенного мира.
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-activationequipping,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, запрет входа в Ад может работать нестабильно из-за особенностей многопоточности.