Guest User

Windows93 Trollbox super cool bot

a guest
Aug 3rd, 2019
510
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const readline = require('readline');
  2.  
  3. const rl = readline.createInterface({
  4.   input: process.stdin,
  5.   output: process.stdout
  6. });
  7.  
  8. const io = require('socket.io-client');
  9.  
  10. let client = 1
  11.  
  12. let char = ''
  13.  
  14. const sock = io("http://www.windows93.net:8081", {
  15.   path: '/socket.io',
  16.   transportOptions: {
  17.     polling: {
  18.       extraHeaders: {
  19.         "Origin": "http://www.windows93.net",
  20.         "Referer": "http://www.windows93.net/trollbox/index.php"
  21.       }
  22.     }
  23.   }
  24. })
  25. i = undefined;
  26. is = [];
  27. function calc(equ){
  28.     if(i!=undefined){
  29.         is[is.length] = i;
  30.     }
  31.     eq = "";
  32.     b = "";
  33.     br = 0;
  34.     for(i=0; i<equ.length; i++){
  35.         if(equ[i] == '('){
  36.             br++;
  37.         }else if(equ[i] == ')'){
  38.             br--;
  39.             if(br == 0){
  40.                 eq += calc(b).toString();
  41.             }
  42.         }else{
  43.             if(br>0){
  44.                 b += equ[i];
  45.             }else{
  46.                 eq += equ[i];
  47.             }
  48.         }
  49.     }
  50.     equ = eq;
  51.     num = [0];
  52.     op = [];
  53.     c = 0;
  54.     for(i=0; i<equ.length; i++){
  55.         if(Number(equ[i]) || Number(equ[i]) == 0){
  56.             num[c] = num[c] * 10 + Number(equ[i]);
  57.         }else{
  58.             op[c] = equ[i];
  59.             c++;
  60.             num[c] = 0;
  61.         }
  62.     }
  63.     for(i=0; i<op.length; i++){
  64.         if(op[i] == '*'){
  65.             op[i] = undefined;
  66.             num[i] = num[i]*num[i+1];
  67.             num[i+1] = undefined;
  68.         }
  69.         if(op[i] == '/'){
  70.             op[i] = undefined;
  71.             num[i] = num[i]/num[i+1];
  72.             num[i+1] = undefined;
  73.         }
  74.     }
  75.     n1 = [];
  76.     o1 = [];
  77.     for(i=0; i<num.length; i++){
  78.         if(num[i] != undefined){
  79.             n1[n1.length] = num[i];
  80.         }
  81.     }
  82.    
  83.     for(i=0; i<op.length; i++){
  84.         if(op[i] != undefined){
  85.             o1[o1.length] = op[i];
  86.         }
  87.     }
  88.     op = o1;
  89.     num = n1;
  90.     sol = num[0];
  91.     for(i=0; i<op.length; i++){
  92.         if(op[i] == '+'){
  93.             sol = sol + num[i+1];
  94.         }if(op[i] == '-'){
  95.             sol = sol - num[i+1];
  96.         }
  97.     }
  98.     if(is.length != 0){
  99.         i = is[is.length-1];
  100.         is.length--;
  101.     }
  102.     return sol;
  103. }
  104. function found(word, text){
  105.     text += ' ';
  106.     n = 0;
  107.     fnd = false;
  108.     for(i = 0; i < text.length-word.length; i++){
  109.         n = 0;
  110.         for(j = 0; j < word.length; j++){
  111.             if(word[j] == text[i+j]){
  112.                 n++;
  113.             }
  114.         }
  115.         if(n == word.length){
  116.             fnd = true;
  117.         }
  118.     }
  119.     return fnd;
  120. }
  121. function count(word, text){
  122.     var cnt = 0;
  123.     var fnd = 0;
  124.     for(let i = 0; i < text.length; i++){
  125.         if(text[i] == word[cnt]){
  126.             cnt += 1;
  127.         }else{
  128.             cnt = 0;
  129.         }
  130.         if(cnt == word.length){
  131.             cnt = 0;
  132.             fnd++;
  133.         }
  134.     }
  135.     return fnd;
  136. }
  137.  
  138. n = 0;
  139. a = false;
  140. str = '';
  141. welp = 0;
  142. saved = [];
  143. names = [];
  144. cmd = [];
  145. stats = {};
  146. sock.on("connect", () => {
  147.     sock.emit('user joined', 'Europe (e!help)', '#00AAFF', '', '');
  148.     sock.emit('message', 'Use e!help for more commands.\n' + str);
  149.     sock.on('message', function (data){
  150.         msg = data.msg;
  151.         nick = data.nick;
  152.         welp += count('welp', msg.toLowerCase())
  153.         console.log(nick + ':' + msg);
  154.         if(msg.toLowerCase() == 'e!help'){
  155.             sock.emit('message', '+---------------------------------+\n|         LIST OF COMMANDS        |\n+---------------------------------+\n| e!help           Show help page |\n| e!roll <sides>   Random number  |\n| e!save <text>    Save text      |\n| e!read           Read all text  |\n| e!calc           Calculate      |\n| e!circles        Run Circles.io |\n| e!runner         Platformer     |\n| e!vote <user>    Vote for       |\n| e!status <user>  Show votes     |\n  | e!welps          Welp count     |\n+---------------------------------+');
  156.         }
  157.         if(msg.toLowerCase() == 'e!read'){
  158.             str = '';
  159.             for(i = 0; i < saved.length; i += 2){
  160.                 str += names[i] + ': ' + saved[i] + '\n';
  161.             }
  162.             sock.emit('message', str);
  163.         }
  164.         msg += ' ';
  165.         str = '';
  166.         cmd = [];
  167.         for(i = 0; i < msg.length; i++){
  168.             if(msg[i] == ' '){
  169.                 cmd[cmd.length] = str;
  170.                 str = '';
  171.             }else{
  172.                 str += msg[i];
  173.             }
  174.         }
  175.         if(cmd[0].toLowerCase() == 'e!save'){
  176.             saved[saved.length] = '';
  177.             for(i = 1; i < cmd.length; i++){
  178.                 saved[saved.length-1] += cmd[i] + ' ';
  179.             }
  180.             names[names.length] = nick;
  181.         }
  182.         if(cmd[0].toLowerCase() == 'e!roll'){
  183.             if(cmd[1] ==undefined){
  184.                 cmd[1] = 6;
  185.             }
  186.             sock.emit('message', ' __\n|_|| ---> You rolled ' + (Math.floor(Math.random()*Number(cmd[1]))+1).toString() + '!');
  187.         }if(cmd[0].toLowerCase() == 'e!calc'){
  188.             c_text = "";
  189.             for(i=1; i<cmd.length; i++){
  190.                 c_text += cmd[i];
  191.             }
  192.             sock.emit('message', 'Your solution is ' + calc(c_text).toString() + '.');
  193.         }
  194.         if(cmd[0].toLowerCase() == 'e!circles'){
  195.             sock.emit('message', '/exe js $window("https://serene-beyond-31143.herokuapp.com/");$window.current.changeSize({width:640,height:480});$window.current.changeTitle("Circles");');
  196.         }
  197.         if(cmd[0].toLowerCase() == 'e!vote' && cmd.length > 1){
  198.             if(stats[cmd[1].toLowerCase()] != undefined){
  199.                 if(!(nick in stats[cmd[1].toLowerCase()])){
  200.                     stats[cmd[1].toLowerCase()].push(nick);
  201.                     sock.emit('message', 'Thanks for voting!');
  202.                 }else{
  203.                     sock.emit('message', 'You have already voted for this user!');
  204.                 }
  205.             }else{
  206.                 stats[cmd[1].toLowerCase()] = [nick];
  207.                 sock.emit('message', 'Thanks for voting!');
  208.             }
  209.         }if(cmd[0].toLowerCase() == 'e!status' && cmd.length > 1){
  210.             if(stats[cmd[1].toLowerCase()] != undefined){
  211.                 sock.emit('message', 'Votes: ' + stats[cmd[1].toLowerCase()].length.toString());
  212.             }else{
  213.                 sock.emit('message', 'This user has not been voted for yet.');
  214.             }
  215.         }if(cmd[0].toLowerCase() == 'e!runner'){
  216.             sock.emit('message', '/exe js $window("https://v6p9d9t4.ssl.hwcdn.net/html/1314430/index.html");$window.current.changeSize({width:640,height:480});$window.current.changeTitle("Matrix runner");');
  217.         }
  218.         if(cmd[0].toLowerCase() == 'e!welps'){
  219.             welp--;
  220.             sock.emit('message', welp.toString() + ' found.');
  221.         }
  222.     });
  223. });
  224. rl.on('line', (input) => {
  225.     sock.emit('message', input);
  226. });
RAW Paste Data