Liniuss

UPDATE

Sep 17th, 2017
342
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const vk            = new (require('vk-io')),
  2.     request         = require('request'),
  3.     BOTID           = 1231645;
  4.  
  5. vk.setToken('ТОКЕН');
  6. vk.longpoll.start();
  7.  
  8. var commands = [];
  9.  
  10. var users = {
  11.     '435378035': {  // Здесь свой ID
  12.         balance: 1000,
  13.         tag: 'User',
  14.         level: 2
  15.     }
  16. }
  17.  
  18. vk.longpoll.on('message', (message) => {
  19.     if(message.user == BOTID) return;
  20.     var bot = {
  21.         send: function( obj, params = {} ) {
  22.             return message.send(users[message.user].tag + ', ' + obj, params);
  23.         }
  24.     }
  25.     if(!users[message.user])
  26.         users[message.user] = {balance: 1000, tag: 'User', level: 0};
  27.     commands.map(function (cmd) {
  28.         if(!cmd.r.test(message.text))return;
  29.         var params = message.text.match(cmd.r) || [];
  30.         params[0] = message;
  31.         if(users[message.user].level >= cmd.l)
  32.             cmd.f(message, params, bot);
  33.     });
  34. });
  35.  
  36. function command(_regex, _desc, _func, _lvl) {
  37.     commands.push({r: _regex, f: _func, d: _desc, l: _lvl});
  38. }
  39.  
  40. command(/^\/help/i, 'none', function (message, params, bot) {
  41.     return bot.send("Команды бота:\n" + commands.filter(e => e.d != 'none').map(x => x.d).join("\n"));
  42. }, 0);
  43.  
  44. command(/^\/test/i, '/start -- проверка бота', function (message, params, bot) {
  45.     return bot.send("Привет, я работаю!");
  46. }, 1);
  47.  
  48. command(/^\/spot\s([0-9]+)/i, '/spot <поинты> -- топ рулетка класс', function (message, params, bot) {
  49.     if(users[message.user].balance <= 0) return bot.send('мало денег');
  50.     if(getRandomInt(0, 100) < 50) {
  51.         users[message.user].balance += Number(params[1]);
  52.         return bot.send(`Вы выиграли ${params[1]} поинтов!\nНа вашем балансе ${users[message.user].balance} поинтов`);
  53.     }else{
  54.         users[message.user].balance -= Number(params[1]);
  55.         return bot.send(`Вы проиграли ${params[1]} поинтов!\nНа вашем балансе ${users[message.user].balance} поинтов`);
  56.     }
  57. }, 0);
  58.  
  59. command(/^\/double (r|g|b)\s([0-9]+)/i, '/double <r|g|b> [points] -- top ruletka', function(message, params, bot) {
  60.     if(users[message.user].balance <= 0) return bot.send('мало денег');
  61.     if(params[2] <= 0) return bot.send('нельзя ставить меньше 0');
  62.     if(params[1] == 'r' || params[1] == 'b') {
  63.         if(getRandomInt(1, 100) > 80) {
  64.             users[message.user].balance += Number(params[2]);
  65.             return bot.send(`И выпало [${params[1] == 'r' ? 'RED' : 'BLACK'}]\nВы выиграли: ${params[2]} поинтов`);
  66.         }else{
  67.             users[message.user].balance -= Number(params[2]);
  68.             return bot.send(`И выпало [${params[1] == 'r' ? 'BLACK' : 'RED'}]\nВы проиграли: ${params[2]} поинтов`)
  69.         }
  70.     }else if(params[1] == 'g') {
  71.         if(getRandomInt(1, 100) > 95) {
  72.             users[message.user].balance += Number(params[2]*14);
  73.             return bot.send(`И выпало [GREEN]\nВы выиграли: ${params[2]*14} поинтов`);
  74.         }else{
  75.             users[message.user].balance -= Number(params[2]);
  76.             return bot.send(`И выпало [${['BLACK', 'RED'].random()}]\nВы проиграли: ${params[2]} поинтов`)
  77.         }
  78.     }
  79. }, 0)
  80.  
  81. function getRandomInt(min, max){return Math.round(Math.random() * (max - min)) + min}
  82. Array.prototype.random = function(){return this[Math.floor(this.length * Math.random())];}
Advertisement
Add Comment
Please, Sign In to add comment