@ -1,5 +1,7 @@
import {
import {
AuditLogEvent ,
BaseGuildTextChannel ,
BaseGuildTextChannel ,
ChannelType ,
GuildAuditLogsEntry ,
GuildAuditLogsEntry ,
GuildBasedChannel ,
GuildBasedChannel ,
StageChannel ,
StageChannel ,
@ -13,34 +15,47 @@ export const event = "channelDelete";
export async function callback ( client : NucleusClient , channel : GuildBasedChannel ) {
export async function callback ( client : NucleusClient , channel : GuildBasedChannel ) {
const { getAuditLog , log , NucleusColors , entry , renderDelta , renderUser } = client . logger ;
const { getAuditLog , log , NucleusColors , entry , renderDelta , renderUser } = client . logger ;
// const audit = auditLog.entries.filter((entry: GuildAuditLogsEntry) => entry.target!.id === channel.id).first();
const auditLog = await getAuditLog ( channel . guild , "CHANNEL_DELETE" ) ;
const auditLog = ( await getAuditLog ( channel . guild , AuditLogEvent . ChannelDelete ) )
const audit = auditLog . entries . filter ( ( entry : GuildAuditLogsEntry ) = > entry . target ! . id === channel . id ) . first ( ) ;
. filter ( ( entry : GuildAuditLogsEntry ) = > ( entry . target as GuildBasedChannel ) ! . id === channel . id ) [ 0 ] ;
if ( audit . executor . id === client . user . id ) return ;
if ( ! auditLog ) return ;
if ( auditLog . executor ! . id === client . user ! . id ) return ;
let emoji ;
let emoji ;
let readableType ;
let readableType ;
let displayName ;
let displayName ;
switch ( channel . type ) {
switch ( channel . type ) {
case "GUILD_TEXT" : {
case ChannelType . GuildText : {
emoji = "CHANNEL.TEXT.DELETE" ;
emoji = "CHANNEL.TEXT.DELETE" ;
readableType = "Text" ;
readableType = "Text" ;
displayName = "Text Channel" ;
displayName = "Text Channel" ;
break ;
break ;
}
} case ChannelType . GuildAnnouncement : {
case "GUILD_VOICE" : {
emoji = "CHANNEL.TEXT.DELETE" ;
readableType = "Announcement" ;
displayName = "Announcement Channel" ;
break ;
} case ChannelType . GuildVoice : {
emoji = "CHANNEL.VOICE.DELETE" ;
emoji = "CHANNEL.VOICE.DELETE" ;
readableType = "Voice" ;
readableType = "Voice" ;
displayName = "Voice Channel" ;
displayName = "Voice Channel" ;
break ;
break ;
}
} case ChannelType . GuildCategory : {
case "GUILD_CATEGORY" : {
emoji = "CHANNEL.CATEGORY.DELETE" ;
emoji = "CHANNEL.CATEGORY.DELETE" ;
readableType = "Category" ;
readableType = "Category" ;
displayName = "Category" ;
displayName = "Category" ;
break ;
break ;
}
} case ChannelType . GuildStageVoice : {
default : {
emoji = "CHANNEL.VOICE.DELETE" ;
readableType = "Stage" ;
displayName = "Stage Channel" ;
break ;
} case ChannelType . GuildForum : {
emoji = "CHANNEL.TEXT.DELETE" ;
readableType = "Forum" ;
displayName = "Forum Channel" ;
break ;
} default : {
emoji = "CHANNEL.TEXT.DELETE" ;
emoji = "CHANNEL.TEXT.DELETE" ;
readableType = "Channel" ;
readableType = "Channel" ;
displayName = "Channel" ;
displayName = "Channel" ;
@ -66,9 +81,9 @@ export async function callback(client: NucleusClient, channel: GuildBasedChannel
channel . parent ? channel . parent . name : "Uncategorised"
channel . parent ? channel . parent . name : "Uncategorised"
) ,
) ,
nsfw : null ,
nsfw : null ,
created : entry ( channel . createdTimestamp , renderDelta ( channel . createdTimestamp ) ) ,
created : entry ( channel . createdTimestamp , renderDelta ( channel . createdTimestamp ! ) ) ,
deleted : entry ( new Date ( ) . getTime ( ) , renderDelta ( new Date ( ) . getTime ( ) ) ) ,
deleted : entry ( new Date ( ) . getTime ( ) , renderDelta ( new Date ( ) . getTime ( ) ) ) ,
deletedBy : entry ( audit . executor . id , renderUser ( audit . executor ) )
deletedBy : entry ( audit Log . executor ! . id , renderUser ( audit Log . executor ! ) )
} ;
} ;
if ( ( channel instanceof BaseGuildTextChannel || channel instanceof StageChannel ) && channel . topic !== null )
if ( ( channel instanceof BaseGuildTextChannel || channel instanceof StageChannel ) && channel . topic !== null )
list . topic = entry ( channel . topic , ` \` \` \` \ n ${ channel . topic . replace ( "`" , "'" ) } \ n \` \` \` ` ) ;
list . topic = entry ( channel . topic , ` \` \` \` \ n ${ channel . topic . replace ( "`" , "'" ) } \ n \` \` \` ` ) ;
@ -94,7 +109,7 @@ export async function callback(client: NucleusClient, channel: GuildBasedChannel
calculateType : "channelUpdate" ,
calculateType : "channelUpdate" ,
color : NucleusColors.red ,
color : NucleusColors.red ,
emoji : emoji ,
emoji : emoji ,
timestamp : audit .createdTimestamp
timestamp : audit Log .createdTimestamp
} ,
} ,
list : list ,
list : list ,
hidden : {
hidden : {