这是我的代码如下:
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))
代码有效,但在您获胜时不会发送消息。
我认为我做错了什么,但无法找出编写代码的正确方法。
答案 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 上工作的基本示例。