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

NRack

Yeni Doğmuş
En iyi cevaplar
0
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ış
En iyi cevaplar
0
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
En iyi cevaplar
0
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ış
En iyi cevaplar
0
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
En iyi cevaplar
0
Bu dosya nereye atılacak? Komutlar klasörüne atınca hata veriyor.
 

Poligon

mc.poligon.network
En iyi cevaplar
0
Ç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