Advertisement
Zerquix18

Airtower.cs

Apr 22nd, 2017
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 15.34 KB | None | 0 0
  1. class com.clubpenguin.net.Airtower
  2. {
  3.     var shell, LOGIN_IP, LOGIN_PORT_EVEN, LOGIN_PORT_ODD, on_login_response, on_world_response;
  4.     function Airtower(shell, loginServer)
  5.     {
  6.         this.shell = shell;
  7.         LOGIN_IP = loginServer.ip[shell.randBetween(0, loginServer.ip.length - 1)];
  8.         LOGIN_PORT_EVEN = loginServer.even_port;
  9.         LOGIN_PORT_ODD = loginServer.odd_port;
  10.         server = new com.clubpenguin.net.Connection();
  11.     } // End of the function
  12.     function addListener(type, func, scope)
  13.     {
  14.         if (type == undefined || func == undefined)
  15.         {
  16.             shell.$e("addListner() -> You must pass a valid listener type and function! type: " + type + " func: " + func);
  17.             return (false);
  18.         } // end if
  19.         var _loc3 = this.getListenersArray(type);
  20.         var _loc4 = this.getListenerIndex(_loc3, func);
  21.         if (_loc4 == -1)
  22.         {
  23.             shell.$d("[airtower] Successfully added listener to: \"" + type + "\"");
  24.             _loc3.push({func: func, scope: scope});
  25.             return (true);
  26.         } // end if
  27.         shell.$d("[airtower] Failed to add listener. Tried to add a duplicate listener to: \"" + type + "\"");
  28.         return (false);
  29.     } // End of the function
  30.     function removeListener(type, func)
  31.     {
  32.         var _loc2 = this.getListenersArray(type);
  33.         var _loc3 = this.getListenerIndex(_loc2, func);
  34.         if (_loc3 != -1)
  35.         {
  36.             shell.$d("[airtower] Successfully removed listener from: \"" + type + "\"");
  37.             _loc2.splice(_loc3, 1);
  38.             return (true);
  39.         } // end if
  40.         shell.$d("[airtower] Failed to remove listener which did not exist from: \"" + type + "\"");
  41.         return (false);
  42.     } // End of the function
  43.     function getListenerIndex(array, func)
  44.     {
  45.         var _loc2 = array.length;
  46.         for (var _loc1 = 0; _loc1 < _loc2; ++_loc1)
  47.         {
  48.             if (array[_loc1].func == func)
  49.             {
  50.                 return (_loc1);
  51.             } // end if
  52.         } // end of for
  53.         return (-1);
  54.     } // End of the function
  55.     function updateListeners(type, obj)
  56.     {
  57.         var _loc3 = this.getListenersArray(type);
  58.         var _loc5 = _loc3.length;
  59.         if (_loc5 < 1)
  60.         {
  61.             shell.$d("[airtower] No listeners currently attached to: \"" + type + "\"");
  62.             return (false);
  63.         } // end if
  64.         if (_loc5 == 1)
  65.         {
  66.             _loc3[0].scope ? (_loc3[0].func.call(_loc3[0].scope, obj)) : (_loc3[0].func(obj));
  67.             return (true);
  68.         } // end if
  69.         for (var _loc2 = 0; _loc2 < _loc5; ++_loc2)
  70.         {
  71.             _loc3[_loc2].scope ? (_loc3[_loc2].func.call(_loc3[_loc2].scope, obj)) : (_loc3[_loc2].func(obj));
  72.         } // end of for
  73.         return (true);
  74.     } // End of the function
  75.     function getListenersArray(type)
  76.     {
  77.         if (sf_listener_container[type] == undefined)
  78.         {
  79.             sf_listener_container[type] = new Array();
  80.         } // end if
  81.         return (sf_listener_container[type]);
  82.     } // End of the function
  83.     function onAirtowerResponse(eventData, type)
  84.     {
  85.         var _loc2 = eventData.shift();
  86.         this.updateListeners(_loc2, eventData);
  87.     } // End of the function
  88.     function setConnection(connection)
  89.     {
  90.         server = connection || server;
  91.     } // End of the function
  92.     function connectToLogin(in_username, in_pass, login_response)
  93.     {
  94.         if (!is_logged_in)
  95.         {
  96.             on_login_response = login_response;
  97.             username = in_username;
  98.             password = in_pass;
  99.             server.onConnection = com.clubpenguin.util.Delegate.create(this, handleLoginConnection);
  100.             server.onRandomKey = com.clubpenguin.util.Delegate.create(this, handleLoginRandomKey);
  101.             server.onExtensionResponse = com.clubpenguin.util.Delegate.create(this, onAirtowerResponse);
  102.             server.debug = true;
  103.             this.addListener(HANDLE_LOGIN, handleOnLogin, this);
  104.             var _loc2 = this.getLoginServerPort(in_username);
  105.             server.connect(LOGIN_IP, _loc2);
  106.         }
  107.         else
  108.         {
  109.             shell.$e("connectToLogin() -> Your already logged in! Cant login again");
  110.         } // end else if
  111.     } // End of the function
  112.     function getLoginServerPort(nickname)
  113.     {
  114.         var _loc2 = nickname.charCodeAt(0);
  115.         if (_loc2 % 2 == 0)
  116.         {
  117.             return (LOGIN_PORT_EVEN);
  118.         } // end if
  119.         return (LOGIN_PORT_ODD);
  120.     } // End of the function
  121.     function handleLostConnection()
  122.     {
  123.         this.updateListeners(CONNECTION_LOST, null);
  124.     } // End of the function
  125.     function handleLoginConnection(success)
  126.     {
  127.         if (success)
  128.         {
  129.             server.getRandomKey();
  130.         }
  131.         else
  132.         {
  133.             server.disconnect();
  134.             this.on_login_response(false);
  135.         } // end else if
  136.     } // End of the function
  137.     function handleLoginRandomKey(key)
  138.     {
  139.         rand_key = key;
  140.         this.login();
  141.     } // End of the function
  142.     function login()
  143.     {
  144.         server.login(com.clubpenguin.net.Airtower.LOGIN_ZONE, username, this.getLoginHash());
  145.     } // End of the function
  146.     function handleOnLogin(obj)
  147.     {
  148.         this.removeListener(HANDLE_LOGIN, handleOnLogin);
  149.         server.disconnect();
  150.         shell.setMyPlayerId(obj[1]);
  151.         playerId = obj[1];
  152.         shell.updateWorldPopulations(obj[4]);
  153.         shell.setWorldsWithBuddies(obj[3]);
  154.         login_key = obj[2];
  155.         this.on_login_response(true);
  156.         is_logged_in = true;
  157.     } // End of the function
  158.     function connectToRedemption(server_ip, server_port, connect_to_world_response)
  159.     {
  160.         isRedemption = true;
  161.         on_world_response = connect_to_world_response;
  162.         server.onConnection = com.clubpenguin.util.Delegate.create(this, handleWorldConnection);
  163.         server.onRandomKey = com.clubpenguin.util.Delegate.create(this, handleWorldRandomKey);
  164.         this.addListener(HANDLE_LOGIN, joinWorld, this);
  165.         server.connect(server_ip, server_port);
  166.     } // End of the function
  167.     function connectToWorld(server_ip, server_port, connect_to_world_response)
  168.     {
  169.         isRedemption = false;
  170.         on_world_response = connect_to_world_response;
  171.         server.onConnection = com.clubpenguin.util.Delegate.create(this, handleWorldConnection);
  172.         server.onRandomKey = com.clubpenguin.util.Delegate.create(this, handleWorldRandomKey);
  173.         this.addListener(HANDLE_LOGIN, joinWorld, this);
  174.         server.connect(server_ip, server_port);
  175.     } // End of the function
  176.     function handleWorldConnection(success)
  177.     {
  178.         if (success)
  179.         {
  180.             server.getRandomKey();
  181.         }
  182.         else
  183.         {
  184.             server.onConnection = null;
  185.             server.onConnectionLost = null;
  186.             server.onRandomKey = null;
  187.             server.onExtensionResponse = null;
  188.             this.on_world_response(false, false, false, false, false);
  189.             on_world_response = null;
  190.         } // end else if
  191.     } // End of the function
  192.     function handleWorldRandomKey(key)
  193.     {
  194.         rand_key = key;
  195.         this.worldLogin();
  196.     } // End of the function
  197.     function worldLogin()
  198.     {
  199.         var _loc2 = login_key;
  200.         server.login(com.clubpenguin.net.Airtower.SERVER_ZONE, username, _loc2);
  201.     } // End of the function
  202.     function joinWorld()
  203.     {
  204.         this.removeListener(HANDLE_LOGIN, joinWorld);
  205.         server.onConnectionLost = com.clubpenguin.util.Delegate.create(this, handleLostConnection);
  206.         var _loc2 = new Array();
  207.         _loc2.push(playerId);
  208.         _loc2.push(login_key);
  209.         _loc2.push(shell.getLanguageAbbriviation());
  210.         var _loc3 = com.clubpenguin.util.QueryParams.getQueryParams();
  211.         if (Number(_loc3.rm))
  212.         {
  213.             _loc2.push(Number(_loc3.rm));
  214.         } // end if
  215.         if (isRedemption)
  216.         {
  217.             this.addListener(REDEMPTION_JOIN_WORLD, handleJoinRedemption, this);
  218.             this.send(REDEMPTION, REDEMPTION_JOIN_WORLD, _loc2, "str", -1);
  219.             return;
  220.         } // end if
  221.         this.addListener(JOIN_WORLD, handleJoinWorld, this);
  222.         this.send(PLAY_EXT, NAVIGATION + "#" + JOIN_WORLD, _loc2, "str", -1);
  223.     } // End of the function
  224.     function handleJoinRedemption(obj)
  225.     {
  226.         this.removeListener(REDEMPTION_JOIN_WORLD, handleJoinRedemption);
  227.         var _loc4 = new Array();
  228.         var _loc5 = new Array();
  229.         var _loc6 = false;
  230.         var _loc7 = obj.shift();
  231.         if (obj[0] != "")
  232.         {
  233.             _loc4 = obj[0];
  234.         } // end if
  235.         if (obj[1] != "")
  236.         {
  237.             _loc5 = obj[1];
  238.         } // end if
  239.         if (obj[2] != "")
  240.         {
  241.             _loc6 = Boolean(Number(obj[2]));
  242.         } // end if
  243.         var _loc3 = new Array();
  244.         _loc3[0] = _loc4;
  245.         _loc3[1] = _loc5;
  246.         _loc3[2] = _loc6;
  247.         this.on_world_response(_loc3);
  248.         on_world_response = undefined;
  249.     } // End of the function
  250.     function handleJoinWorld(obj)
  251.     {
  252.         this.removeListener(JOIN_WORLD, handleJoinWorld);
  253.         var _loc6 = Boolean(Number(obj[1]));
  254.         var _loc3 = Boolean(Number(obj[2]));
  255.         var _loc5 = Boolean(Number(obj[3]));
  256.         var _loc4 = Boolean(Number(obj[4]));
  257.         this.on_world_response(true, _loc6, _loc3, _loc5, _loc4);
  258.         on_world_response = undefined;
  259.     } // End of the function
  260.     function send(extension, command, arr, type, room_id)
  261.     {
  262.         server.sendXtMessage(extension, command, arr, type, room_id);
  263.     } // End of the function
  264.     function disconnect()
  265.     {
  266.         if (server.connected())
  267.         {
  268.             server.disconnect();
  269.         }
  270.         else
  271.         {
  272.             shell.$d("[airtower] disconnect() -> Trying to disconnect the server when its not connected");
  273.         } // end else if
  274.     } // End of the function
  275.     function getLoginHash()
  276.     {
  277.         return (password);
  278.     } // End of the function
  279.     function hex_md5(s)
  280.     {
  281.         return (com.clubpenguin.crypto.MD5.hash(s));
  282.     } // End of the function
  283.     function encryptPassword(pass)
  284.     {
  285.         var _loc1 = com.clubpenguin.crypto.MD5.hash(pass);
  286.         _loc1 = _loc1.substr(16, 16) + "" + _loc1.substr(0, 16);
  287.         return (_loc1);
  288.     } // End of the function
  289.     static var linkageId = "__Packages.com.clubpenguin.net.Airtower";
  290.     static var serializable = Object.registerClass(com.clubpenguin.net.Airtower.linkageId, com.clubpenguin.net.Airtower);
  291.     var STRING_TYPE = "str";
  292.     var XML_TYPE = "xml";
  293.     var PLAY_EXT = "s";
  294.     var GAME_EXT = "z";
  295.     var NAVIGATION = "j";
  296.     var PLAYER_HANDLER = "u";
  297.     var ITEM_HANDLER = "i";
  298.     var IGNORE_HANDLER = "n";
  299.     var BUDDY_HANDLER = "b";
  300.     var TOY_HANDLER = "t";
  301.     var TABLE_HANDLER = "a";
  302.     var IGLOO_HANDLER = "g";
  303.     var PET_HANDLER = "p";
  304.     var MESSAGE_HANDLER = "m";
  305.     var MAIL_HANDLER = "l";
  306.     var SURVEY_HANDLER = "e";
  307.     var WADDLE = "w";
  308.     var SETTING_HANDLER = "s";
  309.     var MODERATION_HANDLER = "o";
  310.     var NINJA_HANDLER = "ni";
  311.     var ROOM_HANDLER = "r";
  312.     var REDEMPTION = "red";
  313.     var REDEMPTION_JOIN_WORLD = "rjs";
  314.     var HANDLE_LOGIN = "l";
  315.     var HANDLE_ALERT = "a";
  316.     var HANDLE_ERROR = "e";
  317.     var GET_BUDDY_LIST = "gb";
  318.     var GET_IGNORE_LIST = "gn";
  319.     var GET_PLAYER = "gp";
  320.     var GET_ROOM_LIST = "gr";
  321.     var GET_TABLE = "gt";
  322.     var JOIN_WORLD = "js";
  323.     var JOIN_ROOM = "jr";
  324.     var REFRESH_ROOM = "grs";
  325.     var LOAD_PLAYER = "lp";
  326.     var ADD_PLAYER = "ap";
  327.     var REMOVE_PLAYER = "rp";
  328.     var UPDATE_PLAYER = "up";
  329.     var PLAYER_MOVE = "sp";
  330.     var PLAYER_FRAME = "sf";
  331.     var PLAYER_ACTION = "sa";
  332.     var OPEN_BOOK = "at";
  333.     var CLOSE_BOOK = "rt";
  334.     var THROW_BALL = "sb";
  335.     var JOIN_GAME = "jg";
  336.     var SEND_MESSAGE = "sm";
  337.     var SEND_BLOCKED_MESSAGE = "mm";
  338.     var SEND_EMOTE = "se";
  339.     var SEND_JOKE = "sj";
  340.     var SEND_SAFE_MESSAGE = "ss";
  341.     var SEND_LINE_MESSAGE = "sl";
  342.     var SEND_QUICK_MESSAGE = "sq";
  343.     var SEND_TOUR_GUIDE_MESSAGE = "sg";
  344.     var COIN_DIG_UPDATE = "cdu";
  345.     var GET_INVENTORY_LIST = "gi";
  346.     var MAIL_START_ENGINE = "mst";
  347.     var GET_MAIL = "mg";
  348.     var SEND_MAIL = "ms";
  349.     var RECEIVE_MAIL = "mr";
  350.     var DELETE_MAIL = "md";
  351.     var DELETE_MAIL_FROM_PLAYER = "mdp";
  352.     var GET_MAIL_DETAILS = "mgd";
  353.     var MAIL_CHECKED = "mc";
  354.     var GAME_OVER = "zo";
  355.     var BUY_INVENTORY = "ai";
  356.     var CHECK_INVENTORY = "qi";
  357.     var ADD_IGNORE = "an";
  358.     var REMOVE_IGNORE = "rn";
  359.     var REMOVE_BUDDY = "rb";
  360.     var REQUEST_BUDDY = "br";
  361.     var ACCEPT_BUDDY = "ba";
  362.     var BUDDY_ONLINE = "bon";
  363.     var BUDDY_OFFLINE = "bof";
  364.     var FIND_BUDDY = "bf";
  365.     var GET_PLAYER_OBJECT = "gp";
  366.     var REPORT_PLAYER = "r";
  367.     var UPDATE_PLAYER_COLOUR = "upc";
  368.     var UPDATE_PLAYER_HEAD = "uph";
  369.     var UPDATE_PLAYER_FACE = "upf";
  370.     var UPDATE_PLAYER_NECK = "upn";
  371.     var UPDATE_PLAYER_BODY = "upb";
  372.     var UPDATE_PLAYER_HAND = "upa";
  373.     var UPDATE_PLAYER_FEET = "upe";
  374.     var UPDATE_PLAYER_FLAG = "upl";
  375.     var UPDATE_PLAYER_PHOTO = "upp";
  376.     var UPDATE_PLAYER_REMOVE = "upr";
  377.     var GET_FURNITURE_LIST = "gf";
  378.     var UPDATE_ROOM = "up";
  379.     var UPDATE_FLOOR = "ag";
  380.     var UPDATE_IGLOO_TYPE = "au";
  381.     var UNLOCK_IGLOO = "or";
  382.     var LOCK_IGLOO = "cr";
  383.     var UPDATE_IGLOO_MUSIC = "um";
  384.     var GET_IGLOO_DETAILS = "gm";
  385.     var JOIN_PLAYER_IGLOO = "jp";
  386.     var SAVE_IGLOO_FURNITURE = "ur";
  387.     var GET_IGLOO_LIST = "gr";
  388.     var BUY_FURNITURE = "af";
  389.     var SEND_IGLOO = "sig";
  390.     var GET_OWNED_IGLOOS = "go";
  391.     var ACTIVATE_IGLOO = "ao";
  392.     var GET_MY_PLAYER_PUFFLES = "pgu";
  393.     var GET_PLAYER_PUFFLES = "pg";
  394.     var PUFFLE_FRAME = "ps";
  395.     var PUFFLE_MOVE = "pm";
  396.     var REST_PUFFLE = "pr";
  397.     var BATH_PUFFLE = "pb";
  398.     var PLAY_PUFFLE = "pp";
  399.     var FEED_PUFFLE = "pf";
  400.     var WALK_PUFFLE = "pw";
  401.     var TREAT_PUFFLE = "pt";
  402.     var INTERACTION_PLAY = "ip";
  403.     var INTERACTION_REST = "ir";
  404.     var INTERACTION_FEED = "if";
  405.     var PUFFLE_INIT_INTERACTION_PLAY = "pip";
  406.     var PUFFLE_INIT_INTERACTION_REST = "pir";
  407.     var ADOPT_PUFFLE = "pn";
  408.     var UPDATE_TABLE = "ut";
  409.     var GET_TABLE_POPULATION = "gt";
  410.     var JOIN_TABLE = "jt";
  411.     var LEAVE_TABLE = "lt";
  412.     var UPDATE_WADDLE = "uw";
  413.     var GET_WADDLE_POPULATION = "gw";
  414.     var JOIN_WADDLE = "jw";
  415.     var LEAVE_WADDLE = "lw";
  416.     var START_WADDLE = "sw";
  417.     var SEND_WADDLE = "jx";
  418.     var SPY_PHONE_REQUEST = "spy";
  419.     var HEARTBEAT = "h";
  420.     var TIMEOUT = "t";
  421.     var MODERATOR_ACTION = "ma";
  422.     var KICK = "k";
  423.     var MUTE = "m";
  424.     var BAN = "b";
  425.     var SEND_MASCOT_MESSAGE = "sma";
  426.     var DONATE = "dc";
  427.     var POLL = "spl";
  428.     var CONNECTION_LOST = "con";
  429.     var GET_CARDS = "gcd";
  430.     var GET_NINJA_LEVEL = "gnl";
  431.     var GET_FIRE_LEVEL = "gfl";
  432.     var GET_WATER_LEVEL = "gwl";
  433.     var GET_NINJA_RANKS = "gnr";
  434.     var GET_LAST_REVISION = "glr";
  435.     static var LOGIN_ZONE = "w1";
  436.     static var SERVER_ZONE = "w1";
  437.     var server_ip = "";
  438.     var server_port = 0;
  439.     var username = "";
  440.     var password = "";
  441.     var playerId = -1;
  442.     var rand_key = "";
  443.     var login_key = "";
  444.     var is_logged_in = false;
  445.     var server = null;
  446.     var sf_listener_container = new Object();
  447.     var isRedemption = false;
  448. } // End of Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement