Discord.js | Veritabanlı Mute Sistemi!

Katılım
10 Kas 2019
Konular
225
Mesajlar
1,057
Çözümler
19
Tepki puanı
1,048
Puanları
8,710
Veritabanlı mute sistemi ne işe yarar? Diye sorduğunuzu duyar gibiyim.
Diyelim ki birine mute attınız ve o mute attığınız kişi sunucudan çıkıp girince doğal olarak mute rolü gidiyor.
Veritabanlı mute sistemi sayesinde artık şahıs sunucudan çık gir yapsa dahi mute rolü gitmeyecektir.
Vereceğim kodlama hem veritabanlı hem de süreli mute sistemidir.

Alttaki kodlamayı "Komutlar" bölümüne atınız.
Adama mute atmanıza yarar, tabii ki ilk önce log kanalını ayarlamayı unutma :)
JavaScript:
const Discord = require("discord.js");
const ms = require("ms");
const client = new Discord.Client();
const db = require("quick.db");
exports.run = async (receivedMessage,  msg, args) => {
let user = msg.guild.member(msg.mentions.users.first() || msg.guild.members.get(args[0]));
        if (!msg.member.hasPermission("BAN_MEMBERS")) return msg.channel.send("Bu komudu kullanabilmek için `Ban` yetkisine sahip olmanız gerek.");
 if (user.hasPermission("BAN_MEMBERS")) return msg.channel.send(`Hata! \`${user.tag}\` isimli kullanıcı bu sunucuda yetkili.`)
let log = await db.fetch(`mlog_${msg.guild.id}`)
  if (!log) return msg.channel.send("Ayarlı Bir Mute Log Kanalı Yok! Ayarlamak için \`-mute-log #kanal\` !") 
var mod = msg.author
var reason = args[1]
 let sebep = args.slice(2).join(' ')
 
  if (!user) return msg.reply('Kullanıcı Etiketlemedin')
 if (!reason) return msg.reply('Süre Belirtmedin! Seçeneklerin : 1s/1m/1h/1d/1w')
if (!sebep) return msg.reply('Sebep Belirtmedin!')
 
 
 
  let mute = msg.guild.roles.find(r => r.name === "Oyuncular Şehri");
        
  let mutetime = args[1]
if(!mute){
      mute = await msg.guild.createRole({
        name: "Oyuncular Şehri",
        color: "#818386",
        permissions:[]
      })
      msg.guild.channels.forEach(async (channel, id) => {
        await channel.overwritePermissions(mute, {
          SEND_MESSAGES: false,
          ADD_REACTIONS: false
        });
      });
 
    }
 
 
  await(user.addRole(mute.id));
msg.channel.send(``)
  let mutezaman = args[1]
.replace(`d`," Gün")
.replace(`s`," Saniye")
.replace(`h`," Saat")
.replace(`m`," Dakika")
.replace(`w`," Hafta")
  msg.channel.send(`${user} Adlı Kişi , ${mutezaman} Susturuldu! Sunucudan Çıkarsa Bile Mutesi Devam edecek!`)
db.set(`muteli_${msg.guild.id + user.id}`, 'muteli')
db.set(`süre_${msg.mentions.users.first().id + msg.guild.id}`, mutetime)
                        
  const muteembed = new Discord.RichEmbed()
        .setTitle('Ceza: Mute')
    .setThumbnail(user.avatarURL||user.defaultAvatarURL)
      .addField('Moderatör', `${mod}`,true)
      .addField('Sebep', `\`${sebep}\``,true)
      .addField('Kullanıcı', `<@${user.id}>`,true)
      .addField('Süre',`\`${mutezaman}\``)
  . setColor("RANDOM")
msg.guild.channels.get(log).sendEmbed(muteembed)
 
  setTimeout(function(){
db.delete(`muteli_${msg.guild.id + user.id}`)
    user.removeRole(mute.id)
 msg.channel.send(`<@${user.id}> Muten açıldı.`)
  }, ms(mutetime));
 
}
exports.conf = {
  enabled: true,
  guildOnly: true,
  aliases: ["sustur"],
  permLevel: 0
};
 
exports.help = {
  name: "mute",
  description: "",
  usage: ""
};

Alttaki kodlamayı "Komutlar" bölümüne atınız.
Log kanalını bu komut ile ayarlayabilirsiniz.
JavaScript:
const Discord = require('discord.js')
const db = require('quick.db');
 
exports.run = async (client, message, args) => {
 
 if (!message.member.hasPermission("MANAGE_MESSAGES")) {
  const bilgi = new Discord.RichEmbed()
  .setDescription('Bu komutu kullanabilmek için **Mesajları Yönet** yetkisine sahip olmanız gerek.')
  .setColor("0000A0")
return message.channel.sendEmbed(bilgi).then(m => m.delete(150000)); return
       }
  let mlog = message.mentions.channels.first()
  let sıfırla = db.fetch(`mlog_${message.guild.id}`)
if(args[0] === "sıfırla") {
    if(!sıfırla) {
      message.channel.send(`Mute Log Kanalı zaten ayarlı değil.`)
                    
      return
    }
    db.delete(`mlog_${message.guild.id}`)
    message.channel.send(`Mute Log Kanalı başarıyla sıfırlandı.`)
              
    return
  }
  if (!mlog) {
    return message.channel.send(
    `Mute Log Olacak Kanalı etiketlemelisin.`)                     
  }
  db.set(`mlog_${message.guild.id}`, mlog.id)
  message.channel.send(`✅|Mute Log Kanalı başarıyla ${mlog} olarak ayarlandı.`)
  };
  
exports.conf = {
    enabled: true,
    guildOnly: true,
    aliases: ['mute-log'],
    permLevel: 0
}
 
exports.help = {
    name: 'mute-log-ayarla',
    description: 'Mute Logu Ayarlar.',
    usage: '-mute-log #kanal'
}

Asıl önemli olan kısıma geldik.
Neden önemli? Hemen söyleyeyim, adam sunucudan çık gir yapınca bu kodlama sayesinde rolü geri verilecek.
Alttaki kodlamayı main'e atınız. (Örn; bot.js, index.js, server.js üçünden birisi olması gerek)
JavaScript:
client.on('guildMemberAdd', async(member) => {
 let mute = member.guild.roles.find(r => r.name === "Oyuncular Şehri");
let mutelimi = db.fetch(`muteli_${member.guild.id + member.id}`)
let süre = db.fetch(`süre_${member.id + member.guild.id}`)
if (!mutelimi) return;
if (mutelimi == "muteli") {
member.addRole(mute.id)
 
member.send("Muteliyken Sunucudan Çıktığın için Yeniden Mutelendin!")
 setTimeout(function(){
db.delete(`muteli_${member.guild.id + member.id}`)
    member.send(`<@${member.id}> Muten açıldı.`)
    member.removeRole(mute.id);
  }, ms(süre));
}
})
 
Katılım
13 Kas 2019
Konular
41
Mesajlar
398
Tepki puanı
291
Puanları
3,310
Discord botu olanlar için çok yararlı bir konu olmuş, ellerine sağlık. (y)
 
Katılım
17 Mar 2020
Konular
69
Mesajlar
460
Tepki puanı
297
Puanları
3,560
Çok yararlı bir konu olmuş, ellerine sağlık. :)
 
Katılım
4 Eki 2020
Konular
0
Mesajlar
1
Tepki puanı
0
Puanları
755
v12 halini atarsan sevinirim teşekkürler.
 
Katılım
19 Eki 2020
Konular
0
Mesajlar
1
Tepki puanı
0
Puanları
0
Merhaba yapamadim discordan ulassam yardim edebilirmisin?
 
Katılım
28 Eki 2020
Konular
0
Mesajlar
2
Tepki puanı
0
Puanları
705
bedne komutlar diye yer yok nasıl yapıcaz komutlar.json diye bir yermi oluştuurmam lazım new fileden
 
Katılım
11 Kas 2020
Konular
1
Mesajlar
3
Tepki puanı
0
Puanları
1,455
Veritabanlı mute sistemi ne işe yarar? Diye sorduğunuzu duyar gibiyim.
Diyelim ki birine mute attınız ve o mute attığınız kişi sunucudan çıkıp girince doğal olarak mute rolü gidiyor.
Veritabanlı mute sistemi sayesinde artık şahıs sunucudan çık gir yapsa dahi mute rolü gitmeyecektir.
Vereceğim kodlama hem veritabanlı hem de süreli mute sistemidir.

Alttaki kodlamayı "Komutlar" bölümüne atınız.
Adama mute atmanıza yarar, tabii ki ilk önce log kanalını ayarlamayı unutma :)
JavaScript:
const Discord = require("discord.js");
const ms = require("ms");
const client = new Discord.Client();
const db = require("quick.db");
exports.run = async (receivedMessage,  msg, args) => {
let user = msg.guild.member(msg.mentions.users.first() || msg.guild.members.get(args[0]));
        if (!msg.member.hasPermission("BAN_MEMBERS")) return msg.channel.send("Bu komudu kullanabilmek için `Ban` yetkisine sahip olmanız gerek.");
if (user.hasPermission("BAN_MEMBERS")) return msg.channel.send(`Hata! \`${user.tag}\` isimli kullanıcı bu sunucuda yetkili.`)
let log = await db.fetch(`mlog_${msg.guild.id}`)
  if (!log) return msg.channel.send("Ayarlı Bir Mute Log Kanalı Yok! Ayarlamak için \`-mute-log #kanal\` !")
var mod = msg.author
var reason = args[1]
let sebep = args.slice(2).join(' ')

  if (!user) return msg.reply('Kullanıcı Etiketlemedin')
if (!reason) return msg.reply('Süre Belirtmedin! Seçeneklerin : 1s/1m/1h/1d/1w')
if (!sebep) return msg.reply('Sebep Belirtmedin!')



  let mute = msg.guild.roles.find(r => r.name === "Oyuncular Şehri");
       
  let mutetime = args[1]
if(!mute){
      mute = await msg.guild.createRole({
        name: "Oyuncular Şehri",
        color: "#818386",
        permissions:[]
      })
      msg.guild.channels.forEach(async (channel, id) => {
        await channel.overwritePermissions(mute, {
          SEND_MESSAGES: false,
          ADD_REACTIONS: false
        });
      });

    }


  await(user.addRole(mute.id));
msg.channel.send(``)
  let mutezaman = args[1]
.replace(`d`," Gün")
.replace(`s`," Saniye")
.replace(`h`," Saat")
.replace(`m`," Dakika")
.replace(`w`," Hafta")
  msg.channel.send(`${user} Adlı Kişi , ${mutezaman} Susturuldu! Sunucudan Çıkarsa Bile Mutesi Devam edecek!`)
db.set(`muteli_${msg.guild.id + user.id}`, 'muteli')
db.set(`süre_${msg.mentions.users.first().id + msg.guild.id}`, mutetime)
                       
  const muteembed = new Discord.RichEmbed()
        .setTitle('Ceza: Mute')
    .setThumbnail(user.avatarURL||user.defaultAvatarURL)
      .addField('Moderatör', `${mod}`,true)
      .addField('Sebep', `\`${sebep}\``,true)
      .addField('Kullanıcı', `<@${user.id}>`,true)
      .addField('Süre',`\`${mutezaman}\``)
  . setColor("RANDOM")
msg.guild.channels.get(log).sendEmbed(muteembed)

  setTimeout(function(){
db.delete(`muteli_${msg.guild.id + user.id}`)
    user.removeRole(mute.id)
msg.channel.send(`<@${user.id}> Muten açıldı.`)
  }, ms(mutetime));

}
exports.conf = {
  enabled: true,
  guildOnly: true,
  aliases: ["sustur"],
  permLevel: 0
};

exports.help = {
  name: "mute",
  description: "",
  usage: ""
};

Alttaki kodlamayı "Komutlar" bölümüne atınız.
Log kanalını bu komut ile ayarlayabilirsiniz.
JavaScript:
const Discord = require('discord.js')
const db = require('quick.db');

exports.run = async (client, message, args) => {

if (!message.member.hasPermission("MANAGE_MESSAGES")) {
  const bilgi = new Discord.RichEmbed()
  .setDescription('Bu komutu kullanabilmek için **Mesajları Yönet** yetkisine sahip olmanız gerek.')
  .setColor("0000A0")
return message.channel.sendEmbed(bilgi).then(m => m.delete(150000)); return
       }
  let mlog = message.mentions.channels.first()
  let sıfırla = db.fetch(`mlog_${message.guild.id}`)
if(args[0] === "sıfırla") {
    if(!sıfırla) {
      message.channel.send(`Mute Log Kanalı zaten ayarlı değil.`)
                   
      return
    }
    db.delete(`mlog_${message.guild.id}`)
    message.channel.send(`Mute Log Kanalı başarıyla sıfırlandı.`)
             
    return
  }
  if (!mlog) {
    return message.channel.send(
    `Mute Log Olacak Kanalı etiketlemelisin.`)                    
  }
  db.set(`mlog_${message.guild.id}`, mlog.id)
  message.channel.send(`✅|Mute Log Kanalı başarıyla ${mlog} olarak ayarlandı.`)
  };
 
exports.conf = {
    enabled: true,
    guildOnly: true,
    aliases: ['mute-log'],
    permLevel: 0
}

exports.help = {
    name: 'mute-log-ayarla',
    description: 'Mute Logu Ayarlar.',
    usage: '-mute-log #kanal'
}

Asıl önemli olan kısıma geldik.
Neden önemli? Hemen söyleyeyim, adam sunucudan çık gir yapınca bu kodlama sayesinde rolü geri verilecek.
Alttaki kodlamayı main'e atınız. (Örn; bot.js, index.js, server.js üçünden birisi olması gerek)
JavaScript:
client.on('guildMemberAdd', async(member) => {
let mute = member.guild.roles.find(r => r.name === "Oyuncular Şehri");
let mutelimi = db.fetch(`muteli_${member.guild.id + member.id}`)
let süre = db.fetch(`süre_${member.id + member.guild.id}`)
if (!mutelimi) return;
if (mutelimi == "muteli") {
member.addRole(mute.id)

member.send("Muteliyken Sunucudan Çıktığın için Yeniden Mutelendin!")
setTimeout(function(){
db.delete(`muteli_${member.guild.id + member.id}`)
    member.send(`<@${member.id}> Muten açıldı.`)
    member.removeRole(mute.id);
  }, ms(süre));
}
})
Merhabalar, prefix ile mi kullanıyoruz bunu?
 
Katılım
11 Kas 2020
Konular
1
Mesajlar
3
Tepki puanı
0
Puanları
1,455
Ayrıca 3 tane komut atmışsınız, 3. Olanı nerde kullanacağım?
 
Katılım
12 Ara 2020
Konular
0
Mesajlar
1
Tepki puanı
0
Puanları
0
Veritabanlı mute sistemi ne işe yarar? Diye sorduğunuzu duyar gibiyim.
Diyelim ki birine mute attınız ve o mute attığınız kişi sunucudan çıkıp girince doğal olarak mute rolü gidiyor.
Veritabanlı mute sistemi sayesinde artık şahıs sunucudan çık gir yapsa dahi mute rolü gitmeyecektir.
Vereceğim kodlama hem veritabanlı hem de süreli mute sistemidir.

Alttaki kodlamayı "Komutlar" bölümüne atınız.
Adama mute atmanıza yarar, tabii ki ilk önce log kanalını ayarlamayı unutma :)
JavaScript:
const Discord = require("discord.js");
const ms = require("ms");
const client = new Discord.Client();
const db = require("quick.db");
exports.run = async (receivedMessage,  msg, args) => {
let user = msg.guild.member(msg.mentions.users.first() || msg.guild.members.get(args[0]));
        if (!msg.member.hasPermission("BAN_MEMBERS")) return msg.channel.send("Bu komudu kullanabilmek için `Ban` yetkisine sahip olmanız gerek.");
if (user.hasPermission("BAN_MEMBERS")) return msg.channel.send(`Hata! \`${user.tag}\` isimli kullanıcı bu sunucuda yetkili.`)
let log = await db.fetch(`mlog_${msg.guild.id}`)
  if (!log) return msg.channel.send("Ayarlı Bir Mute Log Kanalı Yok! Ayarlamak için \`-mute-log #kanal\` !")
var mod = msg.author
var reason = args[1]
let sebep = args.slice(2).join(' ')

  if (!user) return msg.reply('Kullanıcı Etiketlemedin')
if (!reason) return msg.reply('Süre Belirtmedin! Seçeneklerin : 1s/1m/1h/1d/1w')
if (!sebep) return msg.reply('Sebep Belirtmedin!')



  let mute = msg.guild.roles.find(r => r.name === "Oyuncular Şehri");
       
  let mutetime = args[1]
if(!mute){
      mute = await msg.guild.createRole({
        name: "Oyuncular Şehri",
        color: "#818386",
        permissions:[]
      })
      msg.guild.channels.forEach(async (channel, id) => {
        await channel.overwritePermissions(mute, {
          SEND_MESSAGES: false,
          ADD_REACTIONS: false
        });
      });

    }


  await(user.addRole(mute.id));
msg.channel.send(``)
  let mutezaman = args[1]
.replace(`d`," Gün")
.replace(`s`," Saniye")
.replace(`h`," Saat")
.replace(`m`," Dakika")
.replace(`w`," Hafta")
  msg.channel.send(`${user} Adlı Kişi , ${mutezaman} Susturuldu! Sunucudan Çıkarsa Bile Mutesi Devam edecek!`)
db.set(`muteli_${msg.guild.id + user.id}`, 'muteli')
db.set(`süre_${msg.mentions.users.first().id + msg.guild.id}`, mutetime)
                       
  const muteembed = new Discord.RichEmbed()
        .setTitle('Ceza: Mute')
    .setThumbnail(user.avatarURL||user.defaultAvatarURL)
      .addField('Moderatör', `${mod}`,true)
      .addField('Sebep', `\`${sebep}\``,true)
      .addField('Kullanıcı', `<@${user.id}>`,true)
      .addField('Süre',`\`${mutezaman}\``)
  . setColor("RANDOM")
msg.guild.channels.get(log).sendEmbed(muteembed)

  setTimeout(function(){
db.delete(`muteli_${msg.guild.id + user.id}`)
    user.removeRole(mute.id)
msg.channel.send(`<@${user.id}> Muten açıldı.`)
  }, ms(mutetime));

}
exports.conf = {
  enabled: true,
  guildOnly: true,
  aliases: ["sustur"],
  permLevel: 0
};

exports.help = {
  name: "mute",
  description: "",
  usage: ""
};

Alttaki kodlamayı "Komutlar" bölümüne atınız.
Log kanalını bu komut ile ayarlayabilirsiniz.
JavaScript:
const Discord = require('discord.js')
const db = require('quick.db');

exports.run = async (client, message, args) => {

if (!message.member.hasPermission("MANAGE_MESSAGES")) {
  const bilgi = new Discord.RichEmbed()
  .setDescription('Bu komutu kullanabilmek için **Mesajları Yönet** yetkisine sahip olmanız gerek.')
  .setColor("0000A0")
return message.channel.sendEmbed(bilgi).then(m => m.delete(150000)); return
       }
  let mlog = message.mentions.channels.first()
  let sıfırla = db.fetch(`mlog_${message.guild.id}`)
if(args[0] === "sıfırla") {
    if(!sıfırla) {
      message.channel.send(`Mute Log Kanalı zaten ayarlı değil.`)
                   
      return
    }
    db.delete(`mlog_${message.guild.id}`)
    message.channel.send(`Mute Log Kanalı başarıyla sıfırlandı.`)
             
    return
  }
  if (!mlog) {
    return message.channel.send(
    `Mute Log Olacak Kanalı etiketlemelisin.`)                    
  }
  db.set(`mlog_${message.guild.id}`, mlog.id)
  message.channel.send(`✅|Mute Log Kanalı başarıyla ${mlog} olarak ayarlandı.`)
  };
 
exports.conf = {
    enabled: true,
    guildOnly: true,
    aliases: ['mute-log'],
    permLevel: 0
}

exports.help = {
    name: 'mute-log-ayarla',
    description: 'Mute Logu Ayarlar.',
    usage: '-mute-log #kanal'
}

Asıl önemli olan kısıma geldik.
Neden önemli? Hemen söyleyeyim, adam sunucudan çık gir yapınca bu kodlama sayesinde rolü geri verilecek.
Alttaki kodlamayı main'e atınız. (Örn; bot.js, index.js, server.js üçünden birisi olması gerek)
JavaScript:
client.on('guildMemberAdd', async(member) => {
let mute = member.guild.roles.find(r => r.name === "Oyuncular Şehri");
let mutelimi = db.fetch(`muteli_${member.guild.id + member.id}`)
let süre = db.fetch(`süre_${member.id + member.guild.id}`)
if (!mutelimi) return;
if (mutelimi == "muteli") {
member.addRole(mute.id)

member.send("Muteliyken Sunucudan Çıktığın için Yeniden Mutelendin!")
setTimeout(function(){
db.delete(`muteli_${member.guild.id + member.id}`)
    member.send(`<@${member.id}> Muten açıldı.`)
    member.removeRole(mute.id);
  }, ms(süre));
}
})
merhaba. benim discord sunucum var. botuma bu mute sistemini eklemek istiyorum ama bu komutları yazınca hata veriyor ve nasıl düzeltirim bilmiyorum yardım eder misiniz?
 
Katılım
18 Kas 2020
Konular
35
Mesajlar
536
Çözümler
1
Tepki puanı
262
Puanları
3,460
Eğer bir gün sunucum olursa bot yapmak için buraya bakacağım, teşekkürler.