I'm currently making a bot in discord.js, and I'm trying to build a command handler ( for slash commands specifically). Unfortunately, whenever i run the code, it returns a 405 error from the discord API. here is the error:
DiscordAPIError[0]: 405: Method Not Allowed
at SequentialHandler.runRequest (/home/ayman/Documents/Projects/image-bot/node_modules/@discordjs/rest/dist/lib/handlers/SequentialHandler.js:198:23)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async SequentialHandler.queueRequest (/home/ayman/Documents/Projects/image-bot/node_modules/@discordjs/rest/dist/lib/handlers/SequentialHandler.js:99:20)
at async /home/ayman/Documents/Projects/image-bot/src/main.js:35:5 {
rawError: { message: '405: Method Not Allowed', code: 0 },
code: 0,
status: 405,
method: 'put',
url: 'https://discord.com/api/v9/applications/921468165576347658/guilds/545334770368774146/commands/undefined'
}
And here is the problematic code:
(async () => {
try {
if (process.env.ENV === "production") {
await rest.put(Routes.applicationCommand(CLIENT_ID), {
body: commands,
});
console.log("Commands successfully registered globally.");
} else {
await rest.put(Routes.applicationGuildCommand(CLIENT_ID, process.env.GUILD_ID), {
body: commands,
});
console.log("Commands successfully registered locally.");
}
} catch (err) {
if (err) console.error(err);
}
})();
Is there any reason why this is happening? Thanks for any help!
CodePudding user response:
You're using the wrong method, it's applicationGuildCommands
:)
reference source code