/[sudobot]/trunk/src/automod/Logger.ts
ViewVC logotype

Diff of /trunk/src/automod/Logger.ts

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 24 by rakin, Mon Jul 29 17:28:15 2024 UTC revision 50 by rakin, Mon Jul 29 17:28:22 2024 UTC
# Line 1  Line 1 
1  const { MessageEmbed } = require('discord.js');  const { MessageEmbed } = require('discord.js');
2    const util = require('./util');
3    
4  class Logger {  class Logger {
5      constructor() {      constructor() {
# Line 6  class Logger { Line 7  class Logger {
7      }      }
8    
9      channel(callback, msg) {      channel(callback, msg) {
10          let channelID = app.config.get('logging_channel');          let channelID = app.config.props[msg.guild.id].logging_channel;
11            let channel = msg.guild.channels.cache.find(c => c.id === channelID);
12    
13            if (channel) {
14                return callback(channel);
15            }
16        }
17    
18        channelJoinLeft(callback, msg) {
19            let channelID = app.config.props[msg.guild.id].logging_channel_join_leave;
20          let channel = msg.guild.channels.cache.find(c => c.id === channelID);          let channel = msg.guild.channels.cache.find(c => c.id === channelID);
21    
22          if (channel) {          if (channel) {
# Line 21  class Logger { Line 31  class Logger {
31                      new MessageEmbed()                      new MessageEmbed()
32                      .setColor('#007bff')                      .setColor('#007bff')
33                      .setTitle('Message Edited in #' + newMsg.channel.name + " (" + newMsg.channel.id + ")")                      .setTitle('Message Edited in #' + newMsg.channel.name + " (" + newMsg.channel.id + ")")
34                      .setDescription('**Before**\n' + oldMsg.content + '\n\**nAfter**\n', newMsg.content)                      .setDescription('**-+-+Before**\n' + oldMsg.content + '\n\n**-+-+After**\n' + newMsg.content)
35                      .addField('ID', newMsg.id)                      .addField('ID', newMsg.id)
36                      .setAuthor({                      .setAuthor({
37                          name: newMsg.author.tag,                          name: newMsg.author.tag,
# Line 38  class Logger { Line 48  class Logger {
48    
49      logDelete(msg) {      logDelete(msg) {
50          this.channel(async (channel) => {          this.channel(async (channel) => {
51                const embed = new MessageEmbed()
52                    .setColor('#f14a60')
53                    .setTitle('Message Deleted in #' + msg.channel.name + " (" + msg.channel.id + ")")
54                    .setDescription(msg.content)
55                    .setAuthor({
56                        name: msg.author.tag,
57                        iconURL: msg.author.displayAvatarURL(),
58                    })
59                    .addField('ID', msg.id)
60                    .setFooter({
61                        text: "Deleted",
62                    })
63                    .setTimestamp();
64    
65                if (msg.attachments.size > 0) {
66                    let str = '';
67    
68                    msg.attachments.forEach(a => {
69                        str += `**${a.name}** ${a.url}\n`;
70                    });
71    
72                    embed.addField('Attachments', str);
73                }
74    
75                await channel.send({
76                    embeds: [
77                        embed
78                    ]
79                });
80            }, msg);
81        }
82    
83        logBanned(ban) {
84            this.channel(async (channel) => {
85                let r = '*No reason provided*';
86    
87                if (ban.reason) {
88                    r = ban.reason;
89                }
90    
91                await channel.send({
92                    embeds: [
93                        new MessageEmbed()
94                        .setColor('#f14a60')
95                        .setTitle("A user was banned")
96                        .setAuthor({
97                            name: ban.user.tag,
98                            iconURL: ban.user.displayAvatarURL(),
99                        })
100                        .addField('Reason', r)
101                        .addField('User ID', ban.user.id)
102                        .setFooter({
103                            text: "Banned",
104                        })
105                        .setTimestamp()
106                    ]
107                });
108            }, ban);
109        }
110    
111        logUnbanned(ban) {
112            this.channel(async (channel) => {
113              await channel.send({              await channel.send({
114                  embeds: [                  embeds: [
115                      new MessageEmbed()                      new MessageEmbed()
116                      .setColor('#f14a60')                      .setColor('#f14a60')
117                      .setTitle('Message Deleted in #' + msg.channel.name + " (" + msg.channel.id + ")")                      .setTitle("A user was unbanned")
118                      .setDescription(msg.content)                      .setAuthor({
119                            name: ban.user.tag,
120                            iconURL: ban.user.displayAvatarURL(),
121                        })
122                        .addField('User ID', ban.user.id)
123                        .setFooter({
124                            text: "Unbanned",
125                        })
126                        .setTimestamp()
127                    ]
128                });
129            }, ban);
130        }
131    
132        logJoined(member) {
133            this.channelJoinLeft(async (channel) => {
134                await channel.send({
135                    embeds: [
136                        new MessageEmbed()
137                        .setColor('#007bff')
138                        .setTitle("New member joined")
139                        .setAuthor({
140                            name: member.user.tag,
141                            iconURL: member.user.displayAvatarURL(),
142                        })
143                        .setDescription(`<@${member.user.id}> just joined the server!`)
144                        .addField('Account Created', `${member.user.createdAt.toLocaleString()} (${util.timeSince(member.user.createdAt.getTime())})`)
145                        .addField('New Account?', (new Date().getTime() - member.user.createdAt.getTime()) <= 3 * 24 * 60 * 60 * 1000 ? ":warning: Yes :warning:" : "No")
146                        .addField('Bot?', member.user.bot === true ? 'Yes' : 'No')
147                        .addField('User ID', member.user.id)
148                        .setFooter({
149                            text: "Joined",
150                        })
151                        .setTimestamp()
152                    ]
153                });
154            }, member);
155        }
156    
157        logLeft(member) {
158            this.channelJoinLeft(async (channel) => {
159                await channel.send({
160                    embeds: [
161                        new MessageEmbed()
162                        .setColor('#f14a60')
163                        .setTitle("Member left")
164                        .setAuthor({
165                            name: member.user.tag,
166                            iconURL: member.user.displayAvatarURL(),
167                        })
168                        .addField('Joined at', `${member.joinedAt.toLocaleString()} (${util.timeSince(member.joinedAt.getTime())})`)
169                        .addField('User ID', member.user.id)
170                        .addField('Bot?', member.user.bot === true ? 'Yes' : 'No')
171                        .setFooter({
172                            text: "Left",
173                        })
174                        .setTimestamp()
175                    ]
176                });
177            }, member);
178        }
179    
180        logBeaned(member, r, d) {
181            this.channel(async (channel) => {
182                await channel.send({
183                    embeds: [
184                        new MessageEmbed()
185                        .setColor('#007bff')
186                        .setTitle("Member beaned")
187                        .setAuthor({
188                            name: member.user.tag,
189                            iconURL: member.user.displayAvatarURL(),
190                        })
191                        .addField('Reason', r)
192                        .addField('Beaned by', d.tag)
193                        .addField('User ID', member.user.id)
194                        .setFooter({
195                            text: "Beaned",
196                        })
197                        .setTimestamp()
198                    ]
199                });
200            }, member);
201        }
202    
203        logMute(member, reason, timeMs, d) {
204            this.channel(async (channel) => {
205                await channel.send({
206                    embeds: [
207                        new MessageEmbed()
208                        .setColor('#f14a60')
209                        .setTitle("Member muted")
210                        .setAuthor({
211                            name: member.user.tag,
212                            iconURL: member.user.displayAvatarURL(),
213                        })
214                        .addField('Reason', reason)
215                        .addField('Muted by', d.tag)
216                        .addField('Duration Until', typeof timeMs === 'number' ? new Date((timeMs / 1000) + Date.now()).toLocaleString() : "*No duration set*")
217                        .addField('User ID', member.user.id)
218                        .setFooter({
219                            text: "Muted",
220                        })
221                        .setTimestamp()
222                    ]
223                });
224            }, member);
225        }
226    
227        logUnmute(member, d) {
228            this.channel(async (channel) => {
229                await channel.send({
230                    embeds: [
231                        new MessageEmbed()
232                        .setColor('#007bff')
233                        .setTitle("Member unmuted")
234                        .setAuthor({
235                            name: member.user.tag,
236                            iconURL: member.user.displayAvatarURL(),
237                        })
238                        .addField('Unmuted by', d.tag)
239                        .addField('User ID', member.user.id)
240                        .setFooter({
241                            text: "Unmuted",
242                        })
243                        .setTimestamp()
244                    ]
245                });
246            }, member);
247        }
248    
249        logWarn(msg, member, d, reason) {
250            if (member.user)
251                member = member.user;
252    
253            this.channel(async (channel) => {
254                await channel.send({
255                    embeds: [
256                        new MessageEmbed()
257                        .setColor('GOLD')
258                        .setTitle("Member warned")
259                        .setAuthor({
260                            name: member.tag,
261                            iconURL: member.displayAvatarURL(),
262                        })
263                        .addField('Reason', reason)
264                        .addField('Warned by', d.tag)
265                        .addField('User ID', member.id)
266                        .setFooter({
267                            text: "Warned",
268                        })
269                        .setTimestamp()
270                    ]
271                });
272            }, msg);
273        }
274    
275        logWarndel(msg, member, warn, d) {
276            this.channel(async (channel) => {
277                await channel.send({
278                    embeds: [
279                        new MessageEmbed()
280                        .setColor('GOLD')
281                        .setTitle("Warning deleted")
282                      .setAuthor({                      .setAuthor({
283                          name: msg.author.tag,                          name: member.user.tag,
284                          iconURL: msg.author.displayAvatarURL(),                          iconURL: member.user.displayAvatarURL(),
285                      })                      })
286                      .addField('ID', msg.id)                      .addField('Warned by', d.tag + '')
287                        .addField('Warning ID', warn.id + '')
288                        .addField('User ID', member.user.id)
289                      .setFooter({                      .setFooter({
290                          text: "Deleted",                          text: "Warning Deleted",
291                      })                      })
292                      .setTimestamp()                      .setTimestamp()
293                  ]                  ]
# Line 59  class Logger { Line 296  class Logger {
296      }      }
297  }  }
298    
 module.exports = Logger;  
299    module.exports = Logger;

Legend:
Removed from v.24  
changed lines
  Added in v.50

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26