Cog: Tek bir classta komutlar, eventler ve bazı durumları düzenlemek istediğiniz zaman yardımcı olur.
- Her cog,
commands.Cog sınıfının alt sınıfıdır.
- Her komut,
commands.command() dekoratörü ile işaretlenir.
- Her event,
commands.Cog.listener() dekoratörü ile işaretlenir.
Coglar daha sonra
<Client>.add_cog ile eklenir.
Cog, silmek istendiği zaman
<Client>.remove_cog ile kaldırılır.
Kod:
class Yetkili(commands.Cog):
def __init__(self, bot):
self.client = bot
@commands.command(name='alkışla', aliases=['alkış']) # dekoratörümüz
@commands.guild_only() # sadece sunucularda kullanılabilir
async def alkisla(self, ctx, *, member: discord.Member = None):
member = member or ctx.author
await ctx.send(f"Alkış, {member.name!} :clap::clap:")
def setup(client):
client.add_cog(Yetkili(client))
Kod:
# ANA DOSYAMIZA
coglar = ['cogs.yetkili']
if __name__ == "__main__":
for cog in coglar:
client.load_extension(cog)
Nedir bu cogs.yetkili ? Python'da dizinler arası geçişlerde . kullanılır. Yani bu demek oluyor ki, ana dosyamızın olduğu dizinde cogs adında bir klasör oluşturacağız. Ardından da içine yetkili.py adında bir dosya ekleyip yukarıda verdiğimiz örnekteki kod yapıştırılacak.