Discord.js |Destek Sistemi [v12]

Katılım
3 Nis 2021
Konular
4
Mesajlar
18
Tepki puanı
5
Puanları
2,510
Destek Taleplerinde Genellikle Tüm Destek Ekibi 1 Kişiye Bakıyor ve Saçma Sapan Karmaşalar Ortaya Çıkıyor.Bunu Önlemek İçin Birebir Görüşme Yapılabilmesi İçin Destek Sistemi Ayarladım.Benim Bot Sistemim Farklı Olduğu İçin Size Bu Şekilde Kodları Vereceğim Nereye Koyacağınız Önemli Değil İsterseniz main dosyanızda command === destek yazıp kullanabilirsiniz yada ayrı bir js dosyası içerisinden exports ettirebilirsiniz.

JavaScript:
  if (
    message.guild.channels.cache.find(
      (channel) => channel.name === `destek-${message.author.id}`
    )
  ) {
    return message.reply(
      "Destek Talebinizin Çözülmesini Beklemeniz Gerekmektedir."
    );
  }

  let gereklirol = message.guild.roles.cache.find(
    (role) => role.name === `Destek`
  );

  let kisi;
  kisi = message.author.id;

  message.guild.channels
    .create(`destek-${message.author.id}`, {
      type: "text",
      permissionOverwrites: [
        {
          id: kisi,
          allow: ["SEND_MESSAGES", "VIEW_CHANNEL"],
        },
        {
          id: message.guild.roles.everyone,
          deny: ["VIEW_CHANNEL"],
        },
        {
          id: gereklirol.id,
          allow: ["SEND_MESSAGES", "VIEW_CHANNEL"],
        },
      ],
    })
    .then(async (channel) => {
      channel.updateOverwrite(kisi, { SEND_MESSAGES: false });

      let kisi2 = message.guild.members.cache.get(kisi);
      await channel.send(
        `Merhaba ${kisi2}, En Kısa Zamanda Seninle İlgilenmesi İçin ${gereklirol} Ekibimizi Bilgilendirdik.Bu Süre Zarfında Sizden Sabırla Beklemenizi Rica Ediyoruz.\n\n${gereklirol} Ekibimiz İçin Bilgilendirme:\nDestek Taleplerini Kabul Etmek İçin Kanala "kabul" veya Talebi Reddetmek İçin "reddet" Yazmanız Gerekmektedir.Aksi Takdirde Destek Talebini Kabul Etmediğiniz İçin Destek Talebi 24 Saat İçerisinde Silinecektir.\n\nDestek Ekibi Olarak Talebi Çözdüyseniz "kapat" Yazarak Destek Talebini Kapatabilirsiniz.`
      );

      const filter = (m) =>
        m.member.roles.cache.find((r) => r.name === "Destek");

      const collector = channel.createMessageCollector(filter, {
        time: 86400000,
      });
      const collector2 = channel.createMessageCollector(filter, {
        time: 86400000,
      });

      collector.on("collect", async (m) => {
        console.log(m.content);
        if (m.content.toLowerCase() === "kabul") {
          await channel.send("Oldu");
          channel.overwritePermissions([
            {
              id: kisi,
              allow: ["SEND_MESSAGES"],
            },
            {
              id: m.author.id,
              allow: ["VIEW_CHANNEL", "SEND_MESSAGES"],
            },
            {
              id: message.guild.roles.everyone,
              deny: ["VIEW_CHANNEL"],
            },
          ]);
          collector.stop();
          collector2.on("collect", async (s) => {
            if (s.content.toLowerCase() === "kapat") {
              channel.delete();
              collector2.stop();
            }
          });
        } else if (m.content.toLowerCase() === "reddet") {
          kisi2.send(
            `Maalesef, Destek Talebini Uygunsuz Bulduğumuz İçin Reddettik.`
          );
          collector.stop();
          channel.delete();
        }
      });
    });
 
  • Beğen
Tepkiler: Rospia