Discord bot dersleri #6 | çekiliş

Crefax

Rafa
Katılım
4 Haz 2019
Mesajlar
500
Beğeni
174
Puanları
700
Minecraft Türkiye

Merhaba Minecraft-Türkiye Forum Üyeleri

Bugün botumuza çekiliş komudunu ekliyoruz.
ms modülü gerekiyor bunun için
konsolu normal olarak açıp npm i ms yazmanız gerekiyor

JavaScript:
const Discord = require('discord.js');
const moment = require('moment');
const ms = require('ms')
exports.run = async (client, message) => {
var time = moment().format('Do MMMM YYYY , hh:mm');
var room;
var title;
var duration;
var currentTime = new Date(),
hours = currentTime.getHours() + 3 ,
minutes = currentTime.getMinutes(),
done = currentTime.getMinutes() + duration,
seconds = currentTime.getSeconds();
if (minutes < 10) {
minutes = "0" + minutes;
}
var suffix = "AM";
if (hours >= 12) {
suffix = "PM";
hours = hours - 12;
}
if (hours == 0) {
hours = 12;
}
var filter = m => m.author.id === message.author.id;



      message.channel.send(`:eight_pointed_black_star:| **Çekilişin yapılacağı kanalın adını yaz**`).then(msg => {
      message.channel.awaitMessages(filter, {
        max: 1,
        time: 20000,
        errors: ['time']
      }).then(collected => {
        let room = message.guild.channels.find('name' , collected.first().content);
        if(!room) return message.channel.send(':heavy_multiplication_x:| **Böyle bir kanal bulamadım**');
        room = collected.first().content;
        collected.first().delete();
        msg.edit(':eight_pointed_black_star:| **Çekilişin süresini belirle (1s, 1m, 1h, 1d, 1w)**').then(msg => {
          message.channel.awaitMessages(filter, {
            max: 1,
            time: 20000,
            errors: ['time']
          }).then(collected => {
            if(!collected.first().content.match(/[1-60][s,m,h,d,w]/g)) return message.channel.send(':heavy_multiplication_x:| **Böyle bir süre bilmiyorum :(**');
            duration = collected.first().content
            collected.first().delete();
            msg.edit(':eight_pointed_black_star:| **Şimdi de ödülü yaz bakalım**').then(msg => {
              message.channel.awaitMessages(filter, {
                max: 1,
                time: 20000,
                errors: ['time']
              }).then(collected => {
                title = collected.first().content;
                collected.first().delete();
                msg.delete();
                message.delete();
                try {
                  let giveEmbed = new Discord.RichEmbed()
                  .setColor("#f558c9")
                  .setDescription(`**Ödül: ${title}** \n🎉'a Basarak Katıl \nKalan Süre : ${duration} \n **Başlama Zamanı :** ${hours}:${minutes}:${seconds} ${suffix}`)
                  .setFooter(message.author.username + " (Minecraft-Turkiye)", message.author.avatarURL);
                  message.guild.channels.find("name" , room).send(' :heavy_check_mark: **ÇEKİLİŞ BAŞLADI** :heavy_check_mark:' , {embed: giveEmbed}).then(m => {
                     let re = m.react('🎉');
                     setTimeout(() => {
                       let users = m.reactions.get("🎉").users
                       let list = users.array().filter(u => u.id !== m.author.id !== client.user.id);
                       let gFilter = list[Math.floor(Math.random() * list.length) + 0]
                       let endEmbed = new Discord.RichEmbed()
                       .setAuthor(message.author.username, message.author.avatarURL)
                       .setTitle(title)
                       .setColor("#f558c9")
            .setFooter("(Minecraft Türkiye)")
                       .addField('Çekiliş Bitti !🎉',`Kazanan : ${gFilter} \nBitiş zamanı :`)
                       .setTimestamp()
                     m.edit('** 🎉 ÇEKİLİŞ BİTTİ 🎉**' , {embed: endEmbed});

                       var embedLel = new Discord.RichEmbed()
                        .setColor("#f558c9")
                        .setDescription("Ödülünü Moderatörleri Etiketleyerek Alabilirsin!").setFooter("(www.minecraft-turkiye.com)")
                    message.guild.channels.find("name" , room).send(`**Tebrikler ${gFilter}! \`${title}\` kazandın!**` , embedLel)
                }, ms(duration));
            });
                } catch(e) {
                message.channel.send(`:heavy_multiplication_x:| **Maalesef gerekli yetkilerim bulunmamakta**`);
                  console.log(e);
                }
              });
            });
          });
        });
      });
    });


};
exports.conf = {
  enabled: true,
  guildOnly: false,
  aliases: [],
  permLevel: 3
};
exports.help = {
  name: 'çekiliş',
  description: 'Çekiliş mi? Sunucunda güzel şeyler olacak :3',
  usage: 'çekiliş'
};
Prefiximiz ve çekiliş yazarak komudu çalıştırıyoruz.
3460

Kanal adını yazarken başına # koymamanız gerekiyor lütfen dikkat edin.

3461

sonra süre seçiyoruz
1s = 1 saniye
1m = 1 dakika
1h = 1 saat
1d = 1 gün
1w = 1 hafta

Sonra hangi ödülü istediğini soruyor oraya ne verecekseniz onu yazın önemli değil pek

3462


3463


bu kadardı iyi kullanımlar :)
 

Fiobrum

Kömür madencisi
Katılım
1 Şub 2020
Mesajlar
8
Beğeni
1
Puanları
30
Güzel bir konu ve güzel bir çalışma olmuş başarılar!
 

2qke

Kütüphaneci
Katılım
11 Ağu 2019
Mesajlar
459
Beğeni
73
Puanları
450
Güzel bir sistem, yazdığınız ve paylaştığınız her şeyi seviyorum!
 
Katılım
12 May 2020
Mesajlar
1
Beğeni
0
Puanları
10
Eline sağlık, fakat o kalan süreyi zaman geçtikçe nasıl azaltabiliriz? yardımcı olursan sevirim :)
 

__OcUs__

Oduncu
Katılım
13 May 2020
Mesajlar
4
Beğeni
1
Puanları
30
Basit Bi Kodlama Üzerine Kodlanmış Geliştirme Yapıcagım Teşekürler.
 

intrasty

Oduncu
Katılım
31 Ara 2020
Mesajlar
2
Beğeni
0
Puanları
10
Cmd'de komut yüklendi: undefined olarak gözüküyor yardımcı olabilir misiniz ?
 

yozi45

Oduncu
Katılım
7 Ocak 2021
Mesajlar
1
Beğeni
0
Puanları
10
:\Users\yozi\Desktop\lordozibot\komutlar\çekiliş.js:35
let room = message.guild.channels.find('name' , collected.first().content);
^

TypeError: message.guild.channels.find is not a function
at C:\Users\yozi\Desktop\lordozibot\komutlar\çekiliş.js:35:43
at processTicksAndRejections (node:internal/process/task_queues:93:5) error veriyo ne yapmam lazım
 

2qke

Kütüphaneci
Katılım
11 Ağu 2019
Mesajlar
459
Beğeni
73
Puanları
450
:\Users\yozi\Desktop\lordozibot\komutlar\çekiliş.js:35
let room = message.guild.channels.find('name' , collected.first().content);
^

TypeError: message.guild.channels.find is not a function
at C:\Users\yozi\Desktop\lordozibot\komutlar\çekiliş.js:35:43
at processTicksAndRejections (node:internal/process/task_queues:93:5) error veriyo ne yapmam lazım
Tam olarak bilmiyorum ama çekiliş.js komutunda bir syntax hatası vb. olabilir. Yani bir komutu kapatmamış olabilirsin.
 

Romitou

Altın madencisi
Katılım
18 Şub 2021
Mesajlar
128
Beğeni
26
Puanları
350
Databasesiz bot mu olur? yaptığınız kod da çalıntı bunu keşke belirtseydiniz bi reload atsak çekiliş bozuluyor :D
 
Üst