-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlog.js
More file actions
188 lines (160 loc) · 6.65 KB
/
log.js
File metadata and controls
188 lines (160 loc) · 6.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
const { Events, EmbedBuilder } = require('discord.js');
module.exports = (client, db) => {
// Funktion: Log-Nachricht senden
async function sendLog(guildId, embed) {
try {
// Hole den Log-Kanal aus der Datenbank
const rows = await db.query('SELECT log_channel_id FROM config WHERE guild_id = ?', [guildId]);
if (rows.length === 0) return; // Kein Log-Kanal gesetzt
const logChannelId = rows[0].log_channel_id;
const logChannel = await client.channels.fetch(logChannelId);
if (logChannel) logChannel.send({ embeds: [embed] }); // Nachricht in den Log-Kanal senden
} catch (error) {
console.error('Fehler beim Senden der Log-Nachricht:', error);
}
}
// 1. Nachricht gelöscht
client.on(Events.MessageDelete, async (message) => {
if (message.partial) return;
const embed = new EmbedBuilder()
.setColor('#FF6347')
.setTitle('🗑️ Nachricht gelöscht')
.setDescription(`**Benutzer**: ${message.author.tag}\n**Inhalt**: "${message.content}"`)
.setTimestamp()
.setFooter({ text: 'Bot Log' });
await sendLog(message.guild.id, embed);
});
// 2. Nachricht bearbeitet
client.on(Events.MessageUpdate, async (oldMessage, newMessage) => {
if (oldMessage.partial || newMessage.partial || oldMessage.content === newMessage.content) return;
const embed = new EmbedBuilder()
.setColor('#FFD700')
.setTitle('✏️ Nachricht bearbeitet')
.setDescription(`**Benutzer**: ${oldMessage.author.tag}\n**Vorher**: "${oldMessage.content}"\n**Nachher**: "${newMessage.content}"`)
.setTimestamp()
.setFooter({ text: 'Bot Log' });
await sendLog(oldMessage.guild.id, embed);
});
// 3. Neuer Benutzer beitritt
client.on(Events.GuildMemberAdd, async (member) => {
const embed = new EmbedBuilder()
.setColor('#32CD32')
.setTitle('👋 Neuer Benutzer beigetreten')
.setDescription(`**Benutzer**: ${member.user.tag}`)
.setTimestamp()
.setFooter({ text: 'Bot Log' });
await sendLog(member.guild.id, embed);
});
// 4. Benutzername geändert (Nickname)
client.on(Events.GuildMemberUpdate, async (oldMember, newMember) => {
if (oldMember.nickname !== newMember.nickname) {
const embed = new EmbedBuilder()
.setColor('#FFD700')
.setTitle('✏️ Benutzername geändert')
.setDescription(`**Benutzer**: ${oldMember.user.tag}\n**Vorheriger Nickname**: ${oldMember.nickname || 'Keiner'}\n**Neuer Nickname**: ${newMember.nickname || 'Keiner'}`)
.setTimestamp()
.setFooter({ text: 'Bot Log' });
await sendLog(oldMember.guild.id, embed);
}
});
// 5. Benutzer stumm geschaltet/entstummt (VoiceStateUpdate)
client.on(Events.VoiceStateUpdate, async (oldState, newState) => {
if (oldState.selfMute !== newState.selfMute) {
const embed = new EmbedBuilder()
.setColor('#FF6347')
.setTitle('🔊 Stummschaltung geändert')
.setDescription(`**Benutzer**: ${newState.member.user.tag}\n**Stumm geschaltet**: ${newState.selfMute ? 'Ja' : 'Nein'}`)
.setTimestamp()
.setFooter({ text: 'Bot Log' });
await sendLog(newState.guild.id, embed);
}
});
// 6. Emoji hinzugefügt
client.on(Events.EmojiCreate, async (emoji) => {
const embed = new EmbedBuilder()
.setColor('#8A2BE2')
.setTitle('😊 Neuer Emoji hinzugefügt')
.setDescription(`**Emoji**: ${emoji.name}\n**Emoji ID**: ${emoji.id}`)
.setTimestamp()
.setFooter({ text: 'Bot Log' });
await sendLog(emoji.guild.id, embed);
});
// 7. Emoji gelöscht
client.on(Events.EmojiDelete, async (emoji) => {
const embed = new EmbedBuilder()
.setColor('#8B0000')
.setTitle('❌ Emoji gelöscht')
.setDescription(`**Emoji**: ${emoji.name}\n**Emoji ID**: ${emoji.id}`)
.setTimestamp()
.setFooter({ text: 'Bot Log' });
await sendLog(emoji.guild.id, embed);
});
// 8. Reaktion hinzugefügt
client.on(Events.MessageReactionAdd, async (reaction, user) => {
if (reaction.partial) await reaction.fetch();
const embed = new EmbedBuilder()
.setColor('#00FF00')
.setTitle('👍 Reaktion hinzugefügt')
.setDescription(`**Benutzer**: ${user.tag}\n**Nachricht**: "${reaction.message.content}"\n**Reaktion**: ${reaction.emoji.name}`)
.setTimestamp()
.setFooter({ text: 'Bot Log' });
await sendLog(reaction.message.guild.id, embed);
});
// 9. Reaktion entfernt
client.on(Events.MessageReactionRemove, async (reaction, user) => {
if (reaction.partial) await reaction.fetch();
const embed = new EmbedBuilder()
.setColor('#FF0000')
.setTitle('👎 Reaktion entfernt')
.setDescription(`**Benutzer**: ${user.tag}\n**Nachricht**: "${reaction.message.content}"\n**Reaktion**: ${reaction.emoji.name}`)
.setTimestamp()
.setFooter({ text: 'Bot Log' });
await sendLog(reaction.message.guild.id, embed);
});
// 10. Benutzer verlässt den Server oder wird gekickt
client.on(Events.GuildMemberRemove, async (member) => {
try {
const auditLogs = await member.guild.fetchAuditLogs({ type: 'MEMBER_KICK', limit: 1 });
const kickLog = auditLogs.entries.find(entry => entry.target.id === member.id);
if (kickLog) {
const embedKick = new EmbedBuilder()
.setColor('#FFA500')
.setTitle('❌ Benutzer gekickt')
.setDescription(`**Benutzer**: ${member.user.tag}\n**Von**: ${kickLog.executor.tag}`)
.setTimestamp()
.setFooter({ text: 'Bot Log' });
await sendLog(member.guild.id, embedKick);
} else {
const embedLeave = new EmbedBuilder()
.setColor('#FFD700')
.setTitle('🚪 Benutzer hat den Server verlassen')
.setDescription(`**Benutzer**: ${member.user.tag}`)
.setTimestamp()
.setFooter({ text: 'Bot Log' });
await sendLog(member.guild.id, embedLeave);
}
} catch (error) {
console.error('Fehler beim Abrufen der Audit-Logs:', error);
}
});
// 11. Benutzer gebannt
client.on(Events.GuildBanAdd, async (ban) => {
const embed = new EmbedBuilder()
.setColor('#DC143C')
.setTitle('⛔ Benutzer gebannt')
.setDescription(`**Benutzer**: ${ban.user.tag}`)
.setTimestamp()
.setFooter({ text: 'Bot Log' });
await sendLog(ban.guild.id, embed);
});
// 12. Benutzer entbannt
client.on(Events.GuildBanRemove, async (ban) => {
const embed = new EmbedBuilder()
.setColor('#32CD32')
.setTitle('✅ Benutzer entbannt')
.setDescription(`**Benutzer**: ${ban.user.tag}`)
.setTimestamp()
.setFooter({ text: 'Bot Log' });
await sendLog(ban.guild.id, embed);
});
};