#javascript #bots
Вопрос:
Я работаю над ботом twich и пытаюсь проверить, выполнил ли конкретный пользователь уже команду. У меня есть этот фрагмент кода:
if (message === '!iq') { var iqNum = Math.floor(Math.random() * 200) 1; client.action('jimmytag', `${user['display-name']} Your IQ is ` iqNum); }
Он просто рандомизирует число между 1-200. Но я хочу, чтобы он проверил, запускал ли пользователь его раньше, и напечатал разницу. Поэтому, если я введу команду два раза, например, в первый раз она напечатает «Ваш IQ равен 100»; Но во второй раз это должно быть «Ваш IQ равен 150 ( 50)». Как я могу это сделать?
Комментарии:
1. Вам нужно будет отслеживать пользователей, которые выполнили запрос, и полученные ими результаты.
Ответ №1:
Создайте пустой объект (под клиентом const)
const userIQ = {};
Код для команды чата Twich
if (message.toLowerCase() === '!iq') { const hasIQ = userIQ.hasOwnProperty('userid'); if (hasIQ == true) { var oldiqNum = userIQ['useriq'] var newiqNum = Math.floor(Math.random() * 200) 1; var iqDif = newiqNum-oldiqNum; userIQ.useriq = newiqNum; if(iqDifgt;0){ client.action(channel, `@${userstate.username} Your IQ is ` newiqNum `(` ` ` iqDif `)`); } else { client.action(channel, `@${userstate.username} Your IQ is ` newiqNum `(` iqDif `)`); } } else { var iqNum = Math.floor(Math.random() * 200) 1; var userid = userstate['user-id']; userIQ.userid = userid; userIQ.useriq = iqNum; client.action(channel, `@${userstate.username} Your IQ is ` iqNum); } }