DenizenM: скриптинг Denizen для Paper-серверов Minecraft

DenizenM для Minecraft — неофициальная реализация Denizen Scripting Language для Paper-серверов. Узнайте о новых тегах, событиях и как установить расширение.

DenizenM: мощный скриптинг Denizen для Paper-серверов Minecraft

Если вы администрируете Paper-сервер и хотите вывести автоматизацию на принципиально новый уровень, обратите внимание на DenizenM. Это неофициальная реализация Denizen Scripting Language, заточенная под современные версии Paper. Главная фишка — глубокая интеграция с Citizens, что превращает обычных NPC в полноценных участников игрового процесса: они реагируют на события, выдают квесты, торгуют и запускают сложные сценарии.

Многие путают DenizenM с оригинальным Denizen, но это самостоятельный форк с собственным набором улучшений. Здесь собраны свежие правки сообщества и экспериментальные механизмы, которых нет в базовой версии. Если вам нужен гибкий инструмент для кастомных механик, стоит присмотреться внимательнее.

Совместимость и поддерживаемые версии

DenizenM ориентирован на загрузчик Paper и работает с ядром версий 1.21.11, а также 26.1.2, 26.2 и 26.3. Это важно: расширение активно использует современный Paper API, включая Paper Components, поэтому на старых сборках часть функций просто не запустится. Перед установкой убедитесь, что ваш сервер обновлён до подходящей версии, иначе рискуете получить ошибки при загрузке скриптов.

Кстати, если не хочется возиться с ручной настройкой, в лаунчере foxygame.net реализована установка DenizenM буквально в один клик — достаточно выбрать сборку с Paper и добавить расширение из каталога, а все зависимости подтянутся автоматически.

Что нового в DenizenM

События и работа с сущностями

Разработчики переработали систему событий. Теперь поддерживается событие Paper для редактирования табличек игроком, а механика экипировки мигрировала в обобщённый синтаксис on entity equips или unequips item. Это значит, что вы можете отслеживать надевание и снятие предметов для любых сущностей, а не только для игроков. Появился новый слот body, а через context.entity, context.slot, context.new_item и context.old_item доступны все нужные данные прямо в скрипте.

Биомы, текст и форматирование

Механизм BiomeTag.attribute позволяет задавать ванильные атрибуты биомов через MapTag — например, цвет неба или высоту облаков. Для работы с текстом добавили целый набор тегов: sprite, shadow_color, shadow_gradient, dual_gradient и head. Последний умеет выводить как полную текстуру головы, так и только лицо без поверхностных пикселей, принимая UUID, skin_blob или base64. Градиенты поддерживают регулируемую прозрачность, что открывает простор для красивого оформления интерфейсов.

Команды и внутренние улучшения

Команда teleport получила асинхронный режим: игрок может перемещаться в незагруженные чанки без лагов сервера. Добавлена поддержка waitable-тегов, поэтому скрипт способен дождаться завершения телепортации. Playeffect перевели на современный ParticleBuilder API — теперь частицы корректно отображаются дальше 32 блоков, а параметр forced обрабатывается автоматически.

Логику resourcepack полностью переписали: команда поддерживает добавление нескольких наборов ресурсов, а PlayerTag.remove_resource_pack и remove_resource_packs позволяют гибко управлять ими по ID. В лаунчере foxygame.net, где доступен каталог дополнений, DenizenM обновляется автоматически, так что вы всегда получаете актуальную сборку без ручного поиска файлов.

Предметы, оптимизация и исправления

  • Для предметов появился тег .rarity_color, возвращающий ColorTag.
  • custom_model_data теперь принимает MapTag с float, строками, флагами и цветами, сохраняя обратную совместимость.
  • Добавлен под-тег .unsorted для find_entities, ускоряющий выборку, когда порядок не важен.
  • Тег .distance оптимизирован заменой Math.pow на прямое умножение.
  • Исправлены ошибки showfake и fakeinternaldata.

Из кода убрали тег .scriptname, предупреждение Denizen ASAP и проверки NMSVersion для версий ниже 26.1. Всё это делает расширение чище и быстрее.

Как установить DenizenM

Чтобы скачать DenizenM для Minecraft, найдите актуальную сборку в репозитории проекта и поместите jar-файл в папку plugins вашего Paper-сервера. После перезапуска проверьте консоль на ошибки. Для полноценной работы с NPC убедитесь, что Citizens также установлен. Если вы новичок, начните с простых скриптов и постепенно переходите к сложным сценариям с телепортацией и кастомными моделями.

Итог

DenizenM — это удачное сочетание мощи Denizen и современного Paper API. Расширенные события, новые текстовые теги, асинхронная телепортация и оптимизация делают его отличным выбором для серверов, где важны кастомные механики и живой мир с NPC. Если вы готовы экспериментировать, этот форк даст вам инструменты, которых не хватает в стандартной версии.