如何在discord.js中获得多个消息id ?



我的bot发送了3条消息,我需要保存它们的id,因为我需要稍后编辑它们。如果我这样做:

message.channel.send(`${acc[player].output.slot1}`).then((m) => {
acc[player].ids.msg1 = m.id
})

message.channel.send(`${acc[player].output.slot2}`).then((n) => {
acc[player].ids.msg2 = n.id
})

message.channel.send(`${acc[player].output.slot3}`).then((o) => {
acc[player].ids.msg3 = o.id
})

所有三个将有第三个的ID。减速过程或做它一步一步没有帮助。

不确定为什么所有3个条目会产生相同的值,但是可能以不同的方式处理承诺会有所帮助。尝试等待Promise.all()与发送消息的数组,并将所有结果映射到id。

const { send } = message.channel;
try {
(await Promise.all([
send(`${acc[player].slot1}`),
send(`${acc[player].slot2}`),
send(`${acc[player].slot3}`)
])).forEach((msg, i) => {
acc.player.ids[`msg${i + 1}`] = msg.id;
});
} catch (err) {
console.error(err);
}

相关内容

  • 没有找到相关文章

最新更新