add commands system

This commit is contained in:
Asaki Yuki
2025-10-18 17:41:27 +07:00
parent c677cb5d68
commit ffdce31ecb
14 changed files with 148 additions and 105 deletions

View File

@@ -0,0 +1,40 @@
import { REST, Routes } from "discord.js"
import dotenv from "dotenv"
import path from "path"
import fs from "fs"
import { Cmd } from "../types/cmd"
import { requireDirectory } from "../handler/requireDirectory"
dotenv.config()
const TOKEN = process.env.TOKEN
const CLIENTID = process.env.CLIENTID
if (!TOKEN) {
console.error("Missing TOKEN environment variable")
process.exit(1)
}
if (!CLIENTID) {
console.error("Missing CLIENTID environment variable")
process.exit(1)
}
const excludeFiles = ["index"]
export const execCmds = new Map<string, Cmd>()
requireDirectory(
__dirname,
({ data, exec }: Cmd, filename) => {
if (!data || !exec) throw new Error(`Command ${data.name} is missing data or execute function.`)
if (!data.name) data.setName(filename)
execCmds.set(data.name, { data, exec })
},
excludeFiles
)
const rest = new REST({ version: "10" }).setToken(TOKEN)
rest.put(Routes.applicationCommands(CLIENTID), {
body: Array.from(execCmds.values()).map(({ data }) => data.toJSON()),
})