25 Ağustos 2017 Cuma

Nodejs ile Discord Botu Yapmak

Bu aralar Nodejs ile ilgilenmeye başladım, online bir grup ile nodejs öğreniyorum. Bu sebep ile de öğrendiklerimi paylaşmak istedim.

https://discordapp.com/developers/applications/me
adresinden bir uygulama oluşturuyoruz. Create a bot user'a tıklıyoruz devamında.

Nodejs kurulu varsayarak başlıyorum.
Proje klasörünü ister

mkdir proje-adi şeklinde isterseniz de dosya gezgini(file explorer) ile oluşturabilirsiniz.

ardından komut satırını admin olarak açıp klasöre ulaşın.


npm install -g node-gyp
(Uzun sürebilir bu kurulum)

komutu ile build tools'ları kurmalısınız.

npm install discord.js --save

komutu ile discord'un nodejs modülünü indirin.
npm init komutu ile projeyi başlatın.
index.js isminde bir dosya oluşturun proje dizininiz altında.
Benim botumun amacı 'H' karakteri ile başlayan bir mesaj atıldığında Hello mesajı ile karşılık vermesiydi.

Kaynak kod aşağıda:
// Burada başlıyor kod
const Discord = require('discord.js');
// Burada discord modulünü çağırıyoruz.
const bot = new Discord.Client();
// Bot'a işlemler yaptırmak için bir discord nesnesi oluşturuyoruz.
const token = '';
//https://discordapp.com/developers/applications/me/ adresinden aldığınız bot token'ını buraya ekleyin.ad
bot.on('message', message=>{
//Bulunduğu sunucudaki mesajları dinlemeye başlatıyoruz botu
if(message.author.bot) return;
// bot kendi mesajına cevap vermemesi için kontrol.

if(message.content.indexOf('H') == 0) {
//mesajın içeriğinin ilk harfini kontrol ediyor
var text = 'Hello';
//text adında bir değişken tanımlıyor ve içeriğine 'Hello' tanımlanıyor. 
message.reply(text);
//Mesaja text değişkeni ile cevap veriyor.
}
});
bot.login(token);
//Bot sunucuya token'ı kullanarak login oluyor.

Sunucuya erişim
https://discordapp.com/oauth2/authorize?client_id=BURAYA_CLIENT_ID_GELECEK&scope=bot
Botun çalışacağı sunucuda yönetim izinlerine ihiyacınız var.
Komut satırından proje dizinine girin
node index komutu ile başlatın.
Sunucuya gidin ve 'H' tırnaksız ile başlayan bir kelime yazın, Bot size Hello mesajı ile cevap verecek.

Hiç yorum yok: