discord.js v14自定义表情创建报错求助:v13代码失效
解决discord.js v14创建自定义表情的参数错误问题
问题原因
discord.js v14重构了GuildEmojisManager.create()的参数规则——v13里直接传URL和名称的写法在v14中不再生效,必须传入配置对象,通过attachment字段指定表情资源(URL/Buffer/文件流),name字段指定表情名称。
修正代码
把你原有的创建表情代码:
const emoji = await message.guild.emojis.create(modifiedLink3, emojiName);
替换为:
const emoji = await message.guild.emojis.create({ attachment: modifiedLink3, name: emojiName });
额外排查点
如果替换后仍报错,检查以下内容:
- 确认
modifiedLink3是可公开访问的HTTP/HTTPS图片URL,Discord需要能正常抓取该资源; - 若URL存在防盗链或访问限制,可先通过
fetch获取资源Buffer再传入:
// 先获取资源Buffer const response = await fetch(modifiedLink3); if (!response.ok) throw new Error('无法获取表情资源'); const buffer = await response.buffer(); // 用Buffer创建表情 const emoji = await message.guild.emojis.create({ attachment: buffer, name: emojiName });
内容的提问来源于stack exchange,提问作者Oofin
相关产品推荐
相关产品推荐

