【问题标题】:discord.py Bot not always deleting messagesdiscord.py Bot 并不总是删除消息
【发布时间】:2019-02-20 09:09:03
【问题描述】:

作为一个小测试,我正在制作一个不和谐的机器人,它将接收我发送的消息,删除它,然后让机器人发送消息。我有一些工作,但我有几个问题。

首先,机器人不会总是删除消息。

使用此代码

if message.content.startswith("H"):
    print("test")
    print(message.author)
    msg=message.content
    await client.delete_message(message)
    await client.send_message(message.channel, msg)

机器人有时只会删除我的消息。知道为什么吗?

其次,我希望它只重复我的消息,但是当我这样做时;

if message.author=="Myusername#1234":
    print("test")
    print(message.author)
    msg=message.content
    await client.delete_message(message)
    await client.send_message(message.channel, msg)

什么都没有发生。没有错误,什么都没有。有人可以帮忙吗?

P.S:Myusername#1234 只是一个例子,并不是我要输入的内容。

【问题讨论】:

  • 请注意,第二组代码中的`实际上并不存在

标签: python python-3.6 discord.py


【解决方案1】:

在第一个代码示例中,您的机器人的消息也将通过if 语句,并且只会陷入编写以“H”开头的消息并删除它们的循环中。

您应该将其更新为类似

  if message.content.startswith("H") and message.author.id != "bot_id":

至于第二个代码示例,最好的办法是使用用户 ID,因为它们不会改变

if message.author.id == "user_id":

如果你真的想使用其他东西,你可以使用message.author.name 或message.author.nick

【讨论】:

  • 对于第一个,我确实有它,所以它不会回复自己,但它仍然会这样做。至于第二个,谢谢!我不知道你可以获得用户 ID
  • 我认为您遇到的问题是机器人删除了该消息,但您的 Discord 客户端并未将其显示为已删除。我有时会发生这种情况,但是除了您之外没有人看到该消息,因此无论如何它都被有效地删除了。希望这有帮助!
  • 确实有帮助!你的两个建议都有帮助!谢谢!
猜你喜欢
  • 1970-01-01
  • 2018-07-24
  • 2018-06-29
  • 2021-12-16
  • 1970-01-01
  • 2021-09-08
  • 2022-08-18
  • 2021-12-04
  • 1970-01-01
相关资源
最近更新 更多