vylbot-app/src/events/MessageEvents/MessageDelete.ts
Ethan Lane 5f054b02a5
All checks were successful
continuous-integration/drone/push Build is passing
Add cache helper to update user cache every 30 minutes
2024-03-01 18:25:24 +00:00

56 lines
1.9 KiB
TypeScript

import { EmbedBuilder, Message, TextChannel } from "discord.js";
import EmbedColours from "../../constants/EmbedColours";
import IgnoredChannel from "../../database/entities/IgnoredChannel";
import SettingsHelper from "../../helpers/SettingsHelper";
import CacheHelper from "../../helpers/CacheHelper";
export default async function MessageDelete(message: Message) {
if (!message.guild) return;
if (message.author.bot) return;
await CacheHelper.UpdateServerCache(message.guild);
const enabled = await SettingsHelper.GetSetting("event.message.delete.enabled", message.guild.id);
if (!enabled || enabled.toLowerCase() != "true") return;
const ignored = await IgnoredChannel.IsChannelIgnored(message.channel.id);
if (ignored) return;
const embed = new EmbedBuilder()
.setColor(EmbedColours.Ok)
.setTitle("Message Deleted")
.setDescription(`${message.author} \`${message.author.tag}\``)
.setThumbnail(message.author.avatarURL())
.addFields([
{
name: "Channel",
value: message.channel.toString(),
inline: true,
},
{
name: "Content",
value: `\`\`\`${message.content || "*none*"}\`\`\``,
}
]);
if (message.attachments.size > 0) {
embed.addFields([
{
name: `Attachments (${message.attachments.size})`,
value: `\`\`\`${message.attachments.map(x => x.name).join("\n")}\`\`\``
}
]);
}
const channelSetting = await SettingsHelper.GetSetting("event.message.delete.channel", message.guild.id);
if (!channelSetting) return;
const channel = message.guild.channels.cache.find(x => x.name == channelSetting);
if (!channel) return;
const guildChannel = channel as TextChannel;
await guildChannel.send({ embeds: [ embed ]});
}