#node.js #discord.js
#node.js #discord.js
Вопрос:
Поэтому, когда пользователь вводит что-то вроде «!biscuit», бот выберет случайную строку из массива (а в массиве есть что-то вроде «вы можете есть печенье» и «вы не можете есть печенье»), и я хочу, чтобы бот отправил сообщение типа «вы можете есть печенье», чтобы добавитьконкретная роль для этого пользователя. Я сделал все, я просто не знаю, как проверить, что выбрал бот, чтобы я мог добавить роль пользователю.
Комментарии:
1.
if (element === 'you can eat biscuits')
Ответ №1:
У вас может быть простой массив, содержащий все возможные результаты (например const responses = ["you can eat biscuits", "you cant eat biscuits"]
.
Затем используйте Math.random()
функцию, чтобы получить случайное число от 0 до <1.(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random )
let randomNumber = Math.floor(Math.random() * Math.floor(responses.length))
// this will return a number between 0 and the length of 'responses'
« Math.floor()
Функция возвращает наибольшее целое число, меньшее или равное заданному числу»
(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/floor )
let randomMessage = responses[randomNumber];
// this gives you a random element from the "responses" array.
Чтобы добавить роль участнику, отправившему сообщение, вы можете использовать следующий код:
client.on('message', message => {
let member = message.guild.members.cache.get(message.author.id);
member.roles.add('role-id');
});
Действительно полезные ссылки, которые вы должны проверить:
https://discord.js.org/#/docs/main/stable/general/welcome
РЕДАКТИРОВАТЬ: простой способ решить, хотите ли вы добавить роль или нет, вы можете попробовать изменить массив ответов, добавив еще один элемент к каждому ответу, причем первый элемент содержит сообщение, а второй — логическое значение, которое будет использоваться в качестве условия, с true
возможностью добавленияроль и false
для не подходит.
const responses = [["you can eat biscuits", true], ["you cant eat biscuits", false]]
.
randomMessage
теперь должно выглядеть так: let randomMessage = responses[randomNumber][0];
Теперь окончательный код должен выглядеть так:
client.on('message', message => {
let member = message.guild.members.cache.get(message.author.id);
const responses = [["you can eat biscuits", true], ["you cant eat biscuits", false]];
let randomNumber = Math.floor(Math.random() * Math.floor(responses.length));
let randomMessage = responses[randomNumber][0];
message.channel.send(randomMessage);
if(responses[randomNumber][1]) {
member.roles.add('role-id');
};
});
Комментарии:
1. Да, я понял это сразу после публикации, но спасибо