【问题标题】:Turn queue list into an embed将队列列表转换为嵌入
【发布时间】:2018-12-23 13:13:53
【问题描述】:

最近为我的机器人创建了一个队列命令,它可以工作,但我希望它显示在 RichEmbed 中。

let resp = `**Now Playing:**\n${nowPlaying.songTitle}\n**Requested By:**\n${nowPlaying.requester}\n\n**Queue**\n`


for (var i = 1; i < queue.length; i++) {
    resp += `${i}. **${queue[i].songTitle}**\n**Requested By:** ${queue[i].requester}\n`
}

这是我设置用于显示队列的当前代码。现在,我的确切问题是resp +=。我知道每次将歌曲添加到队列并重新运行命令时,它都会将其列在队列中,但我仍在自学 Node.JS,所以这有点难以解决,因为我从来没有使用过任何使用+= 发送更新消息的命令。

【问题讨论】:

  • @PruthviKumar 是否可以将for loop 放入嵌入中?那是我的问题。还是有其他方法来实现它?它的第一部分可以很容易地放入一个嵌入中,但是它列出了队列中的其余歌曲,这些都是打击嵌入。
  • 使用+= 得到的结果相当于字符串连接。例如:let i = 'a'; i+='b';//results in i = 'ab'。您可以在任何地方使用此语法。请注意+= 在不同情况下的过载情况
  • Current code 每当我运行它时,我都会得到[object Object]1. Artist - Songname Requested By: Requester
  • 我感觉到您正在尝试做的事情与您想要做的事情之间存在一些差距。如果我正确理解了这个问题,你想通过循环更新resp?这样,您将拥有 resp 仅反映您的 queue 的最后一项。您目前正在尝试做的是连接 resp 。如果您描述您想要实现的目标,这将有所帮助
  • Here 这就是我想坐在嵌入中的内容。但我不能让循环在嵌入内。

标签: node.js discord.js


【解决方案1】:

试试这样的:

let q = ``;
for(var i = 0; i < queue.length; i++) {
    q += `\n${i + 1}. **${queue[i].songTitle}**\nRequested By: ${queue[i].requester}`;
}
let resp = [
    {name: `Now Playing`, value: nowPlaying.songTitle},
    {name: `Requested By`, value: nowPlaying.requester},
    {name: `Queue`, value: q},
];

//Putting it all together
message.channel.send({embed: {
    title: 'Queue',
    fields: resp,
}});

【讨论】:

    猜你喜欢
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 2018-11-12
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    相关资源
    最近更新 更多