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

View File

@@ -1,9 +1,11 @@
import { Event } from '../utils/index.js'
import interactionCreate from './interactionCreate.js'
import messageCreate from './messageCreate.js'
import ready from './ready.js'
// Centralized export for all events
export default [
ready,
messageCreate
messageCreate,
interactionCreate
] as Event[] // staticly is better ts practice, dynamic exporting is possible

View File

@@ -0,0 +1,19 @@
import { event, Events } from '../utils/index.js'
import commands from '../commands/index.js'
/**
* Interaction creation listener for the client
* @param interaction the interaction received from the server
*/
export default event(Events.InteractionCreate, async ({ log, client }, interaction) => {
if (!interaction.isCommand() || !interaction.isChatInputCommand()) return
log(`Interaction called \'${interaction.commandName}\' from ${interaction.client.user.tag}.`)
// ensure command exists, otherwise kill event
const command = commands.find(command => command.name === interaction.commandName)
if (!command) return
// the command exists, execute it
command.run(client, interaction)
})

View File

@@ -14,7 +14,7 @@ export default event(Events.MessageCreate, async ({ log, msgHist, tokens }, mess
if (message.author.tag === message.client.user.tag) return
// Only respond if message mentions the bot
if (!message.mentions.has(tokens.botUid)) return
if (!message.mentions.has(tokens.clientUid)) return
// push user response
msgHist.push({

View File

@@ -1,6 +1,17 @@
import { event, Events } from '../utils/index.js'
import { event, Events, registerCommands } from '../utils/index.js'
import { ActivityType } from 'discord.js'
import commands from '../commands/index.js'
// Log when the bot successfully logs in and export it
export default event(Events.ClientReady, ({ log }, client) => {
return log(`Logged in as ${client.user.username}.`)
log(`Logged in as ${client.user.username}.`)
// Register the commands associated with the bot upon loggin in
registerCommands(client, commands)
// set status of the bot
client.user.setActivity({
name: 'Powered by Ollama',
type: ActivityType.Custom
})
})