From 67dd30a28a5ea83cf2aa81fe0d87f441ed74a17a Mon Sep 17 00:00:00 2001 From: Jaw0r3k Date: Sat, 12 Aug 2023 14:34:25 +0200 Subject: [PATCH] feat(Client): add guildAvailable event (#9692) Co-authored-by: Kyranet --- src/client/websocket/handlers/GUILD_CREATE.js | 7 +++++++ src/util/Constants.js | 2 ++ typings/index.d.ts | 2 ++ 3 files changed, 11 insertions(+) diff --git a/src/client/websocket/handlers/GUILD_CREATE.js b/src/client/websocket/handlers/GUILD_CREATE.js index acff7c285..5ba66a1b7 100644 --- a/src/client/websocket/handlers/GUILD_CREATE.js +++ b/src/client/websocket/handlers/GUILD_CREATE.js @@ -8,6 +8,13 @@ module.exports = (client, { d: data }, shard) => { if (!guild.available && !data.unavailable) { // A newly available guild guild._patch(data); + + /** + * Emitted whenever a guild becomes available. + * @event Client#guildAvailable + * @param {Guild} guild The guild that became available + */ + client.emit(Events.GUILD_AVAILABLE, guild); } } else { // A new guild diff --git a/src/util/Constants.js b/src/util/Constants.js index 5a293dcfa..ec94567d9 100644 --- a/src/util/Constants.js +++ b/src/util/Constants.js @@ -183,6 +183,7 @@ exports.Opcodes = { * * AUTO_MODERATION_RULE_CREATE: autoModerationRuleCreate * * AUTO_MODERATION_RULE_DELETE: autoModerationRuleDelete * * AUTO_MODERATION_RULE_UPDATE: autoModerationRuleUpdate + * * GUILD_AVAILABLE: guildAvailable * * GUILD_CREATE: guildCreate * * GUILD_DELETE: guildDelete * * GUILD_UPDATE: guildUpdate @@ -267,6 +268,7 @@ exports.Events = { AUTO_MODERATION_RULE_CREATE: 'autoModerationRuleCreate', AUTO_MODERATION_RULE_DELETE: 'autoModerationRuleDelete', AUTO_MODERATION_RULE_UPDATE: 'autoModerationRuleUpdate', + GUILD_AVAILABLE: 'guildAvailable', GUILD_CREATE: 'guildCreate', GUILD_DELETE: 'guildDelete', GUILD_UPDATE: 'guildUpdate', diff --git a/typings/index.d.ts b/typings/index.d.ts index 4a9ecf137..6cb46a742 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -4604,6 +4604,7 @@ export interface ClientEvents extends BaseClientEvents { emojiDelete: [emoji: GuildEmoji]; emojiUpdate: [oldEmoji: GuildEmoji, newEmoji: GuildEmoji]; error: [error: Error]; + guildAvailable: [guild: Guild]; guildBanAdd: [ban: GuildBan]; guildBanRemove: [ban: GuildBan]; guildCreate: [guild: Guild]; @@ -4870,6 +4871,7 @@ export interface ConstantsEvents { AUTO_MODERATION_RULE_CREATE: 'autoModerationRuleCreate'; AUTO_MODERATION_RULE_DELETE: 'autoModerationRuleDelete'; AUTO_MODERATION_RULE_UPDATE: 'autoModerationRuleUpdate'; + GUILD_AVAILABLE: 'guildAvailable'; GUILD_CREATE: 'guildCreate'; GUILD_DELETE: 'guildDelete'; GUILD_UPDATE: 'guildUpdate';