feat: v13 applicationCommandPermissionsUpdate
event
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
'use strict';
|
||||
|
||||
const { Collection } = require('@discordjs/collection');
|
||||
const ApplicationCommand = require('./ApplicationCommand');
|
||||
const AutoModerationRule = require('./AutoModerationRule');
|
||||
const { GuildScheduledEvent } = require('./GuildScheduledEvent');
|
||||
const Integration = require('./Integration');
|
||||
@@ -27,6 +28,7 @@ const Util = require('../util/Util');
|
||||
* * STICKER
|
||||
* * THREAD
|
||||
* * GUILD_SCHEDULED_EVENT
|
||||
* * APPLICATION_COMMAND
|
||||
* * AUTO_MODERATION
|
||||
* @typedef {string} AuditLogTargetType
|
||||
*/
|
||||
@@ -51,6 +53,7 @@ const Targets = {
|
||||
STAGE_INSTANCE: 'STAGE_INSTANCE',
|
||||
STICKER: 'STICKER',
|
||||
THREAD: 'THREAD',
|
||||
APPLICATION_COMMAND: 'APPLICATION_COMMAND',
|
||||
AUTO_MODERATION: 'AUTO_MODERATION',
|
||||
UNKNOWN: 'UNKNOWN',
|
||||
};
|
||||
@@ -105,6 +108,7 @@ const Targets = {
|
||||
* * THREAD_CREATE: 110
|
||||
* * THREAD_UPDATE: 111
|
||||
* * THREAD_DELETE: 112
|
||||
* * APPLICATION_COMMAND_PERMISSION_UPDATE: 121
|
||||
* * AUTO_MODERATION_RULE_CREATE: 140
|
||||
* * AUTO_MODERATION_RULE_UPDATE: 141
|
||||
* * AUTO_MODERATION_RULE_DELETE: 142
|
||||
@@ -169,6 +173,7 @@ const Actions = {
|
||||
THREAD_CREATE: 110,
|
||||
THREAD_UPDATE: 111,
|
||||
THREAD_DELETE: 112,
|
||||
APPLICATION_COMMAND_PERMISSION_UPDATE: 121,
|
||||
AUTO_MODERATION_RULE_CREATE: 140,
|
||||
AUTO_MODERATION_RULE_UPDATE: 141,
|
||||
AUTO_MODERATION_RULE_DELETE: 142,
|
||||
@@ -208,6 +213,18 @@ class GuildAuditLogs {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Cached application commands, includes application commands from other applications
|
||||
* @type {Collection<Snowflake, ApplicationCommand>}
|
||||
* @private
|
||||
*/
|
||||
this.applicationCommands = new Collection();
|
||||
if (data.application_commands) {
|
||||
for (const command of data.application_commands) {
|
||||
this.applicationCommands.set(command.id, new ApplicationCommand(guild.client, command, guild));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Cached auto moderation rules.
|
||||
* @type {Collection<Snowflake, AutoModerationRule>}
|
||||
@@ -255,11 +272,12 @@ class GuildAuditLogs {
|
||||
* * A sticker
|
||||
* * A guild scheduled event
|
||||
* * A thread
|
||||
* * An application command
|
||||
* * An auto moderation rule
|
||||
* * An object with an id key if target was deleted
|
||||
* * An object where the keys represent either the new value or the old value
|
||||
* @typedef {?(Object|Guild|Channel|User|Role|Invite|Webhook|GuildEmoji|Message|Integration|StageInstance|Sticker|
|
||||
* GuildScheduledEvent|AutoModerationRule)} AuditLogEntryTarget
|
||||
* GuildScheduledEvent|ApplicationCommand|AutoModerationRule)} AuditLogEntryTarget
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -281,6 +299,7 @@ class GuildAuditLogs {
|
||||
if (target < 100) return Targets.STICKER;
|
||||
if (target < 110) return Targets.GUILD_SCHEDULED_EVENT;
|
||||
if (target < 120) return Targets.THREAD;
|
||||
if (target < 130) return Targets.APPLICATION_COMMAND;
|
||||
if (target >= 140 && target < 150) return Targets.AUTO_MODERATION;
|
||||
return Targets.UNKNOWN;
|
||||
}
|
||||
@@ -366,6 +385,7 @@ class GuildAuditLogs {
|
||||
Actions.STICKER_UPDATE,
|
||||
Actions.GUILD_SCHEDULED_EVENT_UPDATE,
|
||||
Actions.THREAD_UPDATE,
|
||||
Actions.APPLICATION_COMMAND_PERMISSION_UPDATE,
|
||||
Actions.AUTO_MODERATION_RULE_UPDATE,
|
||||
].includes(action)
|
||||
) {
|
||||
@@ -514,6 +534,12 @@ class GuildAuditLogsEntry {
|
||||
};
|
||||
break;
|
||||
|
||||
case Actions.APPLICATION_COMMAND_PERMISSION_UPDATE:
|
||||
this.extra = {
|
||||
applicationId: data.options.application_id,
|
||||
};
|
||||
break;
|
||||
|
||||
case Actions.AUTO_MODERATION_BLOCK_MESSAGE:
|
||||
case Actions.AUTO_MODERATION_FLAG_TO_CHANNEL:
|
||||
case Actions.AUTO_MODERATION_USER_COMMUNICATION_DISABLED:
|
||||
@@ -656,6 +682,8 @@ class GuildAuditLogsEntry {
|
||||
{ id: data.target_id, guild_id: guild.id },
|
||||
),
|
||||
);
|
||||
} else if (targetType === Targets.APPLICATION_COMMAND) {
|
||||
this.target = logs?.applicationCommands.get(data.target_id) ?? { id: data.target_id };
|
||||
} else if (targetType === Targets.AUTO_MODERATION) {
|
||||
this.target =
|
||||
guild.autoModerationRules.cache.get(data.target_id) ??
|
||||
|
@@ -127,7 +127,7 @@ class MessageSelectMenu extends BaseMessageComponent {
|
||||
*/
|
||||
addChannelTypes(...channelTypes) {
|
||||
if (!channelTypes.every(channelType => ChannelTypes[channelType])) {
|
||||
throw new TypeError('INVALID_TYPE', 'channelTypes', 'Array<ChannelType>');
|
||||
throw new TypeError('INVALID_TYPE', 'channelTypes', 'Rest<ChannelTypes[]>');
|
||||
}
|
||||
this.channelTypes.push(
|
||||
...channelTypes.map(channelType => (typeof channelType === 'string' ? channelType : ChannelTypes[channelType])),
|
||||
@@ -142,7 +142,7 @@ class MessageSelectMenu extends BaseMessageComponent {
|
||||
*/
|
||||
setChannelTypes(...channelTypes) {
|
||||
if (!channelTypes.every(channelType => ChannelTypes[channelType])) {
|
||||
throw new TypeError('INVALID_TYPE', 'channelTypes', 'Array<ChannelType>');
|
||||
throw new TypeError('INVALID_TYPE', 'channelTypes', 'Rest<ChannelTypes[]>');
|
||||
}
|
||||
this.channelTypes = channelTypes.map(channelType =>
|
||||
typeof channelType === 'string' ? channelType : ChannelTypes[channelType],
|
||||
|
Reference in New Issue
Block a user