询问用户问题,然后将其使用在discord.js中

时间:2019-02-06 23:53:57

标签: javascript discord.js

我想让主持人做!Host然后机器人做 您希望什么时间开始? 用户响应17:00 CET 机器人然后做什么游戏模式 用户响应正常2v2或类似的内容 Bot Response您想接待谁 用户响应@NaP Bot Response Bot然后替换下面的值

if (m == '.nap tournament' || m == '.tournament info' || m == '.nap t' || m == '.nap tourny' || m == '.ti') {
  message.channel.send({
    embed: {
      color: 000000,
      author: {
        name: bot.user.username,
        icon_url: bot.user.avatarURL
      },
      title: "**Nap Weekly Tournament**",
      description: "Every Week We Have A Tournament For All The Nappies!!!",
      fields: [{
          name: "**Time**",
          value: "Saterdays at 17:00 CET or 5:00 pm CET."
        },
        {
          name: "**Gamemode**",
          value: "Normal 2v2"
        },
        {
          name: "**Tournament Host**",
          value: "<@!" + 'Whoister#7002' +
            ">"
        }
      ],
      timestamp: new Date(),
      footer: {
        icon_url: bot.user.avatarURL,
        text: "Arrara bot"
      }
    }
  });

1 个答案:

答案 0 :(得分:0)

我建议使用discord.js中内置的RichEmbed类,因为它看起来更干净并且也很容易使用,这是一个示例:

const embed = new Discord.RichEmbed()
      .setTitle("This is your title, it can hold 256 characters")
     .setAuthor("Author Name", "https://i.imgur.com/lm8s41J.png")
     .setColor(0x00AE86)
     .setDescription("Embed description here")
 message.channel.send({embed});

这里是查看您可以添加到嵌入中的其他内容的链接:https://discord.js.org/#/docs/main/stable/class/RichEmbed 然后,为了处理您想要的用户响应,我将使用消息收集器https://discord.js.org/#/docs/main/stable/class/TextChannel?scrollTo=createMessageCollector 您也可以在此处找到示例,可以将过滤器设置为用户ID,例如const filter = m => m.author.id === message.author.id。您也可以使用maxMatches设置在发出end事件之前收集的最大邮件数。 channel.createMessageCollector(filter, { maxMatches: 2 }); //Will collect 2 messages and then emit 'end' event。发出的另一个事件是collect,它在每次响应返回与您的过滤器匹配时发出,并且要获取该响应的内容,可以使用诸如collector.on('collect', m => console.log("Collected:" + m.content));之类的东西。您可以创建多个收集器,并在两者之间发送一条消息以首先提示用户,然后获取他们的输入。