为了账号安全,请及时绑定邮箱和手机立即绑定

Discord 机器人不会分配角色

Discord 机器人不会分配角色

跃然一笑 2023-08-22 16:28:41
我完全按照他的方式进行编码,除了警告之外没有任何错误,Parameter 'payload' value is not used 并且我已确保:机器人具有分配角色的适当权限机器人已上线表情符号和角色具有相同的名称这是供参考的代码:import discordclient = discord.Client()@client.eventasync def on_message(message):    if message.author == client.user:        return@client.eventasync def on_raw_reaction_add(payload):    message_id = payload.message_id    if message_id == '756794977148993597':        guild_id = payload.guild_id        guild = discord.utils.find(lambda g: g.id == guild_id, client.guilds)        role = discord.utils.get(guild.roles, name=payload.emoji.name)        if role is not None:            member = discord.utils.find(lambda m: m.id == payload.user_id, guild.members)            if member is not None:                await member.add_roles(role)                print("done")            else:                print("member not found")        else:            print("role not found") client.run('REDACTED') 我已经尝试了很多故障排除,任何帮助将不胜感激!
查看完整描述

1 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

你不应该utils.find在你的情况下使用。

  • client.get_guild通过 id 获取公会。

  • guild.get_member通过 id 获取成员。guild.get_member_named如果您想使用名称,也可以使用。

@client.event

async def on_raw_reaction_add(payload):

    if payload.message_id == 756794977148993597:

        guild = client.get_guild(payload.guild_id)

        role = discord.utils.get(guild.roles, name=payload.emoji.name)


        if role is not None:

            member = guild.get_member(payload.user_id)

            if member is not None:

                await member.add_roles(role)

                print("done")

            else:

                print("member not found")

        else:

            print("role not found")


查看完整回答
反对 回复 2023-08-22
  • 1 回答
  • 0 关注
  • 1350 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信