Я пытаюсь сделать команду work
, которая требует правильного ответа, чтобы дать деньги. Это прекрасно работает, когда никто не отправляет сообщения между первоначальным «вопросом» и ответом, но если какое-либо сообщение прерывает это, оно полностью отменяет остальную часть. Я почти уверен, что это проблема с моим фильтром, но я понятия не имею, как это исправить. Я посмотрел на нем пару видео на YouTube, а также прочитал несколько других постов справочного форума, и все равно он не будет работать должным образом.
В журналах выдается следующая ошибка Cannot read property 'content' of undefined
, которая возникает при ' Пользователь 2 говорит что-либо после того, как «пользователь 1» использует исходную команду work
, но до того, как «пользователь 1» сможет использовать правильный ответ, в этом случае «огонь»
Я пытался передвигаться по filter
во что бы то ни стало; Я также попытался избавиться от Authorid
и просто использовать message.author.id
. Я также заменил член для автора в той же части filter
, которая оставила код работающим, но все еще не работающим так, как я хочу.
Я думаю, мой главный большой вопрос после всего этого - как, черт возьми, можно ли заставить его игнорировать ввод любого другого пользователя, но при этом продолжать исходную команду пользователя?
Я отредактировал ту часть, которая была предложена, но команда по-прежнему заканчивается сообщением об ошибке. Он точно фильтрует отправителя, так как работает нормально при ответе исходного автора, но если кто-то отвечает, он возвращается к ошибке.
else {
message.channel.send(question).then(r => {
const filter = msg => msg.author.id === message.author.id;
};
message.channel.awaitMessages(filter, { max: 1 }).then(collected => {
const response = collected.first();
let answer = response.content;
if (result === 0 && answer.toLowerCase() === "fire") {
let embed = new Discord.RichEmbed()
.setTitle(`${message.author.username} went to work!`)
.setColor("#ffd1dc")
.setDescription(`You received ${amount} Quoins!`)
.setFooter(
message.member.user.username,
message.member.user.displayAvatarURL
);
message.channel.send(embed);
db.add(`qnhCurrency_${message.author.id}`, amount);
db.set(`work_${message.author.id}`, Date.now());
return;
}