diff options
| author | Andrew Lee <andrew@alee14.me> | 2025-03-04 10:05:14 -0500 |
|---|---|---|
| committer | Andrew Lee <andrew@alee14.me> | 2025-03-04 10:05:14 -0500 |
| commit | cc06b8ed4e4e0aef02dfd8ab15df22a57a177a0a (patch) | |
| tree | deffb57bee9fe24a8d1b8143fba603774544ee00 /bot/src/events | |
| parent | 11bb9ab6b30314d91209bc9888d95783cc247e98 (diff) | |
| download | AleeBot-cc06b8ed4e4e0aef02dfd8ab15df22a57a177a0a.tar.gz AleeBot-cc06b8ed4e4e0aef02dfd8ab15df22a57a177a0a.tar.bz2 AleeBot-cc06b8ed4e4e0aef02dfd8ab15df22a57a177a0a.zip | |
Readme change; Docker; Logging
Diffstat (limited to 'bot/src/events')
| -rw-r--r-- | bot/src/events/ClientReady.js | 4 | ||||
| -rw-r--r-- | bot/src/events/GuildBanAdd.js | 25 | ||||
| -rw-r--r-- | bot/src/events/GuildBanRemove.js | 25 | ||||
| -rw-r--r-- | bot/src/events/GuildCreate.js | 3 | ||||
| -rw-r--r-- | bot/src/events/GuildDelete.js | 14 | ||||
| -rw-r--r-- | bot/src/events/GuildMemberAdd.js | 26 | ||||
| -rw-r--r-- | bot/src/events/GuildMemberRemove.js | 25 | ||||
| -rw-r--r-- | bot/src/events/MessageCreate.js | 48 | ||||
| -rw-r--r-- | bot/src/events/MessageDelete.js | 25 | ||||
| -rw-r--r-- | bot/src/events/MessageUpdate.js | 27 |
10 files changed, 190 insertions, 32 deletions
diff --git a/bot/src/events/ClientReady.js b/bot/src/events/ClientReady.js index def2c88..af03e25 100644 --- a/bot/src/events/ClientReady.js +++ b/bot/src/events/ClientReady.js @@ -22,7 +22,7 @@ function botActivity(client) { export default { name: Events.ClientReady, once: true, - execute(client) { + async execute(client) { console.log('[>] AleeBot is now ready!'); console.log(`[i] Logged in as ${client.user.tag}`); console.log(`[i] Bot ID: ${client.user.id}`); @@ -44,7 +44,7 @@ export default { let statusChannel = client.channels.cache.get(process.env.statusChannelID); if (!statusChannel) return console.error('The status channel does not exist! Skipping.'); - statusChannel.send({ embeds: [readyEmbed]}); + await statusChannel.send({ embeds: [readyEmbed]}); } setInterval(function() { diff --git a/bot/src/events/GuildBanAdd.js b/bot/src/events/GuildBanAdd.js new file mode 100644 index 0000000..1e52040 --- /dev/null +++ b/bot/src/events/GuildBanAdd.js @@ -0,0 +1,25 @@ +import { EmbedBuilder, Events } from 'discord.js'; +import { guildSettings } from '../models/guild-settings.js'; + +export default { + name: Events.GuildBanAdd, + async execute(guild, user) { + 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}`) + .addFields( + { name: 'User:', value: `${user.tag}` }, + { name: 'User ID:', value: `${user.id}`} + ) + .setColor('#ff021b') + .setTimestamp(); + + let banMessage = guild.client.channels.cache.get(guildSetting.logChannelID); + if (!banMessage) return; + + await banMessage.send({ embeds: [logEmbed]}); + } +}; diff --git a/bot/src/events/GuildBanRemove.js b/bot/src/events/GuildBanRemove.js new file mode 100644 index 0000000..5b2e22c --- /dev/null +++ b/bot/src/events/GuildBanRemove.js @@ -0,0 +1,25 @@ +import { EmbedBuilder, Events } from 'discord.js'; +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 } }); + 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}`) + .addFields( + { name: 'User:', value: `${user.tag}` }, + { name: 'User ID:', value: `${user.id}`} + ) + .setColor('#ff021b') + .setTimestamp(); + + let banMessage = guild.client.channels.cache.get(guildSetting.logChannelID); + if (!banMessage) return; + + await banMessage.send({ embeds: [logEmbed]}); + } +}; diff --git a/bot/src/events/GuildCreate.js b/bot/src/events/GuildCreate.js index 565d8f2..7bcd0d1 100644 --- a/bot/src/events/GuildCreate.js +++ b/bot/src/events/GuildCreate.js @@ -13,12 +13,11 @@ export default { { name: 'Server ID:', value: `${guild.id}`, inline: true }, { name: 'Members', value: `${guild.memberCount}`, inline: true } ) - .setColor(abEmbedColour) .setFooter({ text: `We now run on ${guild.client.guilds.cache.size} guilds.` }); let statusChannel = guild.client.channels.cache.get(process.env.statusChannelID); if (!statusChannel) return; - statusChannel.send({ embeds: [logEmbed]}); + await statusChannel.send({ embeds: [logEmbed]}); } }; diff --git a/bot/src/events/GuildDelete.js b/bot/src/events/GuildDelete.js index 50c4412..2dcba22 100644 --- a/bot/src/events/GuildDelete.js +++ b/bot/src/events/GuildDelete.js @@ -1,10 +1,21 @@ import { EmbedBuilder, Events } from 'discord.js'; import { abEmbedColour } from '../storage/consts.js'; +import { guildSettings } from '../models/guild-settings.js'; export default { name: Events.GuildDelete, async execute(guild) { console.log(`[i] I have been removed from: ${guild.name} (${guild.id})`); + + try { + const guildSetting = await guildSettings.findOne({ where: { guildID: guild.id } }); + if (guildSetting) { + await guildSettings.destroy({ where: { guildID: guild.id } }); + } + } catch (error) { + console.error(`Failed to remove guild settings for ${guild.id}:`, error); + } + const logEmbed = new EmbedBuilder() .setAuthor({ name: 'AleeBot', iconURL: guild.client.user.avatarURL() }) .setDescription('I got removed from a server...') @@ -12,12 +23,11 @@ export default { { name: 'Server Name:', value: `${guild.name}`, inline: true }, { name: 'Server ID:', value: `${guild.id}`, inline: true }, ) - .setColor(abEmbedColour) .setFooter({ text: `We now run on ${guild.client.guilds.cache.size} guilds.` }); let statusChannel = guild.client.channels.cache.get(process.env.statusChannelID); if (!statusChannel) return; - statusChannel.send({ embeds: [logEmbed]}); + await statusChannel.send({ embeds: [logEmbed]}); } }; diff --git a/bot/src/events/GuildMemberAdd.js b/bot/src/events/GuildMemberAdd.js new file mode 100644 index 0000000..4b39d6d --- /dev/null +++ b/bot/src/events/GuildMemberAdd.js @@ -0,0 +1,26 @@ +import { EmbedBuilder, Events } from 'discord.js'; +import { guildSettings } from '../models/guild-settings.js'; + +export default { + name: Events.GuildMemberAdd, + async execute(member) { + const guildSetting = await guildSettings.findOne({ where: { guildID: member.guild.id } }); + if (!guildSetting || !guildSetting.logChannelID) return; + + const logEmbed = new EmbedBuilder() + .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: 'User ID: ', value: `${member.id}`, inline: true }, + { name: 'Created At: ', value: `${member.user.createdAt.toUTCString()}`} + ) + .setColor('#4bff31') + .setTimestamp(); + + let guildMember = member.client.channels.cache.get(guildSetting.logChannelID); + if (!guildMember) return; + + await guildMember.send({ embeds: [logEmbed]}); + } +}; diff --git a/bot/src/events/GuildMemberRemove.js b/bot/src/events/GuildMemberRemove.js new file mode 100644 index 0000000..9bf5e9d --- /dev/null +++ b/bot/src/events/GuildMemberRemove.js @@ -0,0 +1,25 @@ +import { EmbedBuilder, Events } from 'discord.js'; +import { guildSettings } from '../models/guild-settings.js'; + +export default { + name: Events.GuildMemberRemove, + async execute(member) { + const guildSetting = await guildSettings.findOne({ where: { guildID: member.guild.id } }); + if (!guildSetting || !guildSetting.logChannelID) return; + + const logEmbed = new EmbedBuilder() + .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: 'User ID: ', value: `${member.id}`, inline: true }, + ) + .setColor('#ec2727') + .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 9394a20..90b517d 100644 --- a/bot/src/events/MessageCreate.js +++ b/bot/src/events/MessageCreate.js @@ -12,35 +12,31 @@ export default { const args = msg.content.slice(`<@${msg.client.user.id}>`.length).trim(); if (msg.mentions.has(msg.client.user)) { - if (ollamaEnabled) { - if (!args) return msg.reply('Sorry? What was that?'); - - try { - const response = await ollama.chat({ - model: ollamaModel, - messages: [{ role: 'user', content: args }], - }); - - let content = response.message.content; - content = content.replace(/<think>.*?<\/think>/g, ''); - - if (content.length > 2000) { - const chunks = content.match(/[\s\S]{1,2000}/g) || []; - for (const chunk of chunks) { - await msg.reply({ content: chunk }); - } - } else { - msg.reply({ content }); + if (!ollamaEnabled) return msg.reply('Sorry, this feature has been turned off.'); + if (!args) return msg.reply('Sorry? What was that?'); + + try { + const response = await ollama.chat({ + model: ollamaModel, + messages: [{ role: 'user', content: args }], + }); + + let content = response.message.content; + content = content.replace(/<think>.*?<\/think>/g, ''); + + if (content.length > 2000) { + const chunks = content.match(/[\s\S]{1,2000}/g) || []; + for (const chunk of chunks) { + await msg.reply({ content: chunk }); } - - } catch (err) { - console.error(err); - msg.reply('Something went wrong.'); + } else { + await msg.reply({ content }); } - } else { - return msg.reply('Sorry, this feature has been turned off.'); - } + } catch (err) { + console.error(err); + await msg.reply('Something went wrong.'); + } } } }; diff --git a/bot/src/events/MessageDelete.js b/bot/src/events/MessageDelete.js new file mode 100644 index 0000000..2259d2f --- /dev/null +++ b/bot/src/events/MessageDelete.js @@ -0,0 +1,25 @@ +import { EmbedBuilder, Events } from 'discord.js'; +import { guildSettings } from '../models/guild-settings.js'; + +export default { + name: Events.MessageDelete, + async execute(msg) { + if (!msg.content) return; + + const guildSetting = await guildSettings.findOne({ where: { guildID: msg.guild.id } }); + 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}>`) + .addFields({ name: 'Deleted Message: ', value: `\`\`\`${msg.content}\`\`\`` }) + .setColor('#ff021b') + .setTimestamp() + .setFooter(`Author ID: ${msg.author.id}`); + + let deleteMessage = msg.client.channels.cache.get(guildSetting.logChannelID); + if (!deleteMessage) return; + + await deleteMessage.send({ embeds: [logEmbed]}); + } +}; diff --git a/bot/src/events/MessageUpdate.js b/bot/src/events/MessageUpdate.js new file mode 100644 index 0000000..26f6ab3 --- /dev/null +++ b/bot/src/events/MessageUpdate.js @@ -0,0 +1,27 @@ +import { EmbedBuilder, Events } from 'discord.js'; +import { guildSettings } from '../models/guild-settings.js'; + +export default { + name: Events.MessageUpdate, + async execute(oldmsg, newmsg) { + const guildSetting = await guildSettings.findOne({ where: { guildID: oldmsg.guild.id } }); + if (!oldmsg.guild || !guildSetting || !guildSetting.logChannelID) return; + if (oldmsg.content === newmsg.content) return; + + const logEmbed = new EmbedBuilder() + .setAuthor({ name: 'AleeBot Logging', iconURL: oldmsg.client.user.avatarURL() }) + .setDescription(`A message from ${oldmsg.author.username} was edited in <#${oldmsg.channel.id}>`) + .addFields( + { name: 'Before: ', value: `\`\`\`${oldmsg.content}\`\`\`` }, + { name: 'After: ', value: `\`\`\`${newmsg.content}\`\`\`` } + ) + .setColor('#ffff1a') + .setTimestamp() + .setFooter(`Author ID: ${oldmsg.author.id}`); + + let editMessage = oldmsg.client.channels.cache.get(guildSetting.logChannelID); + if (!editMessage) return; + + await editMessage.send({ embeds: [logEmbed]}); + } +}; |
