Python discord.py阅读完整信息

问题描述:

我正在使用discord.py来制作一个discord机器人。我想在用户提到的2个数字之间生成一个随机数。因此,如果用户键入%rand 1 9,我想机器人1和9之间的随机整数返回,所以说4 这里是我到目前为止的代码:Python discord.py阅读完整信息

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) 

但是,这是行不通的。我不太明白我出错的地方。我无法在其他地方找到其他解决方案。 我想我需要强制机器人阅读完整的信息或类似的东西。任何帮助将不胜感激。先谢谢你。

+0

你在告诉它'如果message.content.startswith('%rand 12'):'那是你想要的吗? –

问题来自您的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才能使用该功能。

+0

我收到以下错误:'AttributeError:'消息'对象没有属性'split'' – Sank6

+1

等待别担心,它只是使用'message.conent.split'而不是'message.split'只是,编辑你的答案... – Sank6