▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/EventJS
EventJS

EventJS

Аддон для KubeJS, который добавляет перезагружаемые нативные события. Больше не нужно перезапускать игру или сервер, чтобы применить изменения в обработчиках событий Forge.

Оцените первым
36.6K
5

EventJS - гибкое управление событиями Forge в KubeJS

EventJS - это аддон для KubeJS, который решает одну из самых надоедливых проблем при работе с этим скриптовым модом: невозможность перезагрузить обработчики нативных событий без полного перезапуска игры или сервера.

Если вы когда-нибудь писали скрипты для Minecraft на KubeJS, то знаете эту боль - изменил пару строк в обработчике события Forge, а чтобы это применить, приходится перезагружать весь клиент или сервер. С EventJS это в прошлом. Он буквально перехватывает стандартный механизм подписки на события в кубэ, делая его перезагружаемым прямо на лету. Всё работает как по волшебству: поставил мод, и ваши старые скрипты уже используют новую систему без единой правки кода.

Что это даёт на практике

Для разработчиков модпаков и серверов эта штука - настоящая находка. Представьте: вы настраиваете кастомные крафты, спавн мобов или механики по типу "при входе в биом включается эффект". Раньше каждая ошибка в таком скрипте могла вылиться в краш игры, и приходилось всё перезапускать. С EventJS:

  • Можно обновлять/удалять обработчики нативных событий на ходу, без рестарта - то, чего в KubeJS для версий 1.16-1.20 просто не было.
  • Ошибка в обработчике не уронит игру - вы сможете просто перезагрузить скрипты и исправить баг.
  • Появилась возможность вешать события только на клиентскую или только на серверную сторону - больше не нужно костылить разделение через if (event.level.isClient). Просто пиши код в client_scripts или server_scripts, и он будет работать только там, где нужно.

А если хочется больше контроля?

Аддон устроен так, что его можно просто поставить и забыть - он сам переопределяет стандартные методы подписки на события. Но если вам нужно чётко контролировать, что и как слушается, есть отдельный API:

NativeEvents.onEvent(eventType, handler)
NativeEvents.onEvent(priority, receiveCancelled, eventType, handler)
NativeEvents.onGenericEvent(genericClassFilter, eventType, handler)
NativeEvents.onGenericEvent(genericClassFilter, priority, receiveCancelled, eventType, handler)

handler - это обычная коллбэк-функция, вроде (event) => { ... }. А eventType и genericClassFilter - это строки с полным именем класса события или сам класс, загруженный через java(...) или Java.loadClass(...). Приоритет задаётся как строка: "highest", "high", "normal", "low", "lowest".

В версии 1.4.0 появилась поддержка ProbeJS Legacy из коробки, но пришлось немного зажать типы: теперь eventType и genericClassFilter работают только с классами, загруженными через Java.loadClass(...). Немного более строго, зато совместимость с редактором кода на высоте.

Совместимость и нюансы

EventJS поддерживает все основные версии Minecraft от 1.16 до 1.20:

  • 1.0.0: Minecraft 1.16.5
  • 1.1.0: 1.16.5, 1.20.1
  • 1.2.0: все версии между 1.16 и 1.20

Кстати, есть забавный факт: создатель EventJS сделал этот мод потому, что в KubeJS поддержка перезагрузки нативных событий появилась только в версии для Minecraft 1.21. А все старые версии (1.16-1.20) остались с этой проблемой. Так что EventJS - по сути, патч для старого функционала.

Ещё момент: в KubeJS 1.21+ тоже есть свой NativeEvents, но его реализация отличается. Так что не пытайтесь взаимодействовать с внутренностями EventJS через Java-код, если не хотите сюрпризов - они разные.

Скачайте EventJS и навсегда забудьте про бесконечные перезапуски игры при каждой правке скриптов. Ну вы поняли, работает он как на клиенте, так и на сервере - подходит и для одиночной игры, и для сборки модов. Если собираете большой модпак или занимаетесь контентом - это практически must-have. На слабом железе тоже норм, аддон не грузит игру.

Партнёрский материал

Как поиграть с друзьями с модом EventJS?

Мод EventJS куда интереснее в компании: поднимите сервер Майнкрафт с уже установленным модом, позовите друзей и играйте по своим правилам. Хостинг Майнкрафт для мода EventJS будет готов за пару минут - BungeeHost сделает всё за вас.

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

1.20.x1.16.x

Платформы

Поддерживаемые окружения

Клиент и сервер

Зависимости

Ссылки

Создатели

Детали

Лицензия:
Опубликован:1 год назад
Обновлён:1 год назад
Главная