koishi-plugin-adapter-iirose
Version:
[IIROSE-蔷薇花园](https://iirose.com/)适配器
89 lines (88 loc) • 4.32 kB
TypeScript
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[]>;
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, guildId?: 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>>;
getChannel(channelId: string): Promise<Universal.Channel>;
getChannelList(guildId: string): Promise<Universal.List<Universal.Channel>>;
getMessage(channelId: string, messageId: string): Promise<Universal.Message>;
getMessageKeys(): string[];
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): Promise<void>;
deleteMessage(channelId: string, messageId: string[]): Promise<void>;
private deleteSingleMessage;
internal: InternalType;
handleStockUpdate(newStockData: Stock): void;
handleBankUpdate(newBankData: BankCallback): void;
}