机器人事件
机器人事件用于监听即时通讯平台(如QQ)的消息和状态变化,包括群消息、私聊消息、群成员变动等。这些事件是实现机器人功能的核心接口。
基础事件类
EasyEvent
所有事件的基类,包含适配器相关信息。
declare class EasyEvent {
/** 事件是否已被取消,如果设置为True EasyBot内部的处理器将不响应此次事件 */
IsCanceled: boolean;
/** 适配器名称(onebot11) */
AdapterName: string;
/** 适配器平台名称(qq) */
AdapterPlatform: string;
/** 适配器操作上下文 */
AdapterContext: IAdapterContext;
}
属性说明
- IsCanceled: 如果设置为 true,EasyBot 内部的处理器将不响应此次事件(仅对部分支持取消的事件有效)
- AdapterName: 适配器名称,如 "onebot11"
- AdapterPlatform: 适配器平台名称,如 "qq"
- AdapterContext: 适配器操作上下文,提供各种 API 调用
消息接收事件
group_message_event
功能描述: 当机器人收到群聊消息时触发。
参数: GroupMessageEvent
declare class GroupMessageEvent extends EasyEvent {
SelfId: string; // 机器人账号ID
SenderId: string; // 发送者用户ID
PeerId: string; // 群组ID
Chain: MessageChain; // 消息链对象
RawMessage: string; // 原始消息文本
MessageId: string; // 消息唯一标识
SenderRole?: string; // 发送者群内角色
SenderName: string; // 发送者显示名称
SenderNickName?: string; // 发送者群昵称
Context: IMessageContext; // 消息操作上下文
Messages: Segment[]; // 消息内容片段数组
}
示例:
bus.on("group_message_event", (event) => {
if (event.RawMessage === "ping") {
event.Context.Reply(new MessageChain().Text("pong"));
}
});
direct_message_event
功能描述: 当机器人收到私聊消息时触发。
参数: DirectMessageEvent
declare class DirectMessageEvent extends EasyEvent {
SenderId: string; // 发送者用户ID
SelfId: string; // 机器人账号ID
Chain: MessageChain; // 消息链对象
RawMessage: string; // 原始消息文本
SenderName: string; // 发送者显示名称
MessageId: number; // 消息唯一标识
SenderNickName?: string; // 发送者昵称
Context: IMessageContext; // 消息操作上下文
Messages: Segment[]; // 消息内容片段数组
}
群组变动事件
group_join_event
功能描述: 当有新成员加入群聊时触发。
参数: GroupJoinEvent
declare class GroupJoinEvent extends EasyEvent {
SelfId: string; // 机器人账号ID
Id: string; // 加群者ID
PeerId: string; // 群组ID
Context: IMessageContext; // 消息操作上下文
OperatorId: string; // 操作者用户ID(如邀请人)
}
group_leave_event
功能描述: 当群成员退出群聊时触发。
参数: GroupLeaveEvent
declare class GroupLeaveEvent extends EasyEvent {
SelfId: string; // 机器人账号ID
Id: string; // 离开人ID
PeerId: string; // 群组ID
Context: IMessageContext; // 消息操作上下文
OperatorId: string; // 操作者用户ID(如踢出者)
}
group_request_event
功能描述: 当有用户申请加入群聊或邀请机器人入群时触发。
参数: GroupRequestEvent
declare class GroupRequestEvent extends EasyEvent {
SelfId: string; // 机器人账号ID
UserId: string; // 申请用户ID
GroupId: string; // 目标群组ID
InvitorId: string; // 邀请人ID(当为邀请事件时存在)
Comment: string; // 申请备注/验证信息
Flag: string; // 请求唯一标识符
IsJoinRequest: boolean; // true=加群请求,false=邀请请求
}
机器人状态事件
bot_ready_event
功能描述: 当机器人连接成功并准备就绪时触发。
参数: BotReadyEvent
declare class BotReadyEvent extends EasyEvent {
Profile: RobotProfile; // 机器人信息
}
bot_offline_event
功能描述: 当机器人掉线时触发。
参数: BotOfflineEvent
declare class BotOfflineEvent extends EasyEvent {
Profile: RobotProfile; // 机器人信息
Reason: string; // 掉线原因
Code: number; // 错误码(如果有)
}
消息发送生命周期事件
这些事件允许你在消息发送前后进行拦截或记录。
group_message_send_before_event
功能描述: 在发送群消息之前触发。
参数: GroupMessageSendBeforeEvent
declare class GroupMessageSendBeforeEvent extends EasyEvent {
SelfId: string;
PeerId: string;
Chain: MessageChain; // 注意: 此字段会影响原始事件结构
Messages: Segment[];
}
group_message_send_after_event
功能描述: 在发送群消息之后触发。
参数: GroupMessageSendAfterEvent
declare class GroupMessageSendAfterEvent extends EasyEvent {
SelfId: string;
PeerId: string;
Chain: MessageChain;
Data: string; // 发消息后返回的原始数据包内容
Messages: Segment[];
}
direct_message_send_before_event
功能描述: 在发送私聊消息之前触发。
参数: DirectMessageSendBeforeEvent
declare class DirectMessageSendBeforeEvent extends EasyEvent {
SelfId: string;
PeerId: string;
Chain: MessageChain;
Messages: Segment[];
}
direct_message_send_after_event
功能描述: 在发送私聊消息之后触发。
参数: DirectMessageSendAfterEvent
declare class DirectMessageSendAfterEvent extends EasyEvent {
SelfId: string;
PeerId: string;
Chain: MessageChain;
Data: string; // 发消息后返回的原始数据包内容
Messages: Segment[];
}
原始数据事件
raw_message_event
功能描述: 当适配器收到任何形式的原始数据包时触发。
参数: RawMessageEvent
declare class RawMessageEvent extends EasyEvent {
Data: string; // 消息数据
}
send_packet_before_event
功能描述: 在发送底层数据包之前触发。
参数: SendPacketBeforeEvent
declare class SendPacketBeforeEvent extends EasyEvent {
Data: string; // 原始数据包内容 (可修改)
}
send_packet_after_event
功能描述: 在发送底层数据包之后触发。
参数: SendPacketAfterEvent
declare class SendPacketAfterEvent extends EasyEvent {
Data: string; // 原始数据包内容 (可修改)
}
遇到麻烦了?
我们提供有偿代安装服务,解决您的环境配置烦恼。