【问题标题】:Python discord.py read full messagePython discord.py 阅读全文
【发布时间】:2017-11-23 10:28:17
【问题描述】:

我正在使用discord.py 来制作discord 机器人。我想在用户提到的两个数字之间生成一个随机数。因此,如果用户键入%rand 1 9,我希望机器人返回一个介于 1 和 9 之间的随机整数,比如 4。 到目前为止,这是我的代码:

async def on_message(message):
    x = str(1)
    y = str(2)
    if message.content.startswith('%rand ' + x + y):
        NumberX = int(x)
        NumberY = int(y)
        msg = "Random Number Is: " + str(random.randint(NumberX,NumberY))
        await client.send_message(message.channel, msg)

但是,它不起作用。我不太明白我哪里出错了。我在其他任何地方都找不到其他解决方案。 我想我需要强制机器人阅读完整的消息或类似的东西。任何帮助将不胜感激。提前谢谢你。

【问题讨论】:

  • 你在告诉它if message.content.startswith('%rand 12'):这是你想要的吗?

标签: python python-3.x random discord discord.py


【解决方案1】:

问题在于您的 if 语句实际上从未被触发。您正在检查它是否以“%rand 12”开头,这不是您想要的。您的代码应如下所示:

async def on_message(message):
    if message.content.startswith('%rand '):
        vals = message.content.split(" ")
        NumberX = int(vals[1])
        NumberY = int(vals[2])
        msg = "Random Number Is: " + str(random.randint(NumberX,NumberY))
        await client.send_message(message.channel, msg)

另外,不要忘记import random 以使用该功能。

【讨论】:

  • 我收到以下错误:AttributeError: 'Message' object has no attribute 'split'
  • 等等别担心,这只是使用message.conent.split 而不是message.split 的情况,只是,在你的答案中编辑它......
猜你喜欢
  • 2021-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多