come testare l'evento in discord.py
diciamo l'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)
Questo è il mio evento (so che funziona) come posso testarlo in qualche modo per eseguire il comando per emettere l'evento (non manualmente aggiungendo e rimuovendo qualcuno)?
[qualcosa come .emit on_member_join @user dove arg1 è l'evento e se necessario arg2 è la menzione o l'id del canale]
Qualche comando per quello?
qualcosa come Discord.js: attivazione manuale di eventi ma in discord.py non in JavaScript
Risposte
Attualmente non c'è supporto ufficiale nell'api discord.py per fare qualcosa del genere, ma puoi sempre eseguire un comando nell'ingranaggio come segue:
@commands.command()
async def test_join(self, ctx, member: discord.Member):
await self.on_member_join(member)
Tecnicamente c'è un modo per farlo probabilmente che non è documentato ...
Riga 131 qui . Non offrirò ulteriore supporto per questo perché non è documentato.