psyduck-plugin-quotes
Version:
47 lines (46 loc) • 1.85 kB
TypeScript
/// <reference types="command-line-args" />
import 'reflect-metadata';
import { CommandLineOptions } from 'command-line-args';
import * as Discord from 'discord.js';
import { BotPlugin } from 'psyduck-contracts';
import { PluginQuoteUser, UserQuote } from 'psyduck-models';
import { ConnectionOptions, Repository } from 'typeorm';
export declare const commandOptions: ({
name: string;
alias: string;
type: NumberConstructor;
defaultOption?: undefined;
} | {
name: string;
alias: string;
type: BooleanConstructor;
defaultOption?: undefined;
} | {
name: string;
alias: string;
type: StringConstructor;
defaultOption: boolean;
})[];
export declare const userFormatRegex: RegExp;
export declare enum CommandType {
Quote = 0,
Random = 1,
}
export default class PsyduckQuotes implements BotPlugin {
users: Repository<PluginQuoteUser>;
quotes: Repository<UserQuote>;
connectionOptions: ConnectionOptions;
constructor(options: any);
connect(): void;
onMessage(message: Discord.Message): void;
parseParameters(messageContent: string): string[];
hydrateOptions(parameters: string[]): CommandLineOptions;
extractUserId(userId: string): string | undefined;
prepareHandler(message: Discord.Message, commandType: CommandType): void;
sendHelp(message: Discord.Message): void;
getUser(userId: string): Promise<PluginQuoteUser | undefined>;
createUser(guildId: string, serverName: string, guildAvatarUrl: string, userId: string, userName: string, avatarUrl: string): PluginQuoteUser;
recallQuote(message: Discord.Message, userId: string): Promise<void>;
buildQuote(capturerId: string, content: string): UserQuote;
saveQuote(message: Discord.Message, userId: string, pluck?: number): Promise<void>;
}