Discord js kullanılarak yazılmış bir mesaj gönderimini açıp kapatma komutu. Böylece sunucu üyelerinizin hangi kanala mesaj gönderip hangi kanala mesaj gönderemeyeceğini ayarlayın.
Kurulum için aşağıdaki adımları izleyin;
- Bu kod projenizdeki komutlar ya da commands adındaki klasöre atılmalıdır. Eğer eklemeyi bilmiyorsanız buraya tıklayın.
- Komut içerisindeki gerekli yerleri kendinize göre düzenleyebilirsiniz.
- Gerekli modüller; Discord.js
// Komutlar klasörüne atılmalıdır.
// Bu komut Staup tarafından hazırlanmıştır.
const { Permissions } = require('discord.js');
module.exports = {
name: 'kanalaçkapat',
description: 'Belirli bir metin kanalının mesaj gönderimini açıp kapatır.',
execute(client, message, args) {
// Komutu kullanan üyenin "YÖNETİCİ" veya "MESAJLARI YÖNET" yetkisi var mı kontrol et
if (!message.member.permissions.has([Permissions.FLAGS.ADMINISTRATOR, Permissions.FLAGS.MANAGE_MESSAGES])) {
return message.reply('Bu komutu kullanma yetkiniz yok.');
}
// Komutu kullanırken bahsedilen kanalı al
const mentionedChannel = message.mentions.channels.first();
if (!mentionedChannel) {
return message.reply('Kanal etiketlenmedi. Kullanım: `!kanalaçkapat #kanal_adı`');
}
// Kanalın mesaj gönderim iznini tersine çevir
const currentPermissions = mentionedChannel.permissionOverwritesFor(mentionedChannel.guild.roles.everyone);
const sendMessagesPermission = currentPermissions ? currentPermissions.allow.bitfield & Permissions.FLAGS.SEND_MESSAGES : 0;
if (sendMessagesPermission) {
mentionedChannel.updateOverwrite(mentionedChannel.guild.roles.everyone, {
SEND_MESSAGES: false,
});
message.reply(`${mentionedChannel} kanalının mesaj gönderim izni kapatıldı.`);
mentionedChannel.send("Bu kanal mesaj gönderimine kapatılmıştır. :lock:");
} else {
mentionedChannel.updateOverwrite(mentionedChannel.guild.roles.everyone, {
SEND_MESSAGES: true,
});
message.reply(`${mentionedChannel} kanalının mesaj gönderim izni açıldı.`);
mentionedChannel.send("Bu kanalın mesaj gönderim izni açılmıştır. :unlock:");
}
},
};