Какой правильный код использовать, чтобы бот Discord ответил массивом альтернативных ответов на одну команду, но в случайном порядке?

Я искал везде, искал по всему Интернету, и независимо от того, что я делаю, я просто не могу заставить его работать. Код, который у меня есть, работает, но добавление более двух ответов не работает:

client.on('message' , function (message){
    if (message.content == 'hi') 
    {
        var roll =(Math.floor(Math.random()*3)+1);
        if (roll == 1)
        {
            message.reply('hello');
        }
        else
        {
            message.reply('hey');
        }

Я хочу иметь возможность добавлять больше ответов, чем только этот

Спасибо

редактировать: я только что заметил еще одну проблему, когда мой бот говорит все доступные ответы по команде, а не только один случайным образом. Как мне исправить и это?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
293
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вам нужен массив возможных ответов и функция, которая может получить из него случайный элемент. Например, этот:

function randomElementOf(array) {
  return array[Math.floor(Math.random() * array.length)]
}

И используйте его, чтобы получить ответ от массива. Так:

const responses = ["hello", "hey", "hi", "sup"]; 
// ...
message.reply(randomElementOf(responses));
Ответ принят как подходящий

Я бы рекомендовал создать массив ответов, а затем выбрать случайный элемент из этого массива:

// inside the 'message' event handler
const responses = ["Hey", "Hi", "Hello", "Hey"];

const randomResponse = responses[Math.floor(Math.random() * responses.length)];

message.reply(randomResponse);

Поскольку мы используем responses.length при определении индекса случайного массива, все, что вам нужно сделать, чтобы добавить новый ответ в пул, — это добавить в массив.

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