python - 如何使用相同的装饰器制作 2 个 on_member 工作事件?
问题描述
@client.event
async def on_member_join(member):
global welcome_channel_dict
global autoroles
channel_id = welcome_channel_dict[str(member.guild.id)]
embed=discord.Embed(colour=discord.Colour.green())
embed=discord.Embed(title="<:memberjoined:778987095837769759> Member Joined", color=0x2ECC71, description=f'{member.mention} joined **{member.guild}**! Enjoy your stay! :tada:')
embed.set_thumbnail(url=member.avatar_url)
await client.get_channel(channel_id).send(embed=embed)
role = discord.utils.get(member.guild.roles, id=autoroles[str(member.guild.id)])
await member.add_roles(role)
我想要实现的目标:现在,autorole
只有当人们也启用了欢迎消息时才有效。我希望它单独工作。
解决方案
你的客户应该是Bot
一流的
from discord.ext.commands import Bot
client = Bot(command_prefix="!")
稍后在代码中
async def on_member_join(member):
#do_some_stuff
client.add_listener(on_member_join)
async def on_member_join(member):
#do_some_more_stuff
client.add_listener(on_member_join)
推荐阅读
- linux - 有没有办法在 .spacemacs 文件中检测我们所在的平台?
- mysql - 我在 Excel 中有很多数据,我想将它们添加到 MySQL 数据库中,我该怎么做?
- c++ - C++ 为什么 uint16_t 在这里被隐式转换为 int?
- wordpress - 列出古腾堡区块中的所有类别
- ffmpeg - 动画 Webp - 改变帧率
- excel - Excel宏 - 从循环中选择使用数字的单元格范围
- java - Spring Data JPA / Hibernate ManyToMany 关系始终为空
- java - Android Studio 下载管理器发布请求、放置请求和正文表单 x-www-form-unlencoded
- c# - Laravel 和 C# 应用程序 API 问题
- javascript - 我想从一个 onclick 调用两个函数