|
|
|
|
export const event = "messageDelete";
|
|
|
|
|
|
|
|
|
|
export async function callback(client, message) {
|
|
|
|
|
try {
|
|
|
|
|
if (message.author.id === client.user.id) return;
|
|
|
|
|
if (
|
|
|
|
|
client.noLog.includes(
|
|
|
|
|
`${message.guild.id}/${message.channel.id}/${message.id}`
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
return;
|
|
|
|
|
const {
|
|
|
|
|
getAuditLog,
|
|
|
|
|
log,
|
|
|
|
|
NucleusColors,
|
|
|
|
|
entry,
|
|
|
|
|
renderUser,
|
|
|
|
|
renderDelta,
|
|
|
|
|
renderChannel
|
|
|
|
|
} = message.channel.client.logger;
|
|
|
|
|
const auditLog = await getAuditLog(message.guild, "MEMBER_BAN_ADD");
|
|
|
|
|
const audit = auditLog.entries
|
|
|
|
|
.filter((entry) => entry.target.id === message.author.id)
|
|
|
|
|
.first();
|
|
|
|
|
if (audit) {
|
|
|
|
|
if (audit.createdAt - 100 < new Date().getTime()) return;
|
|
|
|
|
}
|
|
|
|
|
message.reference = message.reference || {};
|
|
|
|
|
let content = message.cleanContent;
|
|
|
|
|
content.replace("`", "\\`");
|
|
|
|
|
if (content.length > 256) content = content.substring(0, 253) + "...";
|
|
|
|
|
const attachments =
|
|
|
|
|
message.attachments.size +
|
|
|
|
|
(
|
|
|
|
|
message.content.match(
|
|
|
|
|
/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/gi
|
|
|
|
|
) ?? []
|
|
|
|
|
).length;
|
|
|
|
|
let attachmentJump = "";
|
|
|
|
|
const config = (await client.database.guilds.read(message.guild.id))
|
|
|
|
|
.logging.attachments.saved[message.channel.id + message.id];
|
|
|
|
|
if (config) {
|
|
|
|
|
attachmentJump = ` [[View attachments]](${config})`;
|
|
|
|
|
}
|
|
|
|
|
const data = {
|
|
|
|
|
meta: {
|
|
|
|
|
type: "messageDelete",
|
|
|
|
|
displayName: "Message Deleted",
|
|
|
|
|
calculateType: "messageDelete",
|
|
|
|
|
color: NucleusColors.red,
|
|
|
|
|
emoji: "MESSAGE.DELETE",
|
|
|
|
|
timestamp: new Date().getTime()
|
|
|
|
|
},
|
|
|
|
|
separate: {
|
|
|
|
|
start: content
|
|
|
|
|
? `**Message:**\n\`\`\`${content}\`\`\``
|
|
|
|
|
: "**Message:** *Message had no content*"
|
|
|
|
|
},
|
|
|
|
|
list: {
|
|
|
|
|
messageId: entry(message.id, `\`${message.id}\``),
|
|
|
|
|
sentBy: entry(message.author.id, renderUser(message.author)),
|
|
|
|
|
sentIn: entry(
|
|
|
|
|
message.channel.id,
|
|
|
|
|
renderChannel(message.channel)
|
|
|
|
|
),
|
|
|
|
|
deleted: entry(
|
|
|
|
|
new Date().getTime(),
|
|
|
|
|
renderDelta(new Date().getTime())
|
|
|
|
|
),
|
|
|
|
|
mentions: message.mentions.users.size,
|
|
|
|
|
attachments: entry(attachments, attachments + attachmentJump),
|
|
|
|
|
repliedTo: entry(
|
|
|
|
|
message.reference.messageId || null,
|
|
|
|
|
message.reference.messageId
|
|
|
|
|
? `[[Jump to message]](https://discord.com/channels/${message.guild.id}/${message.channel.id}/${message.reference.messageId})`
|
|
|
|
|
: "None"
|
|
|
|
|
)
|
|
|
|
|
},
|
|
|
|
|
hidden: {
|
|
|
|
|
guild: message.channel.guild.id
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
log(data);
|
|
|
|
|
} catch (e) {
|
|
|
|
|
console.log(e);
|
|
|
|
|
}
|
|
|
|
|
}
|