Я пытаюсь заставить своего бота ждать прямого сообщения в этом случае с каким-то именем и записать его одному и тому же пользователю в прямом сообщении в этом случае.
Я пытаюсь использовать message.author.awaitMessages
но возвращает консоль:
TypeError: message.author.awaitResponse не является функцией
message.author.send('Write your Name')
.then(function(){
message.channel.awaitMessages(response => message.content, {
max: 1,
time: 300000000,
errors: ['time'],
})
.then((collected) => {
message.author.send('Your Name is: ${collected.first().content}');
})
.catch(function(){
message.channel.send('You didnt write your name');
});
});
}
Класс Message
имеет author
свойств, который относится к типу User
(как показано в документах здесь), а класс User
не имеет функции awaitResponse(...)
, поэтому вы видите эту ошибку. См. Документацию по классу пользователя здесь.
Я бы рекомендовал использовать message.channel.awaitMessages
и проверить свойство .author
сообщений, если вы проверяете ответы от конкретного человека.
message
определенно является переменной, а неmsg
? Discord.js hello world используетclient.on('message', msg) => {
. В вашем случае я думаю, что вам нужно изменитьmsg
здесь наmessage