This repository has been archived on 2024-03-06. You can view files and clone it, but cannot push or open issues or pull requests.
discord.js-rr-bot/Src/Structures/Handlers/SlashCommands.js
2022-06-18 23:28:38 -04:00

59 lines
No EOL
2.7 KiB
JavaScript

const fs = require("fs");
const Filer = require("../../Utils/Filer");
module.exports = async function(client, path) {
Filer(`${path}/Src/Commands/SlashCommands`, async function(err, res) {
res.forEach(file => {
if (fs.statSync(file).isDirectory()) return;
const cmd = require(file);
if (cmd.ignoreFile) return;
client.commands.slashCommands.set(require(file).name, require(file))
})
let promise = Promise.resolve()
res.forEach(async function(file) {
promise = promise.then(async function() {
const interval = 5000;
if (fs.statSync(file).isDirectory()) return;
const cmd = require(file);
if (cmd.ignoreFile) return;
if (cmd.guilds && Array.isArray(cmd.guilds)) cmd.guilds.forEach(guildID => {
(async () => {
const guild = client.guilds.cache.get(guildID) ?? await client.guilds.fetch(guildID)
const verifier = guild.commands.cache.find(x => x.name == cmd.name)
if (verifier) await guild.commands.edit(verifier.id, {
name: cmd.name,
description: cmd.description ?? "None",
options: cmd.options ?? [],
type: cmd.type ?? "CHAT_INPUT"
})
else await guild.commands.create({
name: cmd.name,
description: cmd.description ?? "None",
options: cmd.options ?? [],
type: cmd.type ?? "CHAT_INPUT"
})
})()
})
else {
const verifier = client.application.commands.cache.find(x => x.name == cmd.name)
if (verifier) await client.application.commands.edit(verifier.id, {
name: cmd.name,
description: cmd.description ?? "None.",
options: cmd.options ?? [],
type: cmd.type ?? "CHAT_INPUT"
})
else await client.application.commands.create({
name: cmd.name,
description: cmd.description ?? "None.",
options: cmd.options ?? [],
type: cmd.type ?? "CHAT_INPUT"
})
}
return new Promise(function(resolve) {
setTimeout(resolve, interval);
})
})
})
})
}