rashi-discord-bot-lib
Version:
🚀 Powerful Discord bot framework with built-in database, event handling, and utilities
87 lines • 2.59 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 MusicStats {
enabled: boolean;
library?: string;
nodesTotal?: number;
nodesConnected?: number;
players?: number;
playing?: number;
defaultSearch?: string;
}
export interface GenerateStatsOptions {
BotInfo?: BotInfo;
}
export declare class BotStatistics {
private musicStats?;
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;
setMusicStats(stats?: MusicStats): 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;
generateTableStats(client: Client, options: GenerateStatsOptions, databaseStats?: DatabaseStats): Promise<void>;
generateStatsDisplay(client: Client): Promise<string>;
get loadedEventsCount(): number;
get loadedSlashCommandsCount(): number;
get loadedPrefixCommandsCount(): number;
private setupEventTracking;
private getMostUsedCommand;
private getAverageResponseTime;
private getErrorRate;
private formatBytes;
private formatUptime;
}
//# sourceMappingURL=BotStatistics.d.ts.map