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

如何修复Discord embed命令意外token错误并新增@用户提及功能

问题修复说明

1. 报错原因

你遇到的意外token错误是语法错误,在addFields()方法的末尾多写了一个多余的逗号,打断了Discord MessageEmbed的链式调用逻辑,JavaScript解析器无法识别后续的.setTimestamp()方法,直接抛出异常。

2. @用户功能实现逻辑

参考你提供的impostor命令代码,需要先获取两个用户对象:

  • 命令触发者:message.author
  • 被@的目标用户:message.mentions.users.first(),如果用户执行命令时没有@任何人,可以加兜底提示避免报错

3. 修正后完整代码

module.exports = {
    name: "bonk",
    description: "bonks someone",
    category: "funsies",
    command: true,
    execute(message, args, Discord) {
        // 获取触发者和目标用户
        const initiator = message.author;
        const target = message.mentions.users.first();
        // 没@目标用户时返回提示
        if (!target) return message.channel.send("你需要@一个用户才能使用bonk命令~");

        const bonkEmbed = new Discord.MessageEmbed()
            .setColor("#cc4371")
            .setTitle(`<@${initiator.id}> BONKED <@${target.id}>`)
            .setDescription("[somethin, idfk]")
            .setThumbnail("https://discord.com/channels/774446440252309524/881660577351630849/887115025775476747")
            // 这里删掉了多余的逗号
            .addFields({ name: "you got bonked!", value: "https://discord.com/channels/774446440252309524/881660577351630849/887110690719010847" })
            // 新增video属性嵌入短视频,替换为你自己的视频直链即可
            .setVideo("你的短视频直链地址,后缀需为.mp4等可直接播放的格式")
            .setTimestamp()
            .setFooter('~~lmao~~');

        message.channel.send(bonkEmbed);
    }
}; 

4. 补充说明

  • 如果你要嵌入的短视频是存在Discord消息里的,需要右键点击视频选择「复制链接」拿到直链,不要用消息页面的链接,否则无法正常嵌入播放
  • 用户提及的格式已经直接内置在标题里,发送后会自动识别为@提及,被@的用户会收到提醒

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 14:39:00