首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建类似菜单的结构(discord.js)

创建类似菜单的结构(discord.js)
EN

Stack Overflow用户
提问于 2021-02-26 18:13:09
回答 1查看 1.5K关注 0票数 0

我想创建一个机器人可以执行的项目菜单,然后用户可以选择要执行的操作。

例如:当我说+Menu然后机器人会显示如下内容:

代码语言:javascript
复制
1. Time in NY
2. Movies currently running
3. Sports News

然后我想接受用户的输入(1,2或3),然后根据他们的选择,机器人将执行任务。但我不确定如何阅读命令(+菜单)后用户的输入,并想寻求帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-26 18:23:20

您正在寻找一个message collector..。请参阅文档

here就我个人而言,我会创建一个带有选项的嵌入,例如

代码语言:javascript
复制
const menuEmbed = new Discord.MessageEmbed()
.setTitle("Menu")
.addFields(
  { name: "1.", value: "Time in NY"},
  { name: "2.", value:  "Movies currently running"},
  { name: "3.", value:  "Sports News"}
);

message.channel.send(menuEmbed).then(() => {
  const filter = (user) => {
    return user.author.id === message.author.id //only collects messages from the user who sent the command
  };
  
  try {
  let collected = await message.channel.awaitMessages(filter, { max: 1, time: 15000, errors: ['time'] });
      let choice = collected.first().content; //takes user input and saves it
  
      //do execution here
  }
  catch(e)
  {
    return message.channel.send(`:x: Setup cancelled - 0 messages were collected in the time limit, please try again`).then(m => m.delete({ timeout: 4000 }));
  };    
});

然后使用收集器让用户选择一个选项。

请记住,这是在使用async/await,并且必须位于async函数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66383858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档