【问题标题】:The discord bot wont assign a role不和谐机器人不会分配角色
【发布时间】:2021-01-06 01:49:10
【问题描述】:

我正在关注 Anson 开发人员教程 (here's a link),并且我的代码与他完全一样,除了警告 Parameter 'payload' value is not used 之外,我没有收到任何错误,并且我已确保:

  1. 机器人具有分配角色的适当权限
  2. 机器人在线
  3. 表情符号和角色名称相同

以下代码供参考:

import discord
client = discord.Client()


@client.event
async def on_message(message):
    if message.author == client.user:
        return


@client.event
async 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')
 

我已经尝试了很多故障排除,我们将不胜感激!

【问题讨论】:

  • 我在运行你的代码时没有出错,但它也没有工作。为了让它工作,虽然我刚刚删除了if message_id == '(message id)''',所以它只是if message_id == (message id)
  • 换句话说,错误是 message_id 是一个 int 但 OP 正在根据他们的消息 ID 的字符串版本检查它。

标签: python discord bots discord.py


【解决方案1】:

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

@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")

【讨论】:

    猜你喜欢
    • 2019-02-02
    • 2020-12-15
    • 1970-01-01
    • 2022-09-27
    • 1970-01-01
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    相关资源
    最近更新 更多