自定义表情在Discord字符串选项中无法显示的技术求助
解决Discord斜杠命令选项中自定义表情不显示的问题
Discord斜杠命令的字符串选项(String Option)的Choices名称里,没法直接用<:aquaemoji:1083066333341687838>这种自定义表情格式,放进去只会显示成纯文本——因为选项的name字段是纯文本类型,Discord不会在这里解析表情标签,只有消息内容里的该格式才会被渲染成表情。
给你几个可行的替代方案:
1. 使用Unicode表情符号
直接用系统自带的Unicode表情替代,比如对应青色的🔵或🟢,放在选项名称里就能正常显示:
.addStringOption((option) => option .setName("color-category") .setDescription("The qrcode color category") .addChoices( { name: "Blue", value: "#00F" }, { name: "Cyan 🔵", value: "#00ACC6" }, { name: "Green", value: "#00D207" }, // 其他选项保持不变 ) );
2. 改用选择菜单(Select Menu)组件
如果一定要用自定义表情,建议换成Discord的选择菜单组件,它的选项支持单独配置emoji参数,能正常显示自定义表情:
.addStringSelectMenu((menu) => menu .setCustomId("color-category") .setPlaceholder("Choose a qrcode color category") .addOptions( { label: "Blue", value: "#00F" }, { label: "Cyan", value: "#00ACC6", emoji: { id: "1083066333341687838", name: "aquaemoji" } }, { label: "Green", value: "#00D207" }, // 其他选项按同样格式添加 ) );
3. 使用Discord原生表情短代码
如果不需要自定义表情,也可以用Discord内置的表情短代码,比如:blue_circle:,不过要注意这类短代码只有部分原生表情支持,且同样无法在选项名称里解析,得换成对应的Unicode字符才行(其实和方案1本质一样)。
内容的提问来源于stack exchange,提问作者Yahia
相关产品推荐
相关产品推荐

