mirror of
https://github.com/the-draupnir-project/Draupnir.git
synced 2026-04-27 03:15:17 +00:00
21 lines
1.0 KiB
TypeScript
21 lines
1.0 KiB
TypeScript
import { ActionResult } from "matrix-protection-suite";
|
|
import { MjolnirAppService } from "../../../src/appservice/AppService";
|
|
import { ReadItem } from "../../../src/commands/interface-manager/CommandReader";
|
|
import { findCommandTable } from "../../../src/commands/interface-manager/InterfaceCommand";
|
|
import { ArgumentStream } from "../../../src/commands/interface-manager/ParameterParsing";
|
|
|
|
export class AppservideBotCommandClient {
|
|
constructor(private readonly appservice: MjolnirAppService) {
|
|
|
|
}
|
|
|
|
public async sendCommand<CommandReturnType extends ActionResult<any>>(...items: ReadItem[]): Promise<CommandReturnType> {
|
|
const stream = new ArgumentStream(items);
|
|
const matchingCommand = findCommandTable("appservice bot").findAMatchingCommand(stream);
|
|
if (!matchingCommand) {
|
|
throw new TypeError(`Couldn't finnd a command from these items ${JSON.stringify(items)}`);
|
|
}
|
|
return await matchingCommand.parseThenInvoke({ appservice: this.appservice }, stream) as CommandReturnType;
|
|
}
|
|
}
|