Discord.js | Discord destek sistemi kanal açma destekli!

NRack

Yeni Doğmuş
Mesajlar
1
En iyi cevaplar
0
Beğeniler
1
Puanları
20
Ruh hali
Herkese selamlar. Açık kaynaklı bir bot olan Vulnix adlı botdan alınmıştır türkçeleştirilerek size sunuyorum kendim bu sistemi kullanıyorum arayanlar var umarım işlerine yaramıştır.Sunucunuzda Destek Ekibi adlı bir rol bulunmak zorundadır ve birinin o role sahip olması lazımdır. Destek adında bir kategori yoksa kendisi oluşturur perm ayarlamanıza gerek yok zaten tek ticket açan kişi ve Destek Ekibi görebiliyor.Modül gerekmez discord.js olsun yeter.

Kod:
client.on("message", (message) => {
  if (!message.content.startsWith(prefix) || message.author.bot) return;


if (message.content.toLowerCase().startsWith(prefix + `destek-aç`)) {
    const reason = message.content.split(" ").slice(1).join(" ");
    if (!message.guild.roles.exists("name", "Destek Ekibi")) return message.channel.send(`Sunucu  \`Destek Ekibi\` rolüne sahip değil, bu yüzden yardım talebiniz oluşturulamıyor.`);
    if (message.guild.channels.exists("name", "destek-" + message.author.id)) return message.channel.send(`Bir yardım talebine zaten sahipsin.`);
  if (!message.guild.channels.filter(c => c.type === 'category').find(c => c.name === 'Destek')) {
    let knl = message.guild.createChannel('Destek', 'category').then(ds => {
        message.guild.createChannel(`destek-${message.author.id}`, "text").then(c => {
          let role = message.guild.roles.find("name", "Destek Ekibi");
          let role2 = message.guild.roles.find("name", "@everyone");
          c.overwritePermissions(role, {
              SEND_MESSAGES: true,
              READ_MESSAGES: true
          });
          c.overwritePermissions(role2, {
              SEND_MESSAGES: false,
              READ_MESSAGES: false
          });
          c.overwritePermissions(message.author, {
              SEND_MESSAGES: true,
              READ_MESSAGES: true
          });
          message.channel.send(`:white_check_mark: Yardım talebiniz oluşturuldu, #${c.name}.`);
          const embed = new Discord.RichEmbed()
          .setColor(0xCF40FA)
          .addField(`Hey ${message.author.username}!`, `Yardım talebini neden açtığınızı açıkca anlatın. Destek ekibi en kısa zamanda cevap verecektir`)
          .setTimestamp();
          c.send({ embed: embed });
        c.setParent(ds)
      }).catch(console.error);
    })
    }
  let kanal = message.guild.channels.filter(c => c.type === 'category').find(c => c.name === 'Destek');
  if (kanal) {
    message.guild.createChannel(`destek-${message.author.id}`, "text").then(c => {
        let role = message.guild.roles.find("name", "Destek Ekibi");
        let role2 = message.guild.roles.find("name", "@everyone");
        c.overwritePermissions(role, {
            SEND_MESSAGES: true,
            READ_MESSAGES: true
        });
        c.overwritePermissions(role2, {
            SEND_MESSAGES: false,
            READ_MESSAGES: false
        });
        c.overwritePermissions(message.author, {
            SEND_MESSAGES: true,
            READ_MESSAGES: true
        });
        message.channel.send(`:white_check_mark: Yardım talebiniz oluşturuldu, #${c.name}.`);
        const embed = new Discord.RichEmbed()
        .setColor(0xCF40FA)
        .addField(`Hey ${message.author.username}!`, `Yardım talebini neden açtığınızı açıkca anlatın. Destek ekibi en kısa zamanda cevap verecektir`)
        .setTimestamp();
        c.send({ embed: embed });
      c.setParent(kanal)
    }).catch(console.error);
  }
    }

if (message.content.toLowerCase().startsWith(prefix + `destek-kapat`)) {
    if (!message.channel.name.startsWith(`destek-`)) return message.channel.send(`Yardım talebinizi yardım talebi kanalınızın dışındaki kanallarda kapatamazsınız.`);

    message.channel.send(`Emin misin? Onayladıktan sonra geri alınamaz!\nOnaylamak için,\`-onayla\`. Yazmak için 10 saniyen var yoksa kendiliğinden iptal olur.`)
    .then((m) => {
      message.channel.awaitMessages(response => response.content === '-onayla', {
        max: 1,
        time: 10000,
        errors: ['time'],
      })
      .then((collected) => {
          message.channel.delete();
        })
        .catch(() => {
          m.edit('Kapatma talebinin zamanı geçti yardım talebin kapatılmadı.').then(m2 => {
              m2.delete();
          }, 3000);
        });
    });
}

});
 


ahmetardaipek

Sudan Çıkmış
Mesajlar
3
En iyi cevaplar
0
Beğeniler
0
Puanları
80
merhaba bende şu hatayı veriyor:
ReferenceError: client is not defined
at Object.<anonymous> (C:\Users\Ahmet\Desktop\Discord Bot\komutlar\canlışika
yetdestek.js:1:1)
←[90m at Module._compile (internal/modules/cjs/loader.js:777:30)←[39m
←[90m at Object.Module._extensions..js (internal/modules/cjs/loader.js:788:10
)←[39m
←[90m at Module.load (internal/modules/cjs/loader.js:643:32)←[39m
←[90m at Function.Module._load (internal/modules/cjs/loader.js:556:12)←[39m
←[90m at Module.require (internal/modules/cjs/loader.js:683:19)←[39m
←[90m at require (internal/modules/cjs/helpers.js:16:16)←[39m
at C:\Users\Ahmet\Desktop\Discord Bot\bot.js:21:17
at Array.forEach (<anonymous>)
at C:\Users\Ahmet\Desktop\Discord Bot\bot.js:20:9
 

Waffleinstein

şüşko insan
Emektar Üye
Mesajlar
458
En iyi cevaplar
0
Beğeniler
434
Puanları
1,130
Ruh hali
merhaba bende şu hatayı veriyor:
ReferenceError: client is not defined
at Object.<anonymous> (C:\Users\Ahmet\Desktop\Discord Bot\komutlar\canlışika
yetdestek.js:1:1)
←[90m at Module._compile (internal/modules/cjs/loader.js:777:30)←[39m
←[90m at Object.Module._extensions..js (internal/modules/cjs/loader.js:788:10
)←[39m
←[90m at Module.load (internal/modules/cjs/loader.js:643:32)←[39m
←[90m at Function.Module._load (internal/modules/cjs/loader.js:556:12)←[39m
←[90m at Module.require (internal/modules/cjs/loader.js:683:19)←[39m
←[90m at require (internal/modules/cjs/helpers.js:16:16)←[39m
at C:\Users\Ahmet\Desktop\Discord Bot\bot.js:21:17
at Array.forEach (<anonymous>)
at C:\Users\Ahmet\Desktop\Discord Bot\bot.js:20:9
Kodda client tanımlanmamış. Başlangıçta senin tanımlaman lazım onu.
 

ahmetardaipek

Sudan Çıkmış
Mesajlar
3
En iyi cevaplar
0
Beğeniler
0
Puanları
80
Komutu Sıfır Editlemeden ctrl+v Yaptım Destek Ekibi Adlı Rol Oluşturdum Ancak 1. Destek Açtığımda Sıkıntı Yok Fakat 2. Destek Açtığımda 3-4 Tane Daha Destek Kanalı Açıyor
 

Poligon

mc.poligon.network
Mesajlar
94
En iyi cevaplar
0
Beğeniler
87
Puanları
390
Ruh hali
Bu dosya nereye atılacak? Komutlar klasörüne atınca hata veriyor.
 

Poligon

mc.poligon.network
Mesajlar
94
En iyi cevaplar
0
Beğeniler
87
Puanları
390
Ruh hali
Çok güzel sistem fakat buna biraz modifiye yapmak gerekiyor. Mesela insanlar sadece tek bir kanalda bu komutu kullanabilmeli ve komut kullanıldıktan sonrada kirliliği önlemek adına mesajlar silinmeli. Bunu yapabilecek var mı?
 

Üst