From 52f8826e526f0c0aadb86c3e29975aef4dc1ab85 Mon Sep 17 00:00:00 2001 From: Andrew Lee Date: Sat, 8 Mar 2025 00:11:03 -0500 Subject: Bulk delete message event; Guild suggestions; sinfo + uinfo --- bot/src/events/GuildBanAdd.js | 21 ++++++++++----------- bot/src/events/GuildBanRemove.js | 16 ++++++++-------- bot/src/events/GuildCreate.js | 2 +- bot/src/events/GuildDelete.js | 2 +- bot/src/events/GuildMemberAdd.js | 4 ++-- bot/src/events/GuildMemberRemove.js | 4 ++-- bot/src/events/MessageBulkDelete.js | 32 ++++++++++++++++++++++++++++++++ bot/src/events/MessageDelete.js | 6 +++--- bot/src/events/MessageUpdate.js | 6 +++--- 9 files changed, 62 insertions(+), 31 deletions(-) create mode 100644 bot/src/events/MessageBulkDelete.js (limited to 'bot/src/events') diff --git a/bot/src/events/GuildBanAdd.js b/bot/src/events/GuildBanAdd.js index e68701d..54afc12 100644 --- a/bot/src/events/GuildBanAdd.js +++ b/bot/src/events/GuildBanAdd.js @@ -3,32 +3,31 @@ import { guildSettings } from '../models/guild-settings.js'; export default { name: Events.GuildBanAdd, - async execute(guild, user) { + async execute(ban) { + const guildSetting = await guildSettings.findOne({ where: { guildID: ban.guild.id } }); + if (!guildSetting || !guildSetting.logChannelID) return; - const banLog = await guild.fetchAuditLogs({ + const banLog = await ban.guild.fetchAuditLogs({ type: AuditLogEvent.MemberBanAdd, limit: 1, }); const banEntry = banLog.entries.first(); - const guildSetting = await guildSettings.findOne({ where: { guildID: guild.id } }); - if (!guildSetting || !guildSetting.logChannelID) return; - const logEmbed = new EmbedBuilder() - .setAuthor({ name: 'AleeBot Logging', iconURL: guild.client.user.avatarURL() }) - .setDescription(`This user got banned from ${guild.name}`) + .setAuthor({ name: 'AleeBot Logging', iconURL: ban.guild.client.user.avatarURL() }) + .setDescription('This user got banned from this server.') .addFields( - { name: 'User:', value: `${user.tag}` }, - { name: 'User ID:', value: `${user.id}`}, + { name: 'User:', value: `${ban.user.username}` }, + { name: 'User ID:', value: `${ban.user.id}`}, { name: 'Reason:', value: `${banEntry.reason || 'No reason provided'}` } ) .setColor('#ff021b') .setTimestamp(); - let banMessage = guild.client.channels.cache.get(guildSetting.logChannelID); + let banMessage = ban.guild.client.channels.cache.get(guildSetting.logChannelID); if (!banMessage) return; - await banMessage.send({ embeds: [logEmbed]}); + await banMessage.send({ embeds: [logEmbed] }); } }; diff --git a/bot/src/events/GuildBanRemove.js b/bot/src/events/GuildBanRemove.js index 5b2e22c..1d6ac2a 100644 --- a/bot/src/events/GuildBanRemove.js +++ b/bot/src/events/GuildBanRemove.js @@ -3,23 +3,23 @@ import { guildSettings } from '../models/guild-settings.js'; export default { name: Events.GuildBanRemove, - async execute(guild, user) { - const guildSetting = await guildSettings.findOne({ where: { guildID: guild.id } }); + async execute(ban) { + const guildSetting = await guildSettings.findOne({ where: { guildID: ban.guild.id } }); if (!guildSetting || !guildSetting.logChannelID) return; const logEmbed = new EmbedBuilder() - .setAuthor({ name: 'AleeBot Logging', iconURL: guild.client.user.avatarURL() }) - .setDescription(`This user got unbanned from ${guild.name}`) + .setAuthor({ name: 'AleeBot Logging', iconURL: ban.guild.client.user.avatarURL() }) + .setDescription('This user got unbanned from this server.') .addFields( - { name: 'User:', value: `${user.tag}` }, - { name: 'User ID:', value: `${user.id}`} + { name: 'User:', value: `${ban.user.username}` }, + { name: 'User ID:', value: `${ban.user.id}`} ) .setColor('#ff021b') .setTimestamp(); - let banMessage = guild.client.channels.cache.get(guildSetting.logChannelID); + let banMessage = ban.guild.client.channels.cache.get(guildSetting.logChannelID); if (!banMessage) return; - await banMessage.send({ embeds: [logEmbed]}); + await banMessage.send({ embeds: [logEmbed] }); } }; diff --git a/bot/src/events/GuildCreate.js b/bot/src/events/GuildCreate.js index 4d73f08..0c59bb1 100644 --- a/bot/src/events/GuildCreate.js +++ b/bot/src/events/GuildCreate.js @@ -21,6 +21,6 @@ export default { let statusChannel = guild.client.channels.cache.get(process.env.statusChannelID); if (!statusChannel) return; - await statusChannel.send({ embeds: [logEmbed]}); + await statusChannel.send({ embeds: [logEmbed] }); } }; diff --git a/bot/src/events/GuildDelete.js b/bot/src/events/GuildDelete.js index 5ca1cbe..63c3c5b 100644 --- a/bot/src/events/GuildDelete.js +++ b/bot/src/events/GuildDelete.js @@ -24,6 +24,6 @@ export default { let statusChannel = guild.client.channels.cache.get(process.env.statusChannelID); if (!statusChannel) return; - await statusChannel.send({ embeds: [logEmbed]}); + await statusChannel.send({ embeds: [logEmbed] }); } }; diff --git a/bot/src/events/GuildMemberAdd.js b/bot/src/events/GuildMemberAdd.js index 4b39d6d..783b29e 100644 --- a/bot/src/events/GuildMemberAdd.js +++ b/bot/src/events/GuildMemberAdd.js @@ -11,7 +11,7 @@ export default { .setAuthor({ name: 'AleeBot Logging', iconURL: member.client.user.avatarURL() }) .setDescription('A user has joined this server!') .addFields( - { name: 'Username: ', value: `${member.user.tag}`, inline: true }, + { name: 'Username: ', value: `${member.user}`, inline: true }, { name: 'User ID: ', value: `${member.id}`, inline: true }, { name: 'Created At: ', value: `${member.user.createdAt.toUTCString()}`} ) @@ -21,6 +21,6 @@ export default { let guildMember = member.client.channels.cache.get(guildSetting.logChannelID); if (!guildMember) return; - await guildMember.send({ embeds: [logEmbed]}); + await guildMember.send({ embeds: [logEmbed] }); } }; diff --git a/bot/src/events/GuildMemberRemove.js b/bot/src/events/GuildMemberRemove.js index aa109b1..c031211 100644 --- a/bot/src/events/GuildMemberRemove.js +++ b/bot/src/events/GuildMemberRemove.js @@ -11,7 +11,7 @@ export default { .setAuthor({ name: 'AleeBot Logging', iconURL: member.client.user.avatarURL() }) .setDescription('A user has left this server!') .addFields( - { name: 'Username: ', value: `${member.user.tag}`, inline: true }, + { name: 'Username: ', value: `${member.user.username}`, inline: true }, { name: 'User ID: ', value: `${member.id}`, inline: true }, ) .setColor('#ec2727') @@ -20,6 +20,6 @@ export default { let guildMember = member.client.channels.cache.get(guildSetting.logChannelID); if (!guildMember) return; - await guildMember.send({ embeds: [logEmbed]}); + await guildMember.send({ embeds: [logEmbed] }); } }; diff --git a/bot/src/events/MessageBulkDelete.js b/bot/src/events/MessageBulkDelete.js new file mode 100644 index 0000000..1595012 --- /dev/null +++ b/bot/src/events/MessageBulkDelete.js @@ -0,0 +1,32 @@ +import { EmbedBuilder, Events, AttachmentBuilder } from 'discord.js'; +import { guildSettings } from '../models/guild-settings.js'; + +export default { + name: Events.MessageBulkDelete, + async execute(msg, channel) { + const guildSetting = await guildSettings.findOne({ where: { guildID: channel.guild.id } }); + if (!guildSetting || !guildSetting.logChannelID) return; + + const logEmbed = new EmbedBuilder() + .setAuthor({ name: 'AleeBot Logging', iconURL: channel.client.user.avatarURL() }) + .setDescription(`A bulk of ${msg.size} messages was deleted in ${channel}`) + .setColor('#ff021b') + .setTimestamp(); + + let messages = []; + + msg.forEach(message => { + messages.push(message.createdAt.toUTCString()); + messages.push(`${message.author.username} - ${message.author.id}`); + messages.push(message.content); + }); + + const messageContent = messages.join('\n'); + const attachment = new AttachmentBuilder(Buffer.from(messageContent, 'utf-8'), { name: 'messages.txt' }); + + let deleteMessage = channel.client.channels.cache.get(guildSetting.logChannelID); + if (!deleteMessage) return; + + await deleteMessage.send({ embeds: [logEmbed], files: [attachment] }); + } +}; diff --git a/bot/src/events/MessageDelete.js b/bot/src/events/MessageDelete.js index 2259d2f..62f8536 100644 --- a/bot/src/events/MessageDelete.js +++ b/bot/src/events/MessageDelete.js @@ -10,8 +10,8 @@ export default { if (!guildSetting || !guildSetting.logChannelID) return; const logEmbed = new EmbedBuilder() - .setAuthor('AleeBot Logging', msg.client.user.avatarURL()) - .setDescription(`A message from ${msg.author.username} was deleted in <#${msg.channel.id}>`) + .setAuthor({ name: 'AleeBot Logging', iconURL: msg.client.user.avatarURL() }) + .setDescription(`A message from ${msg.author.username} was deleted in ${msg.channel}`) .addFields({ name: 'Deleted Message: ', value: `\`\`\`${msg.content}\`\`\`` }) .setColor('#ff021b') .setTimestamp() @@ -20,6 +20,6 @@ export default { let deleteMessage = msg.client.channels.cache.get(guildSetting.logChannelID); if (!deleteMessage) return; - await deleteMessage.send({ embeds: [logEmbed]}); + await deleteMessage.send({ embeds: [logEmbed] }); } }; diff --git a/bot/src/events/MessageUpdate.js b/bot/src/events/MessageUpdate.js index 118f51d..f4cb769 100644 --- a/bot/src/events/MessageUpdate.js +++ b/bot/src/events/MessageUpdate.js @@ -10,18 +10,18 @@ export default { const logEmbed = new EmbedBuilder() .setAuthor({ name: 'AleeBot Logging', iconURL: msg.client.user.avatarURL() }) - .setDescription(`A message from ${msg.author.username} was edited in <#${msg.channel.id}>`) + .setDescription(`A message from ${msg.author.username} was edited in ${msg.channel}`) .addFields( { name: 'Before: ', value: `\`\`\`${msg.content}\`\`\`` }, { name: 'After: ', value: `\`\`\`${newmsg.content}\`\`\`` } ) .setColor('#ffff1a') .setTimestamp() - .setFooter(`Author ID: ${msg.author.id}`); + .setFooter({ text: `Author ID: ${msg.author.id}` }); let editMessage = msg.client.channels.cache.get(guildSetting.logChannelID); if (!editMessage) return; - await editMessage.send({ embeds: [logEmbed]}); + await editMessage.send({ embeds: [logEmbed] }); } }; -- cgit v1.2.3