tmi.js Как проверить, выполнил ли пользователь уже определенную команду

#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);  } }