如何在 discord.py 中测试事件
how to test event in discord.py
假设 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)
这是我的事件(我知道它有效)我如何以任何方式测试它以执行命令以发出事件(而不是通过添加和删除某人手动)?
[类似于 .emit on_member_join @user,其中 arg1 是事件,如果需要,arg2 是频道的提及或 ID]
有什么命令吗?
类似于 但在 discord.py 中而不是在 JavaScript
中
目前 discord.py api 中没有官方支持做这样的事情,但你总是可以在 cog 中发出如下命令:
@commands.command()
async def test_join(self, ctx, member: discord.Member):
await self.on_member_join(member)
从技术上讲,有一种可能没有记录的方法...
here 中的第 131 行。我不会为此提供额外的支持,因为它没有记录。
假设 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)
这是我的事件(我知道它有效)我如何以任何方式测试它以执行命令以发出事件(而不是通过添加和删除某人手动)?
[类似于 .emit on_member_join @user,其中 arg1 是事件,如果需要,arg2 是频道的提及或 ID]
有什么命令吗?
类似于
目前 discord.py api 中没有官方支持做这样的事情,但你总是可以在 cog 中发出如下命令:
@commands.command()
async def test_join(self, ctx, member: discord.Member):
await self.on_member_join(member)
从技术上讲,有一种可能没有记录的方法...
here 中的第 131 行。我不会为此提供额外的支持,因为它没有记录。