|
import { ChatInputCommandInteraction, Message } from "discord.js"; |
|
import fs from "fs"; |
|
import path from "path"; |
|
import { commands } from "../index"; |
|
|
|
export default { |
|
data: { |
|
name: "reload", |
|
description: "Tải lại toàn bộ lệnh từ thư mục Commands.", |
|
toJSON() { |
|
return { |
|
name: "reload", |
|
description: "Tải lại toàn bộ lệnh từ thư mục Commands.", |
|
}; |
|
}, |
|
}, |
|
ownersOnly: true, |
|
async execute(input: ChatInputCommandInteraction | Message) { |
|
const dir = path.join(__dirname); |
|
const newCommands = []; |
|
|
|
try { |
|
const files = fs.readdirSync(dir).filter((file) => |
|
file.endsWith(".ts") || file.endsWith(".js") |
|
); |
|
|
|
for (const file of files) { |
|
if (file === "reload.ts" || file === "reload.js") continue; |
|
|
|
const filePath = path.join(dir, file); |
|
delete require.cache[require.resolve(filePath)]; |
|
|
|
const command = require(filePath).default; |
|
if (command) newCommands.push(command); |
|
} |
|
|
|
commands.length = 0; |
|
newCommands.forEach((cmd) => commands.push(cmd)); |
|
|
|
const replyText = `✅ Đã reload ${newCommands.length} lệnh.`; |
|
|
|
if (input instanceof Message) { |
|
await input.reply(replyText); |
|
} else { |
|
await input.reply({ content: replyText, ephemeral: true }); |
|
} |
|
} catch (error) { |
|
console.error(error); |
|
if (input instanceof Message) { |
|
await input.reply("❌ Lỗi khi reload command."); |
|
} else { |
|
await input.reply({ content: "❌ Lỗi khi reload command.", ephemeral: true }); |
|
} |
|
} |
|
}, |
|
}; |