From 4f96e0c534d2c54f6881bd045afa9a1968b7bb9a Mon Sep 17 00:00:00 2001 From: Taken Date: Thu, 30 Nov 2023 15:43:35 +0100 Subject: [PATCH] Added event handler for autocomplete events --- src/index.js | 3 ++- src/utils/eventHandler.js | 4 +++- src/utils/eventHandlers/autocomplete.js | 24 ++++++++++++++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 src/utils/eventHandlers/autocomplete.js diff --git a/src/index.js b/src/index.js index b72d6d5..b29f3a9 100644 --- a/src/index.js +++ b/src/index.js @@ -1,5 +1,5 @@ const { Client, GatewayIntentBits, Partials, Collection } = require("discord.js") -const { loadSlashCommandsEvents, loadContextMenuEvents, loadModalEvents, loadButtonEvents, loadEvents } = require("./utils/eventHandler.js") +const { loadSlashCommandsEvents, loadContextMenuEvents, loadModalEvents, loadButtonEvents, loadEvents, loadAutocompleteEvents } = require("./utils/eventHandler.js") const { autoDeployCommands } = require("./utils/autodeploy.js") require("dotenv").config() const mongoURI = process.env.MONGOURI @@ -27,6 +27,7 @@ client.events = new Collection() client.modals = new Collection() loadSlashCommandsEvents(client) +loadAutocompleteEvents(client) loadContextMenuEvents(client) loadButtonEvents(client) loadModalEvents(client) diff --git a/src/utils/eventHandler.js b/src/utils/eventHandler.js index aac65f3..526250d 100644 --- a/src/utils/eventHandler.js +++ b/src/utils/eventHandler.js @@ -3,11 +3,13 @@ const { loadSlashCommandsEvents } = require("./eventHandlers/command.js") const { loadContextMenuEvents } = require("./eventHandlers/contextmenu.js") const { loadModalEvents } = require("./eventHandlers/modal.js") const { loadEvents } = require("./eventHandlers/events.js") +const { loadAutocompleteEvents } = require("./eventHandlers/autocomplete.js") module.exports = { loadSlashCommandsEvents, loadButtonEvents, loadContextMenuEvents, loadModalEvents, - loadEvents + loadEvents, + loadAutocompleteEvents } diff --git a/src/utils/eventHandlers/autocomplete.js b/src/utils/eventHandlers/autocomplete.js new file mode 100644 index 0000000..8916e14 --- /dev/null +++ b/src/utils/eventHandlers/autocomplete.js @@ -0,0 +1,24 @@ +const { Events } = require("discord.js") +const path = require("path") +const fs = require("fs") + +/** @param { import('discord.js').Client } client */ + +function loadAutocompleteEvents(client) { + const autocompletePath = path.join(__dirname, "..", "..", "events", "autocomplete") + const autocompleteFiles = fs.readdirSync(autocompletePath).filter(file => file.endsWith(".js")) + + for (const file of autocompleteFiles) { + + const filePath = path.join(autocompletePath, file) + const autocomplete = require(filePath) + + if ("name" in autocomplete && "execute" in autocomplete && autocomplete.type === "autocomplete") { + client.on(Events.InteractionCreate, autocomplete.execute) + } else { + console.log(`[WARNING] The autocomplete at ${filePath} is missing a required "name", "execute" or "type" property.`) + } + } +} + +module.exports = { loadAutocompleteEvents }