我在使用嵌入消息时遇到问题。我在 index.js 下面提供了我的代码,我在其中尝试使用在“globalspeakfunction.js”中创建的函数。不要担心我发送的变量,它们在这里看起来很特别,但我只提供了相关代码以希望减少混淆。我在 GlobalSpeakFunction.js 中构建我的 EmbedMessage,然后将其发送到“index.js”中提供的消息通道中。但是我的控制台返回“无法发送空消息”,当我执行 EmbedMessage 的 console.log 时,它会完美地返回嵌入吗?我尝试在 send() 函数中的嵌入消息后添加一个字符串“test”,然后它返回[object Object]test我不知道这里发生了什么。我是否无法在不同的文件中构建 EmbedMessage,然后将其发送回我的机器人?或者有什么我只是忽略了?索引.jsconst Discord = require('discord.js');const client = new Discord.Client();const speak = require('../GlobalSpeakFunction.js');client.on('message', message => { if (message.content.toUpperCase().includes(`test`)){ speak("778978295059972106", message, "test", "Default"); }}GlobalSpeakFunction.jsconst Discord = require("discord.js")module.exports = function speak(charID, data, message, emotion){ var EmbedMessage = new Discord.MessageEmbed() .setColor('#0099ff') .setTitle('title') .setURL('https://discord.js.org/') .setDescription(message) .setThumbnail('https://drive.google.com/file/d/17J90PzTLBR96wTwk_Wl3U06-or6ZjPW2/view') .setTimestamp(); message.channel.send(EmbedMessage); }
1 回答
波斯汪
TA贡献1811条经验 获得超4个赞
我不确定您在哪里遇到“无法发送空消息”错误,我无法在本地重现。但是,这里有几个问题:
首先,您正在使用toUpperCase()
on message.content
,然后检查它是否包含(小写)“test”。因此,这个 if 语句永远不会执行。
其次,函数中参数的顺序speak()
是charID, data, message, emotion
,但您将它们传递为"778978295059972106", message, "test", "Default"
(注意调用函数时如何交换data
和)。message
第三,该setThumbnail()
函数需要直接链接到图像(以文件扩展名结尾的图像,如 .png 或 .jpg)。您提供了一个 Google Drive 链接,该链接另外设置为私有,这使得除您之外的任何人都无法读取。我建议将其上传到图像主机并从那里获取直接链接。
此外,[object Object]
只是对象的字符串表示形式。JavaScript 尝试将您的 MessageEmbed(它是一个对象)转换为字符串(因为您正试图向其附加“test”)。
添加回答
举报
0/150
提交
取消