为什么我的机器人不会发送其嵌入式消息,但会发送其他所有信息呢?

时间:2020-06-17 21:46:17

标签: python python-3.x discord discord.py discord.py-rewrite

当我使用dailygacha命令时,下面的代码将不会在服务器中发送嵌入的消息。但是,其他所有命令都可以正常工作。我们将不胜枚举我可以阅读的任何文档链接,因此我可以进一步了解您的任何解决方案的工作方式。预先谢谢你。

α = 75,67,70
β = 90,95,78
γ = 86,18,10
δ = 9,56,93
ε = 117, 85, 138
ζ = 232, 99, 202
rarity = random.choices("αβγδεζ", weights=[60, 40, 20, 15, 5, 3])

strength = random.randint(0, 100)
agility = random.randint(0, 100)
defense = random.randint(0, 100)
endurance = random.randint(0, 100)
csi = ((strength + agility + defense + endurance) / 4)


@bot.command()
@commands.cooldown(1, 60*60*24, commands.BucketType.user)
async def dailygacha(ctx):
    embed = discord.Embed(
    colour = discord.Colour.to_rgb(rarity),
    title = "Waifu Gacha",
    description = f"Roll Result: Lelouch Lamperouge [{rarity}]",
    )
    embed.set_image(url="https://cdn.myanimelist.net/images/characters/5/274017.jpg")
    embed.add_field(name="Character Stats:", inline=False)
    embed.add_field(name=f"Strength: {strength}", inline=False)
    embed.add_field(name=f"Agility: {agility}", inline=False)
    embed.add_field(name=f"Defense: {defense}", inline=False)
    embed.add_field(name=f"Endurance: {endurance}", inline=False)
    embed.add_field(name=f"Total CSI: {csi}", inline=False)
    embed.add_field(name="Roll Type:", inline=False)
    embed.add_field(name="Daily", inline=False)

    await ctx.send(embed=embed)

1 个答案:

答案 0 :(得分:0)

您没有提供追溯功能,因此,请尽可能以后再提供。

发生这种情况的原因是因为add_field() 同时需要 namevalue关键字参数。我建议要么将每个变量(strengthagility等)移到value,要么可以使用{{ 1}}个字符。

这两种方法都是

value

u200bzero-width space,仍会算作包含字符的字符串,但不会让您感到空虚。


编辑:

似乎另一个问题是您的embed.add_field(name=f"Strength: {strength}", value="\u200b") # OR embed.add_field(name="Strength:", value=f"{strength}")
首先,我不建议您使用非ascii字符。
其次,您的\u200b实际上并没有返回您认为的样子。

它返回一个随机字符作为唯一元素的列表。
要解决此问题,您可以执行以下任一操作:

rarity

另一项修改:

rarity

参考: