mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
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:
@@ -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';
|
||||||
|
|||||||
6
packages/discord.js/typings/index.d.ts
vendored
6
packages/discord.js/typings/index.d.ts
vendored
@@ -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> {
|
||||||
|
|||||||
Reference in New Issue
Block a user