我正在使用distube.js执行“Now Playing”命令,但是当我试图从哪个频道发布这首歌曲的信息时,它就变成了“未定义的”隐伏嵌入图像
这些是航迹信息。
有谁能帮我吗?
到目前为止我的代码
const { MessageEmbed } = require("discord.js");
const { errorbuilder } = require("../../handlers/functions");
const ee = require("../../botconfig/embed.json");
const bar = require(`stylish-text`)
module.exports = {
name: "nowplaying",
description: "Mostra os detalhes da música que está tocando",
permissions: ['SEND_MESSAGES'],
usage: "",
aliases: ["np", "nowplay"],
execute: async (client, message, args, Discord, cmd) => {
try {
const { channel } = message.member.voice;
if (!channel)
return message.channel.send(new MessageEmbed()
.setColor(ee.wrongcolor)
.setFooter(ee.footertext)
.setTitle(`❌ ERROR | Por favor entre em um canal primeiro`)
);
if (!client.distube.getQueue(message))
return message.channel.send(new MessageEmbed()
.setColor(ee.wrongcolor)
.setFooter(ee.footertext)
.setTitle(`❌ ERROR | Eu não estou tocando nada`)
.setDescription(`Fila vazia`)
);
if (client.distube.getQueue(message) && channel.id !== message.guild.me.voice.channel.id)
return message.channel.send(new MessageEmbed()
.setColor(ee.wrongcolor)
.setFooter(ee.footertext)
.setTitle(`❌ ERROR | Por favor entre no **meu** canal`)
.setDescription(`Canal: <#${message.guild.me.voice.channel.id}>`)
);
let queue = client.distube.getQueue(message);
let track = queue.songs[0];
console.log(track)
function toReadableTime(given) {
var time = given;
var minutes = "0" + Math.floor(time / 60);
var seconds = "0" + (time - minutes * 60);
return minutes.substr(-2) + ":" + seconds.substr(-2);
}
const current = Math.floor(queue.connection.dispatcher.streamTime / 1000) //ms --> seconds
const end = track.duration //video in seconds
const value = (current * (100 / end) / 5)
bar.default.full = "█";
bar.default.empty = " - ";
bar.default.start = "";
bar.default.end = "";
bar.default.text = "{bar}";
let npEmbed = new MessageEmbed()
.setColor(ee.color)
.setFooter(ee.footertext)
.setTitle(`:musical_note: ${track.name}`)
.setURL(track.url)
.setThumbnail(track.thumbnail)
.addField("Views", `:eye: \`${track.views}\``, true)
.addField("Likes", `:thumbsup: \`${track.likes}\``, true)
.addField("Dislikes", `:thumbsdown: \`${track.dislikes}\``, true)
.addField("Voice Channel", `<#${message.guild.me.voice.channel.id}>`, true)
.addField("By", `${track.channelName}`, true)
.addField('Play/Resume', client.distube.isPaused(message) === true ? "▶" : "⏸", true)
.addField("Duration: ", `${toReadableTime(current)} - [${bar.progress(20, value)}] - ${track.formattedDuration}`)
message.channel.send(npEmbed)
message.delete();
} catch (e) {
errorbuilder(e, message)
}
}
}可能有用的信息
Discord.js版本: 12.5.3 版本: 2.8.15 时尚版: 1.1.3
发布于 2021-08-05 17:56:08
我不确定,channelName是什么,我在您的航迹信息中任何地方都找不到它,请更改这一行:
.addField("By", `${track.channelName}`, true) //change this
.addField("By", `${track.name.split(" - ")[0]}`, true) //to this注意:如果你播放的每首歌都是艺术家的名字,在歌曲名的前面,用一个
-来分隔,这应该会一直起作用。
或者,您可以设置youtube频道的名称,如下所示:
.addField("By", `${track.info.videoDetails.ownerChannelName}`, true)https://stackoverflow.com/questions/68667082
复制相似问题