Discord.py 通过反应添加角色

时间:2021-01-13 17:02:03

标签: discord.py

我正在使用我找到的代码 here

但是,我收到一个错误,指出 client 对象没有 send_message 属性。我试过 message.channel.send 但也失败了。

@client.event
async def on_ready():
    Channel = client.get_channel('YOUR_CHANNEL_ID')
    Text= "YOUR_MESSAGE_HERE"
    Moji = await client.send_message(Channel, Text)
    await client.add_reaction(Moji, emoji='?')

@client.event
async def on_reaction_add(reaction, user):
    Channel = client.get_channel('YOUR_CHANNEL_ID')
    if reaction.message.channel.id != Channel:
      return

    if reaction.emoji == "?":
      Role = discord.utils.get(user.server.roles, name="YOUR_ROLE_NAME_HERE")
      await client.add_roles(user, Role)

1 个答案:

答案 0 :(得分:0)

您的代码可能无法正常工作的原因之一是您可能将 channel id 存储在字符串中。您的代码显示:

Channel = client.get_channel('YOUR CHANNEL ID')

上面的代码显示您的 channel id 存储在一个字符串中,它不应该是。使用上面的代码,您的实际代码可能如下所示:

Channel = client.get_channel('1234567890')

相反,您应该:

Channel = client.get_channel(1234567890)