diff --git a/src/events/channelEvents.ts b/src/events/channelEvents.ts index 35e96ac..523eb29 100644 --- a/src/events/channelEvents.ts +++ b/src/events/channelEvents.ts @@ -1,13 +1,15 @@ import { AuditLogEvent, + ChannelType, + DMChannel, Events, GuildChannel, PermissionOverwrites, } from 'discord.js'; -import logAction from '../util/logging/logAction.js'; import { ChannelLogAction } from '../util/logging/types.js'; import { Event } from '../types/EventTypes.js'; +import logAction from '../util/logging/logAction.js'; function arePermissionsEqual( oldPerms: Map, @@ -93,7 +95,7 @@ function getPermissionChanges( return changes; } -export const channelCreate = { +export const channelCreate: Event = { name: Events.ChannelCreate, execute: async (channel: GuildChannel) => { try { @@ -119,10 +121,12 @@ export const channelCreate = { }, }; -export const channelDelete = { +export const channelDelete: Event = { name: Events.ChannelDelete, - execute: async (channel: GuildChannel) => { + execute: async (channel: GuildChannel | DMChannel) => { try { + if (channel.type === ChannelType.DM) return; + const { guild } = channel; const auditLogs = await guild.fetchAuditLogs({ type: AuditLogEvent.ChannelDelete, @@ -145,10 +149,19 @@ export const channelDelete = { }, }; -export const channelUpdate = { +export const channelUpdate: Event = { name: Events.ChannelUpdate, - execute: async (oldChannel: GuildChannel, newChannel: GuildChannel) => { + execute: async ( + oldChannel: GuildChannel | DMChannel, + newChannel: GuildChannel | DMChannel, + ) => { try { + if ( + oldChannel.type === ChannelType.DM || + newChannel.type === ChannelType.DM + ) { + return; + } if ( oldChannel.name === newChannel.name && oldChannel.type === newChannel.type && diff --git a/src/events/interactionCreate.ts b/src/events/interactionCreate.ts index 0afd910..328b10f 100644 --- a/src/events/interactionCreate.ts +++ b/src/events/interactionCreate.ts @@ -1,5 +1,7 @@ import { Events, Interaction } from 'discord.js'; + import { ExtendedClient } from '../structures/ExtendedClient.js'; +import { Event } from '../types/EventTypes.js'; export default { name: Events.InteractionCreate, @@ -35,4 +37,4 @@ export default { } } }, -}; +} as Event; diff --git a/src/events/memberEvents.ts b/src/events/memberEvents.ts index 99b51ba..a6ddc80 100644 --- a/src/events/memberEvents.ts +++ b/src/events/memberEvents.ts @@ -1,10 +1,12 @@ -import { Events, GuildMember } from 'discord.js'; +import { Events, Guild, GuildMember, PartialGuildMember } from 'discord.js'; + import { updateMember, setMembers } from '../db/db.js'; import { generateMemberBanner } from '../util/helpers.js'; import { loadConfig } from '../util/configLoader.js'; +import { Event } from '../types/EventTypes.js'; import logAction from '../util/logging/logAction.js'; -export const memberJoin = { +export const memberJoin: Event = { name: Events.GuildMemberAdd, execute: async (member: GuildMember) => { const { guild } = member; @@ -54,9 +56,9 @@ export const memberJoin = { }, }; -export const memberLeave = { +export const memberLeave: Event = { name: Events.GuildMemberRemove, - execute: async (member: GuildMember) => { + execute: async (member: GuildMember | PartialGuildMember) => { const { guild } = member; try { @@ -68,7 +70,7 @@ export const memberLeave = { logAction({ guild, action: 'memberLeave', - member, + member: member as GuildMember, }), ]); } catch (error) { @@ -77,9 +79,12 @@ export const memberLeave = { }, }; -export const memberUpdate = { +export const memberUpdate: Event = { name: Events.GuildMemberUpdate, - execute: async (oldMember: GuildMember, newMember: GuildMember) => { + execute: async ( + oldMember: GuildMember | PartialGuildMember, + newMember: GuildMember, + ) => { const { guild } = newMember; try { diff --git a/src/events/messageEvents.ts b/src/events/messageEvents.ts index eaa947a..8bd0f33 100644 --- a/src/events/messageEvents.ts +++ b/src/events/messageEvents.ts @@ -1,9 +1,13 @@ -import { AuditLogEvent, Events, Message } from 'discord.js'; +import { AuditLogEvent, Events, Message, PartialMessage } from 'discord.js'; + +import { Event } from '../types/EventTypes.js'; import logAction from '../util/logging/logAction.js'; -export const messageDelete = { +export const messageDelete: Event = { name: Events.MessageDelete, - execute: async (message: Message) => { + execute: async ( + message: Omit | PartialMessage>, 'channel'>, + ) => { try { if (!message.guild || message.author?.bot) return; @@ -30,9 +34,12 @@ export const messageDelete = { }, }; -export const messageUpdate = { +export const messageUpdate: Event = { name: Events.MessageUpdate, - execute: async (oldMessage: Message, newMessage: Message) => { + execute: async ( + oldMessage: Omit | PartialMessage>, 'channel'>, + newMessage: Message, + ) => { try { if ( !oldMessage.guild || diff --git a/src/events/ready.ts b/src/events/ready.ts index 1a3b305..c39600c 100644 --- a/src/events/ready.ts +++ b/src/events/ready.ts @@ -2,6 +2,7 @@ import { Client, Events } from 'discord.js'; import { setMembers } from '../db/db.js'; import { loadConfig } from '../util/configLoader.js'; +import { Event } from '../types/EventTypes.js'; export default { name: Events.ClientReady, @@ -16,4 +17,4 @@ export default { console.log(`Ready! Logged in as ${client.user?.tag}`); }, -}; +} as Event; diff --git a/src/events/roleEvents.ts b/src/events/roleEvents.ts index 1e7bc54..8fc06f6 100644 --- a/src/events/roleEvents.ts +++ b/src/events/roleEvents.ts @@ -1,4 +1,6 @@ import { AuditLogEvent, Events, Role } from 'discord.js'; + +import { Event } from '../types/EventTypes.js'; import logAction from '../util/logging/logAction.js'; const convertRoleProperties = (role: Role) => ({ @@ -8,7 +10,7 @@ const convertRoleProperties = (role: Role) => ({ mentionable: role.mentionable, }); -export const roleCreate = { +export const roleCreate: Event = { name: Events.GuildRoleCreate, execute: async (role: Role) => { try { @@ -34,7 +36,7 @@ export const roleCreate = { }, }; -export const roleDelete = { +export const roleDelete: Event = { name: Events.GuildRoleDelete, execute: async (role: Role) => { try { @@ -60,7 +62,7 @@ export const roleDelete = { }, }; -export const roleUpdate = { +export const roleUpdate: Event = { name: Events.GuildRoleUpdate, execute: async (oldRole: Role, newRole: Role) => { try { diff --git a/src/util/logging/logAction.ts b/src/util/logging/logAction.ts index 049be63..39f4397 100644 --- a/src/util/logging/logAction.ts +++ b/src/util/logging/logAction.ts @@ -376,7 +376,7 @@ export default async function logAction(payload: LogActionPayload) { case 'channelCreate': case 'channelDelete': { fields.push( - { name: 'Channel', value: `<#${payload.channel.id}>`, inline: true }, + { name: 'Channel', value: `<#${payload.channel.id}> (#${payload.channel.name})`, inline: true }, { name: 'Type', value: