UNPKG

artibot

Version:

Modern, fast and modular open-source Discord bot

53 lines (52 loc) 1.76 kB
import { RESTPostAPIChatInputApplicationCommandsJSONBody, RESTPostAPIContextMenuApplicationCommandsJSONBody } from "discord.js"; import Artibot from "."; import { Collection, Snowflake } from "discord.js"; import Localizer from "artibot-localizer"; import { Module } from "./modules.js"; /** * Interaction management utility for Artibot */ export declare class InteractionManager { /** Discord.js REST API utilitie */ private rest; /** Discord bot client ID */ clientId: Snowflake; /** Test guild ID */ testGuildId: Snowflake; /** Dev mode */ devMode: boolean; /** Debug mode */ debug: boolean; /** Localizer instance */ localizer: Localizer; /** JSON data of all slash commands and other interactions */ commandJSONData: (RESTPostAPIChatInputApplicationCommandsJSONBody | RESTPostAPIContextMenuApplicationCommandsJSONBody)[]; /** * @param config * @param config.token - Discord bot token * @param config.artibot - Artibot instance */ constructor({ token, artibot: { localizer, client, config: { testGuildId, devMode, debug } } }: { token: string; artibot: Artibot; }); /** * Generate data to send to Discord API to register interactions * @param modules - List of the modules to generate data from * @method */ readonly generateData: (modules: Collection<string, Module>) => void; /** * Empty all stored JSON data * @method */ readonly resetData: () => void; /** * Register interactions in Discord API * @returns True if everything went good, false if there was a problem. * @method * @async */ readonly register: () => Promise<boolean>; } export default InteractionManager;