Discord python关于角色授予事件
- 作者: 温州皮革厂老板黄河
- 来源: 51数据库
- 2023-02-10
问题描述
所以我一直试图让机器人在成员获得角色授予时宣布,我知道这段代码可能根本没有意义,但这就是为什么我要问:我该怎么做?
So i've been trying to get the bot to announce whenever a member gets a role granted, i know that this code may not make sense at all, but that's why i'm asking: How could i do it?
@bot.event async def on_member_update(before, after): if str(after.roles) == 'android': fmt = "{0.mention} your role request has been accepted! :confetti_ball: You've been granted the role '{1}'" await bot.send_message(bot.get_channel('495285593711050754'), fmt.format(member, after.roles.name)) print(colored('moderation.clf: ', 'blue'), colored('Android granted', 'white')) if str(after.roles) == 'human': fmt = "{0.mention} your role request has been accepted! :confetti_ball: You've been granted the role '{1}'" await bot.send_message(bot.get_channel('495285593711050754'), fmt.format(member, after.roles.name)) print(colored('moderation.clf: ', 'blue'), colored('Human granted', 'white')) if str(after.roles) == 'moderator': fmt = "{0.mention} you are now part of the CyberLife staff, we're so excited to have you here! :confetti_ball:" await bot.send_message(bot.get_channel('495285593711050754'), fmt.format(member, after.roles.name)) print(colored('moderation.clf: ', 'blue'), colored('Moderator granted', 'white'))
推荐答案
首先您必须检查用户是否获得了新角色.然后您可以检查他们获得的角色是否是您正在寻找的角色之一:
First you have to check that the user got a new role. Then you can check that the role they got is one of the ones you're looking for:
@bot.event async def on_member_update(before, after): if len(before.roles) < len(after.roles): new_role = next(role for role in after.roles if role not in before.roles) if new_role.name in ('android', 'human'): fmt = "{0.mention} your role request has been accepted! :confetti_ball: You've been granted the role '{1}'" await bot.send_message(bot.get_channel('495285593711050754'), fmt.format(after, new_role.name)) elif new_role.name in ('moderator'): fmt = "{0.mention} you are now part of the CyberLife staff, we're so excited to have you here! :confetti_ball:" await bot.send_message(bot.get_channel('495285593711050754'), fmt.format(after))
推荐阅读
热点文章
Discord.py(重写)on_member_update 无法正常工作
0
Discord.py 在 vc 中获取用户分钟数
0
discord.py 重写 |为我的命令出错
0
Discord.py rewrite 如何 DM 命令?
0
播放音频时,最后一部分被切断.如何解决这个问题?(discord.py)
0
在消息删除消息 Discord.py
0
如何使 discord.py 机器人私人/直接消息不是作者的人?
0
(Discord.py) 如何获取整个嵌入内容?
0
Discord bot 尽管获得了许可,但不能提及所有人
0
Discord.py discord.NotFound 异常
0