首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拉出哪个频道使用扰动包发布歌曲时出错

拉出哪个频道使用扰动包发布歌曲时出错
EN

Stack Overflow用户
提问于 2021-08-05 12:59:24
回答 1查看 253关注 0票数 0

我正在使用distube.js执行“Now Playing”命令,但是当我试图从哪个频道发布这首歌曲的信息时,它就变成了“未定义的”隐伏嵌入图像

这些是航迹信息

有谁能帮我吗?

到目前为止我的代码

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-05 17:56:08

我不确定,channelName是什么,我在您的航迹信息中任何地方都找不到它,请更改这一行:

代码语言:javascript
复制
 .addField("By", `${track.channelName}`, true) //change this
 .addField("By", `${track.name.split(" - ")[0]}`, true) //to this

注意:如果你播放的每首歌都是艺术家的名字,在歌曲名的前面,用一个-来分隔,这应该会一直起作用。

或者,您可以设置youtube频道的名称,如下所示:

代码语言:javascript
复制
 .addField("By", `${track.info.videoDetails.ownerChannelName}`, true)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68667082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档