Discord JS,等待消息,不同的输入
Posted
技术标签:
【中文标题】Discord JS,等待消息,不同的输入【英文标题】:Discord JS, Await Message, different inputs 【发布时间】:2020-10-08 23:11:48 【问题描述】:我正在制作一个不和谐的机器人,选择你自己的冒险风格游戏。我使用一个命令来启动它,然后等待消息以允许另外 3 个不同的响应。我在响应中使用 If 语句来确定下一步要做什么,但是如果消息不等于响应之一,则什么也不会发生。
const embed = new discord.RichEmbed()
.setTitle("__**The Jungle!**__")
.setColor("#49499c")
.setDescription("a Pond\nExplore a Tree\nFollow a trail")
//.attachFiles(["./pictures/Jungle.jpg"])
const filter = response =>
return response.author.id === message.author.id;
message.channel.send(embed).then(() =>
message.channel.awaitMessages(filter, max: 1, time: 30000, errors: ['time'] )
.then(collected =>
if (collected.first()=="Explore a Pond")
Pond.execute(message, args, client);
else if (collected.first()=="Explore a Tree")
Tree.execute(message, args, client);
else if (collected.first()=="Follow a Trail")
Trail.execute(message, args, client);
)
.catch(collected =>
message.channel.send('Time up');
);
);
所以我需要一些办法,让他们再试一次。最好当他们输入错误时,它会让他们输入另一个输入,直到它正确为止。所以我想它会再次上升到等待消息之前。
任何想法或帮助都会很棒。谢谢。
【问题讨论】:
您能否提供更多信息,当条件不充分时您期望会发生什么? 使用默认值怎么样?就像如果没有一个选择与用户的匹配,它会被重定向到一个随机的 @Tenclea,主要是把他们拼错了。所以我宁愿尝试找到仍然让他们完全控制。 @sebastian-ruehmann ,如果不满足条件,我希望它返回等待消息。这样他们就可以正确地重新输入输入。 【参考方案1】:您可以通过调用函数使代码自行循环:
const question = function (message)
message.channel.send(embed).then(() =>
message.channel.awaitMessages(filter, max: 1, time: 30000, errors: ['time'] )
.then(collected =>
if (collected.first()=="Explore a Pond") Pond.execute(message, args, client);
else if (collected.first()=="Explore a Tree") Tree.execute(message, args, client);
else if (collected.first()=="Follow a Trail") Trail.execute(message, args, client);
else message.channel.send("Could not find this answer"); return question(message);
)
.catch(collected => message.channel.send('Time up'); ); );
如果您遇到任何问题,请告诉我:)
【讨论】:
以上是关于Discord JS,等待消息,不同的输入的主要内容,如果未能解决你的问题,请参考以下文章