Skip to content

Hook API 简介

0x24a edited this page Jan 20, 2024 · 6 revisions

 Hook API是hc++中管理Hook的主要模块。其主要用于帮助插件开发者编写插件的嵌入式功能。

注册Hook

这部分是给想要给HC++贡献代码的开发者阅读的。如果你是插件开发者,请阅读绑定Hook。 WIP

绑定Hook

绑定Hook用于在某个Hook被触发时运行某函数。

示例

在连接之前弹出"Hello, world!"

hook.register("before","connect",function(args){
    alert("Hello, world!");
    return args
});

禁止用户聊天

hook.register("in","send",function(args){
    if(args[0].cmd == "chat"){
        //禁止事件
        return false
    };
});

将用户发送的所有"Hello"改成"Hi"

hook.register("in","send",function(args){
    if(args[0].cmd == "chat"){
        args[0].text=args[0].text.replaceAll("Hello","Hi");
    };
    return args
});

目前HC++的Hooks与简介

Before::connect

简介

在连接websocket之前调用的Hook.

参数

After::disconnected

简介

在websocket断开连接后调用的Hook.

参数

In::recv

简介

在websocket收到消息时调用的Hook.

参数

  • args[0]: websocket包在JSON解析后的数据。
  • args[1]: websocket包的"cmd"字段。
  • args[2]: 处理对应websocket包的函数。

In::send

简介

在试图向websocket发送消息前调用的Hook.

参数

  • args[0]: 要向websocket发送的JSON.

Before::pushmessage

简介

在pushMessage()创建DOM元素前运行的Hook.

参数

  • args[0]: 传给pushMessage()的所有参数。

After::pushmessage

简介

在pushMessage()完成后运行的Hook.

参数

  • args[0]: 最终创建的DOM元素。