Create helper script for pushing commands
This commit is contained in:
parent
8b4b35454b
commit
ae3a5133b3
3 changed files with 43 additions and 2 deletions
|
@ -5,7 +5,8 @@
|
||||||
"main": "./dist/index.js",
|
"main": "./dist/index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "tsc && node dist/index.js",
|
"start": "tsc && node dist/index.js",
|
||||||
"test": "echo \"Error: no test specified\" && exit 1"
|
"test": "echo \"Error: no test specified\" && exit 1",
|
||||||
|
"publishCommands": "tsc && node dist/scripts/pushCommands.js"
|
||||||
},
|
},
|
||||||
"author": "Wroclaw",
|
"author": "Wroclaw",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
|
|
@ -34,4 +34,4 @@ discord.on("messageCreate", async message => {
|
||||||
queueRequest(message);
|
queueRequest(message);
|
||||||
});
|
});
|
||||||
|
|
||||||
discord.login(config.tokens.Discord);
|
if (require.main === module) discord.login(config.tokens.Discord);
|
||||||
|
|
40
src/scripts/pushCommands.ts
Normal file
40
src/scripts/pushCommands.ts
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
// https://discordjs.guide/creating-your-bot/command-deployment.html#guild-commands
|
||||||
|
|
||||||
|
import { REST, RESTGetAPIOAuth2CurrentApplicationResult, RESTPostAPIApplicationCommandsJSONBody, Routes } from "discord.js";
|
||||||
|
import config from "../config";
|
||||||
|
import requireDirectory from "require-directory";
|
||||||
|
|
||||||
|
import Command from "../command";
|
||||||
|
|
||||||
|
const post: RESTPostAPIApplicationCommandsJSONBody[] = [];
|
||||||
|
|
||||||
|
const guildId = process.argv.slice(2)[0];
|
||||||
|
requireDirectory<{default: Command}, void>(module, "../commands", {
|
||||||
|
visit: function (obj) {
|
||||||
|
console.log(obj);
|
||||||
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||||
|
// @ts-ignore
|
||||||
|
post.push(new obj.default().toRESTPostApplicationCommands());
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const rest = new REST().setToken(config.tokens.Discord);
|
||||||
|
|
||||||
|
(async () => {
|
||||||
|
const me = await rest.get(Routes.oauth2CurrentApplication()) as RESTGetAPIOAuth2CurrentApplicationResult;
|
||||||
|
console.log(`Started refreshing ${post.length} application commands.`);
|
||||||
|
if (guildId && guildId != "")
|
||||||
|
await rest.put(
|
||||||
|
Routes.applicationGuildCommands(me.id, guildId),
|
||||||
|
{ body: post },
|
||||||
|
);
|
||||||
|
else {
|
||||||
|
await rest.put(
|
||||||
|
Routes.applicationCommands(me.id),
|
||||||
|
{ body: post },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
console.log("Refreshed successfully");
|
||||||
|
})().catch( e => {
|
||||||
|
console.error(e);
|
||||||
|
});
|
Loading…
Reference in a new issue