gpt4 book ai didi

javascript - 如何让我的命令忽略其他用户但允许原始用户响应?

转载 作者:行者123 更新时间:2023-12-02 20:55:37 24 4
gpt4 key购买 nike

我正在尝试创建一个需要正确答案才能给钱的 work 命令。当原始“问题”和答案之间没有人发送消息时,它工作得很好,但如果任何消息中断,它就会完全抵消其余部分。我几乎可以肯定这是我的过滤器的问题,但我不知道如何修复它。我观看了一些关于它的 YouTube 视频,并阅读了其他一些帮助论坛帖子,但它仍然无法正常工作。

日志给出以下错误无法读取未定义的属性“内容”,当“用户 2”在“用户 1”使用原始 work 命令之后说出任何内容时,会发生此错误在“用户 1”可以使用正确答案之前,在本例中为“fire”

我尝试过将过滤器移动到我能想到的各种方式;我还尝试摆脱 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;
}

最佳答案

您的过滤器需要检查回复是否由命令author做出,使用它作为您的过滤器:const过滤器= msg => msg.author.id === message.author.id

关于javascript - 如何让我的命令忽略其他用户但允许原始用户响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61491283/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com