Evet Önceki konularımda Discord Botu Programlara 1 Ve Discord Botu Programlama 2 İsimli başıklara değinmiştik bu konum ise onların devamı olacak Bu konumda Eventlere birazcık daha detaylı değinmeyi düşünüyorum eventlerin ve komutların anlamına önceki konumda Değinmiştim Ve şimdi Eventlerle ilgili örnekleri yapacağız hadi isterseniz başlayalım
Eventler;
Şimdik İsterseniz Öncelikle on_message() Eventimizden başlayalım
size birazcık on_message() eventinden bahsedeyim bu eventimizin aktif olması için adındada belirttiği gibi bir mesaj olması lazım yani sunucuda bir mesaj yazıldığı zaman bu eventimiz tetikleniyor ve bu sayede mesaja cevap vermek gibi istediğimiz herşeyi yaptırabiliriz.
Hadi eventimizi botumuza ekleyelim
Evet Artık temelini anladığınızı düşünüyorum Herşey sizin elinizde ben temeli atmada yardımcı olacam devamı zaten gelir isterseniz şimdi daha da işimize yarayacak eventlere gelelim mesela on_member_join() bundada adında görmüş olduğunuz gibi Sunucuya üye katılınca tetiklenen bir event olduğu anlaşılıyor
Birde bunun tam zıttı var on_member_leave() sunucudan üye ayrılınca tetikleniyor ben size sadece join olanı anlatacam diğerini de zaten aynı mantık yapabilirsiniz
hadi bir amaç belirleyelim mesela sunucuya bir üye katılınca #Hoşgeldiniz kanalına bir mesaj göndersin ve hatta otomatik olarak üye Rolü versin istiyoruz
meseajda Katılan üyenin bilgileri bulunsun
-Kullanıcı Adı
-Profil Fotoğrafı
-Kullanıcı İdsi
-Verilen Rolün Adı
Evet İsterseniz Başlayalım Aslında yapması oldukça kolay;
Aşşağıda Yazdıklarım koddaki Yorum satırları okunaklı olsun diye burayada Yazayım dedim
evet tekrardan Eventi tanımladır
asenkron bir fonksiyon dedik on_member_join(member) dedik
member parametresi verdik çünkü bize lazım olan gelen membe(üye)
daha sorna otorol vereceğiz diye bir tanımlam yaptık ve üyenin bulunduğu sunucunun
rolleri arasından idsini kullanarak Rolümüzü tanımladık
daha sonra member.add_roles(role) diyerek üyemize rolü verdik
channel = Bot.get_channel(id) id kısmına kanalınızın id sini yazıyoruz
ve kanalımızı tanımlamış olduk artık bu channel değişkenini kullanabiliriz
embed Oluşturduk bunu önceki konularımda göstermiştim zaten
await channel.send(embed=embed) dedikten sonra
tanımlamış olduğumuz kanala embedimizi gönderiyoruz
ve eventimiz burda tamamlanmış oluyor
Bu Konumu Burda Sonlandırıyorum Umarım güzel anlatabilmişimdir ve sizin için yararlı olmuştur Devamını Üşenmediğim bi zamanda getirmeyi düşünüyorum okuduğunuz için teşekkürler.
Önceki Konularım;Eventler;
Şimdik İsterseniz Öncelikle on_message() Eventimizden başlayalım
size birazcık on_message() eventinden bahsedeyim bu eventimizin aktif olması için adındada belirttiği gibi bir mesaj olması lazım yani sunucuda bir mesaj yazıldığı zaman bu eventimiz tetikleniyor ve bu sayede mesaja cevap vermek gibi istediğimiz herşeyi yaptırabiliriz.
Hadi eventimizi botumuza ekleyelim
Python:
import discord
from discord.ext import commands
import time
import datetime
import random
import os
intents = discord.Intents.all()
discord.member = True
Bot = commands.Bot(command_prefix=".", intents=intents)
Bot.event
async def on_ready():
print("logged in as {}'user ".format(Bot.user()))
@Bot.command()
async def forum(ctx):
await ctx.send("Forum Sitemiz: www.turkhackteam.org")
#Evet Şimdik Eventimizi tanımlıyoruz
#Asenkron bir fonksiyon olup on_message(message) diyoruz
#ve parametre olarak message diyoruz çünkü bize lazım olan görmemiz gereken
#atılan mesaj Daha sonra if bloğuna giriyoruz ve yaptığımız şu
#eğer mesajımızın içeriği(content) == "Selamın Aleyküm" ise
#await message.reply("Aleyküm Selam Hoşgeldin") Mesajımıza Aleyküm selam diye cevap ver
#Else pass attık yani boş zaten
@Bot.event
async def on_message(message):
if message.content == "Selamın Aleyküm":
await message.reply("Aleyküm Selam Hoşgeldin")
else:
pass
#Bukadar basit bunu istediğiniz gibi ayarlayabilirsiniz
#if message.content == "sa" dersiniz == "Naber" dersiniz istediğiniz soruyu ve cevabı
#ayarlayabilirsiniz.
Bot.run("token")
Evet Artık temelini anladığınızı düşünüyorum Herşey sizin elinizde ben temeli atmada yardımcı olacam devamı zaten gelir isterseniz şimdi daha da işimize yarayacak eventlere gelelim mesela on_member_join() bundada adında görmüş olduğunuz gibi Sunucuya üye katılınca tetiklenen bir event olduğu anlaşılıyor
Birde bunun tam zıttı var on_member_leave() sunucudan üye ayrılınca tetikleniyor ben size sadece join olanı anlatacam diğerini de zaten aynı mantık yapabilirsiniz
hadi bir amaç belirleyelim mesela sunucuya bir üye katılınca #Hoşgeldiniz kanalına bir mesaj göndersin ve hatta otomatik olarak üye Rolü versin istiyoruz
meseajda Katılan üyenin bilgileri bulunsun
-Kullanıcı Adı
-Profil Fotoğrafı
-Kullanıcı İdsi
-Verilen Rolün Adı
Evet İsterseniz Başlayalım Aslında yapması oldukça kolay;
Python:
#-----Diğer Komutlar
"""
evet tekrardan Eventi tanımladır
asenkron bir fonksiyon dedik on_member_join(member) dedik
member parametresi verdik çünkü bize lazım olan gelen membe(üye)
daha sorna otorol vereceğiz diye bir tanımlam yaptık ve üyenin bulunduğu sunucunun
rolleri arasından idsini kullanarak Rolümüzü tanımladık
daha sonra member.add_roles(role) diyerek üyemize rolü verdik
channel = Bot.get_channel(id) id kısmına kanalınızın id sini yazıyoruz
ve kanalımızı tanımlamış olduk artık bu channel değişkenini kullanabiliriz
embed Oluşturduk bunu önceki konularımda göstermiştim zaten
await channel.send(embed=embed) dedikten sonra
tanımlamış olduğumuz kanala embedimizi gönderiyoruz
ve eventimiz burda tamamlanmış oluyor
"""
@Bot.event
async def on_member_join(member):
role = discord.utils.get(member.guild.roles,id=ROLÜNIDSI)
await member.add_roles(role)
channel = Bot.get_channel(KANALIN_İDSİ)
embed = discord.Embed(title="Yeni Üye Katıldı",description="Hoşgeldin! ")
embed.add_field(name="Kullanıcı Adı: ",value=member.name,inline=False)
embed.add_field(name="Kullanıcı Id: ",value=member.id,inline=False)
embed.add_field(name="Verilen Role: ",value=role.name)
embed.set_thumbnail(url=member.avatar_url)
await channel.send(embed=embed)
#-----Diğer Komutlar
Aşşağıda Yazdıklarım koddaki Yorum satırları okunaklı olsun diye burayada Yazayım dedim
evet tekrardan Eventi tanımladır
asenkron bir fonksiyon dedik on_member_join(member) dedik
member parametresi verdik çünkü bize lazım olan gelen membe(üye)
daha sorna otorol vereceğiz diye bir tanımlam yaptık ve üyenin bulunduğu sunucunun
rolleri arasından idsini kullanarak Rolümüzü tanımladık
daha sonra member.add_roles(role) diyerek üyemize rolü verdik
channel = Bot.get_channel(id) id kısmına kanalınızın id sini yazıyoruz
ve kanalımızı tanımlamış olduk artık bu channel değişkenini kullanabiliriz
embed Oluşturduk bunu önceki konularımda göstermiştim zaten
await channel.send(embed=embed) dedikten sonra
tanımlamış olduğumuz kanala embedimizi gönderiyoruz
ve eventimiz burda tamamlanmış oluyor
Bu Konumu Burda Sonlandırıyorum Umarım güzel anlatabilmişimdir ve sizin için yararlı olmuştur Devamını Üşenmediğim bi zamanda getirmeyi düşünüyorum okuduğunuz için teşekkürler.
Discord.py #1
Discord.py #2