UNPKG

koishi-plugin-adapter-iirose

Version:
99 lines (98 loc) 4.88 kB
import { Context, Bot, Fragment, Universal, Logger } from 'koishi'; import { IIROSE_BotMessageEncoder } from './sendMessage'; import { WsClient } from '../utils/ws'; import { InternalType } from './internal'; import { SendOptions } from '@satorijs/protocol'; import { SessionCache } from '../utils/sessionCache'; import { Stock } from '../decoder/messages/Stock'; import { BankCallback } from '../decoder/messages/BankCallback'; import { Config } from '../config'; export declare class IIROSE_Bot extends Bot<Context> { ctx: Context; static MessageEncoder: typeof IIROSE_BotMessageEncoder; platform: string; socket: WebSocket | undefined; messageIdResolvers: ((messageId: string) => void)[]; responseQueue: { resolver: (data: string | null) => void; timer: () => void; }[]; responseListeners: Map<string, { listener: (data: string) => void; stopPropagation: boolean; }>; static inject: string[]; wsClient: WsClient; readonly config: Config; sessionCache: SessionCache; private isStarting; private isStarted; private disposed; private userInfoTimeout; private lastStockData; private lastBankData; logger: Logger; userLeaveTimers: Map<string, () => void>; userJoinTimers: Map<string, () => void>; constructor(ctx: Context, config: Config); loggerError(message: any, ...args: any[]): void; loggerInfo(message: any, ...args: any[]): void; loggerWarn(message: any, ...args: any[]): void; logInfo(message: any, ...args: any[]): void; fulllogInfo(message: any, ...args: any[]): void; setDisposing(disposing: boolean): void; start(): Promise<void>; stop(): Promise<void>; sendMessage(channelId: string, content: Fragment, guildId?: string, options?: SendOptions): Promise<string[]>; sendPrivateMessage(userId: string, content: Fragment, guildId?: string, options?: SendOptions): Promise<string[]>; online(): void; getSelf(): Promise<Universal.User>; /** * 发送一个WebSocket请求并等待对应的响应 * @param payload 要发送的数据 * @param timeout 超时时间 (毫秒) * @returns 返回一个Promise,该Promise会解析为响应字符串,或在超时/失败时解析为null */ requestResponse(payload: string, timeout?: number): Promise<string | null>; /** * 处理一个进入的响应,并将其分发到响应队列中的第一个等待者 * @param data 响应数据 * @returns 如果消息被处理,则返回true */ handleResponse(data: string): boolean; /** * 发送一个WebSocket消息并等待一个具有特定前缀的响应 * @param payload 要发送的数据 * @param responsePrefix 期望的响应前缀 * @param stopPropagation 是否在匹配到响应后停止消息的进一步传播,默认为 true * @param timeout 超时时间 (毫秒) * @returns 返回一个Promise,该Promise会解析为响应字符串,或在超时时解析为null */ sendAndWaitForResponse(payload: string, responsePrefix: string, stopPropagation?: boolean, timeout?: number): Promise<string | null>; getUser(userId: string): Promise<Universal.User>; getGuildMember(guildId: string, userId: string): Promise<Universal.GuildMember>; getGuildMemberList(guildId: string, next?: string): Promise<Universal.List<Universal.GuildMember>>; getGuild(guildId: string): Promise<Universal.Guild>; getGuildList(next?: string): Promise<Universal.List<Universal.Guild>>; getFriendList(next?: string): Promise<Universal.List<Universal.User>>; handleFriendRequest(messageId: string, approve: boolean, comment?: string): Promise<void>; getChannel(channelId: string): Promise<Universal.Channel>; getChannelList(guildId: string): Promise<Universal.List<Universal.Channel>>; getMessage(channelId: string, messageId: string): Promise<Universal.Message>; getMessageKeys(): string[]; /** * 获取频道消息列表 * @param channelId 频道 ID * @param next 分页令牌,未指定时视为从最新消息向前获取(本实现中忽略此参数) * @param direction 消息获取方向,可以为 'before' | 'after' | 'around' * @returns 消息列表 */ getMessageList(channelId: string, next?: string, direction?: 'before' | 'after' | 'around'): Promise<Universal.List<Universal.Message>>; kickGuildMember(guildId: string, userId: string, permanent?: boolean): Promise<void>; muteGuildMember(guildId: string, userId: string, duration: number, reason?: string): Promise<void>; deleteMessage(channelId: string, messageId: string | string[]): Promise<void>; private deleteSingleMessage; internal: InternalType; handleStockUpdate(newStockData: Stock): void; handleBankUpdate(newBankData: BankCallback): void; }