MCPcopy Index your code
hub / github.com/codebymitch/TitanBot / execute

Function execute

src/events/messageDelete.js:13–83  ·  view source on GitHub ↗
(message)

Source from the content-addressed store, hash-verified

11 once: false,
12
13 async execute(message) {
14 try {
15 if (!message.guild) return;
16
17 try {
18 const reactionRoleData = await getReactionRoleMessage(message.client, message.guild.id, message.id);
19 if (reactionRoleData) {
20 await deleteReactionRoleMessage(message.client, message.guild.id, message.id);
21 logger.info(`Cleaned up reaction role database entry for manually deleted message ${message.id} in guild ${message.guild.id}`);
22
23 try {
24 await logEvent({
25 client: message.client,
26 guildId: message.guild.id,
27 eventType: EVENT_TYPES.REACTION_ROLE_DELETE,
28 data: {
29 title: 'Reaction Role Removed',
30 lines: [
31 formatLogLine('Channel', message.channel ? `${message.channel.name} ${message.channel.toString()}` : 'Unknown'),
32 formatLogLine('Message ID', `\`${message.id}\``),
33 formatLogLine('Cleanup', 'Database entry removed automatically'),
34 ],
35 quoted: true,
36 }
37 });
38 } catch (logCleanupError) {
39 logger.warn('Failed to log reaction role cleanup after manual message deletion:', logCleanupError);
40 }
41 }
42 } catch (reactionRoleCleanupError) {
43 logger.warn(`Failed to clean up reaction role data for deleted message ${message.id}:`, reactionRoleCleanupError);
44 }
45
46 if (message.author?.bot) return;
47
48 const metaLines = [
49 formatLogLine('Channel', message.channel ? `${message.channel.name} ${message.channel.toString()}` : 'Unknown'),
50 formatLogLine('Message ID', `\`${message.id}\``),
51 formatLogLine('Message author', message.author ? message.author.toString() : 'Unknown'),
52 formatLogLine('Message created', `<t:${Math.floor(message.createdTimestamp / 1000)}:R>`),
53 ];
54
55 let messageBody = null;
56 if (message.content) {
57 messageBody = message.content.length > MAX_LOGGED_MESSAGE_CONTENT_LENGTH
58 ? `${message.content.substring(0, MAX_LOGGED_MESSAGE_CONTENT_LENGTH - 3)}...`
59 : message.content;
60 }
61
62 if (message.attachments.size > 0) {
63 metaLines.push(formatLogLine('Attachments', String(message.attachments.size)));
64 }
65
66 await logEvent({
67 client: message.client,
68 guildId: message.guild.id,
69 eventType: EVENT_TYPES.MESSAGE_DELETE,
70 data: {

Callers

nothing calls this directly

Calls 4

getReactionRoleMessageFunction · 0.90
logEventFunction · 0.90
formatLogLineFunction · 0.90

Tested by

no test coverage detected