discord.py 如何为每个嵌入随机生成器发送特定图像

问题描述 投票:0回答:1

通过这段代码,我可以让我的命令使用该命令发送随机消息,我现在面临的问题是尝试为每个随消息发送的图像设置不同的图像,并且只是尝试发送嵌入图像。 我尝试了几种方法,但遇到了不同的错误。

view = None   
randomitem = None
@bot.command()
async def testing(ctx):
    global randomitem
    items = [
        discord.Embed(title="test1"),
        discord.Embed(title="test2"),
        discord.Embed(title="test3"),
        discord.Embed(title="test4"),
    ]
    
    randomitem = random.choice(items)
    global view
    view = discord.ui.View()
    button = discord.ui.Button(label="!test", custom_id="!test", style=discord.ButtonStyle.blurple)
    view.add_item(button)
    msg = await ctx.reply("Drawing a card...", embed=randomitem,view=view)
    
    async def button_callback(interaction):
        global randomitem
        try:
            await interaction.response.defer()
        except:
            pass
        next_embed = random.choice(items)
        while next_embed == randomitem:
            next_embed = random.choice(items)
        randomitem = next_embed
        await msg.reply("Drawing a card...", embed=next_embed,view=view)
    button.callback = button_callback
python discord discord.py
1个回答
0
投票

就好像你离我们很近......

我建议首先构建所有嵌入,然后创建嵌入列表。

embed1 = discord.Embed(title="Test1", description="This is Test1")
embed1.add_image(url="https://url.to.image")

embed2 = discord.Embed(title="Test2", description="This is Test2")
embed2.add_image(url="https://url.to.image")

embed3 = discord.Embed(title="Test3", description="This is Test3")
embed3.add_image(url="https://url.to.image")

embed_lst = [embed1, embed2, embed3]
await ctx.send(embed=random.choice(embed_lst)

通过已经完成完整的嵌入,您可以从列表中调用随机嵌入,就像绘制一张新卡一样。

© www.soinside.com 2019 - 2024. All rights reserved.