Skip to content

Commit

Permalink
feat(GuildAuditLogsEntry): onboarding events
Browse files Browse the repository at this point in the history
  • Loading branch information
almeidx committed Nov 16, 2023
1 parent 6df233d commit d75c45a
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 1 deletion.
27 changes: 26 additions & 1 deletion packages/discord.js/src/structures/GuildAuditLogsEntry.js
Expand Up @@ -3,6 +3,7 @@
const { DiscordSnowflake } = require('@sapphire/snowflake');
const { AuditLogOptionsType, AuditLogEvent } = require('discord-api-types/v10');
const AutoModerationRule = require('./AutoModerationRule');
const { GuildOnboardingPrompt } = require('./GuildOnboardingPrompt.js');
const { GuildScheduledEvent } = require('./GuildScheduledEvent');
const Integration = require('./Integration');
const Invite = require('./Invite');
Expand All @@ -29,6 +30,8 @@ const Targets = {
Thread: 'Thread',
ApplicationCommand: 'ApplicationCommand',
AutoModeration: 'AutoModeration',
GuildOnboarding: 'GuildOnboarding',
GuildOnboardingPrompt: 'GuildOnboardingPrompt',
Unknown: 'Unknown',
};

Expand All @@ -49,10 +52,11 @@ const Targets = {
* * A thread
* * An application command
* * An auto moderation rule
* * A guild onboarding prompt
* * 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
* @typedef {?(Object|Guild|BaseChannel|User|Role|Invite|Webhook|GuildEmoji|Message|Integration|StageInstance|Sticker|
* GuildScheduledEvent|ApplicationCommand|AutoModerationRule)} AuditLogEntryTarget
* GuildScheduledEvent|ApplicationCommand|AutoModerationRule|GuildOnboarding|GuildOnboardingPrompt)} AuditLogEntryTarget
*/

/**
Expand Down Expand Up @@ -80,6 +84,7 @@ const Targets = {
* * Thread
* * GuildScheduledEvent
* * ApplicationCommandPermission
* * GuildOnboardingPrompt
* @typedef {string} AuditLogTargetType
*/

Expand Down Expand Up @@ -349,6 +354,14 @@ class GuildAuditLogsEntry {
changesReduce(this.changes, { id: data.target_id, guild_id: guild.id }),
guild,
);
} else if (targetType === Targets.GuildOnboardingPrompt) {
this.target = new GuildOnboardingPrompt(
guild.client,
changesReduce(this.changes, { id: data.target_id }),
guild.id,
);
} else if (targetType === Targets.GuildOnboarding) {
this.target = changesReduce(this.changes, { id: data.target_id });
} else if (data.target_id) {
this.target = guild[`${targetType.toLowerCase()}s`]?.cache.get(data.target_id) ?? { id: data.target_id };
}
Expand All @@ -375,6 +388,8 @@ class GuildAuditLogsEntry {
if (target < 120) return Targets.Thread;
if (target < 130) return Targets.ApplicationCommand;
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;
}

Expand Down Expand Up @@ -402,6 +417,10 @@ class GuildAuditLogsEntry {
AuditLogEvent.ThreadCreate,
AuditLogEvent.AutoModerationRuleCreate,
AuditLogEvent.AutoModerationBlockMessage,
// AuditLogEvent.OnboardingQuestionCreate,
// AuditLogEvent.OnboardingCreate,
163,
166,
].includes(action)
) {
return 'Create';
Expand All @@ -428,6 +447,8 @@ class GuildAuditLogsEntry {
AuditLogEvent.GuildScheduledEventDelete,
AuditLogEvent.ThreadDelete,
AuditLogEvent.AutoModerationRuleDelete,
// AuditLogEvent.OnboardingQuestionDelete,
165,
].includes(action)
) {
return 'Delete';
Expand All @@ -452,6 +473,10 @@ class GuildAuditLogsEntry {
AuditLogEvent.ThreadUpdate,
AuditLogEvent.ApplicationCommandPermissionUpdate,
AuditLogEvent.AutoModerationRuleUpdate,
// AuditLogEvent.OnboardingQuestionUpdate,
// AuditLogEvent.OnboardingUpdate,
164,
167,
].includes(action)
) {
return 'Update';
Expand Down
6 changes: 6 additions & 0 deletions packages/discord.js/typings/index.d.ts
Expand Up @@ -5519,6 +5519,11 @@ interface GuildAuditLogsTypes {
[AuditLogEvent.AutoModerationBlockMessage]: ['AutoModerationRule', 'Create'];
[AuditLogEvent.AutoModerationFlagToChannel]: ['AutoModerationRule', 'Create'];
[AuditLogEvent.AutoModerationUserCommunicationDisabled]: ['AutoModerationRule', 'Create'];
[163]: ['GuildOnboardingPrompt', 'Create'];
[164]: ['GuildOnboardingPrompt', 'Update'];
[165]: ['GuildOnboardingPrompt', 'Delete'];
[166]: ['GuildOnboarding', 'Create'];
[167]: ['GuildOnboarding', 'Update'];
}

export type GuildAuditLogsActionType = GuildAuditLogsTypes[keyof GuildAuditLogsTypes][1] | 'All';
Expand Down Expand Up @@ -5583,6 +5588,7 @@ export interface GuildAuditLogsEntryTargetField<TActionType extends GuildAuditLo
GuildScheduledEvent: GuildScheduledEvent;
ApplicationCommand: ApplicationCommand | { id: Snowflake };
AutoModerationRule: AutoModerationRule;
GuildOnboardingPrompt: GuildOnboardingPrompt;
}

export interface GuildAuditLogsFetchOptions<Event extends GuildAuditLogsResolvable> {
Expand Down

0 comments on commit d75c45a

Please sign in to comment.