discord - 机器人在发送嵌入后立即崩溃
问题描述
Bot 工作正常,我时不时地更新以进行一些新的更改,我重做了我所做的一切,当时它运行良好,但它一直在崩溃。
代码:
module.exports = {
name: 'vouch',
description: "this is a vouch command!",
execute(message, args, Discord) {
const client = message.client;
const newEmbed = new Discord.MessageEmbed()
message.channel.send(newEmbed);
if (message.member.roles.cache.has('768903864782553108')) {
const targetID = message.mentions.users.first();
return message.channel.send(new Discord.MessageEmbed()
//.setTitle
.setDescription(`You have vouched for **${targetID}**.`)
.setColor('GREEN')
.setFooter(client.user.username, client.user.displayAvatarURL())
.setAuthor(message.author.tag, message.author.displayAvatarURL())
.setTimestamp()
.setFooter('Bot was programmed by ~', 'https://i.gyazo.com/04b40914f14d5dba8aebb532ed3e80f3.png')
)
}
}
}
错误:
throw new DiscordAPIError(request.path, data, request.method, res.status); ^
DiscordAPIError: Invalid Form Body embed.description: 此字段是 RequestHandler.execute (C:\Users~\Desktop\Discordbot\node_modules\discord.js\src\rest\RequestHandler.js:154:13) 在 processTicksAndRejections (node :internal/process/task_queues:96:5) 在异步 RequestHandler.push (C:\Users~\Desktop\Discordbot\node_modules\discord.js\src\rest\RequestHandler.js:39:14) {方法:'post ',路径:'/channels/683675132677718107/messages',代码:50035,httpStatus:400 }
解决方案
你可以简单地这样做:
module.exports = {
name: 'vouch',
description: "this is a vouch command!",
execute(message, args, Discord) {
if (message.member.roles.cache.has('768903864782553108')) {
const targetID = message.mentions.users.first();
const newEmbed = new Discord.MessageEmbed()
//.setTitle
.setDescription(`You have vouched for **${targetID}**.`)
.setColor('GREEN')
.setFooter(client.user.username, client.user.displayAvatarURL())
.setAuthor(message.author.tag, message.author.displayAvatarURL())
.setTimestamp()
.setFooter('Bot was programmed by ~', 'https://i.gyazo.com/04b40914f14d5dba8aebb532ed3e80f3.png')
message.channel.send(newEmbed)
}
}
}
编辑:作为旁注,错误源于您调用新嵌入但未为其提供任何值的位置。
const newEmbed = new Discord.MessageEmbed()
message.channel.send(newEmbed);
推荐阅读
- python - 查找列表列表中的所有元素位置
- c - 什么是虚拟内存?
- c++ - 将嵌套的 for 循环更改为 do-while 循环
- laravel - 如何在 laravel 控制器中随机获取语言值?
- javascript - Web firebase.messaging().onMessage 未触发,但后台通知完美触发
- laravel - 如何在 Laravel 迁移中创建连接表?
- swift - 如何合并 2 个带有淡入淡出过渡的视频?
- javascript - 为什么我在 javascript 中得到奇怪的日期?
- c++ - 使用模板时可能是编译器中的 SFINAE BUG?
- asp.net-core - 在 IdentityServer4 和 ASP.NET Core 中检索客户端名称