JavaScript'ten ve Discord' JS den Çok İyi Anlayan Bakabilir mi?

Poligon

mc.poligon.network
Mesajlar
94
En iyi cevaplar
0
Beğeniler
87
Puanları
390
Ruh hali
Elimde böyle bir Destek Talebi Açma kodu var. Fakat üzerinde biraz oynanması gerekiyor.

Mesela herhangi bir kanalda /destek-aç komutunu kullanmak yerine, belirlenen bir kanala herhangi bir mesaj atıldığında talep açılması ve atılan mesajında o kanaldan otomatik silinmesi gerekiyor. Amaç kanaldaki kirliliği önlemek. Bunu yapabilirim diyen varsa özel mesaj atarsa sevinirim.

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

if (message.content.toLowerCase().startsWith(prefix + 'destek-aç')) {
    message.delete();
    const reason = message.content.split(" ").slice(1).join(" ");
    if (!message.guild.roles.exists("name", "Asistan")) return message.channel.send(`Sunucu  \`Asistan\` 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.reply(`Bir yardım talebine zaten sahipsin.`)
        .then(msg => {
          msg.delete(3000);
           });
  if (!message.guild.channels.filter(c => c.type === 'category').find(c => c.name === 'Talepler')) {
    let knl = message.guild.createChannel('Talepler', 'category').then(ds => {
        message.guild.createChannel(`destek-${message.author.id}`, "text").then(c => {
          let role = message.guild.roles.find("name", "Asistan");
          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. Asistan 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 === 'Talepler');
  if (kanal) {
    message.guild.createChannel(`destek-${message.author.id}`, "text").then(c => {
        let role = message.guild.roles.find("name", "Asistan");
        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.reply(`:white_check_mark: Yardım talebiniz oluşturuldu, #${c.name}.`)
        .then(msg => {
          msg.delete(3000)
           });
        const embed = new Discord.RichEmbed()
        .setColor(0xCF40FA)
        .addField(`Hey ${message.author.username}!`, `Yardım talebini neden açtığınızı açıkca anlatın. Asistan 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(`Destek talebinizi kapatmak istediğinize emin misiniz? 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);
        });
    });
}

});
 


RaeLight

Back-End Developer
Oyun Geliştirici
Mesajlar
27
En iyi cevaplar
0
Beğeniler
16
Puanları
90
Ruh hali
mesajın yazıldığı kanal idsi ile belirlediğin kanal idsi uyuşuyorsa talebi açtırırsın ve mesajı sildirebilirsin
örnek kod:
if (message.channel.id == 'belirlediğin kanal idsi') {
 

schwarzsky

Yeni Doğmuş
Mesajlar
1
En iyi cevaplar
0
Beğeniler
0
Puanları
20
Ruh hali
Şu kodu kullanabilirsin;

JavaScript:
if(msg.channel.id == ""){  // Mesaj kanalının ID'si == "" se şunu yap:
    msg.delete(); // Komut mesajını silmek için


}
 

Üst