Как получить все упоминания от пользователя в канале discord.js - PullRequest
0 голосов
/ 03 июня 2019

Итак, я пытаюсь создать простой бот, который, когда пользователь пишет:

!howmanypoints {user}

Он должен просто перейти на определенный канал и выполнить поиск, сколько раз онупоминалось в конкретном канале.

На данный момент я столкнулся с функцией fetchMentions (), но она устарела, и API не нравится, когда бот пытается это сделать.

Любой вклад или, по крайней мере, лучший подход к этому.Может быть, я зациклен на том, чтобы заставить его работать.

const Discord = require('discord.js')
const client = new Discord.Client()


client.on('message', msg => {
  if (msg.content.includes('!howmanypoints') ||      msg.content.includes('!cuantospuntos')) {

    const canal_de_share = client.channels.find('name', 'dev')
    const id_user = client.user.id
    client.user.fetchMentions({guild: id_user })
    .then(console.log)
    .catch(console.error);
  }
})

1 Ответ

1 голос
/ 03 июня 2019

ClientUser.fetchMentions() устарела и доступна только для учетных записей пользователей.

В качестве альтернативы вы можете получить все сообщения канала и выполнить итерацию по каждому, проверяя упоминания.

Пример:

let mentions = 0;

const channel = client.channels.find(c => c.name === 'dev');
const userID = client.user.id;

channel.fetchMessages()
  .then(messages => {
    for (let message of messages) {
      if (message.mentions.users.get(userID)) mentions++;
    }

    console.log(mentions);
  })
  .catch(console.error);
...