Хотел проверять удаления сообщений в каналах через событие Events.GuildAuditLogEntryCreate. Как оказалось это событие не видит удаления сообщения самим автором. Есть какой-то костыль, чтобы увидеть такое удаление?
instance.client.on(Events.GuildAuditLogEntryCreate, async (auditLog) => {
const { action, extra: channel, executorId, target} = auditLog;
// Check for deleted messages.
if (action === AuditLogEvent.MessageDelete) {
auditLog = auditLog as GuildAuditLogsEntry<AuditLogEvent.MessageDelete, "Delete">;
try {
const actionExtra: {channel: TextChannel, count: number} = auditLog.extra as {channel: TextChannel, count: number};
const author: User = auditLog.target as User;
const guildId: string = actionExtra?.channel?.guildId;
const channelId: string = actionExtra?.channel?.id;
if (guildId) {
const guild: Guild = await instance.client.guilds.fetch(guildId);
instance.events.trigger(DeleteMessageEvent, instance, guild, executorId, author.id, channelId);
}
} catch (e) {
logger.warn("Audit check error:" + e.message);
}
}
});