【问题标题】:Discord.py adding a role through reactionsDiscord.py 通过反应添加角色
【发布时间】:2021-04-18 17:35:59
【问题描述】:

我正在使用我找到的代码 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)

【问题讨论】:

  • 你试过Moji = client.send(Channel, Text)吗?
  • 您使用的是什么版本的 discord.py?
  • 是的,我说客户端没有属性发送
  • 和 repl.it 上的 1.0.1 版

标签: discord.py


【解决方案1】:

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

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

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

Channel = client.get_channel('1234567890')

相反,您应该:

Channel = client.get_channel(1234567890)

【讨论】:

  • 哦,是的,谢谢你,在我的实际代码中修复了它,但如果不是这样,你会碰巧知道什么是错的
  • 我得到了第一部分的工作,但它不会分配角色
猜你喜欢
  • 2021-06-05
  • 2020-10-03
  • 2020-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-12
  • 2021-03-16
  • 2021-04-02
相关资源
最近更新 更多