mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-11 17:13:31 +01:00
feat: add support for GuildScheduledEvent (#6493)
Co-authored-by: Rodry <38259440+ImRodry@users.noreply.github.com> Co-authored-by: Sugden <28943913+NotSugden@users.noreply.github.com> Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com> Co-authored-by: GoldenAngel <50855202+GoldenAngel2@users.noreply.github.com> Co-authored-by: Vlad Frangu <kingdgrizzle@gmail.com> Co-authored-by: Antonio Román <kyradiscord@gmail.com> Co-authored-by: SpaceEEC <spaceeec@yahoo.com>
This commit is contained in:
@@ -78,7 +78,8 @@ exports.Endpoints = {
|
||||
makeImageUrl(`${root}/role-icons/${roleId}/${hash}`, { size, format }),
|
||||
};
|
||||
},
|
||||
invite: (root, code) => `${root}/${code}`,
|
||||
invite: (root, code, eventId) => (eventId ? `${root}/${code}?event=${eventId}` : `${root}/${code}`),
|
||||
scheduledEvent: (root, guildId, eventId) => `${root}/${guildId}/${eventId}`,
|
||||
botGateway: '/gateway/bot',
|
||||
};
|
||||
|
||||
@@ -202,6 +203,11 @@ exports.Events = {
|
||||
GUILD_STICKER_CREATE: 'stickerCreate',
|
||||
GUILD_STICKER_DELETE: 'stickerDelete',
|
||||
GUILD_STICKER_UPDATE: 'stickerUpdate',
|
||||
GUILD_SCHEDULED_EVENT_CREATE: 'guildScheduledEventCreate',
|
||||
GUILD_SCHEDULED_EVENT_UPDATE: 'guildScheduledEventUpdate',
|
||||
GUILD_SCHEDULED_EVENT_DELETE: 'guildScheduledEventDelete',
|
||||
GUILD_SCHEDULED_EVENT_USER_ADD: 'guildScheduledEventUserAdd',
|
||||
GUILD_SCHEDULED_EVENT_USER_REMOVE: 'guildScheduledEventUserRemove',
|
||||
};
|
||||
|
||||
exports.ShardEvents = {
|
||||
@@ -220,11 +226,12 @@ exports.ShardEvents = {
|
||||
* * GUILD_MEMBER
|
||||
* * MESSAGE
|
||||
* * REACTION
|
||||
* * GUILD_SCHEDULED_EVENT
|
||||
* <warn>Partials require you to put checks in place when handling data. See the "Partial Structures" topic on the
|
||||
* [guide](https://discordjs.guide/popular-topics/partials.html) for more information.</warn>
|
||||
* @typedef {string} PartialType
|
||||
*/
|
||||
exports.PartialTypes = keyMirror(['USER', 'CHANNEL', 'GUILD_MEMBER', 'MESSAGE', 'REACTION']);
|
||||
exports.PartialTypes = keyMirror(['USER', 'CHANNEL', 'GUILD_MEMBER', 'MESSAGE', 'REACTION', 'GUILD_SCHEDULED_EVENT']);
|
||||
|
||||
/**
|
||||
* The type of a WebSocket message event, e.g. `MESSAGE_CREATE`. Here are the available events:
|
||||
@@ -278,6 +285,11 @@ exports.PartialTypes = keyMirror(['USER', 'CHANNEL', 'GUILD_MEMBER', 'MESSAGE',
|
||||
* * STAGE_INSTANCE_UPDATE
|
||||
* * STAGE_INSTANCE_DELETE
|
||||
* * GUILD_STICKERS_UPDATE
|
||||
* * GUILD_SCHEDULED_EVENT_CREATE
|
||||
* * GUILD_SCHEDULED_EVENT_UPDATE
|
||||
* * GUILD_SCHEDULED_EVENT_DELETE
|
||||
* * GUILD_SCHEDULED_EVENT_USER_ADD
|
||||
* * GUILD_SCHEDULED_EVENT_USER_REMOVE
|
||||
* @typedef {string} WSEventType
|
||||
* @see {@link https://discord.com/developers/docs/topics/gateway#commands-and-events-gateway-events}
|
||||
*/
|
||||
@@ -332,6 +344,11 @@ exports.WSEvents = keyMirror([
|
||||
'STAGE_INSTANCE_UPDATE',
|
||||
'STAGE_INSTANCE_DELETE',
|
||||
'GUILD_STICKERS_UPDATE',
|
||||
'GUILD_SCHEDULED_EVENT_CREATE',
|
||||
'GUILD_SCHEDULED_EVENT_UPDATE',
|
||||
'GUILD_SCHEDULED_EVENT_DELETE',
|
||||
'GUILD_SCHEDULED_EVENT_USER_ADD',
|
||||
'GUILD_SCHEDULED_EVENT_USER_REMOVE',
|
||||
]);
|
||||
|
||||
/**
|
||||
@@ -705,6 +722,7 @@ exports.VerificationLevels = createEnum(['NONE', 'LOW', 'MEDIUM', 'HIGH', 'VERY_
|
||||
* * MAXIMUM_THREAD_PARTICIPANTS
|
||||
* * MAXIMUM_NON_GUILD_MEMBERS_BANS
|
||||
* * MAXIMUM_BAN_FETCHES
|
||||
* * MAXIMUM_NUMBER_OF_UNCOMPLETED_GUILD_SCHEDULED_EVENTS_REACHED
|
||||
* * MAXIMUM_NUMBER_OF_STICKERS_REACHED
|
||||
* * MAXIMUM_PRUNE_REQUESTS
|
||||
* * MAXIMUM_GUILD_WIDGET_SETTINGS_UPDATE
|
||||
@@ -776,6 +794,8 @@ exports.VerificationLevels = createEnum(['NONE', 'LOW', 'MEDIUM', 'HIGH', 'VERY_
|
||||
* * LOTTIE_ANIMATION_MAXIMUM_DIMENSIONS_EXCEEDED
|
||||
* * STICKER_FRAME_RATE_IS_TOO_SMALL_OR_TOO_LARGE
|
||||
* * STICKER_ANIMATION_DURATION_EXCEEDS_MAXIMUM_OF_5_SECONDS
|
||||
* * CANNOT_UPDATE_A_FINISHED_EVENT
|
||||
* * FAILED_TO_CREATE_STAGE_NEEDED_FOR_STAGE_EVENT
|
||||
* @typedef {string} APIError
|
||||
* @see {@link https://discord.com/developers/docs/topics/opcodes-and-status-codes#json-json-error-codes}
|
||||
*/
|
||||
@@ -849,6 +869,7 @@ exports.APIErrors = {
|
||||
MAXIMUM_THREAD_PARTICIPANTS: 30033,
|
||||
MAXIMUM_NON_GUILD_MEMBERS_BANS: 30035,
|
||||
MAXIMUM_BAN_FETCHES: 30037,
|
||||
MAXIMUM_NUMBER_OF_UNCOMPLETED_GUILD_SCHEDULED_EVENTS_REACHED: 30038,
|
||||
MAXIMUM_NUMBER_OF_STICKERS_REACHED: 30039,
|
||||
MAXIMUM_PRUNE_REQUESTS: 30040,
|
||||
MAXIMUM_GUILD_WIDGET_SETTINGS_UPDATE: 30042,
|
||||
@@ -920,6 +941,8 @@ exports.APIErrors = {
|
||||
LOTTIE_ANIMATION_MAXIMUM_DIMENSIONS_EXCEEDED: 170005,
|
||||
STICKER_FRAME_RATE_IS_TOO_SMALL_OR_TOO_LARGE: 170006,
|
||||
STICKER_ANIMATION_DURATION_EXCEEDS_MAXIMUM_OF_5_SECONDS: 170007,
|
||||
CANNOT_UPDATE_A_FINISHED_EVENT: 180000,
|
||||
FAILED_TO_CREATE_STAGE_NEEDED_FOR_STAGE_EVENT: 180002,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1066,7 +1089,6 @@ exports.InteractionResponseTypes = createEnum([
|
||||
'UPDATE_MESSAGE',
|
||||
'APPLICATION_COMMAND_AUTOCOMPLETE_RESULT',
|
||||
]);
|
||||
/* eslint-enable max-len */
|
||||
|
||||
/**
|
||||
* The type of a message component
|
||||
@@ -1119,6 +1141,14 @@ exports.NSFWLevels = createEnum(['DEFAULT', 'EXPLICIT', 'SAFE', 'AGE_RESTRICTED'
|
||||
*/
|
||||
exports.PrivacyLevels = createEnum([null, 'PUBLIC', 'GUILD_ONLY']);
|
||||
|
||||
/**
|
||||
* Privacy level of a {@link GuildScheduledEvent} object:
|
||||
* * GUILD_ONLY
|
||||
* @typedef {string} GuildScheduledEventPrivacyLevel
|
||||
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-privacy-level}
|
||||
*/
|
||||
exports.GuildScheduledEventPrivacyLevels = createEnum([null, null, 'GUILD_ONLY']);
|
||||
|
||||
/**
|
||||
* The premium tier (Server Boost level) of a guild:
|
||||
* * NONE
|
||||
@@ -1130,6 +1160,29 @@ exports.PrivacyLevels = createEnum([null, 'PUBLIC', 'GUILD_ONLY']);
|
||||
*/
|
||||
exports.PremiumTiers = createEnum(['NONE', 'TIER_1', 'TIER_2', 'TIER_3']);
|
||||
|
||||
/**
|
||||
* The status of a {@link GuildScheduledEvent}:
|
||||
* * SCHEDULED
|
||||
* * ACTIVE
|
||||
* * COMPLETED
|
||||
* * CANCELED
|
||||
* @typedef {string} GuildScheduledEventStatus
|
||||
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-status}
|
||||
*/
|
||||
exports.GuildScheduledEventStatuses = createEnum([null, 'SCHEDULED', 'ACTIVE', 'COMPLETED', 'CANCELED']);
|
||||
|
||||
/**
|
||||
* The entity type of a {@link GuildScheduledEvent}:
|
||||
* * NONE
|
||||
* * STAGE_INSTANCE
|
||||
* * VOICE
|
||||
* * EXTERNAL
|
||||
* @typedef {string} GuildScheduledEventEntityType
|
||||
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-types}
|
||||
*/
|
||||
exports.GuildScheduledEventEntityTypes = createEnum([null, 'STAGE_INSTANCE', 'VOICE', 'EXTERNAL']);
|
||||
/* eslint-enable max-len */
|
||||
|
||||
exports._cleanupSymbol = Symbol('djsCleanup');
|
||||
|
||||
function keyMirror(arr) {
|
||||
@@ -1161,6 +1214,11 @@ function createEnum(keys) {
|
||||
* The value set for a guild's default message notifications.
|
||||
* @property {ExplicitContentFilterLevel} ExplicitContentFilterLevels
|
||||
* The value set for the explicit content filter levels for a guild.
|
||||
* @property {GuildScheduledEventStatus} GuildScheduledEventStatuses The status of a {@link GuildScheduledEvent} object.
|
||||
* @property {GuildScheduledEventEntityType} GuildScheduledEventEntityTypes The entity type of a
|
||||
* {@link GuildScheduledEvent} object.
|
||||
* @property {GuildScheduledEventPrivacyLevel} GuildScheduledEventPrivacyLevels Privacy level of a
|
||||
* {@link GuildScheduledEvent} object.
|
||||
* @property {InteractionResponseType} InteractionResponseTypes The type of an interaction response.
|
||||
* @property {InteractionType} InteractionTypes The type of an {@link Interaction} object.
|
||||
* @property {MembershipState} MembershipStates The value set for a team member's membership state.
|
||||
|
||||
@@ -40,6 +40,7 @@ class Intents extends BitField {}
|
||||
* * `DIRECT_MESSAGES`
|
||||
* * `DIRECT_MESSAGE_REACTIONS`
|
||||
* * `DIRECT_MESSAGE_TYPING`
|
||||
* * `GUILD_SCHEDULED_EVENTS`
|
||||
* @type {Object}
|
||||
* @see {@link https://discord.com/developers/docs/topics/gateway#list-of-intents}
|
||||
*/
|
||||
@@ -59,6 +60,7 @@ Intents.FLAGS = {
|
||||
DIRECT_MESSAGES: 1 << 12,
|
||||
DIRECT_MESSAGE_REACTIONS: 1 << 13,
|
||||
DIRECT_MESSAGE_TYPING: 1 << 14,
|
||||
GUILD_SCHEDULED_EVENTS: 1 << 16,
|
||||
};
|
||||
|
||||
module.exports = Intents;
|
||||
|
||||
@@ -115,6 +115,7 @@
|
||||
* @property {string} [invite='https://discord.gg'] Base URL of invites
|
||||
* @property {string} [template='https://discord.new'] Base URL of templates
|
||||
* @property {Object} [headers] Additional headers to send for all API requests
|
||||
* @property {string} [scheduledEvent='https://discord.com/events'] Base URL of guild scheduled events
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -160,6 +161,7 @@ class Options extends null {
|
||||
cdn: 'https://cdn.discordapp.com',
|
||||
invite: 'https://discord.gg',
|
||||
template: 'https://discord.new',
|
||||
scheduledEvent: 'https://discord.com/events',
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
@@ -90,6 +90,7 @@ class Permissions extends BitField {
|
||||
* * `MANAGE_EMOJIS_AND_STICKERS`
|
||||
* * `USE_APPLICATION_COMMANDS`
|
||||
* * `REQUEST_TO_SPEAK`
|
||||
* * `MANAGE_EVENTS`
|
||||
* * `MANAGE_THREADS`
|
||||
* * `USE_PUBLIC_THREADS` (deprecated)
|
||||
* * `CREATE_PUBLIC_THREADS`
|
||||
@@ -136,6 +137,7 @@ Permissions.FLAGS = {
|
||||
MANAGE_EMOJIS_AND_STICKERS: 1n << 30n,
|
||||
USE_APPLICATION_COMMANDS: 1n << 31n,
|
||||
REQUEST_TO_SPEAK: 1n << 32n,
|
||||
MANAGE_EVENTS: 1n << 33n,
|
||||
MANAGE_THREADS: 1n << 34n,
|
||||
// TODO: Remove deprecated USE_*_THREADS flags in v14
|
||||
USE_PUBLIC_THREADS: 1n << 35n,
|
||||
|
||||
Reference in New Issue
Block a user