| 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 }); | |
| } | |
| } | |
| }, | |
| }; |