Discord. Js - Получить список всех отправленных сообщений пользователя? - PullRequest
0 голосов
/ 10 марта 2020

Я пишу бот Discord, используя Discord. js в ноде и задаюсь вопросом, есть ли какой-либо способ получить массив или коллекцию всех сообщений пользователей. Я пытался просмотреть некоторые коллекции участников и, похоже, ничего не нашел. Было бы здорово помочь, спасибо!

1 Ответ

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

Я предполагаю, что вы используете Discord. js Версия 12.0.2. Вы можете сделать это с помощью функции, которой нужны параметры guildID (идентификатор гильдии) и userID (член, от которого вы хотите получать все сообщения)

Затем вы хотите получить столько сообщений, сколько вы хотите на каждом канале. Максимум, что вы можете, это 100.

Теперь мы фильтруем все извлеченные сообщения, если сообщение # author.id равно параметру userID.

, что бы вы ни хотели сделать, идет после. msgs - это отфильтрованные сообщения. например, вы можете записывать все содержимое сообщений с их каналом на консоль (вот что я сделал)

async function userMessages(guildID, userID){
    client.guilds.cache.get(guildID).channels.cache.forEach(ch => {
        if (ch.type === 'text'){
            ch.messages.fetch({
                limit: 100
            }).then(messages => {
                const msgs = messages.filter(m => m.author.id === userID)
                msgs.forEach(m => {
                    console.log(`${m.content} - ${m.channel.name}`)
                })
            })
        } else {
            return;
        }
    })
}
...