From 9eb9e780e0f6bbec0efbcf7a883c1969e363de98 Mon Sep 17 00:00:00 2001 From: TTtie Date: Fri, 5 Jul 2024 16:50:48 +0200 Subject: [PATCH] feat: update API constants (#133) * feat(Constants): update audit log event constants Ref: https://github.com/discord/discord-api-docs/commit/43b3e976 * feat(Constants): add incident action message types Ref: https://github.com/discord/discord-api-docs/commit/e5cd463c Ref: https://github.com/discord/discord-api-docs/commit/174c1a18 * feat(Constants): add `useExternalApps` and `sendPolls` permissions Ref: https://github.com/discord/discord-api-docs/commit/f0924402 Ref: https://github.com/discord/discord-api-docs/commit/df7d3652 * feat(Constants): add poll-related intents Ref: https://github.com/discord/discord-api-docs/commit/df7d3652 * feat(Constants): update automod-related constants Ref: https://github.com/discord/discord-api-docs/commit/60a711d8 * feat(Message): transform message content for new special message types * chore(Message): fall back to "an unknown product" if the data isn't present --- index.d.ts | 45 ++++++++++++++++++++++++++----------- lib/Constants.js | 47 +++++++++++++++++++++++++++++---------- lib/structures/Message.js | 22 ++++++++++++++++++ 3 files changed, 89 insertions(+), 25 deletions(-) diff --git a/index.d.ts b/index.d.ts index c5dce204..debf8749 100644 --- a/index.d.ts +++ b/index.d.ts @@ -316,9 +316,9 @@ declare namespace Dysnomia { } interface AutoModerationTriggerMetadata { - /** valid for KEYWORD */ + /** valid for KEYWORD, KEYWORD_PRESET, MEMBER_PROFILE */ allow_list: string[]; - /** valid for KEYWORD */ + /** valid for KEYWORD, MEMBER_PROFILE */ keyword_filter: string[]; /** valid for MENTION_SPAM */ mention_total_limit: number; @@ -326,7 +326,7 @@ declare namespace Dysnomia { mention_raid_protection_enabled: boolean; /** valid for KEYWORD_PRESET */ presets: AutoModerationKeywordPresetType[]; - /** valid for KEYWORD */ + /** valid for KEYWORD, MEMBER_PROFILE */ regex_patterns: string[]; } // Channel @@ -1971,16 +1971,25 @@ declare namespace Dysnomia { ROLE_PROMPT_UPDATE: 161; ROLE_PROMPT_DELETE: 162; - GUILD_HOME_FEATURE_ITEM: 171; - GUILD_HOME_REMOVE_ITEM: 172; + ONBOARDING_PROMPT_CREATE: 163; + ONBOARDING_PROMPT_UPDATE: 164; + ONBOARDING_PROMPT_DELETE: 165; + + ONBOARDING_CREATE: 166; + ONBOARDING_UPDATE: 167; + + HOME_SETTINGS_CREATE: 190; + HOME_SETTINGS_UPDATE: 191; }; AutoModerationActionTypes: { - BLOCK_MESSAGE: 1; - SEND_ALERT_MESSAGE: 2; - TIMEOUT: 3; + BLOCK_MESSAGE: 1; + SEND_ALERT_MESSAGE: 2; + TIMEOUT: 3; + BLOCK_MEMBER_INTERACTION: 4; }; AutoModerationEventTypes: { - MESSAGE_SEND: 1; + MESSAGE_SEND: 1; + MEMBER_UPDATE: 2; }; AutoModerationKeywordPresetTypes: { PROFANITY: 1; @@ -1992,6 +2001,7 @@ declare namespace Dysnomia { SPAM: 3; KEYWORD_PRESET: 4; MENTION_SPAM: 5; + MEMBER_PROFILE: 6; }; ButtonStyles: { PRIMARY: 1; @@ -2141,9 +2151,11 @@ declare namespace Dysnomia { guildScheduledEvents: 65536; autoModerationConfiguration: 1048576; autoModerationExecution: 2097152; - allNonPrivileged: 3243773; + guildMessagePolls: 16777216; + directMessagePolls: 33554432; + allNonPrivileged: 53575417; allPrivileged: 33026; - all: 3276799; + all: 53608443; }; InteractionResponseTypes: { PONG: 1; @@ -2231,6 +2243,11 @@ declare namespace Dysnomia { STAGE_SPEAKER: 29; STAGE_TOPIC: 31; GUILD_APPLICATION_PREMIUM_SUBSCRIPTION: 32; + GUILD_INCIDENT_ALERT_MODE_ENABLED: 36; + GUILD_INCIDENT_ALERT_MODE_DISABLED: 37; + GUILD_INCIDENT_REPORT_RAID: 38; + GUILD_INCIDENT_REPORT_FALSE_ALARM: 39; + PURCHASE_NOTIFICATION: 44; }; MembershipState: { INVITED: 1; @@ -2298,10 +2315,12 @@ declare namespace Dysnomia { useExternalSounds: 35184372088832n; useSoundboard: 4398046511104n; sendVoiceMessages: 70368744177664n; + sendPolls: 562949953421312n; + useExternalApps: 1125899906842624n; allGuild: 29697484783806n; - allText: 70904273435729n; + allText: 1759754133699665n; allVoice: 40136803878673n; - all: 140737488355327n; + all: 1829587348619263n; }; PremiumTiers: { NONE: 0; diff --git a/lib/Constants.js b/lib/Constants.js index af081202..7be1a249 100644 --- a/lib/Constants.js +++ b/lib/Constants.js @@ -144,18 +144,27 @@ module.exports.AuditLogActions = { ROLE_PROMPT_UPDATE: 161, ROLE_PROMPT_DELETE: 162, - GUILD_HOME_FEATURE_ITEM: 171, - GUILD_HOME_REMOVE_ITEM: 172 + ONBOARDING_PROMPT_CREATE: 163, + ONBOARDING_PROMPT_UPDATE: 164, + ONBOARDING_PROMPT_DELETE: 165, + + ONBOARDING_CREATE: 166, + ONBOARDING_UPDATE: 167, + + HOME_SETTINGS_CREATE: 190, + HOME_SETTINGS_UPDATE: 191 }; module.exports.AutoModerationActionTypes = { - BLOCK_MESSAGE: 1, - SEND_ALERT_MESSAGE: 2, - TIMEOUT: 3 + BLOCK_MESSAGE: 1, + SEND_ALERT_MESSAGE: 2, + TIMEOUT: 3, + BLOCK_MEMBER_INTERACTION: 4 }; module.exports.AutoModerationEventTypes = { - MESSAGE_SEND: 1 + MESSAGE_SEND: 1, + MEMBER_UPDATE: 2 }; module.exports.AutoModerationKeywordPresetTypes = { @@ -168,7 +177,8 @@ module.exports.AutoModerationTriggerTypes = { KEYWORD: 1, SPAM: 3, KEYWORD_PRESET: 4, - MENTION_SPAM: 5 + MENTION_SPAM: 5, + MEMBER_PROFILE: 6 }; module.exports.ButtonStyles = { @@ -330,7 +340,9 @@ const Intents = { messageContent: 1 << 15, guildScheduledEvents: 1 << 16, autoModerationConfiguration: 1 << 20, - autoModerationExecution: 1 << 21 + autoModerationExecution: 1 << 21, + guildMessagePolls: 1 << 24, + directMessagePolls: 1 << 25 }; Intents.allNonPrivileged = Intents.guilds @@ -348,7 +360,9 @@ Intents.allNonPrivileged = Intents.guilds | Intents.directMessageTyping | Intents.guildScheduledEvents | Intents.autoModerationConfiguration - | Intents.autoModerationExecution; + | Intents.autoModerationExecution + | Intents.guildMessagePolls + | Intents.directMessagePolls; Intents.allPrivileged = Intents.guildMembers | Intents.guildPresences | Intents.messageContent; @@ -448,7 +462,12 @@ module.exports.MessageTypes = { STAGE_END: 28, STAGE_SPEAKER: 29, STAGE_TOPIC: 31, - GUILD_APPLICATION_PREMIUM_SUBSCRIPTION: 32 + GUILD_APPLICATION_PREMIUM_SUBSCRIPTION: 32, + GUILD_INCIDENT_ALERT_MODE_ENABLED: 36, + GUILD_INCIDENT_ALERT_MODE_DISABLED: 37, + GUILD_INCIDENT_REPORT_RAID: 38, + GUILD_INCIDENT_REPORT_FALSE_ALARM: 39, + PURCHASE_NOTIFICATION: 44 }; module.exports.MembershipState = { @@ -518,7 +537,9 @@ const Permissions = { createGuildExpressions: 1n << 43n, createEvents: 1n << 44n, useExternalSounds: 1n << 45n, - sendVoiceMessages: 1n << 46n + sendVoiceMessages: 1n << 46n, + sendPolls: 1n << 49n, + useExternalApps: 1n << 50n }; Permissions.allGuild = Permissions.kickMembers | Permissions.banMembers @@ -557,7 +578,9 @@ Permissions.allText = Permissions.createInstantInvite | Permissions.createPrivateThreads | Permissions.useExternalStickers | Permissions.sendMessagesInThreads - | Permissions.sendVoiceMessages; + | Permissions.sendVoiceMessages + | Permissions.sendPolls + | Permissions.useExternalApps; Permissions.allVoice = Permissions.createInstantInvite | Permissions.manageChannels | Permissions.voicePrioritySpeaker diff --git a/lib/structures/Message.js b/lib/structures/Message.js index d58b5f05..349c3ba0 100644 --- a/lib/structures/Message.js +++ b/lib/structures/Message.js @@ -304,6 +304,28 @@ class Message extends Base { break; } case MessageTypes.GUILD_APPLICATION_PREMIUM_SUBSCRIPTION: { + data.content = `${this.author.mention} upgraded **${data.application?.name ?? data.application?.id ?? "a deleted application"}** to premium for this server! 🎉`; + break; + } + case MessageTypes.GUILD_INCIDENT_ALERT_MODE_ENABLED: { + data.content = `${this.author.mention} enabled security actions until **${data.content}**.`; + break; + } + case MessageTypes.GUILD_INCIDENT_ALERT_MODE_DISABLED: { + data.content = `${this.author.mention} disabled security actions.`; + break; + } + case MessageTypes.GUILD_INCIDENT_REPORT_RAID: { + data.content = `${this.author.mention} reported a raid in **${this.channel.guild?.name ?? data.guild_id}**.`; + break; + } + case MessageTypes.GUILD_INCIDENT_REPORT_FALSE_ALARM: { + data.content = `${this.author.mention} resolved an Activity Alert.`; + break; + } + case MessageTypes.PURCHASE_NOTIFICATION: { + // WARN: `purchase_notification` is documented only in the OpenAPI spec + data.content = `${this.author.mention} has purchased **${data.purchase_notification?.guild_product_purchase?.product_name ?? "an unknown product"}**!`; break; } default: {