Rehber Python Discord.py ile Discord botu yapımı

goodpat

Decapat
Katılım
30 Haziran 2021
Mesajlar
865
Makaleler
2
Çözümler
11
Daha fazla  
Sistem Özellikleri
İşlemci : Intel(R) Core(TM) i5-10400F
Ekran Kartı : Nvidia GeForce RTX 2060
Ana Kart : Gigabyte H410M H V3
Cinsiyet
Erkek
Merhaba, bu rehberde nasıl discord.py kullanarak Python'da Discord botu yapılır göstereceğim.

Botu Oluşturma
Eğer botu oluşturduysanız bu kısmı geçebilirsiniz.

1701349006059.png

  • Açılan pencereye botunuzun ismini girin.
1701349059899.png

  • Sol taraftan Botkısmına gelin.
  • Privileged Gateway Intents gelin ve alttaki tüm seçenekleri (intentleri) açın.
1701349177180.png

  • Save butonuna basın. Sonra ise yine Bot kısmından üstte Reset Token butonuna tıklayın ve tokeni alın. Bu kodlamada işimize yarayacak.

Başlangıç
  • Öncelikle, Python indirin. İndirmek için CMD'ye python yazın ve sizi otomatik olarak mağazaya yönlendirecek.
  • Ardından, bir klasör açın. Burada projelerinizin dosyaları olacak. Ve projenizin içine main.py adında yeni bir dosya oluşturun (fark etmez dosya ismi).
  • Ve bulunan klasörde CMD'yi açın ve pip install discord.py yazın.
Kodlama
Şimdi ise kodlama kısmına geldik. Oluşturduğunuz main.py dosyasını açın ve şu kodları girin;

Ana Kodlar

Python:
import discord
from discord.ext import commands
   
intents = discord.Intents.default()
intents.message_content = True
client = commands.Bot(command_prefix='' , intents=intents)
# command_prefix yazan yere botun prefixini girin. örnek: g!

class MyClient(discord.Client):

  async def on_ready(self):
    print(f'Giriş yapıldı {self.user}!')
   
client.run(
    "token") # buraya discord botunuzun tokenini girin

Botun Durumunu Ayarlama

[SIZE=4]on_ready[/SIZE] nin içine şu kodu yazın;

Python:
    await client.change_presence(activity=discord.Game(
        name="Durum")) # durumu buraya girin
Durumunuz bu şekilde ayarlanır. Detaylı ayarlama için (rahatsız etme, film izliyor vb.) araştırabilirsiniz ve ya belki ayrı bir rehber hazırlarım.

Bota Komut Ekleme
Çok detaylı komutlar olmasada basitinden komut eklemeyi göstereceğim burada. Detaylı komutları araştırabilirsiniz.

Kick Komutu (kullanıcıyı atma):
Python:
@client.command(pass_context=True)
async def kick(ctx, member: discord.Member, *, reason=None): # kullanıcıyı atma komutu
    await client.kick(member) # atma
    await ctx.send(f'{member} kullanıcısı yasaklandı') # mesaj gönderme
Ping Komutu (botun gecikme süresini gösterir):
Python:
@client.command()
async def ping(ctx):
    await ctx.send(f'Pingim : `{client.latency * 1000}`ms')
 

Dosya Ekleri

  • 1701348934699.png
    1701348934699.png
    4,8 KB · Görüntüleme: 84
  • 1701348944706.png
    1701348944706.png
    4,8 KB · Görüntüleme: 76
  • 1701348981421.png
    1701348981421.png
    4,8 KB · Görüntüleme: 67
  • 1701348997332.png
    1701348997332.png
    4,8 KB · Görüntüleme: 52
Son düzenleyen: Moderatör:
Botunuzda veya istemcinizde (client) on_ready içinde change_presence (veya API çağrıları) yapmayın.
Discord'un READY veya GUILD_CREATE olayları sırasında (1006 close code) bağlantınızı tamamen kesme şansı yüksektir ve bunu önlemek için yapabileceğiniz hiçbir şey yoktur.

Bunun yerine, bu sınıfların kurucusunda "activity" ve "status" kwarg'larını ayarlayın.

Python:
bot = commands.Bot(command_prefix="!", activity=..., status=...)

Ayrıca dokümanlarda da belirtildiği gibi, on_ready sadece bir kez değil, birden çok kez tetiklenir.

Ready eventi sadece botun hazır olduğunun bilgilendirilmesi için. İçinde bir şeyler yapmaya uygun değil. Sadece print alın.

discord.py ve discord resmi dökümanları

Öncelikle, Python indirin. İndirmek için CMD'ye python yazın ve sizi otomatik olarak mağazaya yönlendirecek.
Micorosoft mağazasından Python indirilmesini tavsiye etmiyorum. Bence bunun yerine Python resmi sitesini ve yükleyicisini kullanın.
 
Python:
bot = commands.Bot(command_prefix="!", activity=..., status=...)

Ayrıca dokümanlarda da belirtildiği gibi, on_ready sadece bir kez değil, birden çok kez tetiklenir.

Ready eventi sadece botun hazır olduğunun bilgilendirilmesi için. İçinde bir şeyler yapmaya uygun değil. Sadece print alın.

discord.py ve discord resmi dökümanları


Micorosoft mağazasından Python indirilmesini tavsiye etmiyorum. Bence bunun yerine Python resmi sitesini ve yükleyicisini kullanın.
Evet python kendi sitesindende indirilebiliyor ama sonra çoğu kişi python bulunamadı mesajının konusunu açıyorlar yanlış indiriyorlar yani.
 
Evet Python kendi sitesindende indirilebiliyor ama sonra çoğu kişi Python bulunamadı mesajının konusunu açıyorlar yanlış indiriyorlar yani.

İndirilen bir programlama dilinin otomatik güncellemeye uğraması çok da istenmeyecek bir durum bence. Ayrıca daha sonra farklı eklentiler de indirilecekse PATH'de sıkıntı çıkabilir. İnsanların python.org'dan indirmesini teşvik etmek ve indirme adımlarını açıklamak çok daha doğru bir yaklaşım olur bence.
 

Geri
Yukarı