EventJS
模组属性评比

距离显示结果还剩5票~

路过的这位少侠,你觉得这款Mod怎么样,可否愿意来评一评它呢?登录并评比
更新日志
  • 暂无日志..

历史编辑记录更多
    管理组

      暂无管理组..

    编辑组

      暂无编辑组..

    开发组申请
    活跃
    开源

    EventJS

    0.0

    无人问津

    昨日指数: 11
    昨日平均指数: 86.873

    1981

    总浏览

    --

    资料填充率


    如何下载?
    • EventJS

      [KJS] KubeJS 的一个附属,为 KubeJS 添加了原生事件监听的热重载支持。

      借助 EventJS,你可以做到:

      • 既不需要重启整个游戏,也不需要用一个“global['someId']”存储监听函数,就可以刷新你对原生事件的监听。这不仅写起来更简便,性能也比“global['someId']”更佳。

      • 不必重启游戏就可以添加/删减对原生事件的监听,这是 EventJS 所支持的 KubeJS 版本一直没能做到的。

      • 防止整个游戏在原生事件监听发生错误时直接崩溃。

      • 仅为服务端/客户端添加原生事件监听,这样监听仅客户端/仅服务端事件时不必费心思判断是处于服务端还是客户端。


      使用方法

      默认情况下,EventJS 会替换掉原来的原生事件监听,以此为其添加热重载支持。

      所以,你可以什么新东西都不必学就可以享受到 EventJS 带来的好处。

      不过呢,如果你需要一些更加动态,更利于自定义,形式更完整的原生事件监听,你可以使用“NativeEvents.onEvent(...)”监听事件,或者“NativeEvents.onGenericEvent(...)”监听带泛型事件(Generic Event)。


      “NativeEvents”在所有三个脚本类型(ScriptType)对应的定义域(client_scripts/server_scripts/startup_scripts)内都是可用的,因此你可以借此做到为客户端/服务端分别添加事件监听,也就是说,比如你在“client_scripts”内添加了一个对仅客户端的事件的监听,则这个事件监听不会发生在服务端。

      语法(版本 1.1.0)

      NativeEvents.onEvent(eventType, handler)
      NativeEvents.onEvent(priority, receiveCancelled, eventType, handler)
      NativeEvents.onEventTyped(priority, receiveCancelled, eventType, handler)
      NativeEvents.onGenericEvent(genericClassType, eventType, handler)
      NativeEvents.onGenericEvent(genericClassType, priority, receiveCancelled, eventType, handler)
      NativeEvents.onGenericEventTyped(genericClassType, priority, receiveCancelled, eventType, handler)


      “handler”在 JS 侧就是事件的监听函数,比如“(event) => {...}”
      “eventType”与“genericClassType”是“可以表示一个类的东西”,比如一个内容是类名的字符串,或者通过“java(...)”或“Java.loadClass(...)”加载得到的类自身。


      支持版本

      • 版本 1.0.0:1.16.5;

      • 版本 1.1.0:1.16.5,1.18.2,1.20.1;

      • 版本 1.2.0 起:所有 1.16 与 1.20 间的主流版本,也就是 1.16.5,1.18.2,1.19.2,1.20.1。


      你知道吗

      作者制作这个 Mod 的动机是,KubeJS 一直拖到 1.21 才添加了原生事件监听的热重载支持,然而这早在 1.16 时期(甚至可以更早,一直早到 1.12 时期)就已经可以实现了。作者实在是气不过,便自己编写了这个模组。

      虽然 EventJS 与 1.21+ 的 KubeJS 在热重载事件监听这方面在 JavaScript 侧用起来没有什么区别,但是具体实现并不一致,在 Java 侧与 EventJS 交互时记得不要想当然。

    短评加载中..