add commands system
This commit is contained in:
@@ -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()),
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user