rashi-discord-bot-lib
Version:
🚀 Powerful Discord bot framework with built-in database, event handling, and utilities
70 lines • 2.1 kB
TypeScript
import { Client } from "discord.js";
import { Logger } from "./Logger";
import type { VerseDatabase } from "../types";
export type CommandType = "slash" | "prefix";
export interface CommandUsage {
count: number;
type: CommandType;
}
export interface MostUsedCommand {
name: string;
uses: number;
type: CommandType;
}
export interface DatabaseStats {
adapter: string;
keys: number;
size?: number;
}
export interface DatabaseStore {
name: string;
adapter: string;
status: "connected" | "down";
keys?: number;
size?: number;
info?: string;
}
export interface BotInfo {
ownerId?: string;
botInvite?: string;
serverInvite?: string;
avatar?: string;
serverId?: string;
}
export interface GenerateStatsOptions {
BotInfo?: BotInfo;
}
export declare class BotStatistics {
private logger;
private startTime;
private commandUsage;
private eventTriggers;
private printedOnce;
private totalCommandsExecuted;
private totalEventsTriggered;
private responseTimes;
private errorCount;
private totalRequests;
private loadedSlashCommands;
private loadedPrefixCommands;
private loadedEvents;
private dbStats?;
private dbStores;
constructor(logger?: Logger);
setDatabaseStats(stats?: DatabaseStats): void;
setDatabaseStores(stores: DatabaseStore[] | undefined): void;
resetPrintedFlag(): void;
loadDatabaseStatsFrom(db?: VerseDatabase): Promise<void>;
initialize(client: Client): void;
setLoadedCommands(slashCount: number, prefixCount: number): void;
setLoadedEvents(eventCount: number): void;
trackCommand(commandName: string, type: CommandType, responseTime?: number): void;
trackEvent(eventName: string): void;
trackError(): void;
private pushRow;
generateTableStats(client: Client, options: GenerateStatsOptions, databaseStats?: DatabaseStats): Promise<void>;
generateStatsDisplay(client: Client): Promise<string>;
private setupEventTracking;
private formatUptime;
}
//# sourceMappingURL=BotStatistics.d.ts.map