Advertisement
Icegoten

cmds.js

Mar 24th, 2012
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Say something
  2. function epicmafia_say(message) {
  3.     var current_whisper = [whisperon, whispertarget];
  4.     var current_contact = [contacton, contacttarget];
  5.     var current_vent = [ventriloon, venttarget, ventuser];
  6.     var current_message = $('#typebox').val();
  7.  
  8.     whisperon = false;
  9.     contacton = false;
  10.     ventriloon = false;
  11.  
  12.     $('#typebox').val(message).submit();
  13.  
  14.     whisperon = current_whisper[0];
  15.     whispertarget = current_whisper[1];
  16.     contacton = current_contact[0];
  17.     contacttarget = current_contact[1];
  18.     ventriloon = current_vent[0];
  19.     venttarget = current_vent[1];
  20.     ventuser = current_vent[2];
  21.     $('#typebox').val(current_message);
  22. }
  23.  
  24. // Whisper something
  25. function epicmafia_whisper(message, who) {
  26.     var current_whisper = [whisperon, whispertarget, leak];
  27.     var current_contact = [contacton, contacttarget];
  28.     var current_vent = [ventriloon, venttarget];
  29.     var current_message = $('#typebox').val();
  30.  
  31.     whisperon = true;
  32.     whispertarget = who;
  33.     contacton = false;
  34.     ventriloon = false;
  35.  
  36.     $('#typebox').val(message).submit();
  37.  
  38.     whisperon = current_whisper[0];
  39.     whispertarget = current_whisper[1];
  40.     leak = current_whisper[2];
  41.     contacton = current_contact[0];
  42.     contacttarget = current_contact[1];
  43.     ventriloon = current_vent[0];
  44.     venttarget = current_vent[1];
  45.     $('#typebox').val(current_message);
  46. }
  47.  
  48. // Contact something
  49. function epicmafia_contact(message, who) {
  50.     var current_whisper = [whisperon, whispertarget];
  51.     var current_contact = [contacton, contacttarget];
  52.     var current_vent = [ventriloon, venttarget];
  53.     var current_message = $('#typebox').val();
  54.  
  55.     whisperon = false;
  56.     contacton = true;
  57.     contacttarget = who;
  58.     ventriloon = false;
  59.  
  60.     $('#typebox').val(message).submit();
  61.  
  62.     whisperon = current_whisper[0];
  63.     whispertarget = current_whisper[1];
  64.     contacton = current_contact[0];
  65.     contacttarget = current_contact[1];
  66.     ventriloon = current_vent[0];
  67.     venttarget = current_vent[1];
  68.     $('#typebox').val(current_message);
  69. }
  70.  
  71. // Vent something
  72. function epicmafia_vent(message, who) {
  73.     var current_whisper = [whisperon, whispertarget];
  74.     var current_contact = [contacton, contacttarget];
  75.     var current_vent = [ventriloon, venttarget];
  76.     var current_message = $('#typebox').val();
  77.  
  78.     whisperon = false;
  79.     contacton = false;
  80.     ventriloon = true;
  81.     venttarget = who;
  82.  
  83.     $('#typebox').val(message).submit();
  84.  
  85.     whisperon = current_whisper[0];
  86.     whispertarget = current_whisper[1];
  87.     contacton = current_contact[0];
  88.     contacttarget = current_contact[1];
  89.     ventriloon = current_vent[0];
  90.     venttarget = current_vent[1];
  91.     $('#typebox').val(current_message);
  92. }
  93.  
  94. // Vote someone
  95. function epicmafia_vote(meet, who) {
  96.     orbit.sendcmd('point', {'user':user, 'meet':meet, 'unpoint':false, 'target':who});
  97. }
  98.  
  99. // Get someones avi
  100. function epicmafia_get_avi(who, type) {
  101.     var img = $('#' + who + '_id').children('img')[0].src;
  102.     var id = img.match(/(.+)\/uploads\/avatars\/(\d+)_thumb\.jpg/)[2];
  103.  
  104.     return 'http://epicmafia.com/uploads/avatars/' + id + '_' + type + '.jpg';
  105. }
  106.  
  107. // Message to yourself
  108. function epicmafia_fake_message(message) {
  109.     var msgObject = {};
  110.     msgObject.user = user;
  111.     msgObject.msg = message;
  112.    
  113.     cmdcenter('<', msgObject);
  114. }
  115.  
  116. ignorelist = {};
  117.  
  118. var inputEventHandler;
  119.  
  120. function registernormalspeak() {
  121.     if (document.input_chat) {
  122.         $(document.input_chat).unbind('submit');
  123.         $(document.input_chat).submit(function() { if (this.message.value!="") { this.message.value = handleChatCommands(this.message.value) }; return true; });
  124.         inputEventHandler = $(document.input_chat).data('events')['submit'][0];
  125.     }
  126.     registernormalspeak2();
  127. }
  128. // cmdcenter modifications
  129. function cmdcenter(b, a) {
  130.     if(b == '<' && (a.msg == 'sugoisugoisugoisugoisugoisugoisugoisugoisugoisugoisugoisugoisugoisugoisugoisugoisugoisugoisugoisugoisugoisugoisugoisugoisugois' || a.msg=='!bot_sugoi')) {
  131.         return;
  132.     }
  133.  
  134.     if(b != 'u' && b != 'k' && debug) {
  135.         console.log('cmd: ' + b + ';  args: ' + $.toJSON(a));
  136.     }
  137.  
  138.     bot_message(b, a);
  139.  
  140.     if(b == '<') {
  141.         a.msg = a.msg.replace(/&#47;/g, '/'); // unencode slashes
  142.         a.msg = a.msg.replace(/(https?:\/\/[^\s]+)/gi, '<a href="$1" rel="noreferrer" target="_blank">$1</a>'); // create links
  143.         a.msg = a.msg.replace('[video]','<iframe title="YouTube Vidya Playa" width="240" height="195" src="http://www.youtube.com/embed/'); //first part of video
  144.         a.msg = a.msg.replace('[/video]','" frameborder="0">'); // stolen from Headphone
  145.         a.msg = smilies(a.msg); //add rage faces and icons
  146.  
  147.         if(a.msg.substr(0,8) == '&gt;&gt;') { // RED AND LINK TO /V/
  148.             a.msg = '<div  display:inline-block;"><u><a style="color: #D00;" href="http://boards.4chan.org/v/res/'+a.msg.substr(8)+'" target="_blank">' + a.msg + '</a></u></div>';
  149.         } // thats stolen from Headphone too
  150.  
  151.         if(a.msg.substr(0,4) == '&gt;') { // green text
  152.             a.msg = '<div style="color: #789922; display:inline-block;">' + a.msg + '</div>';
  153.         }
  154.     } else { // dont do default actions for messages, since we need to completely override cmdcenter for longer names
  155.         cmdcenter2(b, a);
  156.         // cmdcenter keeps overriding submit, so lets add our handlerfunction
  157.         if (document.input_chat && inputEventHandler && $(document.input_chat).data('events')['submit'][0] != inputEventHandler) {
  158.             $(document.input_chat).submit(function() { if (this.message.value!="") { this.message.value = handleChatCommands(this.message.value) }; return true; });
  159.             var submitEvents = $(document.input_chat).data('events')['submit'];
  160.             inputEventHandler = submitEvents[submitEvents.length - 1];
  161.             var oldFirst = submitEvents[0];
  162.             submitEvents[0] = inputEventHandler;
  163.             submitEvents[submitEvents.length - 1] = oldFirst;
  164.             $(document.input_chat).data('events')['submit'] = submitEvents;
  165.         }
  166.     }
  167.  
  168.     if(b == '<') { // message action, with longer names added
  169.         if (a.user && a.user in ignorelist && ignorelist[a.user]) {
  170.             return;
  171.         }
  172.  
  173.         on_games(b, a);
  174.  
  175.         str = "<div id='cursay' class='talk";
  176.         if (a.contact) {
  177.             str += "'>";
  178.             str += a.user ? "<b class='sayimg_" + a.user + "'> " + a.user + " contacted the " + a.role + ": </b><span><div>" + a.msg + "</div></span></div>" : "<b>You received a message: </b><span class='special'>" + a.msg + "</span></div>"
  179.         } else {
  180.             if (a.dead) str += " dead";
  181.             if (a.whisper) str += "'><b class='sayimg_" + a.user + "'> " + a.user + "</b><b class='space'>whispers to</b><b class='sayimg_" + a.whisper + "'> " + a.whisper + "</b><span class='special'>" + a.msg + "</span></div>";
  182.             a.whisper || a.ventrilo || (str += "'><div class='name'><b class='sayimg_" + a.user + " name'> " + a.user + "</b></div><span><div class='msg'>" + a.msg + "</div></span></div>");
  183.             if (a.ventrilo) str += "'><b class='sayimg_" + a.user + "'> " + a.user + "</b><b class='space'> disguises as </b><b class='sayimg_" + a.ventuser + "'> " + a.ventuser + "</b><b class='space'> at " + (a.venttarget == "*" ? "everyone</b>" : "</b><b class='sayimg_" + a.venttarget + "'>" + a.venttarget + "</b>") + "<span class='special'>" + a.msg + "</span></div>"
  184.         }
  185.         $("#window").append(str);
  186.         $("#cursay").find("[class^=sayimg_]").each(function () {
  187.             var c = $(this).attr("class").split(" ")[0].split("_");
  188.             if (a.whisper || a.contact || a.ventrilo) $(this).before($("#teeny_" + c[1] + "_img").clone().css("display", "inline"));
  189.             else {
  190.                 path = $("#teeny_" + c[1] + "_img").attr("src");
  191.                 $(this).css("background-image", 'url("' + path + '")').css("background-repeat", "no-repeat").css("background-position", "center left");
  192.                 $(this).removeClass("sayimg_" + c[1])
  193.             }
  194.             name = $(this).text();
  195.             if (name.length > max_name_width) name = name.substr(0, max_name_width) + "..";
  196.             $(this).text(name)
  197.         });
  198.         $("#cursay .msg").html(a.msg);
  199.         $("#cursay").removeAttr("id");
  200.         divScroll.activeScroll();
  201.  
  202.     } else if(b == 'meet') {
  203.         if(a.meet in auto_target) {
  204.             orbit.sendcmd('point', {'user':user, 'meet':a.meet, 'unpoint':false, 'target':auto_target[a.meet]});
  205.         }
  206.  
  207.         venttarget = '*';
  208.  
  209.         if(bot_on) {
  210.             orbit.sendcmd('point', {'user':user, 'meet':a.meet, 'unpoint':false, 'target':a.basket[Math.floor(Math.random() * a.basket.length)]});
  211.         }
  212.     } else if(b == 'msg') {
  213.         on_log(b, a);
  214.     }
  215. }
  216.  
  217. var commands = { 'ignore' : ignoreUser,
  218.                  'unignore' : unignoreUser,
  219.                  'roulette' : chatRoulette,
  220.                  'randomAlive' : randomAlive,
  221.                  'potato' : chatPotato,
  222.                  'secretWord' : chatSecretWord,
  223.                  'taboo' : chatTaboo,
  224.                  'help' : botHelp};
  225.  
  226. function botHelp(message) {
  227.     var helpMsg = "Available commands: !ignore <name>, !unignore <name>, !roulette <bullets> <chambers>, !randomAlive, !potato <timeout?>, !secretWord <word>, !taboo <word>".replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
  228.     epicmafia_fake_message(helpMsg);
  229.     return "";
  230. }
  231.  
  232. function randomAlive(message) {
  233.     var random_alive = pick_random_alive();
  234.     return 'AND THE LOTTERY WINNER IS: ' + random_alive;
  235. }
  236. function chatRoulette(message) {
  237.     var matchResult = message.match(/^!roulette (\d+) (\d+)/);
  238.     if (matchResult != null) {
  239.         var bullets = matchResult[1];
  240.         var chambers = matchResult[2];
  241.         play_roulette(bullets, chambers);
  242.         // empty message will not send anything
  243.         return "";
  244.     }
  245.     return message;
  246. }
  247.  
  248. function chatPotato(message) {
  249.     var matchResult = message.match(/^!potato(?: (\d+))?/);
  250.     if (matchResult != null) {
  251.         hot_potato(matchResult[1]);
  252.         // empty message will not send anything
  253.         return "";
  254.     }
  255.     return message;
  256. }
  257.  
  258. function chatSecretWord(message) {
  259.     var matchResult = message.match(/^!secretWord (\w+)/);
  260.     if (matchResult != null) {
  261.         var word = matchResult[1];
  262.         play_secret_word(word);
  263.         // empty message will not send anything
  264.         return "";
  265.     }
  266.     return message;
  267. }
  268.  
  269. function chatTaboo(message) {
  270.     var matchResult = message.match(/^!taboo (\w+)/);
  271.     if (matchResult != null) {
  272.         var word = matchResult[1];
  273.         play_taboo(word);
  274.         // empty message will not send anything
  275.         return "";
  276.     }
  277.     return message;
  278. }
  279.  
  280. function ignoreUser(message) {
  281.     var matchResult = message.match(/^!ignore (\w+)/);
  282.     if (matchResult != null) {
  283.         var username = matchResult[1];
  284.         ignorelist[username] = true;
  285.         return "I am now ignoring " + username;
  286.     }
  287.     return message;
  288. }
  289.  
  290. function unignoreUser(message) {
  291.     var matchResult = message.match(/^!unignore (\w+)/);
  292.     if (matchResult != null) {
  293.         var username = matchResult[1];
  294.         ignorelist[username] = false;
  295.         return "I am no longer ignoring " + username;
  296.     }
  297.     return message
  298. }
  299.  
  300. // this function is called when a message is sent
  301. function handleChatCommands(message) {
  302.     var matchResult;
  303.     if ((matchResult = message.match(/^!(\w+)/)) != null) {
  304.         command = matchResult[1];
  305.         if (command in commands) {
  306.             return commands[command](message);
  307.         }
  308.     }
  309.     return message;
  310. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement