Türkiye'nin En Büyük Oyuncu Forumuna Hoş Geldiniz!

Sitemize kayıt olarak, diğer oyuncular ile tanışabilir, mesajlaşabilirsiniz, ayrıca bir şeyler paylaşarak veya sorarak Türkiye'nin en büyük oyuncu topluluğunun bir parçası olabilirsiniz!

Şimdi Katılın!

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

Poligon

mc.poligon.network
Mesajlar
171
Puanları
1,030
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
28
Puanları
410
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
Puanları
50
Ş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


}