You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Discord机器人单条命令中插入多个Embed?

实现单条Discord命令发送多个独立Embed

要实现每个徽章对应一个独立的Embed,你可以修改代码,在遍历徽章的过程中逐个创建Embed并发送,或者先收集所有Embed再一次性发送。以下是两种可行的修改方案:

方案1:逐个发送每个Embed

import requests
import discord

@bot.command()
async def habbo(ctx, *, habbo):
    urlhabbo = requests.get(f"https://www.habbo.es/api/public/users?name={habbo}")
    placashabbo = urlhabbo.json()
    placas = placashabbo["selectedBadges"]

    for badge in placas:
        badge_code = badge['code']
        # 为每个徽章创建独立Embed
        embed = discord.Embed(title="徽章信息", description=badge_code, color=discord.Colour.random())
        await ctx.send(embed=embed)

方案2:批量发送所有Embed

如果希望一次性发送所有Embed(它们会在同一条消息里展示为多个独立卡片),可以先把所有Embed存入列表,再一次性发送:

import requests
import discord

@bot.command()
async def habbo(ctx, *, habbo):
    urlhabbo = requests.get(f"https://www.habbo.es/api/public/users?name={habbo}")
    placashabbo = urlhabbo.json()
    placas = placashabbo["selectedBadges"]

    embed_list = []
    for badge in placas:
        badge_code = badge['code']
        embed = discord.Embed(title="徽章信息", description=badge_code, color=discord.Colour.random())
        embed_list.append(embed)
    
    # 一次性发送所有Embed
    await ctx.send(embeds=embed_list)

改动说明

  • 移除了原代码中用来拼接内容的content变量和计数用的contar变量,改为直接遍历每个徽章数据
  • 每次循环创建一个新的discord.Embed实例,确保每个徽章对应独立的Embed卡片
  • 方案1会逐条发送消息,每条消息一个Embed;方案2会在同一条消息里展示所有Embed,两种方式都能实现你想要的多个独立Embed效果

内容的提问来源于stack exchange,提问作者soraya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 20:13:19