尝试使用 discord.py 制作老虎机机器人

时间:2021-01-23 18:03:58

标签: python discord.py

这是我的代码如下:

import discord
import random
import time

tst = [1, 2, 3]

if "!roll" in message.content.lower():
    first = [await message.channel.send(str(random.choice(tst)).format(message))]
    time.sleep(1)
    second = [await message.channel.send(str(random.choice(tst)).format(message))]
    time.sleep(1)
    third = [await message.channel.send(str(random.choice(tst)).format(message))]
    time.sleep(1)
    if first == second == third:
        await message.channel.send("you win!".format(message))

代码有效,但在您获胜时不会发送消息。

我认为我做错了什么,但无法找出编写代码的正确方法。

1 个答案:

答案 0 :(得分:2)

它从不发送任何东西,因为 if 语句永远不会为真。您正在比较三个消息的 discord.Message 实例的三个列表。这些都是不同的,所以 [message1] == [message2] == [message3] 永远不会是 True。而是比较这些值。

此外,.format(message) 根本不做任何事情,我不确定您期望它做什么。你应该删除它(或让它做一些有用的事情)。

first = random.choice(tst)
second = random.choice(tst)
third = random.choice(tst)

await message.channel.send(str(first))
await message.channel.send(str(second))
await message.channel.send(str(third))

if first == second == third:
    await message.channel.send("You win!")

还有,

<块引用>

如果 message.content.lower() 中的“!roll”:

考虑使用 commands 而不是手动解析所有内容。有一个关于它们如何在 GitHub repo 上工作的基本示例。