嗨,有人可以帮助我吗?当我运行命令歌词时出现此错误:DiscordAPIError:无法发送空消息 (这是一个使用命令处理程序的音乐机器人)
const { MessageEmbed } = require("discord.js");
const lyricsFinder = require("lyrics-finder");
module.exports = {
name: "lyrics",
aliases: ['ly'],
category: "Music",
description: "View the lyrics of a song",
args: false,
usage: "",
permission: [],
owner: false,
player: true,
inVoiceChannel: true,
sameVoiceChannel: true,
execute: async (message, args, client, prefix) => {
const player = message.client.manager.get(message.guild.id);
if (!player.queue.current) {
let thing = new MessageEmbed()
.setColor("RED")
.setDescription("There is no music playing.");
return message.channel.send(thing);
}
let lyrics = null;
const title = player.queue.current
try {
lyrics = await lyricsFinder(player.queue.current.title, "");
if (!lyrics) lyrics = `No lyrics found for ${title}.`, { title: title }
} catch (error) {
lyrics = `No lyrics found for ${title}.`, { title: title }
}
let lyricsEmbed = new MessageEmbed()
.setTitle(`${title} - Lyrics`, { title: title })
.setDescription(`${lyrics}`)
.setColor("#F8AA2A")
.setTimestamp();
if (lyricsEmbed.description.length >= 2048)
lyricsEmbed.description = `${lyricsEmbed.description.substr(0, 2045)}...`;
return message.channel.send(lyricsEmbed).catch(console.error);
}
};
更新到 v13 会因为重大更改而导致很多错误!
您可以在此处的指南中找到它们。
但就你而言,这是关于 Discord.js 如何使用
channel.send()
处理参数。
- channel.send(embed);
+ channel.send({ embeds: [embed, embed2] });
- channel.send('Hello!', { embed });
+ channel.send({ content: 'Hello!', embeds: [embed, embed2] });