拉莫斯之舞
2023-05-25 15:37:44
我正在制作一個(gè)主要功能是播放音樂的不和諧機(jī)器人。我有一個(gè)正在播放的命令,它會(huì)顯示您在歌曲中的進(jìn)度,我想每 5 秒左右進(jìn)行一次更新。我知道編輯嵌入,但我需要它一直循環(huán)直到歌曲停止。這是現(xiàn)在的代碼: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貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以使用 定期編輯嵌入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);
添加回答
舉報(bào)
0/150
提交
取消