Shasha/resources/eventsLogger/messageUpdate.js
2021-06-28 14:00:40 +09:00

35 lines
1.8 KiB
JavaScript

'use strict';
const { Message } = require("discord.js");
const { trySend, defaultEventLogEmbed, getChannel } = require("../functions");
const getColor = require("../getColor");
/**
* Log message update
* @param {Message} msgold
* @param {Message} msgnew
* @returns
*/
module.exports = async (msgold, msgnew) => {
if (msgnew.partial) msgnew = await msgnew.fetch();
if (msgnew.partial) return;
if (msgnew.content === msgold.content) return;
const ignored = msgnew.guild.eventChannels.mesEd?.ignore?.includes(msgnew.channel.id) || false;
let check = false;
if (msgnew.channel.id === msgnew.guild.eventChannels?.mesEd?.channel && msgnew.author ? msgnew.author !== msgnew.client.user : false && ignored === false) check = true;
if (msgnew.guild.eventChannels?.mesEd?.channel !== msgnew.channel.id && ignored === false || check) {
const log = getChannel(msgnew, msgnew.guild.eventChannels.mesEd.channel);
if (!log || !msgnew.author) return;
const emb = defaultEventLogEmbed(msgnew.guild);
emb
.setColor(getColor("blue"))
.setDescription(msgnew.content.length > 0 ? msgnew.content : "`[EMPTY]`")
.addField("Original content", msgold.content?.length > 0 ? (msgold.content.slice(0, msgold.content.length < 1025 ? 1024 : 1021) + (msgold.content.length < 1025 ? "" : "...")) : "`[EMPTY]`")
.setTitle("Message " + msgnew.id + " edited")
.setAuthor(emb.author.name, msgnew.author.displayAvatarURL({ format: "png", size: 128, dynamic: true }))
.addField("Author", `<@!${msgnew.author?.id}>\n\`${msgnew.author?.tag}\`\n(${msgnew.author?.id})`, true)
.addField("Channel", `<#${msgnew.channel?.id}>\n\`${msgnew.channel?.name}\`\n(${msgnew.channel?.id})`, true)
.setURL(msgnew.url);
return trySend(msgnew.client, log, emb);
}
}