#javascript #node.js #discord.js
#javascript #node.js #discord.js
Вопрос:
Я создаю бота discord, который будет запускать функцию, основанную на заданных вопросах, из которых несколько являются вопросами «да» / «нет». Ответ «да» выполнит определенную функцию, в то время как «нет» должно заканчивать вопрос. Я не хочу, чтобы бот запускал случайную функцию каждый раз, когда он читает «да». Единственное решение, о котором я мог подумать, это то, что после того, как вопрос был задан (на основе триггера word), пользователь застревает в цикле, где бот не будет отвечать ни на какой триггер, кроме «да» / «нет». Если да, будет запущена соответствующая функция. Если нет, пользователь выходит из цикла и может задать другой вопрос. Кроме да / нет, бот скажет «пожалуйста, ответьте да или нет», Как я могу закодировать это в node.js/discord.js ?
Ответ №1:
Если это команда, которую пользователи должны выполнить, чтобы инициировать этот диалог…Я рекомендую ссылаться на это вdiscord.js официальный документ, в котором говорится о awaitMessages
. В принципе, вы могли бы использовать это, за которым следует серия .then()
и if statements
, которая приведет пользователя по нескольким путям на основе их ответов, которые можно отфильтровать.
Если это функция бота по умолчанию, не требующая команды запуска, я рекомендую вам действовать осторожно в этой области, поскольку что-то подобное может быть довольно спамным.
Пример:
message.channel.send('Is this a great bot?').then(async (start) => {
message.channel.awaitMessages(filter, { maxMatches: 1, time: 60000, errors: ['time']}).then(async (collected) => {
if (collected.first().content === "yes") {} else if (collected.first().content === "no") {}
})
Вы можете фильтровать сообщения с помощью filter
или другого способа, чтобы yes/no
были единственно приемлемые ответы.