截图
介绍
EventJS
是一个为 KubeJS 添加可重新加载原生事件的附属模组。
使用 EventJS,你可以:
- 无需重启整个游戏或将处理器存储在
global['someId']中,即可刷新原生事件监听器;这种方式更简单、性能也更好。 - 随时添加或移除原生事件监听器,无需重新启动游戏;这在适用于 1.16-1.20 的 KubeJS 中是不可能实现的。
- 在原生事件监听器出现问题时,避免游戏崩溃。
- 仅在服务器端或客户端添加事件监听器。
用法
默认情况下,EventJS 会替换原有的原生事件监听方法,使其支持重新加载。因此,使用 EventJS 实际上不需要学习任何新内容,只需安装它,你的 Forge 事件监听器就可以重新加载了。
不过,如果你想要更动态、定义更明确的事件监听方式,可以使用 NativeEvents.onEvent(...);对于泛型事件监听,则可以使用 NativeEvents.onGenericEvent(...)。
NativeEvents 可用于所有 3 种脚本类型(client/server/startup),因此你可以按端监听事件。例如,在 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)
JS 端的 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)加载的 Class。
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 之间的所有版本都没有这项功能。
1.21 及更高版本的 KubeJS 也支持重新加载原生事件监听器,并且同样使用 NativeEvents 这个名称。不过,它的实现方式与 EventJS 不同,因此在通过 Java 与 EventJS 的内部机制交互时,请不要想当然。
常见问题
EventJS 支持哪些 Minecraft 版本?
EventJS 支持 Minecraft Java 版 1.16.5–1.20.1,共 4 个版本,可用的加载器:Forge / NeoForge。下载时注意选择和你游戏版本一致的文件。
EventJS 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Forge / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:客户端和服务端都要装。
ZZZank 的其他作品
查看全部 →FastEvent
加速 Forge/NeoForge 中的事件系统
EfficientHashing
better hashing algorithm for Vec3i & BlockPos
JEI Area Fixer
fix JEI GUI to not overlap with modded GUIs
MiniEffects-Legacy Extended Life
fork of MiniEffects for Minecraft 1.12, with more feature(s) like JEI bookmark support
评论
登录后评论和评分