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

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

  • 如果我执行类似于它工作正常。 但是,我找不到一种方法使其适用于ping。我尝试了机器人ID和名称。我的机器人ID代码: 有人能帮忙吗?