获取/收听频道中的新消息

时间:2020-04-17 08:41:59

标签: javascript node.js discord discord.js

您好,所以我正在制作一个机器人,该机器人将在特定频道中提取一条消息,将其复制,然后将其发送到另一个频道。我尝试使用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)}

我希望任何人都可以帮助我,谢谢。

1 个答案:

答案 0 :(得分:1)

假设您希望漫游器输出通道中最后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

相关问题