UNPKG

cyberbot-next

Version:

cyberbot, 基于napcat-ts, nodejs,轻量qq机器人框架。

146 lines (145 loc) 6.08 kB
import { type AllHandlers, NCWebsocket, Structs, type Send } from "node-napcat-ts"; export type MessageContext = AllHandlers['message'] | AllHandlers['message.private'] | AllHandlers['message.group'] | AllHandlers['notice'] | AllHandlers['request']; export interface Plugin { name: string; version: string; description?: string; cron?: [string, (e: NapcatClient) => void][]; initialize(client: NapcatClient): void; cleanup(): void; } export interface GenericPlugin<T = NapcatClient> extends Omit<Plugin, 'cron'> { cron?: [string, (e: T) => void][]; } export interface NapcatConnector extends NCWebsocket { onMessage(handler: (e: MessageContext) => void): void; removeMessageListener(handler: (e: MessageContext) => void): boolean; connect(): Promise<void>; disconnect(): void; setConfig(config: Config): void; getConfig(): Config; } export interface NapcatClient { logger: Logger; onMessage(handler: (e: MessageContext) => void): void; removeMessageListener(handler: (e: MessageContext) => void): boolean; events: { reply(context: MessageContext, content: any, quote?: boolean): Promise<{ message_id: number; }>; sendPrivateMessage(userId: number, content: any): Promise<{ message_id: number; }>; sendGroupMessage(groupId: number, content: any): Promise<{ message_id: number; }>; isMaster: (id: number) => Promise<boolean>; isAdmin: (id: number) => Promise<boolean>; hasRight: (user_id: number) => Promise<boolean>; delete_msg: (message_id: number) => Promise<void>; kick: (group_id: number, user_id: number, reject_add_request?: boolean) => Promise<void>; ban: (group_id: number, user_id: number, duration?: number) => Promise<void>; banAll: (group_id: number, enable: boolean) => Promise<void>; setGroupName: (group_id: number, name: string) => Promise<void>; setAdmin: (group_id: number, user_id: number, enable: boolean) => Promise<void>; setTitle: (group_id: number, user_id: number, title: string) => Promise<void>; aprroveGroup: (flag: string) => Promise<void>; rejectGroup: (flag: string) => Promise<void>; isGroupAdmin: (group_id: number, user_id: number) => Promise<boolean>; isGroupOwner: (group_id: number, user_id: number) => Promise<boolean>; md5: (text: string) => string; randomInt: (min: number, max: number) => number; randomItem: <T>(array: T[]) => T; getGroupAvatarLink: (group_id: number, size?: number) => string; getQQAvatarLink: (user_id: number, size?: number) => string; getImageLink: (raw_message: string) => string; getDirectLink: (url: string) => Promise<string>; getMessageId: (raw_message: string) => string; getMessageAt: (raw_message: string) => number[]; getText: (raw_message: string) => string; getQuotedText: (raw_message: string) => Promise<string>; fakeMessage: (target_id: number, message: Send['node'][], isGroup: boolean) => Promise<{ message_id: number; res_id: string; }>; }; sendPrivateMessage(userId: number, content: any): Promise<{ message_id: number; }>; sendGroupMessage(groupId: number, content: any): Promise<{ message_id: number; }>; deleteMessage: (message_id: number) => Promise<void>; kickMember: (group_id: number, user_id: number, reject_add_request?: boolean) => Promise<void>; banMember: (group_id: number, user_id: number, duration?: number) => Promise<void>; banAllMembers: (group_id: number, enable: boolean) => Promise<void>; setGroupNameEx: (group_id: number, name: string) => Promise<void>; setAdminEx: (group_id: number, user_id: number, enable: boolean) => Promise<void>; setMemberTitle: (group_id: number, user_id: number, title: string) => Promise<void>; isMaster: (id: number) => Promise<boolean>; isAdmin: (id: number) => Promise<boolean>; hasRight: (user_id: number) => Promise<boolean>; aprroveGroup: (flag: string) => Promise<void>; rejectGroup: (flag: string) => Promise<void>; isGroupAdmin: (group_id: number, user_id: number) => Promise<boolean>; isGroupOwner: (group_id: number, user_id: number) => Promise<boolean>; md5: (text: string) => string; randomInt: (min: number, max: number) => number; randomItem: <T>(array: T[]) => T; getGroupAvatarLink: (group_id: number, size?: number) => string; getQQAvatarLink: (user_id: number, size?: number) => string; getImageLink: (raw_message: string) => string; getDirectLink: (url: string) => Promise<string>; getMessageId: (raw_message: string) => string; getMessageAt: (raw_message: string) => number[]; getText: (raw_message: string) => string; getQuotedText: (raw_message: string) => Promise<string>; fakeMessage: (target_id: number, message: Send['node'][], isGroup: boolean) => Promise<{ message_id: number; res_id: string; }>; setConfig(config: Config): void; getConfig(): Config; pluginManager: any; bot_uin: number; napcat: NapcatConnector; } export interface Logger { info(message: string): void; error(message: string): void; warn(message: string): void; debug(message: string): void; } export type FsSizeData = { fs: string; type: string; size: number; used: number; available: number; mount: string; [key: string]: any; }; export interface Config { bot: number; master: number; admins: number[]; baseUrl: string; accessToken: string; throwPromise: boolean; reconnection: { enable: boolean; attempts: number; delay: number; }; debug: boolean; plugins: { system: string[]; user: string[]; }; logger: { level: string; maxSize: string; maxDays: number; }; } export { type AllHandlers, NCWebsocket, Structs, type Send };