Получить конкретное c сообщение из указанного c канала - PullRequest
4 голосов
/ 18 марта 2020

Цель: я пытаюсь проверить, реагирует ли мой бот на наличие сообщений c.

Я прочитал этот пост: Получить сообщение по идентификатору : Discord. js Но это совсем не помогло.

Я искал inte rnet, чтобы посмотреть, как правильно использовать .fetchMessage. Но, к сожалению, ничего не найдено.

Это мой код:

client.channels.get('CHANNEL ID').fetchMessage('MESSAGE ID').then(async msg => { *CODE HERE* });

Это ошибка, которую я получаю:

TypeError: client.channels.get is not a function

Я понимаю, что client.channels.get is not a function, и я должен использовать это в функции, но я не знаю, как это сделать.

Discord.js version: 12.0.2

Node.js verison: 12.13

Ответы [ 2 ]

4 голосов
/ 18 марта 2020

Этот ответ был для v11, в v12 он изменился на:

client.channels.cache.get(chid).messages.cache.fetch(mesid)

Однако важно отметить, что client.channels.cache может содержать нетекстовые каналы, если вы извлекаете идентификатор, который вы знаете, что является типом TextChannel, у вас все будет в порядке, но если идентификатор извлекается программным путем, вам необходимо проверить, является ли он экземпляром TextChannel .

0 голосов
/ 20 марта 2020

В версии 12 он изменился и использует менеджеров, добавил эту команду в мой бот и исправил ее.

let channelMessage = client.channels.cache.get (channel_id) // Захват канала channelMessage.messages. fetch (message_id) .then (messageFeteched => messageFeteched.delete ({timeout: 5000})); // Удалить сообщение через 5 секунд

...