Serein 相关
输出日志
serein.log(content?: any)
serein.log("这是一条日志");
serein.log(12345); // 你也可以输出数字
serein.log(new System.IO.StreamWriter('log.txt')); // 甚至可以输出对象
- 参数
content
输出内容
- 返回
- 空
提示
个人更推荐使用Logger输出,支持多参输入,且方便区分输出等级
Debug 输出
serein.debugLog(content?: any)
serein.debugLog("这是一条Debug输出");
- 参数
content
输出内容
- 返回
- 空
注册插件
serein.registerPlugin(name: string, version: string, author: string, description: string)
serein.registerPlugin("示例插件","v1.0","Zaitonn","这是一个示例插件");
- 参数
name
插件名称version
版本author
作者或版权信息description
介绍
- 返回
boolean
(v1.3.2 及以前)- 成功为
true
,否则为false
- 成功为
string
(v1.3.3 及以后)- 当前的命名空间
设置监听器
serein.setListener(event: string, callback: Function)
serein.setListener("onServerOutput", (line) => {
serein.log(`服务器输出:${line}`);
return false; // 拦截此输出
});
serein.setListener("onGroupPoke", (group, user) => {
serein.log(`监听群群成员戳一戳当前账号 触发群:${group} QQ:${user}`);
});
- 参数
event
事件名称,具体值见下表(区分大小写)callback
回调函数- 不要包含
()
和参数 - 对于可拦截的事件,你可以通过返回
false
进行拦截- 拦截后该事件便不会进行下一步处理(如正则匹配或输出到控制台)
- 需要注意的是,你需要在规定时间内返回,具体时间可在配置文件
Serein.json
-Function
的JSEventMaxWaitingTime
中修改(默认 500ms);超出时间后返回的将被忽略;
- 不要包含
- 返回
boolean
- 设置监听器成功为
true
,否则为false
- 设置监听器成功为
事件列表
onServerStart
- 服务器启动
- 监听函数原型:
function () -> void
- 不可拦截
onServerStop
- 服务器关闭
- 监听函数原型:
function (exitCode: number) -> void
exitCode
退出代码(正常关闭时为 0)
- 不可拦截
onServerOutput
- 服务器输出
- 监听函数原型:
function (line: string) -> boolean
line
输出行
- 可被拦截
onServerOriginalOutput
- 服务器原始输出
- 监听函数原型:
function (line: string) -> boolean
line
输出行
- 可被拦截
备注
onServerOutput
总是先于onServerOriginalOutput
触发,但是拦截onServerOutput
不影响后者触发- 当两者中至少有一个事件被拦截时才会跳过下一步处理
onServerSendCommand
- 服务器输入指令
- 监听函数原型:
function (cmd: string) -> void
cmd
输入命令
- 不可拦截
onGroupIncrease
- 监听群群成员增加
- 监听函数原型:
function (group_id: number, user_id: number) -> void
group_id
群号user_id
QQ 号
- 不可拦截
onGroupDecrease
- 监听群群成员减少
- 监听函数原型:
function (group_id: number, user_id: number) -> void
group_id
群号user_id
QQ 号
- 不可拦截
onGroupPoke
- 监听群戳一戳自身账号
- 监听函数原型:
function (group_id: number, user_id: number) -> void
group_id
群号user_id
QQ 号
- 不可拦截
onReceiveGroupMessage
- 收到群消息(包括设置中未监听的群聊)
- 监听函数原型:
function (group_id: number, user_id: number, msg: string, shownName: string, message_id: number?) -> boolean
group_id
群号user_id
QQ 号msg
消息内容shownName
显示名称message_id
消息 ID
- 可被拦截
onReceivePrivateMessage
- 收到私聊消息
- 监听函数原型:
function (user_id: number, msg: string, nickName: string, message_id: number?) -> boolean
user_id
QQ 号msg
消息内容nickName
昵称message_id
消息 ID
- 可被拦截
onReceivePacket
- 收到数据包
- 监听函数原型:
function (packet: string) -> boolean
packet
数据包 UTF8 文本
- 可被拦截
备注
onReceivePacket
先于onReceivePrivateMessage
和onReceiveGroupMessage
触发,若此事件被拦截,私聊和群聊消息事件均不会被触发
onSereinClose
- Serein 关闭
- 监听函数原型:
function () -> void
- 不可拦截
onPluginsReload
- 插件重载
- 监听函数原型:
function () -> void
- 不可拦截
备注
以上两个事件为方便插件保存信息使用,超过JSEventMaxWaitingTime
设置项的时间后继续执行将被中止
onPluginsLoaded
- 插件加载完毕
- 监听函数原型:
function () -> void
- 不可拦截