solara-testing-beta
Version:
A modern, customizable, and lightweight Discord framework.
41 lines (40 loc) • 1.31 kB
TypeScript
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>;
}