feat(GuildAuditLogsEntry): onboarding events (#9726)

Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
This commit is contained in:
Almeida
2024-07-09 19:58:11 +01:00
committed by Vlad Frangu
parent c1b5242d2f
commit e133aa9a1e
2 changed files with 28 additions and 1 deletions

View File

@@ -3,6 +3,7 @@
const { DiscordSnowflake } = require('@sapphire/snowflake'); const { DiscordSnowflake } = require('@sapphire/snowflake');
const { AuditLogOptionsType, AuditLogEvent } = require('discord-api-types/v10'); const { AuditLogOptionsType, AuditLogEvent } = require('discord-api-types/v10');
const AutoModerationRule = require('./AutoModerationRule'); const AutoModerationRule = require('./AutoModerationRule');
const { GuildOnboardingPrompt } = require('./GuildOnboardingPrompt');
const { GuildScheduledEvent } = require('./GuildScheduledEvent'); const { GuildScheduledEvent } = require('./GuildScheduledEvent');
const Integration = require('./Integration'); const Integration = require('./Integration');
const Invite = require('./Invite'); const Invite = require('./Invite');
@@ -29,6 +30,8 @@ const Targets = {
Thread: 'Thread', Thread: 'Thread',
ApplicationCommand: 'ApplicationCommand', ApplicationCommand: 'ApplicationCommand',
AutoModeration: 'AutoModeration', AutoModeration: 'AutoModeration',
GuildOnboarding: 'GuildOnboarding',
GuildOnboardingPrompt: 'GuildOnboardingPrompt',
Unknown: 'Unknown', Unknown: 'Unknown',
}; };
@@ -49,10 +52,11 @@ const Targets = {
* * A thread * * A thread
* * An application command * * An application command
* * An auto moderation rule * * An auto moderation rule
* * A guild onboarding prompt
* * An object with an id key if target was deleted or fake entity * * An object with an id key if target was deleted or fake entity
* * An object where the keys represent either the new value or the old value * * An object where the keys represent either the new value or the old value
* @typedef {?(Object|Guild|BaseChannel|User|Role|Invite|Webhook|GuildEmoji|Message|Integration|StageInstance|Sticker| * @typedef {?(Object|Guild|BaseChannel|User|Role|Invite|Webhook|GuildEmoji|Message|Integration|StageInstance|Sticker|
* GuildScheduledEvent|ApplicationCommand|AutoModerationRule)} AuditLogEntryTarget * GuildScheduledEvent|ApplicationCommand|AutoModerationRule|GuildOnboardingPrompt)} AuditLogEntryTarget
*/ */
/** /**
@@ -80,6 +84,9 @@ const Targets = {
* * Thread * * Thread
* * GuildScheduledEvent * * GuildScheduledEvent
* * ApplicationCommandPermission * * ApplicationCommandPermission
* * GuildOnboarding
* * GuildOnboardingPrompt
* * Unknown
* @typedef {string} AuditLogTargetType * @typedef {string} AuditLogTargetType
*/ */
@@ -349,6 +356,13 @@ class GuildAuditLogsEntry {
changesReduce(this.changes, { id: data.target_id, guild_id: guild.id }), changesReduce(this.changes, { id: data.target_id, guild_id: guild.id }),
guild, guild,
); );
} else if (targetType === Targets.GuildOnboardingPrompt) {
this.target =
data.action_type === AuditLogEvent.OnboardingPromptCreate
? new GuildOnboardingPrompt(guild.client, changesReduce(this.changes, { id: data.target_id }), guild.id)
: changesReduce(this.changes, { id: data.target_id });
} else if (targetType === Targets.GuildOnboarding) {
this.target = changesReduce(this.changes, { id: data.target_id });
} else if (data.target_id) { } else if (data.target_id) {
this.target = guild[`${targetType.toLowerCase()}s`]?.cache.get(data.target_id) ?? { id: data.target_id }; this.target = guild[`${targetType.toLowerCase()}s`]?.cache.get(data.target_id) ?? { id: data.target_id };
} }
@@ -375,6 +389,8 @@ class GuildAuditLogsEntry {
if (target < 120) return Targets.Thread; if (target < 120) return Targets.Thread;
if (target < 130) return Targets.ApplicationCommand; if (target < 130) return Targets.ApplicationCommand;
if (target >= 140 && target < 150) return Targets.AutoModeration; if (target >= 140 && target < 150) return Targets.AutoModeration;
if (target >= 163 && target <= 165) return Targets.GuildOnboardingPrompt;
if (target >= 160 && target < 170) return Targets.GuildOnboarding;
return Targets.Unknown; return Targets.Unknown;
} }
@@ -402,6 +418,8 @@ class GuildAuditLogsEntry {
AuditLogEvent.ThreadCreate, AuditLogEvent.ThreadCreate,
AuditLogEvent.AutoModerationRuleCreate, AuditLogEvent.AutoModerationRuleCreate,
AuditLogEvent.AutoModerationBlockMessage, AuditLogEvent.AutoModerationBlockMessage,
AuditLogEvent.OnboardingPromptCreate,
AuditLogEvent.OnboardingCreate,
].includes(action) ].includes(action)
) { ) {
return 'Create'; return 'Create';
@@ -428,6 +446,7 @@ class GuildAuditLogsEntry {
AuditLogEvent.GuildScheduledEventDelete, AuditLogEvent.GuildScheduledEventDelete,
AuditLogEvent.ThreadDelete, AuditLogEvent.ThreadDelete,
AuditLogEvent.AutoModerationRuleDelete, AuditLogEvent.AutoModerationRuleDelete,
AuditLogEvent.OnboardingPromptDelete,
].includes(action) ].includes(action)
) { ) {
return 'Delete'; return 'Delete';
@@ -452,6 +471,8 @@ class GuildAuditLogsEntry {
AuditLogEvent.ThreadUpdate, AuditLogEvent.ThreadUpdate,
AuditLogEvent.ApplicationCommandPermissionUpdate, AuditLogEvent.ApplicationCommandPermissionUpdate,
AuditLogEvent.AutoModerationRuleUpdate, AuditLogEvent.AutoModerationRuleUpdate,
AuditLogEvent.OnboardingPromptUpdate,
AuditLogEvent.OnboardingUpdate,
].includes(action) ].includes(action)
) { ) {
return 'Update'; return 'Update';

View File

@@ -5784,6 +5784,11 @@ interface GuildAuditLogsTypes {
[AuditLogEvent.AutoModerationBlockMessage]: ['AutoModerationRule', 'Create']; [AuditLogEvent.AutoModerationBlockMessage]: ['AutoModerationRule', 'Create'];
[AuditLogEvent.AutoModerationFlagToChannel]: ['AutoModerationRule', 'Create']; [AuditLogEvent.AutoModerationFlagToChannel]: ['AutoModerationRule', 'Create'];
[AuditLogEvent.AutoModerationUserCommunicationDisabled]: ['AutoModerationRule', 'Create']; [AuditLogEvent.AutoModerationUserCommunicationDisabled]: ['AutoModerationRule', 'Create'];
[AuditLogEvent.OnboardingPromptCreate]: ['GuildOnboardingPrompt', 'Create'];
[AuditLogEvent.OnboardingPromptUpdate]: ['GuildOnboardingPrompt', 'Update'];
[AuditLogEvent.OnboardingPromptDelete]: ['GuildOnboardingPrompt', 'Delete'];
[AuditLogEvent.OnboardingCreate]: ['GuildOnboarding', 'Create'];
[AuditLogEvent.OnboardingUpdate]: ['GuildOnboarding', 'Update'];
} }
export type GuildAuditLogsActionType = GuildAuditLogsTypes[keyof GuildAuditLogsTypes][1] | 'All'; export type GuildAuditLogsActionType = GuildAuditLogsTypes[keyof GuildAuditLogsTypes][1] | 'All';
@@ -5848,6 +5853,7 @@ export interface GuildAuditLogsEntryTargetField<TActionType extends GuildAuditLo
GuildScheduledEvent: GuildScheduledEvent; GuildScheduledEvent: GuildScheduledEvent;
ApplicationCommand: ApplicationCommand | { id: Snowflake }; ApplicationCommand: ApplicationCommand | { id: Snowflake };
AutoModerationRule: AutoModerationRule; AutoModerationRule: AutoModerationRule;
GuildOnboardingPrompt: GuildOnboardingPrompt;
} }
export interface GuildAuditLogsFetchOptions<Event extends GuildAuditLogsResolvable> { export interface GuildAuditLogsFetchOptions<Event extends GuildAuditLogsResolvable> {