koishi-plugin-onebot-manager
Version:
适用于 Onebot 的 QQ 群管,可自动处理好友申请、群邀请和入群请求,提供群组管理功能
139 lines (138 loc) • 3.82 kB
TypeScript
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;
}