31 lines
847 B
TypeScript
31 lines
847 B
TypeScript
import { REST, Routes } from "discord.js"
|
|
import { Cmd } from "../types/cmd"
|
|
import { requireDirectory } from "../handler/requireDirectory"
|
|
|
|
const TOKEN = process.env.TOKEN
|
|
const CLIENTID = process.env.CLIENTID
|
|
|
|
if (!TOKEN || !CLIENTID) {
|
|
console.error("Missing TOKEN or CLIENTID in .env file")
|
|
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()),
|
|
})
|