UNPKG

koishi-plugin-onebot-manager

Version:

适用于 Onebot 的 QQ 群管,可自动处理好友申请、群邀请和入群请求,提供群组管理功能

139 lines (138 loc) 3.82 kB
import { Context, Logger, Session } from 'koishi'; import { Config } from './index'; /** * 请求处理模式 * - accept: 自动接受 * - reject: 自动拒绝 * - manual: 人工审核 * - auto: 条件自动审核 */ export type Request = 'accept' | 'reject' | 'manual' | 'auto'; /** * 请求类型 * - friend: 好友请求 * - guild: 群组请求 * - member: 群成员请求 */ export type RequestType = 'friend' | 'guild' | 'member'; /** * OneBot 用户信息接口 */ export interface OneBotUserInfo { /** 用户 ID */ user_id: number; /** 注册时间(秒级时间戳) */ regTime?: number; /** 注册时间(秒级时间戳) */ reg_time?: number; /** QQ等级 */ qqLevel?: number; /** QQ等级 */ level?: number; /** 是否为 VIP 用户 */ is_vip?: boolean; /** 是否为年费 VIP 用户 */ is_years_vip?: boolean; /** VIP 等级 */ vip_level?: number; } /** * OneBot 群组信息接口 */ export interface OneBotGroupInfo { /** 群组 ID */ group_id: number; /** 群组名称 */ group_name: string; /** 群组备注 */ group_remark?: string; /** 成员数量 */ member_count: number; /** 群组最大成员数 */ max_member_count: number; } /** * OneBot 请求处理类 * 处理好友请求、群组请求和群成员请求 */ export declare class OnebotRequest { private ctx; private logger; private config; private pendingRequests; private requestNumberMap; private nextRequestNumber; private activeRequests; /** * 创建 OneBot 请求处理实例 * @param ctx - Koishi 上下文 * @param logger - 日志记录器 * @param config - 配置项 */ constructor(ctx: Context, logger: Logger, config?: Config); /** * 生成请求的唯一键 * @param session - Koishi 会话 * @param type - 请求类型 * @returns 请求唯一键 */ private getRequestKey; /** * 取消活动中的请求 * @param requestKey - 请求唯一键 */ private cancelActiveRequest; /** * 处理收到的请求 * @param session - Koishi 会话 * @param type - 请求类型 */ processRequest(session: Session, type: RequestType): Promise<void>; /** * 清理请求数据 * @param requestId - 请求 ID */ private cleanupRequest; /** * 检查用户条件是否满足自动接受要求 * @param session - Koishi 会话 * @param regTimeLimit - 注册时间要求(年数,-1表示不检查) * @param levelLimit - QQ等级要求(-1表示不检查) * @param vipLevelLimit - VIP等级要求(-1表示不检查) * @returns 是否满足条件,如不满足返回原因 */ private checkUserConditions; /** * 判断是否应自动接受请求 * @param session - Koishi 会话 * @param type - 请求类型 * @returns 是否接受,如不接受返回原因 */ private shouldAutoAccept; /** * 处理请求操作(接受或拒绝) * @param session - Koishi 会话 * @param type - 请求类型 * @param approve - 是否接受请求 * @param reason - 拒绝原因 * @param remark - 好友备注(仅适用于好友请求) * @returns 处理是否成功 */ private processRequestAction; /** * 设置通知 * @param session - Koishi 会话 * @param type - 请求类型 * @param requestId - 请求 ID * @param isManualMode - 是否为手动处理模式 */ private setupNotification; /** * 设置人工审核响应监听 */ private setupPromptResponse; /** * 注册事件监听器,自动处理 OneBot 请求事件 */ registerEventListeners(): void; }