slash commands integrated

* sample env and late version incr

* added slash command compatibility

* updated command name

* updated environment sample

* updated interaction comment
This commit is contained in:
Kevin Dang
2024-01-31 10:25:45 -08:00
committed by Kevin Dang
parent b94ff55449
commit 89c19990fa
16 changed files with 311 additions and 192 deletions

22
src/utils/commands.ts Normal file
View File

@@ -0,0 +1,22 @@
import { CommandInteraction, ChatInputApplicationCommandData, Client } from 'discord.js'
/**
* interface for how slash commands should be run
*/
export interface SlashCommand extends ChatInputApplicationCommandData {
run: (client: Client, interaction: CommandInteraction) => void
}
/**
* register the command to discord for the channel
* @param client the bot reference
* @param commands commands to register to the bot
*/
export function registerCommands(client: Client, commands: SlashCommand[]): void {
// ensure the bot is online before registering
if (!client.application) return
// iterate through all commands and register them with the bot
for (const command of commands)
client.application.commands.create(command)
}

View File

@@ -14,7 +14,7 @@ export interface EventProps {
tokens: {
channel: string,
model: string,
botUid: string
clientUid: string
}
}
export type EventCallback<T extends EventKeys> = (
@@ -39,7 +39,7 @@ export function registerEvents(
tokens: {
channel: string,
model: string,
botUid: string
clientUid: string
}
): void {
for (const { key, callback } of events) {

View File

@@ -2,4 +2,5 @@
export * from './env.js'
export * from './events.js'
export * from './messageEmbed.js'
export * from './messageNormal.js'
export * from './messageNormal.js'
export * from './commands.js'