Как рандомно упомянуть пользователя на сервере discord через команду?

Рейтинг: 0Ответов: 1Опубликовано: 21.04.2023

Совсем недавно в этой области, но очень интересно.

Суть следующая, пишу своего чат-бота для discord на node.js, где при вызове определенной команды, чат-бот отвечает на сообщения, например, если написать "!привет", то бот ответит пользователю, который написал в чат данную команду "Добрый день, @user!". Сейчас, я хочу, чтобы на команду "!пять", чат-бот рандомно выбирал пользователя с сервер и отвечал "@user, дай пять!". Как это можно реализовать?

Я так понимаю, что это можно сделать с помощью Array.from (message.member.guild.members), так я получу всех пользователей на сервер или нет? И как с этим работать дальше, я не могу понять.

Ответы

▲ 0Принят

Благодарю на ссылки, помогли. В принципе у меня получилось то, чего я и добивался. Может кому-нибудь понадобиться, вот, что у меня получилось.

//Массив с фразами
  const phrases = [
    "здоровается с",
    "даёт пять"
  ];
  
  // При получении сообщения
client.on('message', async (message) => {
  // Проверяем, что сообщение является командой и начинается со знака восклицания
  if (message.content.startsWith('!randomHello')) {
    // Получаем коллекцию участников сервера
    const members = message.guild.members.cache.array();
    // Выбираем случайную фразу и случайного участника из коллекции
    const randomphrases = phrases[Math.floor(Math.random() * phrases.length)];
    const randomMember = members[Math.floor(Math.random() * members.length)];
    // Упоминаем случайного участника в сообщении
    message.channel.send(`${message.author} ${randomphrases} ${randomMember}`);
  }
});