通过这段代码,我可以让我的命令使用该命令发送随机消息,我现在面临的问题是尝试为每个随消息发送的图像设置不同的图像,并且只是尝试发送嵌入图像。 我尝试了几种方法,但遇到了不同的错误。
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
就好像你离我们很近......
我建议首先构建所有嵌入,然后创建嵌入列表。
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)
通过已经完成完整的嵌入,您可以从列表中调用随机嵌入,就像绘制一张新卡一样。