Discord js kullanılarak yazılmış bir denetim kaydı kodu. Kodu kullanarak sunucunuz içerisindeki üyelerin sildikleri ve düzenledikleri mesajları görebilirsiniz. Ayrıca değiştirilen kullanıcı isimleri ve profil resimleri de kayıt altına alınmaktadır. Kurulum için aşağıdaki talimatları izleyin.
⚠ Kodun botunuz ile uyumlu olduğundan emin olun.
Kurulum için aşağıdaki adımları izleyin:
- Bu kod projenizin (
index.js
, app.js
, server.js
vb. isimlerdeki) main dosyasına eklenmelidir.
LOG_CHANNEL_ID
kısmına logların tutulmasını istediğiniz bir metin kanalının id'sini girin.
- Komut içerisindeki gerekli yerleri kendinize göre düzenleyebilirsiniz.
- Gerekli modüller:
Discord.js
Aşağıda verilen kod boş bir main içerisine eklenebilmesi için düzenlenmiştir. Halihazırda aktif bir botunuz varsa kodu botunuza göre uyarlayın.
Discord.js v14 için;
const { Client, GatewayIntentBits, EmbedBuilder } = require('discord.js');
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent,
GatewayIntentBits.GuildMembers
]
});
const logChannelId = 'LOG_CHANNEL_ID'; // Kayıtların gönderileceği kanalın ID'si
client.on('messageDelete', async message => {
if (message.partial) await message.fetch(); // Eğer mesaj cache'de değilse yükle
const embed = new EmbedBuilder()
.setTitle('Mesaj Silindi')
.setDescription(`**Gönderen:** ${message.author.tag}\n**Kanal:** ${message.channel}\n**Mesaj:** ${message.content}`)
.setColor('RED')
.setFooter({ text: `${new Date().toLocaleString()} | Staup` });
const logChannel = client.channels.cache.get(logChannelId);
if (logChannel) logChannel.send({ embeds: [embed] });
});
client.on('messageUpdate', async (oldMessage, newMessage) => {
if (oldMessage.partial) await oldMessage.fetch();
if (newMessage.partial) await newMessage.fetch();
if (oldMessage.content === newMessage.content) return;
const embed = new EmbedBuilder()
.setTitle('Mesaj Düzenlendi')
.setDescription(`**Gönderen:** ${oldMessage.author.tag}\n**Kanal:** ${oldMessage.channel}\n**Önceki Mesaj:** ${oldMessage.content}\n**Yeni Mesaj:** ${newMessage.content}`)
.setColor('ORANGE')
.setFooter({ text: `${new Date().toLocaleString()} | Staup` });
const logChannel = client.channels.cache.get(logChannelId);
if (logChannel) logChannel.send({ embeds: [embed] });
});
client.on('guildMemberUpdate', (oldMember, newMember) => {
const changes = [];
if (oldMember.nickname !== newMember.nickname) {
changes.push(`**Takma Ad:** \`${oldMember.nickname || 'Yok'}\` ➔ \`${newMember.nickname || 'Yok'}\``);
}
if (oldMember.user.username !== newMember.user.username) {
changes.push(`**Kullanıcı Adı:** \`${oldMember.user.username}\` ➔ \`${newMember.user.username}\``);
}
if (oldMember.user.displayAvatarURL() !== newMember.user.displayAvatarURL()) {
changes.push('**Profil Resmi Değiştirildi**');
}
if (changes.length > 0) {
const embed = new EmbedBuilder()
.setTitle('Kullanıcı Güncellendi')
.setDescription(changes.join('\n'))
.setThumbnail(newMember.user.displayAvatarURL({ dynamic: true }))
.setColor('BLUE')
.setFooter({ text: `${new Date().toLocaleString()} | Staup` });
const logChannel = client.channels.cache.get(logChannelId);
if (logChannel) logChannel.send({ embeds: [embed] });
}
});
client.login('YOUR_BOT_TOKEN');