From c06c0be2e7520ceaf5284472d0d99c7417aceb7a Mon Sep 17 00:00:00 2001 From: Andrew Lee Date: Thu, 20 Mar 2025 01:47:19 -0400 Subject: New command; New logging feature; QOTD (WIP) --- bot/src/events/ClientReady.js | 5 +++-- bot/src/events/GuildMemberUpdate.js | 26 ++++++++++++++++++++++++++ bot/src/events/MessageCreate.js | 2 ++ bot/src/events/MessageDelete.js | 2 +- bot/src/events/MessageUpdate.js | 5 +++-- 5 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 bot/src/events/GuildMemberUpdate.js (limited to 'bot/src/events') diff --git a/bot/src/events/ClientReady.js b/bot/src/events/ClientReady.js index ec22ba6..c806d6a 100644 --- a/bot/src/events/ClientReady.js +++ b/bot/src/events/ClientReady.js @@ -3,6 +3,7 @@ import { readFileSync } from 'node:fs'; import { activities } from '../storage/activities.js'; import { readyMsg, abEmbedColour } from '../storage/consts.js'; +// import { QuoteOfTheDay } from '../plugins/qotd.js'; const { version: abVersion } = JSON.parse(readFileSync('./package.json', 'utf-8')); function botActivity(client) { @@ -13,8 +14,7 @@ function botActivity(client) { name: activity.name, type: activity.type }], - status: 'online', - afk: false, + status: 'online' }); console.log(`[>] Updated bot presence to "${activity.name}"`); } @@ -29,6 +29,7 @@ export default { console.log(`[i] Running version ${abVersion} | Serving in ${client.guilds.cache.size} guilds`); await botActivity(client); + //await QuoteOfTheDay(client); if (readyMsg) { const readyEmbed = new EmbedBuilder() diff --git a/bot/src/events/GuildMemberUpdate.js b/bot/src/events/GuildMemberUpdate.js new file mode 100644 index 0000000..77906c7 --- /dev/null +++ b/bot/src/events/GuildMemberUpdate.js @@ -0,0 +1,26 @@ +import { EmbedBuilder, Events } from 'discord.js'; +import { guildSettings } from '../models/guild-settings.js'; + +export default { + name: Events.GuildMemberUpdate, + async execute(member, newMember) { + const guildSetting = await guildSettings.findOne({ where: { guildID: member.guild.id } }); + if (!guildSetting || !guildSetting.logChannelID) return; + if (!member.nickname || member.nickname === newMember.nickname) return; + + const logEmbed = new EmbedBuilder() + .setAuthor({ name: 'AleeBot Logging', iconURL: member.client.user.avatarURL() }) + .setDescription(`${member.user} has changed their nickname.`) + .addFields( + { name: 'Old Nickname: ', value: `${member.nickname}`, inline: true }, + { name: 'New Nickname: ', value: `${newMember.nickname}`, inline: true }, + ) + .setColor('#ffff1a') + .setTimestamp(); + + let guildMember = member.client.channels.cache.get(guildSetting.logChannelID); + if (!guildMember) return; + + await guildMember.send({ embeds: [logEmbed] }); + } +}; diff --git a/bot/src/events/MessageCreate.js b/bot/src/events/MessageCreate.js index 8234c5b..406539e 100644 --- a/bot/src/events/MessageCreate.js +++ b/bot/src/events/MessageCreate.js @@ -14,6 +14,8 @@ export default { const args = msg.content.slice(`${msg.client.user}`.length).trim(); + // TODO: Check if the person mentions a specific command that executes eval, then start a message collection. + if (msg.mentions.has(msg.client.user)) { if (!guildSetting.ollamaEnabled) return; if (!ollamaGlobal) return msg.reply('Sorry, the LLM chatbot feature has been turned off.'); diff --git a/bot/src/events/MessageDelete.js b/bot/src/events/MessageDelete.js index dc9b53f..86e3dd8 100644 --- a/bot/src/events/MessageDelete.js +++ b/bot/src/events/MessageDelete.js @@ -9,7 +9,7 @@ export default { const guildSetting = await guildSettings.findOne({ where: { guildID: msg.guild.id } }); if (!guildSetting || !guildSetting.logChannelID) return; - const useEmbedFields = msg.content.length <= 1023; + const useEmbedFields = msg.content.length <= 1024; const logEmbed = new EmbedBuilder() .setAuthor({ name: 'AleeBot Logging', iconURL: msg.client.user.avatarURL() }) diff --git a/bot/src/events/MessageUpdate.js b/bot/src/events/MessageUpdate.js index b73d6ac..4f4a593 100644 --- a/bot/src/events/MessageUpdate.js +++ b/bot/src/events/MessageUpdate.js @@ -8,8 +8,8 @@ export default { if (!msg.guild || !guildSetting || !guildSetting.logChannelID) return; if (msg.content === newmsg.content) return; - const useEmbedFields = msg.content.length <= 1023 && - newmsg.content.length <= 1023; + const useEmbedFields = msg.content.length <= 1024 && + newmsg.content.length <= 1024; const logEmbed = new EmbedBuilder() .setAuthor({ name: 'AleeBot Logging', iconURL: msg.client.user.avatarURL() }) @@ -33,6 +33,7 @@ export default { } else { let messageContent = []; messageContent.push(`Before:\n${msg.content}`); + messageContent.push('-----------------------------------'); messageContent.push(`After:\n${newmsg.content}`); messageContent = messageContent.join('\n'); -- cgit v1.2.3