como testar o evento em discord.py
digamos evento on_member_join
@commands.Cog.listener()
async def on_member_join(self, member):
# On member joins we find a channel called general and if it exists,
# send an embed welcoming them to our guild
channel = discord.utils.get(member.guild.text_channels, name="welcome")
if channel:
embed = discord.Embed(
description="Welcome to our guild!",
color=random.choice(self.bot.color_list),
)
embed.set_thumbnail(url=member.avatar_url)
embed.set_author(name=member.name, icon_url=member.avatar_url)
embed.set_footer(text=member.guild, icon_url=member.guild.icon_url)
embed.timestamp = datetime.datetime.utcnow()
await channel.send(embed=embed)
Este é o meu evento (eu sei que funciona) como posso testá-lo de alguma forma para executar o comando para emitir o evento (não manualmente adicionando e removendo alguém)?
[algo como .emit on_member_join @user onde arg1 é o evento e se necessário arg2 é a menção ou id do canal]
Qualquer comando para isso?
algo como Discord.js: Acionando eventos manualmente, mas em discord.py não em JavaScript
Respostas
Atualmente não há suporte oficial na api discord.py para fazer algo assim, mas você sempre pode fazer um comando na engrenagem como a seguir:
@commands.command()
async def test_join(self, ctx, member: discord.Member):
await self.on_member_join(member)
Tecnicamente, há uma maneira de fazer isso que não está documentada ...
Linha 131 aqui . Não vou oferecer suporte adicional para isso porque não está documentado.