mirror of
https://github.com/discordeno/discordeno.git
synced 2026-06-03 09:20:08 +00:00
* p1 of bigints change * shtuff fixes and bits * Commit from GitHub Actions (Lint) * finish bigint structs * typings fixes * Commit from GitHub Actions (Lint) * more fixes * Commit from GitHub Actions (Lint) * more fixes * Commit from GitHub Actions (Lint) * blame wolf * Commit from GitHub Actions (Lint) * foxed * Commit from GitHub Actions (Lint) * fix unit tests * Commit from GitHub Actions (Lint) * change: guildUpdate guild ID can't change * delete server has been renamed to delete guild * fixes Co-authored-by: Skillz4Killz <Skillz4Killz@users.noreply.github.com> Co-authored-by: ITOH <72305210+itohatweb@users.noreply.github.com>
36 lines
1.7 KiB
TypeScript
36 lines
1.7 KiB
TypeScript
import { applicationId } from "../../bot.ts";
|
|
import { rest } from "../../rest/rest.ts";
|
|
import { CreateGlobalApplicationCommand } from "../../types/interactions/create_global_application_command.ts";
|
|
import { ApplicationCommand } from "../../types/mod.ts";
|
|
import { endpoints } from "../../util/constants.ts";
|
|
import {
|
|
camelKeysToSnakeCase,
|
|
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: CreateGlobalApplicationCommand,
|
|
guildId?: bigint,
|
|
) {
|
|
validateSlashCommands([options], true);
|
|
|
|
return await rest.runMethod<ApplicationCommand>(
|
|
"post",
|
|
guildId
|
|
? endpoints.COMMANDS_GUILD(applicationId, guildId)
|
|
: endpoints.COMMANDS(applicationId),
|
|
camelKeysToSnakeCase(options),
|
|
);
|
|
}
|