Advertisement
Guest User

Agar.io connect

a guest
May 30th, 2015
286
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name         Agar Server Selector
  3. // @namespace    
  4. // @version      1.102
  5. // @description  Modifies the agar.io server select page to be useful.
  6. // @author       Ununoctium118
  7. // @match        http://agar.io
  8. // @grant        none
  9. // ==/UserScript==
  10.  
  11. // Clear the dialog box
  12. var selector = $('#region');
  13.  
  14. // Load the server list
  15. var selected;
  16.  
  17. var regionTable = {
  18.     'US-Atlanta': 'US East',
  19.     'US-Fremont': 'US West',
  20.     'EU-London': 'Europe',
  21.     'JP-Tokyo': 'East Asia',
  22.     'SG-Singapore': 'Oceania',
  23.     'RU-Russia': 'Russia',
  24.     'CN-China': 'China',
  25.     'BR-Brazil': 'South America',
  26. };
  27.  
  28. $.getJSON('http://m.agar.io/fullInfo', function(serverList) {
  29.     var output = [];
  30.     serverList.servers.sort(function (a, b) {
  31.         var x = regionTable[a.region], y = regionTable[b.region];
  32.         return ((x < y) ? - 1 : ((x > y) ? 1 : 0));
  33.     });
  34.     $.each(serverList.servers, function(index, server) {
  35.         output.push('<option value="' + server.ip + '">' + regionTable[server.region] + ' (' + server.ip + ') (' + server.numPlayers + ' players)</option>');
  36.     });
  37.     selector.html(output.join(''));
  38. });
  39.  
  40.  
  41. // Add our extra onchangelistener
  42. selector.on('change', function() {
  43.     selected = selector.val() + ':443';
  44. });
  45.  
  46.  
  47. // Intercept requests for m.agar.io and instead return our data.
  48. var realAjax = $.ajax;
  49. $.ajax = function() {
  50.     if(arguments[0] == 'http://m.agar.io/') {
  51.         var callback = arguments[1].success;
  52.         // The selector callback probably hasn't run yet.
  53.         // Really should use a promise or something here.
  54.         var doReturn = function() {
  55.             if(!selected) {
  56.                 setTimeout(doReturn, 50);
  57.                 return;
  58.             }
  59.             callback(selected);
  60.         }
  61.         doReturn();
  62.     } else {
  63.         // Use irl ajax
  64.         return realAjax.apply(this, arguments);
  65.     }
  66. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement