53 lines
No EOL
1.9 KiB
TypeScript
53 lines
No EOL
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 MessageUpdate(oldMessage: Message, newMessage: Message) {
|
|
if (!newMessage.guild) return;
|
|
if (newMessage.author.bot) return;
|
|
|
|
await CacheHelper.UpdateServerCache(newMessage.guild);
|
|
|
|
if (oldMessage.content == newMessage.content) return;
|
|
|
|
const enabled = await SettingsHelper.GetSetting("event.message.update.enabled", newMessage.guild.id);
|
|
if (!enabled || enabled.toLowerCase() != "true") return;
|
|
|
|
const ignored = await IgnoredChannel.IsChannelIgnored(newMessage.channel.id);
|
|
if (ignored) return;
|
|
|
|
const embed = new EmbedBuilder()
|
|
.setColor(EmbedColours.Ok)
|
|
.setTitle("Message Edited")
|
|
.setDescription(`${newMessage.author} \`${newMessage.author.tag}\``)
|
|
.setThumbnail(newMessage.author.avatarURL())
|
|
.addFields([
|
|
{
|
|
name: "Channel",
|
|
value: newMessage.channel.toString(),
|
|
inline: true,
|
|
},
|
|
{
|
|
name: "Before",
|
|
value: `\`\`\`${oldMessage.content || "*none*"}\`\`\``,
|
|
},
|
|
{
|
|
name: "After",
|
|
value: `\`\`\`${newMessage.content || "*none*"}\`\`\``,
|
|
}
|
|
]);
|
|
|
|
const channelSetting = await SettingsHelper.GetSetting("event.message.delete.channel", newMessage.guild.id);
|
|
|
|
if (!channelSetting) return;
|
|
|
|
const channel = newMessage.guild.channels.cache.find(x => x.name == channelSetting);
|
|
|
|
if (!channel) return;
|
|
|
|
const guildChannel = channel as TextChannel;
|
|
|
|
await guildChannel.send({ embeds: [ embed ]});
|
|
} |