为了账号安全,请及时绑定邮箱和手机立即绑定

更新 Discord Music Bot 中嵌入的“正在播放”

更新 Discord Music Bot 中嵌入的“正在播放”

拉莫斯之舞 2023-05-25 15:37:44
我正在制作一个主要功能是播放音乐的不和谐机器人。我有一个正在播放的命令,它会显示您在歌曲中的进度,我想每 5 秒左右进行一次更新。我知道编辑嵌入,但我需要它一直循环直到歌曲停止。这是现在的代码:const createBar = require("string-progressbar");const { MessageEmbed } = require("discord.js");module.exports = {  name: "np",  description: "Show now playing song",  execute(message) {    const queue = message.client.queue.get(message.guild.id);    if (!queue) return message.reply(`Nothing's playing right now!`).catch(console.error);    const song = queue.songs[0];    const seek = (queue.connection.dispatcher.streamTime - queue.connection.dispatcher.pausedTime) / 1000;    const left = song.duration - seek;    let nowPlaying = new MessageEmbed()      .setTitle("Now playing:")      .setDescription(`${song.title}\n\`Requested by:\` ${message.author}`)      .setColor("#ff0000")      .setThumbnail('https://img.icons8.com/clouds/2x/play.png')      .addField(        "\u200b",        new Date(seek * 1000).toISOString().substr(11, 8) +          "[ " +          createBar(song.duration == 0 ? seek : song.duration, seek, 10)[0] +          "] " +          (song.duration == 0 ? " ◉ LIVE" : new Date(song.duration * 1000).toISOString().substr(11, 8)),        false      );    if (song.duration > 0)      nowPlaying.setFooter("Time Remaining: " + new Date(left * 1000).toISOString().substr(11, 8));    return message.channel.send(nowPlaying);  }};
查看完整描述

1 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

您可以使用 定期编辑嵌入setInterval(),然后使用 停止编辑(一旦歌曲完成)clearInterval()。他们是这样工作的:

var countdown = 10;


// this is fine, except it doesn't stop at 0

setInterval(() => console.log(countdown--), 1000);


// we can use `clearInterval()` to stop the interval once it gets to 0

var countdown = 10;


const interval = setInterval(() => {

 console.log(countdown--);

 if (countdown < 0) clearInterval(interval);

}, 1000);



查看完整回答
反对 回复 2023-05-25
  • 1 回答
  • 0 关注
  • 127 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信