不和谐.py |使用嵌入时,如何使用 for 循环生成变量的字段值?

Posted

技术标签:

【中文标题】不和谐.py |使用嵌入时,如何使用 for 循环生成变量的字段值?【英文标题】:Discord.py | When working with embeds, how does one use a for loop to generate a variable's worth of fields? 【发布时间】:2021-08-26 15:43:52 【问题描述】:

我目前正在研究 discord.py 掷骰子命令,该命令允许输入一个参数来掷骰子。当此命令输出到嵌入时,我希望每个骰子滚动都使用 for 循环输出到它自己的嵌入字段,该循环的执行次数与包含参数的骰子数量的变量相同。

我尝试了很多类型的 for 循环,但我认为我做的事情根本上是错误的。不幸的是,当我运行这个 for 循环时,Discord.py 没有返回任何错误,所以我什至无法开始思考为什么......

diceNum = 5
diceRange = range(diceNum)

for dice in diceRange:
    print(f'test: dice')
    embed.add_field(name=f"dice",
                    value=f"diceName is a(n)...\n diceResult**!",
                    inline=True)

我的假设是,如果不执行某种特殊的排序方法,就无法添加嵌入字段,并且如前所述,当我运行此代码时,它根本不输出任何内容。没有错误,并且也缩短了命令。任何建议将不胜感激,所以!

编辑:这是嵌入任务!

embed = discord.Embed(
    title="Test Dice Roller",
    description=f"You've rolled diceNum diceName dice, Good luck!\n\n",
    color=diceColor,
)

【问题讨论】:

你可以这样做,你能展示你的嵌入作业吗? embed = ?? 当然! (格式看起来很糟糕,所以我也会将其编辑到帖子中)`embed = discord.Embed(title="Test Dice Roller", description=f"你已经掷出 diceNum diceName 骰子,祝你好运!\n\n", 【参考方案1】:

你的方法是正确的,检查color

这是我对 for 循环语句进行更改的小测试

@bot.command()
async def dice(ctx):

    diceNum = 5
    embed = discord.Embed(
        title="Test Dice Roller",
        description=f"You've rolled diceNum",
    )

    for dice in range(diceNum):
        embed.add_field(name=dice, value='something')

    await ctx.send(embed=embed)

【讨论】:

令人着迷,非常感谢阿卜杜勒阿齐兹!你知道为什么颜色导致它不起作用吗? 颜色应该是这样的color=discord.Colour.red()for more colors

以上是关于不和谐.py |使用嵌入时,如何使用 for 循环生成变量的字段值?的主要内容,如果未能解决你的问题,请参考以下文章

使用 discord.py 制作一个不和谐的机器人通过嵌入发送图像

我将如何编写一个嵌入代码,从我有 URL 的一组图像中提供一个随机图像? (不和谐.py)

使用 discord.py 解析嵌入不和谐的 json 数据

使用 Discord py 使用 Discord 按钮编辑嵌入描述

(discord.py) 向不和谐机器人发布的嵌入添加反应

如何防止机器人发送垃圾邮件? |抽搐.py |不和谐.py