Evet Tekrardan Merhaba Önceki Konumda Discord Botu Oluşturmayı göstermiştim bu konum onun devamı olacak o konumuda okumadıysanız
Python Discord Botu Programlama #1 Botu Oluşturma
Bu linkten o konuma Gidebilirsiniz isterseniz başlayalım artık.
Gerekli Kütüphane:
Bu kütüphaneyi indirdikten Sonra botumuzu kodlamaya başlayabiliriz Anlatımımı yaparken Öncelikle Kodları göstereceğim ve ardından açıklayacağım.
Token Nasıl Alınır?
Bunu önceki konumda bahsetmiştim fakat almamıştık Applications Buradan Botumuzu Seçiyoruz Sol Taraftan Bot Kısmına Geliyoruz Ve açılan sayfada Reset Token diyoruz burda size bir token verecek onu kodumuzdaki TOKEN kısmına Yazıyoruz ve artık botumuzu Çalıştırabiliriz.
Botumuzu Nasıl Aktif Edilir?
Aslında burdaki çoğu kişi bunu yapabilir ama genede bu başlığıda açayım dedim şimdik öncelikle terminalimizi açıyoruz ve kodlarımızın olduğu dosyayı çalıştıracağı ben kodlarımı main.py Dosyasına yazdım ve 'Python main.py' diyerek Çalıştırıyorum daha sonra Discorda gelip botunuza bakabilirsiniz Artık botunuz aktif olmuştur. Hadi ilk Komutlarımızı Ve eventlerimizi ekleyelim.
Event Nedir?
Eventler Botumuzu Herhangi bir etkinlikte tetiklyen Fonksiyonlardır en basitinden bir event olan 'on_ready()' eventi bu event botumuz çalıştığında tetiklenir 'on_member_join()' Sunucuya insan katıldığında tetiklenir bunun gibi bir düzine event bulunuyor bunları tek tek inceleyip kodumuza ekleyeceğiz.
Komutlar Nedi?
Komutlar ise Botumuzun prefixi ile çalışan fonksiyonlardır çoğu discord botunda bulunur bu sayede botunuzu yönetebilirsiniz komutları kendimiz ayarlarız ve nasıl ne zaman çalışacağını biz belirleriz kodlama kısmında bundanda bolca kullanacağız isterseniz şimdi bunların kullanımına geçelim
İlk Event Ve Komutlar
Gördüğünüz Gibi Botumuza ilk komutunu Kullandırdık Discord.py kütüphanesini otomatik gelen bir komutu var .help bu komut ile bulunan bütün komutları yazdırabilirsiniz.Python Discord Botu Programlama #1 Botu Oluşturma
Bu linkten o konuma Gidebilirsiniz isterseniz başlayalım artık.
Gerekli Kütüphane:
Bash:
pip install discord
Bu kütüphaneyi indirdikten Sonra botumuzu kodlamaya başlayabiliriz Anlatımımı yaparken Öncelikle Kodları göstereceğim ve ardından açıklayacağım.
Python:
import discord
from discord.ext import commands
#Gerekli Kütüphaneleri Aldık
intents = discord.Intents.all()
discord.member = True
Bot = commands.Bot(command_prefix=".", intents=intents)
#Command_prefix Botunuzun prefixi benim botumuki '.' olacak ileride-
#ne demek oldıuğunu anlarsınız
Bot.run("TOKEN")
#Buraya Botumuzun Tokenini Yazacağız Tokenin almayı öğreteceğim
Token Nasıl Alınır?
Bunu önceki konumda bahsetmiştim fakat almamıştık Applications Buradan Botumuzu Seçiyoruz Sol Taraftan Bot Kısmına Geliyoruz Ve açılan sayfada Reset Token diyoruz burda size bir token verecek onu kodumuzdaki TOKEN kısmına Yazıyoruz ve artık botumuzu Çalıştırabiliriz.
Botumuzu Nasıl Aktif Edilir?
Aslında burdaki çoğu kişi bunu yapabilir ama genede bu başlığıda açayım dedim şimdik öncelikle terminalimizi açıyoruz ve kodlarımızın olduğu dosyayı çalıştıracağı ben kodlarımı main.py Dosyasına yazdım ve 'Python main.py' diyerek Çalıştırıyorum daha sonra Discorda gelip botunuza bakabilirsiniz Artık botunuz aktif olmuştur. Hadi ilk Komutlarımızı Ve eventlerimizi ekleyelim.
Event Nedir?
Eventler Botumuzu Herhangi bir etkinlikte tetiklyen Fonksiyonlardır en basitinden bir event olan 'on_ready()' eventi bu event botumuz çalıştığında tetiklenir 'on_member_join()' Sunucuya insan katıldığında tetiklenir bunun gibi bir düzine event bulunuyor bunları tek tek inceleyip kodumuza ekleyeceğiz.
Komutlar Nedi?
Komutlar ise Botumuzun prefixi ile çalışan fonksiyonlardır çoğu discord botunda bulunur bu sayede botunuzu yönetebilirsiniz komutları kendimiz ayarlarız ve nasıl ne zaman çalışacağını biz belirleriz kodlama kısmında bundanda bolca kullanacağız isterseniz şimdi bunların kullanımına geçelim
İlk Event Ve Komutlar
Python:
import discord
from discord.ext import commands
#Gerekli Kütüphaneler
intents = discord.Intents.all()
discord.member = True
Bot = commands.Bot(command_prefix=".", intents=intents)
#@Bot.event fonksiyonun bir event olduğunu tanımlar
#bu event botumuzu çalıştırdığımızda terminalimize 'Botumuz Şu Anda Çevrimiçi' yazdırır
#bunu dahada ilerletebiliriz.
@Bot.event
async def on_ready():
print("Botumuz Şu Anda Çevrimiçi")
#@Bot.command() ise bu fonksiyonun bir komut olduğunu tanımlar
#bu fonksiyonda botun bulunduğu sunucuya .forum yazdığımızda bize
#'Forum Sitemiz: www.turkhackteam.org' cevabını vericektir
@Bot.command()
async def forum(ctx):
await ctx.send("Forum Sitemiz: www.turkhackteam.org")
#dikkat ettiyseniz print() kullanmadık çünkü bizim amacımız kullanıcıya geri dönüş yapmak
#Bunun içinde ctx.send() kullandık ve asenkron bi fonksiyon olduğu için await attık
#ctx Context demektir mesajımızın içeriğini ve bütün detaylarını depolar bizim burda
#ctx.send dedikten sonra ctx kanalı alır ve o kanala geri dönüş sağlar.
Bot.run("TOKEN")
#Tokeninizi Buraya Yazdığınızı Var sayarak İlerliyorum

Bu mantık ile Python Bilgisi olan herkes çok güzel projeler yapabilir isterseniz .ban komutu ekleyelim onuda göstermiş olayım.
Embed(Gömme) Nedir?
Gömme Mesajlar Botumuz tarafından Atılabilir bu mesajlar daha düzenli gözükmesi için kullanılabilir bir sonraki komutta size onuda göstereceğim.
Argüman Nedir?
Argümanlarımız komutumuzu kullandığımız mesajda gelen değişkenlerdir örneğin .ban @pawelyn Spam
bunu yazdıktan sonra ctx argümanı = ban olur
member argümanı = pawelyn olur
reason = Spam olur
Aşağıda yazdığım kodda bunu anlarsınız zaten python fonksiyon kullanımını biliyorsanız rahatça bunu yapabilirsiniz.
Ban Komutu:
Şimdik Ban komutu yapacağı Amacımız ve aşamaları şöyle olması gerekir
.ban yazacağız botumuz görecek
kullanıcıyı bulacak ve banlayacak
banladıktan sonra bize gömme mesaj gönderecek
Python:
import discord
intents = discord.Intents.all()
discord.member = True
Bot = commands.Bot(command_prefix=".", intents=intents)
#Komutu tanımladık ve bu sefer ctx in yanında bir parametre daha geldi
#biz bu parametrelere argüman(argument) diyoruz
#.ban @user Spam
#bunu yaptığımızda @user banlanacak ve ban sebebi spam olacaktır
#@commands.has_permissions(ban_members=True) botumuzun bu komutunu
#sadece ban_members yetkisine sahip kullanıcılar kullanabilir anlamına gelir
@Bot.command()
@commands.has_permissions(ban_members=True)
async def ban(ctx, member: discord.Member, *, reason=None):
await member.ban(reason=reason)
embed = discord.Embed(title=member.name, description=member.id, color=discord.Color.random())
embed.add_field(name="Banlanan üye: ", value=member.mention, inline=False)
embed.add_field(name="Banlayan Yetkili: ", value=ctx.author.mention, inline=False)
embed.add_field(name="Sebeb: ", value=reason, inline=False)
await ctx.send(embed=embed)
#embed(gömme) mesajımızı tanımlıyoruz title= Başlık description=Açıklama color=Renk
#member.name derken yukarıdaki member argümanının adını alıyoruz yani 'user'
#Böylece Gömmenin başlığı banlanan kullanıcının adı oluyor
#member.id ise kullanıcının discord id oluyor
#bu sayede açıklama kullanıcının discord id'si oluyor
#embed.add_field(name="Banlanan üye: ",value=member.name,inline=False)
#böyle satır eklersiniz örneğin: Banlanan üye: user
#ctx.author() bu değişken ise komutu kullanan kişidir mesela
# @paw: .ban @redline Spam yazdı
#burda ctx.author() = 'paw' member = 'redline' reason = 'Spam' oluyor
#en sonda ise await ctx.send(embed=embed) diyoruz
#mesajımızı embed olarak gönderiyoruz.
Bot.run("token")
Aşağıda Yazdıklarım kodun içindeki yorum satırları okunur olsun diye burayada yazdım.
#embed(gömme) mesajımızı tanımlıyoruz title= Başlık description=Açıklama color=Renk
#member.name derken yukarıdaki member argümanının adını alıyoruz yani 'user'
#Böylece Gömmenin başlığı banlanan kullanıcının adı oluyor
#member.id ise kullanıcının discord id oluyor
#bu sayede açıklama kullanıcının discord id'si oluyor
#embed.add_field(name="Banlanan üye: ",value=member.name,inline=False)
#böyle satır eklersiniz örneğin: Banlanan üye: user
#ctx.author() bu değişken ise komutu kullanan kişidir mesela
# @pawelyn: .ban redline Spam yazdı
#burda ctx.author() = 'paw' member = 'redline' reason = 'Spam' oluyor
#en sonda ise await ctx.send(embed=embed) diyoruz
#mesajımızı embed olarak gönderiyoruz.
Bu Seferki Konumda bu kadardı Devamını getirmeyi Düşünüyorum Umarım anlatablmişimdir Eğer beğenmediğiniz bi yer varsa yazarsanız çok sevinirim.
Önceki Konum:
ilk konu