当前位置: 首页 > 知识库问答 >
问题:

不一致的Bot-pin消息

戎鹏云
2023-03-14

我对discord机器人和python有点陌生,所以我在理解哪里出了问题时遇到了一些困难。基本上我想让我的机器人锁定一条消息。我找到了一个python代码的文档,上面说要使用pin_message(),所以我有:

if "pinm()" == message.content.lower():
   #to pin a message
   message.channel.pin_message(messageID)

但我得到以下错误AttributeError:“TextChannel”对象没有属性“pin_message”

当我查看Discord文档时,它会显示PUT/channels/{channel.id}/pins/{message.id}。我真的不明白如何将其转换为代码,因此我有如下内容:

    if "pinm()" == message.content.lower():
        #to pin a message
        allPins = message.channel.pins(messageID)

但我得到的错误是pins()接受1个位置参数,但给出了2个。我下面的消息来源是

https://discordapp.com/developers/docs/resources/channel#add-pinned-channel-message

https://discordpy.readthedocs.io/en/latest/api.html#message

谁能告诉我这件事哪里出了问题吗(

共有1个答案

秦景福
2023-03-14

编辑:你实际上在使用discord。py重写,所以您需要

msg_to_pin = await message.channel.get_message(int(messageID))
await msg_to_pin.pin()

原件:

您需要使用Client.pin_message,传递一个Message对象(不是id)。您经常已经有了消息对象,但是否则您将不得不使用Client.get_message,这要求您还知道消息所在的频道。

msg_to_pin = await client.get_message(message.channel, messageID)
await client.pin_message(msg_to_pin)

确保您的bot具有manage_messages权限,否则将失败。

 类似资料:
  • 我希望将反应添加到消息中的机器人,而不是我。有人能帮我吗?

  • 我的目标是创建一个discord bot,该bot使用用户发送的相同消息进行响应,如果用户发送文件,则bot将发送该文件的链接。 我可以让两个部分分开工作,但在一起我只是遇到了问题(见底部),在我目前的代码中只有独立文件发送工作,文本消息没有,如果你有文本文件,文件链接将由机器人发送但是文本不会。如果我把第二部分放在上面,那么我得到的基本上是完全相反的,只有文本被发送,没有文件。 我的代码: 底部

  • 我在我的discord机器人上遇到了一个问题。命令不起作用。我认为代码不是问题。除了命令外,一切都很完美。不和谐,如果我使用!在这里测试mytext,什么都不会发生。 提前谢谢你!

  • 我有简单的代码,检查用户是否有特定的角色: 现在的问题是,当我改变角色时,所以在机器人运行时删除特定角色,用户仍然拥有权限。所以在机器人缓存中,用户仍然拥有特定的角色。 当用户角色改变时,有没有办法更新机器人缓存? 提前感谢

  • 我是discord API的新手,我很难弄清楚为什么我的命令不能被识别。我已经通读了文档,但我不确定该去哪里看。任何帮助都将不胜感激。不要介意硬编码的列表。我计划将来改变这一点。现在我只想确保它能正常工作。

  • 抱歉我英语不好。 我想让角色反应机器人我的问题是我的机器人在重新启动之前看不到消息发送 我已经接受了这个代码,但他没有看到旧消息的反应。 我能做些什么来使这个代码看到对旧消息的反应。