EventJS avatar

EventJS [1.20.1] [1.19.2] [1.18.2]

EventJS

является аддоном KubeJS, добавляющим перезагружаемые нативные события для KubeJS.

С EventJS вы можете:

  • обновлять обработчики нативных событий без перезапуска игры или хранения обработчика в global['someId'], что проще и производительнее.
  • добавлять/удалять обработчики нативных событий без перезапуска, что было невозможно в KubeJS для версий 1.16-1.20
  • предотвращать сбои игры при ошибках в обработчике нативных событий
  • добавлять обработчики только на стороне сервера или клиента

Использование

По умолчанию EventJS заменяет оригинальный метод прослушивания нативных событий для обеспечения перезагрузки. Для использования EventJS не требуется изучать новые методы — достаточно установить аддон, и обработка Forge-событий станет перезагружаемой.

Для более динамичного и детализированного прослушивания используйте NativeEvents.onEvent(...) и NativeEvents.onGenericEvent(...) для обработки generic-событий.

NativeEvents доступен для всех типов скриптов (client/server/startup), что позволяет выполнять sided-прослушивание (например, обработка клиентских событий только в client_scripts).

Синтаксис (v1.0.0~1.3.0)

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 и genericClassType — идентификаторы класса (строка с именем класса или сам класс, загруженный через java(...) или Java.loadClass(...)).

let handler           : (event: AnyForgeEvent) => void
let eventType         : string | Class
let genericClassFilter: string | Class
let priority          : $EventPriority | "highest" | "high" | "normal" | "low" | "lowest"
let receiveCancelled  : boolean

Изменения в 1.4.0

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

let eventType         : Class
let genericClassFilter: Class

Поддерживаемые версии

1.0.0: 1.16.5

1.1.0: 1.16.5, 1.20.1

1.2.0: все основные версии между 1.16 и 1.20

Примечание

Данный мод создан из-за неприемлемо медленной реализации аналогичных функций в KubeJS. Перезагрузка обработчиков нативных событий была добавлена в KubeJS только после обновления до 1.21, оставив версии 1.16-1.20 без поддержки.

KubeJS для 1.21+ также реализует перезагрузку через NativeEvents, но её внутренняя структура отличается от EventJS. Не следует делать допущения при взаимодействии с EventJS через Java.

Требуемые зависимости

KubeJS avatarKubeJSLatvianModder

Скачать EventJS

 
Тип Скачать Версия Загрузчик Обновлено Размер
ReleaseEventJS-1.16.5-1.4.0.jar1.16.5Forge27 мая 202547,9 КБ
ReleaseEventJS-1.20.1-1.4.0.jar1.20.1Forge27 мая 202548 КБ
ReleaseEventJS-1.16.5-1.3.0.jar1.16.5Forge3 января 202549,5 КБ
ReleaseEventJS-1.18.2-1.3.0.jar1.18.2Forge3 января 202549,5 КБ
ReleaseEventJS-1.19.2-1.3.0.jar1.19.2Forge3 января 202549,6 КБ
ReleaseEventJS-1.20.1-1.3.0.jar1.20.1NeoForge3 января 202549,9 КБ
ReleaseEventJS-1.20.1-1.2.2.jar1.20.1NeoForge10 ноября 202448 КБ
BetaEventJS-1.16.5-1.2.0.jar1.16.5Forge9 ноября 202447,5 КБ
BetaEventJS-1.18.2-1.2.0.jar1.18.2Forge9 ноября 202447,5 КБ
ReleaseEventJS-1.19.2-1.2.0.jar1.19.2Forge9 ноября 202448 КБ
Пожалуйста авторизуйтесь, чтобы оставить свой комментарий.