【发布时间】:2019-06-28 15:33:02
【问题描述】:
所以我正在制作一个非常简单的机器人,我需要在服务器中使用它。它的工作真的很简单。 为了更好地理解我需要什么:我有一个频道,人们必须在其中猜测 1 到 50000 之间的某个数字。如果他们猜到了,他们就赢了,机器人会宣布这一点。 我需要的是机器人检查每条消息,如果它不是 1 到 50000 之间的数字,它会删除消息。
目前这就是我所拥有的。我尝试了很多事情,比如尝试将“消息”转换为整数,但它不会让我这样做。
@client.event
async def on_message(message):
if(message.channel.id == "492772765737156628"):
if message.content > 50000:
await client.delete_message(message)
我对编码非常陌生,尤其是在 python 中,并且只知道一些基础知识。我感谢我得到的每一个答案和帮助:)
【问题讨论】:
-
“它不允许我将消息转换为整数”到底是什么意思?它会返回意外的东西、抛出错误还是其他?
-
@DWuest 我尝试将 message = int(message) 放在 async def on_message(message) 之后。它给我一个错误 TypeError: int() argument must be a string, a bytes-like object or a number, not 'Message'
-
您不能对消息本身调用 int,因为它是“消息”类的一个实例。请改用
val = int(message.content)。 -
但是,在你这样做之前,首先检查你是否可以将它转换为整数,因为如果消息只是类似
'abc'的东西,程序会抛出错误。 -
在尝试输入
val = int(message.content)之后,它却抛出了我 TypeError: '>' not supported between 'str' and 'int' 所以我想我做了一些事情错误或没有正确转换。
标签: python bots discord discord.py