En kolay Discord bot yapımı anlatımına hoş geldiniz. Bu rehberde videolu ve resimli Discord botu nasıl yapılır anlatıyoruz. Ancak öncelikle Discord paketleri sayfamıza girmeyi unutmayın. Burada hazır Discord botları, sunucuları ve kanal boost için üye hizmetleri alabilirsiniz. Discord, toplulukların, arkadaş gruplarının ve geliştiricilerin bir araya geldiği en popüler platformlardan biri haline geldi. Ancak onu gerçekten eşsiz kılan şey, botlarla zenginleştirilebilen yapısıdır. Bu rehberde sıfırdan bir Discord botu nasıl yapılır, geliştiriciler neleri bilmeli, hangi teknolojiler ve araçlar kullanılır, hepsini detaylı şekilde ele alacağız.
📌 Discord Botları Nedir?
Discord botları, sunucularınıza otomasyon, eğlence, moderasyon veya özel işlevsellik eklemenizi sağlayan küçük yazılımlardır. Komutlar alabilir, mesajlara tepki verebilir, sesli kanallarda işlem yapabilir veya veritabanı tutabilirler. Botlar sayesinde, sıradan bir Discord sunucusu, tam teşekküllü bir otomasyon merkezi haline gelebilir.
💡 DC Botu Yapmak İçin Temel Gereksinimler
- Discord hesabı
- Node.js kurulumu (alternatif: Python)
- Bir kod editörü (Visual Studio Code önerilir)
- Temel JavaScript veya Python bilgisi
- Bir barındırma çözümü (Glitch, Replit, VDS vs.)
- Bir veritabanı tercihi (SQLite, MongoDB, Firebase)
🔧 Discord Geliştirici Portalı Kurulumu
- Discord Developer Portal adresine gidin.
- “New Application (Yeni Uygulama)” butonuna tıklayın.
- Uygulamanıza bir ad verin (örneğin:
EnginBot
) ve “Create (Oluştur)” seçeneğine basın. - Sol menüden “Bot” sekmesine tıklayın, ardından “Add Bot (Bot Ekle)” butonuna basın.
- Karşınıza çıkan ekranda bot token’ınızı göreceksiniz (GİZLİ TUTUN). Bu token, botunuzun şifresidir.
🔐 Bot Token Nedir ve Nasıl Alınır?
Bot token, Discord’un sizin botunuza özel oluşturduğu bir erişim anahtarıdır. Bu token ile botunuz Discord sunucusuyla iletişim kurabilir. Ancak bu anahtar kimseyle paylaşılmamalıdır. Çünkü eline geçen herkes botunuzun kontrolünü ele geçirebilir.
Token’ı almak için:
- “Bot” sekmesine gidin
- “Click to Reveal Token” butonuna tıklayın
- Token’ı bir
.env
dosyasında saklamanızı öneririz
🛠️ Kodlama Ortamı Nasıl Hazırlanır?
Node.js Yöntemi (En Yaygın)
- Node.js kurulumunu yapın
- Terminal veya Komut İstemi’ni açın
- Yeni bir klasör oluşturun:
mkdir engin-bot && cd engin-bot npm init -y npm install discord.js dotenv
index.js
dosyasını oluşturun.env
dosyasına token’ınızı şu şekilde yazın:DISCORD_TOKEN=bot_token_buraya
✅ İlk Basit Discord Bot Kodlaması
require('dotenv').config();
const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({
intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent]
});
client.once('ready', () => {
console.log(`Bot Aktif: ${client.user.tag}`);
});
client.on('messageCreate', message => {
if (message.content === '!selam') {
message.reply('Merhaba Engin!');
}
});
client.login(process.env.DISCORD_TOKEN);
Tabii Engin, başlıkları detaylandırmaya ve madde madde devam ettirmeye devam ediyorum. İşte Discord Bot Nasıl Yapılır? makalesinin kapsamlı devamı:
7. Komut Sistemi Nasıl Kurulur?
Discord botlarının en temel özelliklerinden biri komutları tanımlayabilmesidir. Komut sistemi botunuzu kullanıcı dostu ve genişletilebilir yapar.
a) Prefix (Ön Ek) ile Komutlar
- Komutlar genellikle
!
,?
, veya/
gibi bir ön ek ile başlar. - Gelen mesajdaki bu ön ek kontrol edilerek komut ayrıştırılır.
- Örnek:
if (message.content.startsWith('!selam')) { // komut işlemi }
b) Komutların Modüler Yapıda Ayrılması
- Komutlar tek bir dosyada değil, her komut için ayrı dosyalar oluşturularak düzenlenebilir.
commands
klasörü oluşturup her komutu burada tutmak kodun bakımını kolaylaştırır.
c) Slash Komutları (Yeni Nesil)
- Discord API’nin resmi desteklediği
/komut
yapısı. - Daha modern, kolay ve kullanıcı dostu.
- Slash komutları, botun API üzerinden kaydedilip sunucuya gönderilerek aktif edilir.
8. Event Sistemi (Etkinlik Dinleyiciler)
Botlar sadece mesajlara değil, birçok olaya tepki verir.
Örnek Olaylar:
guildMemberAdd
: Yeni bir üye katıldığındamessageReactionAdd
: Mesajlara reaksiyon eklendiğindevoiceStateUpdate
: Kullanıcı sesli kanala girip çıktığında
Event Dinleyicisi Örneği:
client.on('guildMemberAdd', member => {
member.guild.channels.cache.get('kanal_id').send(`Hoşgeldin, ${member.user.tag}!`);
});
9. Sunucuya Bot Ekleme Linki Oluşturma
Botunuzu Discord sunucularına eklemek için özel bir URL oluşturmalısınız.
Örnek:
https://discord.com/oauth2/authorize?client_id=BOT_ID&permissions=8&scope=bot%20applications.commands
client_id
yerine botunuzun ID’si gelir.permissions
parametresi botun sunucuda sahip olacağı izinleri belirler.scope
kısmı botun hangi izinlerle çağrılacağını tanımlar.
10. Gelişmiş Bot Özellikleri
a) Veri Kaydetme ve Veritabanı Kullanımı
- Kullanıcı puanlama, seviye atlama, kayıt tutma gibi işlemler için veritabanı şarttır.
- Popüler veritabanları: MongoDB, SQLite, PostgreSQL, MySQL
b) Komutlarda Argüman Kullanımı
- Komutlar kullanıcıdan farklı parametreler alabilir:
!kick @kullanıcı sebep
c) Sesli Kanal İşlemleri
- Bot, sesli kanallara bağlanabilir, müzik çalabilir, sesli sohbetleri yönetebilir.
discord.js
için@discordjs/voice
paketi kullanılır.
11. Veritabanı Entegrasyonu
a) MongoDB Kullanımı
- Bulut tabanlı, esnek NoSQL veritabanı.
mongoose
kütüphanesi ile kolay kullanım.- Örnek bağlantı:
const mongoose = require('mongoose');
mongoose.connect('mongodb+srv://user:pass@cluster.mongodb.net/dbname', { useNewUrlParser: true });
b) Veri Modelleri Oluşturma
- Kullanıcı, sunucu ve ayar bilgileri için şemalar hazırlanır.
c) CRUD İşlemleri
- Veri ekleme, güncelleme, silme ve sorglama işlemleri yapılabilir.
12. API ile Etkileşim
Botlar dış dünyadan veri çekmek için API’ler kullanabilir:
- Hava durumu API’leri
- Döviz kuru API’leri
- Oyun API’leri
- ChatGPT API’si gibi yapay zeka servisleri
Örnek: OpenWeather API kullanımı
const fetch = require('node-fetch');
async function havaDurumuGetir(sehir) {
const response = await fetch(`https://api.openweathermap.org/data/2.5/weather?q=${sehir}&appid=API_KEY&units=metric`);
const data = await response.json();
return data;
}
13. Barındırma (Hosting) Yöntemleri
Botunuzu 7/24 aktif tutmak için bir barındırma hizmeti gereklidir.
a) Ücretsiz Barındırma
- Replit, Glitch gibi platformlar
- Avantajları: Kolay, ücretsiz
- Dezavantajları: Sürekli açık kalmayabilir
b) Ücretli Barındırma
- VPS (DigitalOcean, Linode, Vultr)
- Dedicated Server
- Bulut Hizmetleri (AWS, Google Cloud, Azure)
c) Docker ile Dağıtım
- Konteynerize ederek taşınabilir ve kolay yönetilebilir botlar oluşturma.
14. Bot Güvenliği ve Rate Limit Konuları
- Token gizliliği: Token asla paylaşılmamalı.
- Rate limit: Discord API çağrılarında sınırlamalar var, aşırı istekler botun engellenmesine sebep olabilir.
- İzinler: Botun izinleri minimal tutulmalı, sadece ihtiyacı olan izinler verilmeli.
- Veri doğrulama: Kullanıcı girdileri her zaman kontrol edilmeli.
- Error handling: Hatalar düzgün şekilde yakalanmalı ve loglanmalı.
15. En İyi Uygulamalar ve Yaygın Hatalar
İyi Uygulamalar:
- Modüler kodlama
- Asenkron programlama kullanımı (
async/await
) - Çevre değişkenleri ile hassas bilgileri saklama
- Kod yorumları ve dökümantasyon
- Versiyon kontrol (Git kullanımı)
Yaygın Hatalar:
- Token’ı doğrudan kod içinde kullanmak
- Komutları karmaşık tek dosyada yazmak
- API rate limitlerine dikkat etmemek
- Kullanıcı girdilerini doğrulamamak
- Sürekli botu restart etmeden hataları göz ardı etmek
16. Kaynaklar ve Topluluklar
- Discord.js Resmi Dokümantasyonu
- Discord Developer Portal
- Discord.js Guide
- Stack Overflow
- Discord Bot Geliştirici Toplulukları (Discord sunucuları)
- YouTube eğitim kanalları (Örneğin: The Coding Train, CodeLyon)