client.channels.get (id) .send () не работает - PullRequest
0 голосов
/ 04 июля 2019

Итак, созданный мной диск-бот имеет уведомления о подергивании и использует snekfetch для создания функции запроса зацикливания.По возвращении функции у меня есть client.channels.get(id).send(embed), однако она не сообщает идентификатор канала, который я ей дал.

const api = `https://api.twitch.tv/helix/streams?user_login=${streamer}`;

  snekfetch.get(api).set('Client-ID', "XXXXXXXXXXXXXX").then(r => {

    if (r.body.stream === null) {

      setInterval(() => {

        snekfetch.get(api).then(console.log(r.body))

      }, 30000);

    } else {
        const embed = new discord.RichEmbed()
        .setAuthor(
        `${r.body.data.user_name} is live on Twitch`,
      )
        .setThumbnail(`http://static-cdn.jtvnw.net/ttv-boxart/live_user_${streamer}-500x500.jpg`)
        .addField('Views', `${r.body.data.viewer_count}`, true)

      return bot.channels.get(XXXXXXXXXXXX).send("TEST");
    }
  });

Я назвал своего клиента-бота, поэтому вместо client.channels это бот.channels

Теоретически он должен отправлять сообщение TEST на любой номер канала, который я ему предоставляю, однако вместо этого я получаю ошибку.

(node:62565) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'send' of undefined
    at /Users/XXXXXXX/Desktop/HelperBot/main.js:61:50
    at processTicksAndRejections (internal/process/task_queues.js:89:5)
(node:62565) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:62565) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

1 Ответ

0 голосов
/ 04 июля 2019

Ошибка говорит, что не может найти функцию .send("Test") чего-то, что не определено.

Так что ошибка происходит из bot.channels.get(XXXX) bot.channels возвращает коллекцию.Если вы ищете определенный элемент этой коллекции.Вам нужно использовать .find, а не .get

Подробнее о. Найти здесь: https://discord.js.org/#/docs/main/stable/class/Collection?scrollTo=find

...