Как сделать мэдлиб с помощью Discord-бота? (Discord JS v12)

Я пытаюсь создать madlib с помощью бота Discord, и каким-то образом мне нужно назначить переменную для каждой строки сообщения пользователя...

вот мой код:

client.on('message', message=>{//madlib
    var lib1 = [
        ' ',//<--(X)
        'VERB',
        'ADJECTIVE',
        'NOUN (PLURAL)',
        'ADJECTIVE',
        'VERB ENDING IN "ING"',
        'VERB',
        'NUMBER',
        'ADJECTIVE',
        'NOUN (PLURAL)',
        'NOUN (PLURAL)',
        'NOUN (PLURAL)',
        'RELATIVE (PLURAL)',
        'ADJECTIVE',
        'ADJECTIVE',
        'NOUN (PLURAL)',
    ]
    
    
    if (message.content == '!madlib'){
        var rand = Math.floor(Math.random() * 2) + 1;
        if (rand == '1'){
            message.reply(lib1);
        }
        if (rand == '2'){
            //im gonna put another madlib right here as another option and more random options.
        }
    }

})

не уверен, как пользователь вставит переменные... кто-нибудь знает, как это сделать?

2 ответа

Вам нужно выяснить, как сделать своего бота интерактивным. Он может отправить сообщение типа "Дай мне ГЛАГОЛ", а затем получить ответ от команды в чате. Я не знаю, как это сделать специально для Discord, поэтому вам нужно будет провести дополнительное исследование о том, как получить ответ от пользователя.

Вы можете просто использовать message.channel.awaitMessages() ждать ответа от пользователя.

Вот пример:

message.reply("Send a message!! (expires in 10s)")
const filter = m => m.autor.id === message.author.id;
message.channel.awaitMessages(filter, {
   max: 1,
   time: 10_000,//(10 seconds)
   errors: ['time']
})
  .then(async(msgs) => {
    //msgs is a collection. You need to do msgs.first() to get the first message
     const msg = msgs.first();
      //now just use "msg" as your normal message variable, like so
          message.reply("I have received your message: " + msg.content)
})
  .catch(() => message.reply("You took too long"))

См. Также https://discordjs.guide/popular-topics/collectors.html.

Другие вопросы по тегам