UNPKG

solara-testing-beta

Version:

A modern, customizable, and lightweight Discord framework.

41 lines (40 loc) 1.31 kB
import { ClientOptions as DiscordClientOptions, Message, CommandInteraction, AutocompleteInteraction, ClientEvents, EmbedBuilder } from 'discord.js'; import SolaraClient from '../core/SolaraClient'; export interface SolaraClientOptions extends DiscordClientOptions { prefix: string | string[]; commandDirs?: string[]; functionDirs?: string[]; eventDirs?: string[]; developerIds?: string[]; token: string; } export interface CommandData { name: string; description?: string; aliases?: string[]; category?: string; code: string; type?: 'message' | 'interaction' | 'both'; slash?: boolean; options?: any[]; enabled?: boolean; developerOnly?: boolean; } export interface FunctionData { name: string; execute: (ctx: FunctionContext) => Promise<any>; } export interface FunctionContext { client: SolaraClient; message?: Message; interaction?: CommandInteraction | AutocompleteInteraction; args: string[]; commandData?: CommandData; embed?: EmbedBuilder; [key: string]: any; } export type EventListener = (client: SolaraClient, ...args: any[]) => Promise<void>; export interface EventData<K extends keyof ClientEvents> { name: K; execute: (client: SolaraClient, ...args: ClientEvents[K]) => Promise<void>; }