文档
Hooks

钩子

⚠️

此页面正在建设中。

⚠️

测试版功能,可能会发生变化。

钩子是一种向游戏中注入自定义逻辑的方式。它对于创建插件非常有用。

game.hooks.hook("init", () => {
    console.log("Game initialized");
});

公共方法

hook

添加一个钩子到游戏中。

const token = game.hooks.hook("init", () => {
    console.log("Game initialized");
});
 
return function cleanup() {
    token.cancel();
}
  • key: Hooks - 钩子的键。
  • hook: (...value: T[K]) => VoidFunction | void - 返回一个清理函数的钩子函数。
  • 返回 LiveGameEventToken - 参见 LiveGameEventToken

unhook

从游戏中移除一个钩子。

const listener = function () { /* ... */ };
 
game.hooks.hook("init", listener); // 添加一个钩子
 
game.hooks.unhook("init", listener); // 移除钩子
  • key: Hooks - 钩子的键。
  • listener: (...value: T[K]) => VoidFunction | void - 被添加到钩子中的监听函数。

钩子列表

init

此钩子在游戏初始化时且播放器渲染前被调用。

game.hooks.hook("init", () => {
    console.log("let's do something cool here");
});

preloadImage

此钩子在预加载图片时被调用。这对于创建图片代理逻辑很有用。

  • src: string - 图片的源地址。
  • set: (src: string, options?: RequestInit) => void - 设置图片源地址的函数。
game.hooks.hook("preloadImage", (src, set) => {
    const newSrc = `https://example.com/proxy?url=${src}`;
    set(newSrc, {
        credentials: "include",
    });
});