Files
qcstd-bot/handlers/menuHandler.js
T

35 lines
991 B
JavaScript

const fs = require('fs');
const path = require('path');
const { Collection } = require('discord.js');
function loadMenus(client) {
const interactionsPath = path.join(__dirname, '../interactions');
client.menus = new Collection();
if (!fs.existsSync(interactionsPath)) return client.menus;
const files = fs
.readdirSync(interactionsPath)
.filter((f) => f.toLowerCase().includes('menu') && f.endsWith('.js'));
for (const file of files) {
const menu = require(path.join(interactionsPath, file));
client.menus.set(menu.id, menu);
}
return client.menus;
}
async function handleMenu(interaction, client) {
for (const menu of client.menus.values()) {
if (typeof menu.id === 'string' && menu.id === interaction.customId) {
return menu.execute(interaction, client);
}
if (menu.id instanceof RegExp && menu.id.test(interaction.customId)) {
return menu.execute(interaction, client);
}
}
}
module.exports = { loadMenus, handleMenu };