您好,所以我正在制作一个机器人,它将在特定频道中提取一条消息,将其复制,然后将其发送到另一个频道。我尝试使用messages.fetch(),但是它不起作用,总是返回DiscordAPIError: Cannot send an empty message。这是我的代码当前的样子:

  if (message.content === 'Log'){
message.channel.messages.fetch({limit: 10})
.then(messages => {
  message.channel.send(messages)}).catch(console.error)}


我希望任何人都可以帮助我,在此先感谢。

最佳答案

假设您希望漫游器输出通道中最后10条消息的内容,则该方法应该有效:

let msgs = [];
message.channel.messages.fetch({limit: 10})
.then(messages => {
    return messages.each(msg => msgs.push(msg.content));
})
.then(messages => {
    message.channel.send(msgs.reverse().join("\n")); // outputs the messages separated by a newline
});


如果您只想收到一条消息,则可以执行以下操作:

message.channel.messages.fetch("MESSAGE_ID")
.then(msg => {
    message.channel.send(msg.content);
});


Docs

关于javascript - 获取/收听 channel 中的新消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61267431/

10-16 19:22