我是一个 discord.py 的新用户,正在尝试嵌入 8ball 命令
I am a new discord.py user attempting to make an 8ball command embeded
我已经为我的 discord 机器人发出了一个 8ball 命令,但不知道如何让它成为一个嵌入式响应。在我尝试将其嵌入之前,我的代码使用
await ctx.send(f'Question: {question}\nAnswer: {random.choice(responses)}')
现在我尝试制作一个嵌入式 8ball,当我尝试时,机器人没有响应。这是我的代码。
@bot.command(aliases=['8ball'])
async def _8ball(ctx, *, question):
responses = [
discord.Embed(title='It is certain.'),
discord.Embed(title='It is decidedly so.'),
discord.Embed(title='Without a doubt.'),
discord.Embed(title='Yes - definitely.'),
discord.Embed(title='You may rely on it.'),
discord.Embed(title='Most likely.'),
discord.Embed(title='Outlook good.'),
discord.Embed(title='Yes.'),
discord.Embed(title='Signs point to yes.'),
discord.Embed(title='Reply hazy, try again.'),
discord.Embed(title='Ask again later.'),
discord.Embed(title='Better not tell you now.'),
discord.Embed(title='Cannot predict now.'),
discord.Embed(title='Concentrate and ask again.'),
discord.Embed(title="Don't count on it."),
discord.Embed(title='My reply is no.'),
discord.Embed(title='My sources say no.'),
discord.Embed(title='Outlook not very good.'),
discord.Embed(title='Very doubtful.')
]
responses = random.choice(responses)
await ctx.send(embed=f'Question: {question} \nAnswer: {random.choice(responses)}')
ctx.send()
中的嵌入参数只能包含一个不和谐的嵌入对象,而你的包含一个字符串。相反,您可以通过内容参数发送字符串。
除此之外,您还调用了 random.choice(responses)
两次。第一次使用它 return 是列表中的随机嵌入对象,第二次尝试 return 不是列表的随机对象,这会引发错误。
试试这个:
@bot.command(aliases=['8ball'])
async def _8ball(ctx, *, question):
responses = [
discord.Embed(title='It is certain.'),
discord.Embed(title='It is decidedly so.'),
discord.Embed(title='Without a doubt.'),
discord.Embed(title='Yes - definitely.'),
discord.Embed(title='You may rely on it.'),
discord.Embed(title='Most likely.'),
discord.Embed(title='Outlook good.'),
discord.Embed(title='Yes.'),
discord.Embed(title='Signs point to yes.'),
discord.Embed(title='Reply hazy, try again.'),
discord.Embed(title='Ask again later.'),
discord.Embed(title='Better not tell you now.'),
discord.Embed(title='Cannot predict now.'),
discord.Embed(title='Concentrate and ask again.'),
discord.Embed(title="Don't count on it."),
discord.Embed(title='My reply is no.'),
discord.Embed(title='My sources say no.'),
discord.Embed(title='Outlook not very good.'),
discord.Embed(title='Very doubtful.')
]
responses = random.choice(responses)
await ctx.send(content=f'Question: {question}\nAnswer:', embed=responses)
首先,您可以创建一个 json 文件或一个回复列表。
使用 json.. 如下所示:
创建一个名为 responses.json
的文件
为其添加值:
{
"possibilities": [
'no',
'It is certain.',
'It is decidedly so.',
'Without a doubt.',
'Yes - definitely.',
'You may rely on it.',
'Most likely.',
'Outlook good.',
'Yes.',
'add more here...'
]
}
现在在您的 python 主文件中:
import json
with open("./possibilities.json", "r") as file:
data = json.load(file)
possibilities = data['possibilities']
@bot.command(aliases=['8ball']) async def _8ball(ctx, *, question):
response = random.choice(possibilities)
embed = discord.Embed(title="8ball", description=f'Question: {question}\nAnswer:{response}')
await ctx.send(embed=embed)
我已经为我的 discord 机器人发出了一个 8ball 命令,但不知道如何让它成为一个嵌入式响应。在我尝试将其嵌入之前,我的代码使用
await ctx.send(f'Question: {question}\nAnswer: {random.choice(responses)}')
现在我尝试制作一个嵌入式 8ball,当我尝试时,机器人没有响应。这是我的代码。
@bot.command(aliases=['8ball'])
async def _8ball(ctx, *, question):
responses = [
discord.Embed(title='It is certain.'),
discord.Embed(title='It is decidedly so.'),
discord.Embed(title='Without a doubt.'),
discord.Embed(title='Yes - definitely.'),
discord.Embed(title='You may rely on it.'),
discord.Embed(title='Most likely.'),
discord.Embed(title='Outlook good.'),
discord.Embed(title='Yes.'),
discord.Embed(title='Signs point to yes.'),
discord.Embed(title='Reply hazy, try again.'),
discord.Embed(title='Ask again later.'),
discord.Embed(title='Better not tell you now.'),
discord.Embed(title='Cannot predict now.'),
discord.Embed(title='Concentrate and ask again.'),
discord.Embed(title="Don't count on it."),
discord.Embed(title='My reply is no.'),
discord.Embed(title='My sources say no.'),
discord.Embed(title='Outlook not very good.'),
discord.Embed(title='Very doubtful.')
]
responses = random.choice(responses)
await ctx.send(embed=f'Question: {question} \nAnswer: {random.choice(responses)}')
ctx.send()
中的嵌入参数只能包含一个不和谐的嵌入对象,而你的包含一个字符串。相反,您可以通过内容参数发送字符串。
除此之外,您还调用了 random.choice(responses)
两次。第一次使用它 return 是列表中的随机嵌入对象,第二次尝试 return 不是列表的随机对象,这会引发错误。
试试这个:
@bot.command(aliases=['8ball'])
async def _8ball(ctx, *, question):
responses = [
discord.Embed(title='It is certain.'),
discord.Embed(title='It is decidedly so.'),
discord.Embed(title='Without a doubt.'),
discord.Embed(title='Yes - definitely.'),
discord.Embed(title='You may rely on it.'),
discord.Embed(title='Most likely.'),
discord.Embed(title='Outlook good.'),
discord.Embed(title='Yes.'),
discord.Embed(title='Signs point to yes.'),
discord.Embed(title='Reply hazy, try again.'),
discord.Embed(title='Ask again later.'),
discord.Embed(title='Better not tell you now.'),
discord.Embed(title='Cannot predict now.'),
discord.Embed(title='Concentrate and ask again.'),
discord.Embed(title="Don't count on it."),
discord.Embed(title='My reply is no.'),
discord.Embed(title='My sources say no.'),
discord.Embed(title='Outlook not very good.'),
discord.Embed(title='Very doubtful.')
]
responses = random.choice(responses)
await ctx.send(content=f'Question: {question}\nAnswer:', embed=responses)
首先,您可以创建一个 json 文件或一个回复列表。
使用 json.. 如下所示:
创建一个名为 responses.json
的文件
为其添加值:
{
"possibilities": [
'no',
'It is certain.',
'It is decidedly so.',
'Without a doubt.',
'Yes - definitely.',
'You may rely on it.',
'Most likely.',
'Outlook good.',
'Yes.',
'add more here...'
]
}
现在在您的 python 主文件中:
import json
with open("./possibilities.json", "r") as file:
data = json.load(file)
possibilities = data['possibilities']
@bot.command(aliases=['8ball']) async def _8ball(ctx, *, question):
response = random.choice(possibilities)
embed = discord.Embed(title="8ball", description=f'Question: {question}\nAnswer:{response}')
await ctx.send(embed=embed)