mirror of
https://github.com/discordeno/discordeno.git
synced 2026-06-16 19:28:17 +00:00
5f1b82a4e8
* fix(rest/process_request): use DiscordHTTPResponseCodes * refactor: remove RequestManager * refactor: remove RequestManager and use runMethod()
32 lines
1.5 KiB
TypeScript
32 lines
1.5 KiB
TypeScript
import { applicationId } from "../../bot.ts";
|
|
import { rest } from "../../rest/rest.ts";
|
|
import { endpoints } from "../../util/constants.ts";
|
|
import { validateSlashCommands } from "../../util/utils.ts";
|
|
|
|
/**
|
|
* There are two kinds of Slash Commands: global commands and guild commands. Global commands are available for every guild that adds your app; guild commands are specific to the guild you specify when making them. Command names are unique per application within each scope (global and guild). That means:
|
|
*
|
|
* - Your app **cannot** have two global commands with the same name
|
|
* - Your app **cannot** have two guild commands within the same name **on the same guild**
|
|
* - Your app **can** have a global and guild command with the same name
|
|
* - Multiple apps **can** have commands with the same names
|
|
*
|
|
* Global commands are cached for **1 hour**. That means that new global commands will fan out slowly across all guilds, and will be guaranteed to be updated in an hour.
|
|
* Guild commands update **instantly**. We recommend you use guild commands for quick testing, and global commands when they're ready for public use.
|
|
*/
|
|
export async function createSlashCommand(options: CreateSlashCommandOptions) {
|
|
validateSlashCommands([options], true);
|
|
|
|
const result = await rest.runMethod(
|
|
"post",
|
|
options.guildId
|
|
? endpoints.COMMANDS_GUILD(applicationId, options.guildId)
|
|
: endpoints.COMMANDS(applicationId),
|
|
{
|
|
...options,
|
|
},
|
|
);
|
|
|
|
return result;
|
|
}
|