Получить / прослушать новое сообщение в канале - PullRequest
0 голосов
/ 17 апреля 2020

Здравствуйте, я создаю бота, который будет извлекать сообщение по указанному c каналу, копировать его и затем отправлять на другой канал. Я пытался использовать 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 Ответ

1 голос
/ 17 апреля 2020

Если вы хотите, чтобы бот выводил содержимое последних 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);
});

Документы

...