Daaydreamer
Kömür Madencisi
- Mesajlar
- 107
- En iyi cevaplar
- 3
- Beğeniler
- 186
- Puanları
- 410
Üst Not: JavaScript bilmiyorsan öğrenmeden Discord.js kullanmaya çalışmamalısın. Ayrıca tek Discord kütüphanesi JavaScript'teki değil. Discord.py veya başka bir kütüphane sana daha uygun olabilir.
Hoş geldin! Bu konuda güncel bir şekilde (v12 yani bu konu yazıldığındaki son sürümü kullanacağız) Discord.js'e giriş yapacağız. Ama başlamadan önce birkaç şeyden bahsetmek istiyorum.
Discord botunu neden yapmak istediğini biliyor musun? Bu bir hobi mi? Öyleyse harika. Botunun büyük bir bot olmasını istiyorsan bu serinin sana fazla şey öğretmeyeceğini belirteyim ama büyük bir bot yapmak istiyorsan bile bu konu Discord.js'e girişinde yardımcı olacaktır. Bundan sonra da konulara devam etmeyi düşünüyorum ama sana tavsiyem biraz gelişmeye başladıktan sonra Discord.js Guide (An Idiot's Guide da iyidir. Şu anda v11 rehberi stabil ama Discord.js v12'ye güncellenmeye başlanmış.) gibi İngilizce kaynaklardan yararlanman.
Ayrıca botun için güvenlik önlemlerini alman ve iyi bir şekilde hostlaman gerekiyor. Botunu GitHub gibi kaynak kodunu herkesin görebileceği bir yere yükleyeceksen tokenini kaldırmayı unutma. Ayrıca botunu Glitch gibi bir yerden hostlamanı da önermiyorum çünkü uptime konusunda sıkıntı olacak. Geliştirme aşamasındayken kendi bilgisayarını kullanabilir ve botun yeterince geliştiği zaman bir VDS kiralayabilirsin. 1 GB ram yeterli olacaktır. Glitch'te hostlayacak olursan da projeni private yapmayı ve proje adını gizli tutmayı unutma. Proje adının Glitch'in oluşturduğu ad olarak kalmasını (veya tamamen random yapmanı) öneriyorum çünkü proje adını birisi öğrenirse sorun olabilir.
Glitch hakkında düzenleme: Glitch güvenliğini geliştirmiş, yani proje adını birisi bulsa bile proje private ise projeyi göremez. Ama uptime hala berbat. Hala Glitch önermiyorum.
Sanırım artık başlayabiliriz. Öncelikle bilgisayarına Node.js kurman gerekiyor çünkü Discord.js bir Node modülü. Node.js'i buraya tıklayarak indirebilirsin. Kurulum kısmında sorun yaşamayacağını düşünüyorum. Ayrıca kurulumda gereksiz araçları kurmana gerek yok. Yani install unnecessary tools kutucuğu seçili olmayabilir.
Kod Editörü Seçimi
Şimdi de kod editörünü seçelim. Benim tavsiye ettiğim Visual Studio Code. Buraya tıklayarak VS Code anasayfasına gidebilirsin. Bu arada VS Code kullanmak zorunda değilsin. Alışmış olduğun bir kod editörünü (bunun için Notepad++ tavsiye etmiyorum) de kullanabilirsin. Eğer alışmış olduğun bir kod editörü yoksa VS Code alternatifi olarak Atom veya Sublime Text de kullanılabilir ama tavsiyem VS Code. Eğer VS Code kullanacak olursan One Dark Pro temasını da denemeni öneriyorum.
Bot Oluşturma
Kod editörümüz de hazırsa botumuzu oluşturabiliriz. Öncelikle Discord Developer Portal'a gitmen ve giriş yapman gerekiyor. Buraya tıklayarak gidebilirsin. Giriş yaptıktan sonra karşına çıkan ekranda New Application butonuna bas, bot ismini gir ve yeni bir uygulama oluştur. Bu uygulama senin botun olacak. Uygulamanı oluşturunca karşına böyle bir ekran çıkacak:
Buradan uygulamana bir ikon ekleyebilirsin ama bu botumuzun avatarı değil ve daha bir botumuz bile yok.Bot oluşturmak için bot sekmesine gelmeli ve Create Bot butonuna basmalısın.
Botunu oluşturdun mu? Tebrikler! Artık botuna avatar ekleyebilirsin. Şimdi botunu Discord sunucuna davet etmek için link oluşturalım. OAuth2 sekmesine gel ve OAuth2 URL Generator ile bot davet linki oluştur.
Şu şekilde olmalı. Ben botuma direkt admin yetkisi verdim ama botun yetkilerini kendi sunucunda rol ile ayarlamak istiyorsan veya botunun admin olmasına gerek yoksa hiçbir yetki vermeyebilirsin.
Botumuzu oluşturduk, sunucumuza davet ettik. Sırada ne var? Botumuzu programlamaya başlamak!
Sormak istediğim bir şey var. JavaScript bilgin var mı? Discord.js programlamaya başlamadan önce JavaScript temellerini ve kurallarını bilmen gerekiyor. Bilmeden başlarsan koddan pek bir şey anlamayabilirsin. Hayır endişelenme, çok zor değil. If, else if, else, değişkenler ve birkaç kuralı öğrensen yetecek.
Bu kaynaktan yararlandığına göre Türkçe kaynağa ihtiyacın var. Ben de sana JavaScript temellerini öğrenmen için YouTube'dan bir kaynak vereyim.
Yazılım Bilimi kanalının bu videosu sanırım işine yarar. Anlatımı nasıl gelecek bilmiyorum ama JavaScript'e ilk başladığımda benim işime yaramıştı. Bu arada videonun sonundaki formlar kısmını izlemene gerek yok ama öğrenmek istiyorsan izleyebilirsin tabii ki. (Her ihtimale karşı şunu da belirteyim ki reklam amaçlı yapmıyorum. Benim JavaScript'e başlarken işime yarayan bir videoydu. Sonrasında pek video ve Türkçe kaynak kullanmadım ama Türkçe kaynak arayanların işine yaraması umuduyla paylaşıyorum.)
Discord.js Kurulumu ve Başlangıç
JavaScript temellerini öğrendin mi? Umarım öğrenmişsindir veya zaten biliyorsundur çünkü bu seni çok rahatlatacak. Rahatça Discord.js programlayabileceksin.
Hadi şimdi botumuzu programlamaya başlamak için gerekli kurulumu yapalım ve basit bir başlangıç yapalım.
Öncelikle botun için bir klasör oluştur. Ben masaüstüme guidebot adında bir klasör oluşturdum ve o botumun klasörü olacak. Şimdi o klasörde bir komut istemi açman gerekiyor.
Windows kullanıyorsan CMD, PowerShell, Git CMD, Git Bash, Node.js Command Prompt veya başka bir terminal kullanabilirsin. Sana kolaylık olması için klasör içine shift tuşuna basarken klasöre sağ tıklayıp PowerShell'i o klasörde açmanı söylerdim ama CMD kullanalım. CMD'yi aç (Arama çubuğuna CMD yaz veya Windows tuşu + R>CMD) ve `cd "botklasörü"` komutuyla komut isteminin çalışma klasörünü bot klasörü olarak ayarla. Örneğin benim bot klasörüm "C:\Users\PC\Desktop\guidebot", yani CMD'ye girmem gereken `cd "C:\Users\PC\Desktop\guidebot"` (Klasörün konumunu panoya kopyalamak için klasöre shift tuşuna basılır tutarken sağ tıkla ve yol olarak kopyala. Komut istemine CTRL + V kısayoluyla yapıştır.). Bu arada ` işaretlerini kodu belirtmek için koyuyorum. Yani komutları kullanırken o işareti komutun başına ve sonuna koymamalısın.
Çok mu kafa karıştırıcı? Aslında basit bir şey ve anlarsan senin için daha iyi olur ama uğraşmak istemiyorsan sadece klasörün içinde boş bir yere shift tuşuna basılı tutarken sağ tıkla ve PowerShell (Seçenek olarak CMD de olabilir) penceresini burada aç. Bilgisayarında Git kuruluysa onu da kullanabilirsin. Biraz bilgin varsa zaten bu senin için zor olmamalı ama bilmeyenler de olacağı için uzun ve açıklayıcı bir şekilde anlatmaya çalıştım.
Linux kullanıyorsan da terminali o klasörde açmak senin için çok zor olmamalı, sonuçta sen Linux kullanıyorsun .
Şimdi `npm init -y` komutunu kullan ve botun için gerekli olan packages.json dosyası oluşsun, -y ile belirttiğin için de senin için otomatik doldursun.
Not: ` işaretlerini kodu belirtmek için kullanıyorum. Komut kullanırken başına ve sonuna ` koymamalısın.
Tebrikler! Botunun klasörü hazır. Şimdi Discord.js kuralım. `npm i discord.js@latest` komutunu kullan ve Discord.js'in son sürümü kurulsun.
Şöyle bir çıktı vermesi gerek. İki tane de uyarı verdi çünkü npm init -y yaparak package.json dosyasını otomatik doldurttuk, açıklama ve repo kısımlarını doldurmadı. Bunlara ihtiyacın yok ama istersen package.json dosyasını açıp açıklama ekleyebilirsin.
Discord.js Kurulumuyla İlgili Not:
(Görsel Discord.js Guide'dan alındı)
Şöyle bir çıktı aldıysan endişelenme, orada belirtilen modüller isteğe bağlı ve şu anda hiçbirine ihtiyacımız yok.
İlk Kodunu Yazmaya Hazırsın!
Artık ana bot dosyanı oluşturabilir ve ilk kodunu yazabilirsin. Bu konuda tek dosya oluşturacağız, bir config bile kullanmayacağız. Sonraki konumda ise direkt Discord.js üzerinden gideceğimiz için command handlerlara kadar gideriz.
Bot klasörüne gel ve index.js isminde yeni bir dosya oluştur. Dosya adının index.js olması öneriliyor ama index yerine istediğini yazabilirsin, önemli olan .js dosyası olması. Bu dosya botun ana dosyası olacak. Oluşturduysan kod editörüne geçebiliriz.
Klasörü kod editöründe aç. Bunu yapmak kolay olmalı. Visual Studio Code kullanıyorsan VS Code içerisinde open foldera tıkla ve bot klasörünü seç. Diğer kod editörlerinde de aynı olmalı.
Kod editöründe index.js dosyanı aç ve programlamaya başlayalım.
En üst satıra
Bir alt satıra
En alt satırımızda ise
Temel şeyleri hallettik. Şimdi de botun hazır olduğunda konsolumuza "Bot Hazır!" yazdırmasını ve Discord aktivitesini ayarlamasını sağlayalım.
Bu kod ile, bot hazır olduğunda konsola "Bot hazır!" yazacak ve Discord'da oyun aktivitesini "Bu bot da Discord'a katıldı" yapacak. `type: ` kısmına playing yerine listening, watching veya custom_status de yazabilirsin.
Son olarak kodumuz şöyle görünüyor olmalı:
Botunu çalıştırmak için bot klasöründeki komut isteminde `node index` (dosya adı index değilse `node {dosya adı}`) komutunu veya package.json dosyasında belirttiğin start scriptini kullan.
Botun Hazır! Artık Mesajları Dinlemesini ve Yanıt Vermesini Sağlamaya Ne Dersin?
Artık botun hazır. Bu konuda son olarak da mesajı dinlemeyi ve yanıt vermesini göstereyim ve başlangıcın tamamlanmış olsun.
Bu kod mesaj geldiğinde çalışacak, eğer mesaj "ping" kelimesi ile başlıyorsa "pong" mesajı gönderecek. Artık botun mesajları nasıl dinleyeceğini ve yanıt vereceğini biliyor olmalısın.
Hoş Geldin
Hoş geldin! Bu konuda güncel bir şekilde (v12 yani bu konu yazıldığındaki son sürümü kullanacağız) Discord.js'e giriş yapacağız. Ama başlamadan önce birkaç şeyden bahsetmek istiyorum.
Discord botunu neden yapmak istediğini biliyor musun? Bu bir hobi mi? Öyleyse harika. Botunun büyük bir bot olmasını istiyorsan bu serinin sana fazla şey öğretmeyeceğini belirteyim ama büyük bir bot yapmak istiyorsan bile bu konu Discord.js'e girişinde yardımcı olacaktır. Bundan sonra da konulara devam etmeyi düşünüyorum ama sana tavsiyem biraz gelişmeye başladıktan sonra Discord.js Guide (An Idiot's Guide da iyidir. Şu anda v11 rehberi stabil ama Discord.js v12'ye güncellenmeye başlanmış.) gibi İngilizce kaynaklardan yararlanman.
Ayrıca botun için güvenlik önlemlerini alman ve iyi bir şekilde hostlaman gerekiyor. Botunu GitHub gibi kaynak kodunu herkesin görebileceği bir yere yükleyeceksen tokenini kaldırmayı unutma. Ayrıca botunu Glitch gibi bir yerden hostlamanı da önermiyorum çünkü uptime konusunda sıkıntı olacak. Geliştirme aşamasındayken kendi bilgisayarını kullanabilir ve botun yeterince geliştiği zaman bir VDS kiralayabilirsin. 1 GB ram yeterli olacaktır. Glitch'te hostlayacak olursan da projeni private yapmayı ve proje adını gizli tutmayı unutma. Proje adının Glitch'in oluşturduğu ad olarak kalmasını (veya tamamen random yapmanı) öneriyorum çünkü proje adını birisi öğrenirse sorun olabilir.
Glitch hakkında düzenleme: Glitch güvenliğini geliştirmiş, yani proje adını birisi bulsa bile proje private ise projeyi göremez. Ama uptime hala berbat. Hala Glitch önermiyorum.
Hadi Başlayalım
Sanırım artık başlayabiliriz. Öncelikle bilgisayarına Node.js kurman gerekiyor çünkü Discord.js bir Node modülü. Node.js'i buraya tıklayarak indirebilirsin. Kurulum kısmında sorun yaşamayacağını düşünüyorum. Ayrıca kurulumda gereksiz araçları kurmana gerek yok. Yani install unnecessary tools kutucuğu seçili olmayabilir.
Kod Editörü Seçimi
Şimdi de kod editörünü seçelim. Benim tavsiye ettiğim Visual Studio Code. Buraya tıklayarak VS Code anasayfasına gidebilirsin. Bu arada VS Code kullanmak zorunda değilsin. Alışmış olduğun bir kod editörünü (bunun için Notepad++ tavsiye etmiyorum) de kullanabilirsin. Eğer alışmış olduğun bir kod editörü yoksa VS Code alternatifi olarak Atom veya Sublime Text de kullanılabilir ama tavsiyem VS Code. Eğer VS Code kullanacak olursan One Dark Pro temasını da denemeni öneriyorum.
Bot Oluşturma
Kod editörümüz de hazırsa botumuzu oluşturabiliriz. Öncelikle Discord Developer Portal'a gitmen ve giriş yapman gerekiyor. Buraya tıklayarak gidebilirsin. Giriş yaptıktan sonra karşına çıkan ekranda New Application butonuna bas, bot ismini gir ve yeni bir uygulama oluştur. Bu uygulama senin botun olacak. Uygulamanı oluşturunca karşına böyle bir ekran çıkacak:
Buradan uygulamana bir ikon ekleyebilirsin ama bu botumuzun avatarı değil ve daha bir botumuz bile yok.Bot oluşturmak için bot sekmesine gelmeli ve Create Bot butonuna basmalısın.
Botunu oluşturdun mu? Tebrikler! Artık botuna avatar ekleyebilirsin. Şimdi botunu Discord sunucuna davet etmek için link oluşturalım. OAuth2 sekmesine gel ve OAuth2 URL Generator ile bot davet linki oluştur.
Şu şekilde olmalı. Ben botuma direkt admin yetkisi verdim ama botun yetkilerini kendi sunucunda rol ile ayarlamak istiyorsan veya botunun admin olmasına gerek yoksa hiçbir yetki vermeyebilirsin.
Programlamaya Başlayalım
JavaScript TemelleriBotumuzu oluşturduk, sunucumuza davet ettik. Sırada ne var? Botumuzu programlamaya başlamak!
Sormak istediğim bir şey var. JavaScript bilgin var mı? Discord.js programlamaya başlamadan önce JavaScript temellerini ve kurallarını bilmen gerekiyor. Bilmeden başlarsan koddan pek bir şey anlamayabilirsin. Hayır endişelenme, çok zor değil. If, else if, else, değişkenler ve birkaç kuralı öğrensen yetecek.
Bu kaynaktan yararlandığına göre Türkçe kaynağa ihtiyacın var. Ben de sana JavaScript temellerini öğrenmen için YouTube'dan bir kaynak vereyim.
Yazılım Bilimi kanalının bu videosu sanırım işine yarar. Anlatımı nasıl gelecek bilmiyorum ama JavaScript'e ilk başladığımda benim işime yaramıştı. Bu arada videonun sonundaki formlar kısmını izlemene gerek yok ama öğrenmek istiyorsan izleyebilirsin tabii ki. (Her ihtimale karşı şunu da belirteyim ki reklam amaçlı yapmıyorum. Benim JavaScript'e başlarken işime yarayan bir videoydu. Sonrasında pek video ve Türkçe kaynak kullanmadım ama Türkçe kaynak arayanların işine yaraması umuduyla paylaşıyorum.)
Discord.js Kurulumu ve Başlangıç
JavaScript temellerini öğrendin mi? Umarım öğrenmişsindir veya zaten biliyorsundur çünkü bu seni çok rahatlatacak. Rahatça Discord.js programlayabileceksin.
Hadi şimdi botumuzu programlamaya başlamak için gerekli kurulumu yapalım ve basit bir başlangıç yapalım.
Öncelikle botun için bir klasör oluştur. Ben masaüstüme guidebot adında bir klasör oluşturdum ve o botumun klasörü olacak. Şimdi o klasörde bir komut istemi açman gerekiyor.
Windows kullanıyorsan CMD, PowerShell, Git CMD, Git Bash, Node.js Command Prompt veya başka bir terminal kullanabilirsin. Sana kolaylık olması için klasör içine shift tuşuna basarken klasöre sağ tıklayıp PowerShell'i o klasörde açmanı söylerdim ama CMD kullanalım. CMD'yi aç (Arama çubuğuna CMD yaz veya Windows tuşu + R>CMD) ve `cd "botklasörü"` komutuyla komut isteminin çalışma klasörünü bot klasörü olarak ayarla. Örneğin benim bot klasörüm "C:\Users\PC\Desktop\guidebot", yani CMD'ye girmem gereken `cd "C:\Users\PC\Desktop\guidebot"` (Klasörün konumunu panoya kopyalamak için klasöre shift tuşuna basılır tutarken sağ tıkla ve yol olarak kopyala. Komut istemine CTRL + V kısayoluyla yapıştır.). Bu arada ` işaretlerini kodu belirtmek için koyuyorum. Yani komutları kullanırken o işareti komutun başına ve sonuna koymamalısın.
Çok mu kafa karıştırıcı? Aslında basit bir şey ve anlarsan senin için daha iyi olur ama uğraşmak istemiyorsan sadece klasörün içinde boş bir yere shift tuşuna basılı tutarken sağ tıkla ve PowerShell (Seçenek olarak CMD de olabilir) penceresini burada aç. Bilgisayarında Git kuruluysa onu da kullanabilirsin. Biraz bilgin varsa zaten bu senin için zor olmamalı ama bilmeyenler de olacağı için uzun ve açıklayıcı bir şekilde anlatmaya çalıştım.
Linux kullanıyorsan da terminali o klasörde açmak senin için çok zor olmamalı, sonuçta sen Linux kullanıyorsun .
Şimdi `npm init -y` komutunu kullan ve botun için gerekli olan packages.json dosyası oluşsun, -y ile belirttiğin için de senin için otomatik doldursun.
Not: ` işaretlerini kodu belirtmek için kullanıyorum. Komut kullanırken başına ve sonuna ` koymamalısın.
Tebrikler! Botunun klasörü hazır. Şimdi Discord.js kuralım. `npm i discord.js@latest` komutunu kullan ve Discord.js'in son sürümü kurulsun.
Şöyle bir çıktı vermesi gerek. İki tane de uyarı verdi çünkü npm init -y yaparak package.json dosyasını otomatik doldurttuk, açıklama ve repo kısımlarını doldurmadı. Bunlara ihtiyacın yok ama istersen package.json dosyasını açıp açıklama ekleyebilirsin.
Discord.js Kurulumuyla İlgili Not:
Şöyle bir çıktı aldıysan endişelenme, orada belirtilen modüller isteğe bağlı ve şu anda hiçbirine ihtiyacımız yok.
İlk Kodunu Yazmaya Hazırsın!
Artık ana bot dosyanı oluşturabilir ve ilk kodunu yazabilirsin. Bu konuda tek dosya oluşturacağız, bir config bile kullanmayacağız. Sonraki konumda ise direkt Discord.js üzerinden gideceğimiz için command handlerlara kadar gideriz.
Bot klasörüne gel ve index.js isminde yeni bir dosya oluştur. Dosya adının index.js olması öneriliyor ama index yerine istediğini yazabilirsin, önemli olan .js dosyası olması. Bu dosya botun ana dosyası olacak. Oluşturduysan kod editörüne geçebiliriz.
Klasörü kod editöründe aç. Bunu yapmak kolay olmalı. Visual Studio Code kullanıyorsan VS Code içerisinde open foldera tıkla ve bot klasörünü seç. Diğer kod editörlerinde de aynı olmalı.
Kod editöründe index.js dosyanı aç ve programlamaya başlayalım.
En üst satıra
const Discord = require('discord.js');
kodunu gireceğiz. Bu kod Discord.js'i import edecek.Bir alt satıra
const client = new Discord.Client();
kodunu yazacağız. Bu kod client objesini oluşturacak.En alt satırımızda ise
client.login('token');
bulunacak ve bota giriş yapacak. "token" kısmına konunun başında girdiğimiz Discord Developer Portal'dan aldığın bot tokenini yapıştır. Dikkat et, bu tokeni bilen herkes botuna girebilir. Yani tokenini gizli tut.Temel şeyleri hallettik. Şimdi de botun hazır olduğunda konsolumuza "Bot Hazır!" yazdırmasını ve Discord aktivitesini ayarlamasını sağlayalım.
JavaScript:
client.once('ready', () => { //Client hazır olduğunda
console.log('Bot hazır!'); //Konsola "Bot hazır!" yazdır.
client.user.setActivity("Bu bot da Discord'a katıldı!", { //Bot hesabının aktivitesini "Bu bot da Discord'a katıldı!" olarak ayarla
type: "PLAYING" //Aktivite tipi: Oynuyor
});
})
Son olarak kodumuz şöyle görünüyor olmalı:
JavaScript:
const Discord = require('discord.js'); //discord.js'i içeri aktar
const client = new Discord.Client(); //Client'ı oluştur
client.once('ready', () => { //Client hazır olduğunda
console.log('Bot hazır!'); //Konsola "Bot hazır!" yazdır
client.user.setActivity("Bu bot da Discord'a katıldı!", { //Bot hesabının aktivitesini "Bu bot da Discord'a katıldı" olarak ayarla.
type: "PLAYING" //Aktivite tipi: Oynuyor
});
});
client.login('süpergizlibottokenin') //Client'a giriş yap
Botunu çalıştırmak için bot klasöründeki komut isteminde `node index` (dosya adı index değilse `node {dosya adı}`) komutunu veya package.json dosyasında belirttiğin start scriptini kullan.
Botun Hazır! Artık Mesajları Dinlemesini ve Yanıt Vermesini Sağlamaya Ne Dersin?
Artık botun hazır. Bu konuda son olarak da mesajı dinlemeyi ve yanıt vermesini göstereyim ve başlangıcın tamamlanmış olsun.
JavaScript:
client.on("message", message => { //Mesaj geldiğinde
if (message.content.startsWith("ping")) { //Mesaj "ping" ile başlıyorsa
message.channel.send("pong"); //Mesajın bulunduğu kanala "pong" mesajını gönder
};
});
Kapanış
Bu konuda Discord.js'e giriş yapmanda yardımcı olmaya çalıştım. Yeterince açıklayıcı ve yararlı bir konu oldu mu, anlatımım iyi mi emin değilim. Yorumlarını yazabilirsin.
Son düzenleme: