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

如何用Slash命令在指定频道发送Embed?求代码修正及颜色指导

问题修正与解决方案

一、代码错误修正

你的代码存在变量名不匹配的问题,修正后的完整代码如下:

@bot.tree.command(guild=discord.Object(id=1127167530184740954), name="embed", description="Create an embed!")
async def cr_embed(interaction: discord.Interaction, title: str, description: str, colour_: int, field: str, value: str, channel_: discord.app_commands.AllChannels):
    # 修正变量名:将couleur改为参数传入的colour_
    cr_embed = discord.Embed(title=title, description=description, colour=colour_)
    cr_embed.add_field(name=field, value=value, inline=False)
    # 修正变量名:将salon改为参数传入的channel_,移除无效的ephemeral参数
    await channel_.send(embeds=[cr_embed])
    # 必须给交互发送响应,避免Discord判定命令超时
    await interaction.response.send_message(f"Embed已发送到 {channel_.mention}", ephemeral=True)

二、核心功能说明

1. 选定频道发送消息

通过channel_: discord.app_commands.AllChannels参数接收用户选择的频道,直接调用channel_.send()即可将Embed发送到目标频道。注意:Slash命令必须调用interaction.response.send_message()返回响应,否则Discord会提示命令执行超时。

2. Embed颜色设置

Embed颜色支持三种设置方式:

  • 十进制整数:使用十六进制颜色对应的十进制值(例如白色#FFFFFF对应十进制16777215),直接传入colour_参数
  • 十六进制字符串转换:将参数类型改为str,处理用户输入的十六进制值(带或不带#):
    if colour_.startswith('#'):
        colour_ = colour_[1:]
    colour = int(colour_, 16)
    
  • Discord预设颜色:直接调用discord.Colour的内置方法,无需手动输入数值:
    cr_embed = discord.Embed(title=title, description=description, colour=discord.Colour.blue())
    
    常用预设包括:blue()、red()、green()、gold()、purple()等。

额外优化提示

如果想降低用户输入颜色的门槛,可以给colour_参数设置默认值,或在输入无效时自动使用默认颜色:

async def cr_embed(interaction: discord.Interaction, title: str, description: str, colour_: str = "FFFFFF", field: str, value: str, channel_: discord.app_commands.AllChannels):
    if colour_.startswith('#'):
        colour_ = colour_[1:]
    try:
        colour = int(colour_, 16)
    except ValueError:
        colour = discord.Colour.blue()
    cr_embed = discord.Embed(title=title, description=description, colour=colour)
    # 后续发送逻辑不变

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 04:52:11