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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26