【问题标题】:why do my basic commands output, but my embed command doesn't?为什么我的基本命令输出,但我的嵌入命令没有?
【发布时间】:2021-03-12 10:37:19
【问题描述】:

我对 js 很陌生,直到现在我一直在学习教程。我想脱离并创建一个命令,使嵌入的消息不和谐(作为输出)。我尝试了几种不同的方法,但似乎没有一个解决方案有效。当我运行命令 ?embed 时,什么都没有显示,这是 if 语句;

if(command === 'swept'){
       client.commands.get("swept").execute(message, args);
    } else if(command == 'youtube'){
        client.commands.get("youtube").execute(message, args);
    } else if (command == 'embed'){
        client.commands.get("embed").execute(message, args);
    }
})

其他两个命令(?swept、?youtube)工作正常。这是该命令为嵌入而调用的一段代码;

const Discord = require('discord.js')
module.exports = {
    name: 'embed',
    description: "embed test if im not stupid",
    execute(message, args) {
        const embed =  new Discord.MessageEmbed()
            .setTitle('Title')
            .addField('Field1', 'Field2')
            .addField('field 3', 'FiElD4')
            .setColor('#0aaaf5')
            message.channel.send(embed);
    }
}

我们将不胜感激提供解决方案甚至更简单的方法。其他两个命令的编码方式相同(在以 module.exports = ... 开头的单独文件中)

编辑:错误信息;

   const embed =  Discord.messageEmbeded()
                               ^

TypeError: Discord.messageEmbeded is not a function
    at Object.execute (C:\Users\alexh\Desktop\discord botting\commands\embed.js:8:32)
    at Client.<anonymous> (C:\Users\alexh\Desktop\discord botting\main.js:33:38)     
    at Client.emit (events.js:315:20)
    at MessageCreateAction.handle (C:\Users\alexh\Desktop\discord botting\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
    at Object.module.exports [as MESSAGE_CREATE] (C:\Users\alexh\Desktop\discord botting\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
    at WebSocketManager.handlePacket (C:\Users\alexh\Desktop\discord botting\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
    at WebSocketShard.onPacket (C:\Users\alexh\Desktop\discord botting\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
    at WebSocketShard.onMessage (C:\Users\alexh\Desktop\discord botting\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
    at WebSocket.onMessage (C:\Users\alexh\Desktop\discord botting\node_modules\ws\lib\event-target.js:132:16)
    at WebSocket.emit (events.js:315:20)

【问题讨论】:

  • 你的控制台有错误吗?
  • @RootMeIH ,我放学时仔细检查一下。
  • @RootMeIH C:\Users\Alex\Desktop\code\discord botting\commands\embed.js:5 const embed = new Discord.MessageEmbed() ^
  • 在您的问题上添加错误
  • 您添加了错误的位置,但没有添加错误本身。请添加堆栈跟踪

标签: javascript command discord


【解决方案1】:

您尚未在文件中导入 Discord.js 库。尝试在文件顶部导入它:

const Discord = require('discord.js')

那么,discord embed 的函数不是.messageEmbeded,而是.messageEmbed

将第 8 行替换为:

const embed = new Discord.messageEmbed()

【讨论】:

  • 我仍然收到此错误消息; ``` C:\Users\Alex\Desktop\code\discord botting\commands\embed.js:7 const embed = discord.messageEmbeded() ^ ```
  • 这不是完整的错误信息,请用完整的错误信息+我的修改编辑您的信息
【解决方案2】:

Discord.JS 区分大小写。意思是,大写和小写都很重要。所以,应该是:

const embed = new Discord.MessageEmbed()

【讨论】:

    【解决方案3】:

    根据您发布的错误消息,您拼错了命令Embed,而是使用了Embeded

    这是您发布的错误消息:

    const embed =  Discord.messageEmbeded()
                                ^
    

    尝试在您的代码中将其更改为:

    const embed = new Discord.messageEmbed()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-30
      • 2020-06-17
      • 2023-03-23
      • 1970-01-01
      • 2020-02-26
      • 1970-01-01
      相关资源
      最近更新 更多