@itachi907

Как реализовать удаление сообщения и запоминание его содержимого для discord.js?

Здравствуйте, уважаемые пользователи Хабра! Являюсь начинающим в Java-скриптинге и node.js. Пишу бота для Discord на discord.js. Изначально имею такой код:
client.on("message", message => {
    if(message.content.toLowerCase()==config.prefix + "cmd")
    {
    message.reply("привет, введи какое-нибудь слово, я его запомню!")
    }
})

Что мне нужно и чего я ожидаю? По некой команде !cmd бот пишет "@*имя пользователя*, привет, введи какое-нибудь слово, я его запомню!". Пользователь пишет некоторое слово/выражение, бот его запоминает и удаляет.
После запоминания, по некоторой команде бот выдает некоторое сообщение с этим словом/выражением.
При этом бот должен идентифицировать и удалять/отвечать на сообщения только того пользователя, который изначально прописал команду и работал отдельно от других.

Пример:
!cmd
@*имя пользователя*, привет, введи какие-нибудь слово, я его запомню!
Привет!
'сообщение удаляется'
!slovo
Бот: "Привет!"

=================
Кто-то может сказать, что я прошу уже готовый код. Может быть так и есть, но это лишь по желанию. В некотором роде мне будет достаточно объяснений и некой "инструкции")
Заранее благодарю за помощь.
  • Вопрос задан
  • 1873 просмотра
Решения вопроса 1
2chevskii
@2chevskii
Если бы каждый мог в поиск, тостер бы вымер.
Ну как-то так, но это прямо супер-на-коленке вариант, за полторы минуты написанный, просто чтобы дать вам направление.
Будьте добры, воткните тег "Discord", и отметьте решением, если помогло.
const userMessageDict = {};

const prefix = '!';

client.on('message', msg => {
    if (msg.content === `${prefix}cmd`) {
        userMessageDict[msg.author.id] = null;
        msg.delete({ timeout = 0 })
           .then(() => msg.channel.send('I will remember your next message.'));
    }
    else if (msg.content === `${prefix}slovo`) {
        if ((typeof userMessageDict[msg.author.id]) === 'string') {
            msg.channel.send(userMessageDict[msg.author.id]);
        } else {
            msg.channel.send('I dont have any words remembered from you yet!');
        }
    } else if (userMessageDict[msg.author.id] === null) {
        userMessageDict[msg.author.id] = msg.content;
    }
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы