如何在机器人读取的不和谐频道中将整数与消息进行比较?

时间:2019-02-04 20:25:54

标签: python bots discord discord.py

所以我正在制作服务器中需要的非常简单的机器人。它的工作真的很简单。 为了更好地理解我的需求,我提供了一个渠道,人们必须在该渠道中猜测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中,并且只了解一些基础知识。我感谢每个答案并得到我的帮助:)

1 个答案:

答案 0 :(得分:0)

您希望message.content(一个字符串)为整数,而不是message(一个包含许多其他数据的Message对象)。

message.content的值有3种可能性:

  1. 非整数文本
  2. 整数文本> 50000
  3. 整数文本<= 50000

您可以测试所有这些

@client.event
async def on_message(message):
    if(message.channel.id == "492772765737156628"):
        try:
            content = int(message.content)
            if content > 50000:
                await client.delete_message(message)
        except ValueError:
            await client.delete_message(message)  # not an integer