Итак, это работает ПОЧТИ как задумано. У меня есть бот для личных сообщений пользователя, который использует правильную команду в правильном канале сервера. Вместо того, чтобы засорять сервер сообщениями о создании профиля, у меня есть бот, который делает создание профиля в частном порядке. Я знаю / думаю, что проблема с message.channel.awaitMessages, потому что он видит только ответы в исходном канале на сервере, где была введена команда.
Я не уверен, что мне следует заменить message.channel.awaitMessages, чтобы он мог получить ответ в диалоге с личным сообщением, а не на исходном канале создания профиля на сервере.
Я еще не проверял сообщение sql. Я не проверял, что у меня есть, но я уверен, что это не сработает. Я хочу, чтобы ответ, данный пользователем в личном сообщении, был вставлен (возможно, обновлен?) В базу данных MySQL, которую я уже настроил и правильно начал работать. Идентификатор пользователя и имя пользователя занесены в эту таблицу, а остальные вопросы, связанные с профилем, на данный момент не заданы. Поскольку они отвечают на эти вопросы, эти поля могут быть заполнены / обновлены. Любые идеи / предложения приветствуются!
module.exports.run = async (bot, message, args) => {
if(message.channel.id === '460633878244229120') return message.author.send(`Greetings, ${message.author.username}! FIRST QUESTION, **What is the name of your Brawler or Character?**`)
.then(function(){
message.channel.awaitMessages(response => message.content, {
max: 1,
time: 5000,
errors: ['time'],
})
.then((collected) => {
message.author.send(`Your Name is: ${collected.first().content}`);
var sql = (`UPDATE profile SET name = '${message.content}' WHERE id = ${message.author.id}`);
})
.catch(function(){
message.author.send('Please submit a name for your character. To restart Profile creation, please type "!profilecreate" command in Profile Creation channel on the server.');
});
});
}
Заранее спасибо за ваше время!