home *** CD-ROM | disk | FTP | other *** search
- package it.gotoandplay.smartfoxserver.handlers
- {
- import flash.utils.getTimer;
- import it.gotoandplay.smartfoxserver.SFSEvent;
- import it.gotoandplay.smartfoxserver.SmartFoxClient;
- import it.gotoandplay.smartfoxserver.data.Room;
- import it.gotoandplay.smartfoxserver.data.User;
- import it.gotoandplay.smartfoxserver.util.Entities;
- import it.gotoandplay.smartfoxserver.util.ObjectSerializer;
-
- public class SysHandler implements IMessageHandler
- {
-
-
- private var sfs:SmartFoxClient;
-
- private var handlersTable:Array;
-
- public function SysHandler(param1:SmartFoxClient)
- {
- super();
- this.sfs = param1;
- handlersTable = [];
- handlersTable["apiOK"] = this.handleApiOK;
- handlersTable["apiKO"] = this.handleApiKO;
- handlersTable["logOK"] = this.handleLoginOk;
- handlersTable["logKO"] = this.handleLoginKo;
- handlersTable["rmList"] = this.handleRoomList;
- handlersTable["uCount"] = this.handleUserCountChange;
- handlersTable["joinOK"] = this.handleJoinOk;
- handlersTable["joinKO"] = this.handleJoinKo;
- handlersTable["uER"] = this.handleUserEnterRoom;
- handlersTable["userGone"] = this.handleUserLeaverRoom;
- handlersTable["pubMsg"] = this.handlePublicMessage;
- handlersTable["prvMsg"] = this.handlePrivateMessage;
- handlersTable["dmnMsg"] = this.handleAdminMessage;
- handlersTable["modMsg"] = this.handleModMessage;
- handlersTable["dataObj"] = this.handleASObject;
- handlersTable["rVarsUpdate"] = this.handleRoomVarsUpdate;
- handlersTable["roomAdd"] = this.handleRoomAdded;
- handlersTable["roomDel"] = this.handleRoomDeleted;
- handlersTable["rndK"] = this.handleRandomKey;
- handlersTable["roundTripRes"] = this.handleRoundTripBench;
- handlersTable["uVarsUpdate"] = this.handleUserVarsUpdate;
- handlersTable["createRmKO"] = this.handleCreateRoomError;
- handlersTable["bList"] = this.handleBuddyList;
- handlersTable["bUpd"] = this.handleBuddyListUpdate;
- handlersTable["bAdd"] = this.handleBuddyAdded;
- handlersTable["roomB"] = this.handleBuddyRoom;
- handlersTable["leaveRoom"] = this.handleLeaveRoom;
- handlersTable["swSpec"] = this.handleSpectatorSwitched;
- }
-
- private function handleRoomDeleted(param1:Object) : void
- {
- var _loc2_:int = 0;
- var _loc3_:Array = null;
- var _loc4_:Object = null;
- var _loc5_:SFSEvent = null;
- _loc2_ = int(param1.body.rm.@id);
- _loc3_ = sfs.getAllRooms();
- (_loc4_ = {}).room = _loc3_[_loc2_];
- delete _loc3_[_loc2_];
- _loc5_ = new SFSEvent(SFSEvent.onRoomDeleted,_loc4_);
- sfs.dispatchEvent(_loc5_);
- }
-
- public function handleMessage(param1:Object, param2:String) : void
- {
- var _loc3_:XML = null;
- var _loc4_:String = null;
- var _loc5_:Function = null;
- _loc3_ = param1 as XML;
- _loc4_ = _loc3_.body.@action;
- if((_loc5_ = handlersTable[_loc4_]) != null)
- {
- _loc5_.apply(this,[param1]);
- }
- else
- {
- trace("Unknown sys command: " + _loc4_);
- }
- }
-
- public function handleUserEnterRoom(param1:Object) : void
- {
- var _loc2_:int = 0;
- var _loc3_:int = 0;
- var _loc4_:String = null;
- var _loc5_:* = false;
- var _loc6_:* = false;
- var _loc7_:int = 0;
- var _loc8_:XMLList = null;
- var _loc9_:Room = null;
- var _loc10_:User = null;
- var _loc11_:Object = null;
- var _loc12_:SFSEvent = null;
- _loc2_ = int(param1.body.@r);
- _loc3_ = int(param1.body.u.@i);
- _loc4_ = String(param1.body.u.n);
- _loc5_ = param1.body.u.@m == "1";
- _loc6_ = param1.body.u.@s == "1";
- _loc7_ = param1.body.u.@p != null ? int(param1.body.u.@p) : -1;
- _loc8_ = param1.body.u.vars["var"];
- _loc9_ = sfs.getRoom(_loc2_);
- (_loc10_ = new User(_loc3_,_loc4_)).setModerator(_loc5_);
- _loc10_.setIsSpectator(_loc6_);
- _loc10_.setPlayerId(_loc7_);
- _loc9_.addUser(_loc10_,_loc3_);
- if(param1.body.u.vars.toString().length > 0)
- {
- populateVariables(_loc10_.getVariables(),param1.body.u);
- }
- (_loc11_ = {}).roomId = _loc2_;
- _loc11_.user = _loc10_;
- _loc12_ = new SFSEvent(SFSEvent.onUserEnterRoom,_loc11_);
- sfs.dispatchEvent(_loc12_);
- }
-
- public function handleUserVarsUpdate(param1:Object) : void
- {
- var _loc2_:int = 0;
- var _loc3_:int = 0;
- var _loc4_:User = null;
- var _loc5_:Array = null;
- var _loc6_:Object = null;
- var _loc7_:SFSEvent = null;
- _loc2_ = int(param1.body.@r);
- _loc3_ = int(param1.body.user.@id);
- _loc4_ = sfs.getRoom(_loc2_).getUser(_loc3_);
- _loc5_ = [];
- if(param1.body.vars.toString().length > 0)
- {
- populateVariables(_loc4_.getVariables(),param1.body,_loc5_);
- }
- (_loc6_ = {}).user = _loc4_;
- _loc6_.changedVars = _loc5_;
- _loc7_ = new SFSEvent(SFSEvent.onUserVariablesUpdate,_loc6_);
- sfs.dispatchEvent(_loc7_);
- }
-
- public function handleUserLeaverRoom(param1:Object) : void
- {
- var _loc2_:int = 0;
- var _loc3_:int = 0;
- var _loc4_:Room = null;
- var _loc5_:String = null;
- var _loc6_:Object = null;
- var _loc7_:SFSEvent = null;
- _loc2_ = int(param1.body.user.@id);
- _loc3_ = int(param1.body.@r);
- _loc5_ = (_loc4_ = sfs.getRoom(_loc3_)).getUser(_loc2_).getName();
- _loc4_.removeUser(_loc2_);
- (_loc6_ = {}).roomId = _loc3_;
- _loc6_.userId = _loc2_;
- _loc6_.userName = _loc5_;
- _loc7_ = new SFSEvent(SFSEvent.onUserLeaveRoom,_loc6_);
- sfs.dispatchEvent(_loc7_);
- }
-
- public function handlePrivateMessage(param1:Object) : void
- {
- var _loc2_:int = 0;
- var _loc3_:int = 0;
- var _loc4_:String = null;
- var _loc5_:User = null;
- var _loc6_:Object = null;
- var _loc7_:SFSEvent = null;
- _loc2_ = int(param1.body.@r);
- _loc3_ = int(param1.body.user.@id);
- _loc4_ = String(param1.body.txt);
- _loc5_ = sfs.getRoom(_loc2_).getUser(_loc3_);
- (_loc6_ = {}).message = Entities.decodeEntities(_loc4_);
- _loc6_.sender = _loc5_;
- _loc6_.roomId = _loc2_;
- _loc6_.userId = _loc3_;
- _loc7_ = new SFSEvent(SFSEvent.onPrivateMessage,_loc6_);
- sfs.dispatchEvent(_loc7_);
- }
-
- private function handleCreateRoomError(param1:Object) : void
- {
- var _loc2_:String = null;
- var _loc3_:Object = null;
- var _loc4_:SFSEvent = null;
- _loc2_ = String(param1.body.room.@e);
- _loc3_ = {};
- _loc3_.error = _loc2_;
- _loc4_ = new SFSEvent(SFSEvent.onCreateRoomError,_loc3_);
- sfs.dispatchEvent(_loc4_);
- }
-
- private function handleBuddyRoom(param1:Object) : void
- {
- var _loc2_:String = null;
- var _loc3_:Array = null;
- var _loc4_:int = 0;
- var _loc5_:Object = null;
- var _loc6_:SFSEvent = null;
- _loc2_ = String(param1.body.br.@r);
- _loc3_ = _loc2_.split(",");
- _loc4_ = 0;
- while(_loc4_ < _loc3_.length)
- {
- _loc3_[_loc4_] = int(_loc3_[_loc4_]);
- _loc4_++;
- }
- (_loc5_ = {}).idList = _loc3_;
- _loc6_ = new SFSEvent(SFSEvent.onBuddyRoom,_loc5_);
- sfs.dispatchEvent(_loc6_);
- }
-
- private function handleBuddyListUpdate(param1:Object) : void
- {
- var _loc2_:Object = null;
- var _loc3_:SFSEvent = null;
- var _loc4_:Object = null;
- var _loc5_:XMLList = null;
- var _loc6_:Object = null;
- var _loc7_:Boolean = false;
- var _loc8_:String = null;
- var _loc9_:XML = null;
- _loc2_ = {};
- _loc3_ = null;
- if(param1.body.b != null)
- {
- (_loc4_ = {}).isOnline = param1.body.b.@s == "1" ? true : false;
- _loc4_.name = param1.body.b.n.toString();
- _loc4_.id = param1.body.b.@i;
- _loc4_.variables = {};
- if((_loc5_ = param1.body.b.vs).toString().length > 0)
- {
- for each(_loc9_ in _loc5_.v)
- {
- _loc4_.variables[_loc9_.@n.toString()] = _loc9_.v.toString();
- }
- }
- _loc6_ = null;
- _loc7_ = false;
- for(_loc8_ in sfs.buddyList)
- {
- if((_loc6_ = sfs.buddyList[_loc8_]).name == _loc4_.name)
- {
- sfs.buddyList[_loc8_] = _loc4_;
- _loc7_ = true;
- break;
- }
- }
- _loc2_.buddy = _loc4_;
- _loc3_ = new SFSEvent(SFSEvent.onBuddyListUpdate,_loc2_);
- sfs.dispatchEvent(_loc3_);
- }
- else
- {
- _loc2_.error = param1.body.err.toString();
- _loc3_ = new SFSEvent(SFSEvent.onBuddyListError,_loc2_);
- sfs.dispatchEvent(_loc3_);
- }
- }
-
- public function handleUserCountChange(param1:Object) : void
- {
- var _loc2_:int = 0;
- var _loc3_:int = 0;
- var _loc4_:int = 0;
- var _loc5_:Room = null;
- var _loc6_:Object = null;
- var _loc7_:SFSEvent = null;
- _loc2_ = int(param1.body.@u);
- _loc3_ = int(param1.body.@s);
- _loc4_ = int(param1.body.@r);
- if((_loc5_ = sfs.getAllRooms()[_loc4_]) != null)
- {
- _loc5_.setUserCount(_loc2_);
- _loc5_.setSpectatorCount(_loc3_);
- (_loc6_ = {}).room = _loc5_;
- _loc7_ = new SFSEvent(SFSEvent.onUserCountChange,_loc6_);
- sfs.dispatchEvent(_loc7_);
- }
- }
-
- private function handleRandomKey(param1:Object) : void
- {
- var _loc2_:String = null;
- var _loc3_:Object = null;
- var _loc4_:SFSEvent = null;
- _loc2_ = String(param1.body.k.toString());
- _loc3_ = {};
- _loc3_.key = _loc2_;
- _loc4_ = new SFSEvent(SFSEvent.onRandomKey,_loc3_);
- sfs.dispatchEvent(_loc4_);
- }
-
- public function handlePublicMessage(param1:Object) : void
- {
- var _loc2_:int = 0;
- var _loc3_:int = 0;
- var _loc4_:String = null;
- var _loc5_:User = null;
- var _loc6_:Object = null;
- var _loc7_:SFSEvent = null;
- _loc2_ = int(param1.body.@r);
- _loc3_ = int(param1.body.user.@id);
- _loc4_ = String(param1.body.txt);
- _loc5_ = sfs.getRoom(_loc2_).getUser(_loc3_);
- (_loc6_ = {}).message = Entities.decodeEntities(_loc4_);
- _loc6_.sender = _loc5_;
- _loc6_.roomId = _loc2_;
- _loc7_ = new SFSEvent(SFSEvent.onPublicMessage,_loc6_);
- sfs.dispatchEvent(_loc7_);
- }
-
- public function handleAdminMessage(param1:Object) : void
- {
- var _loc2_:int = 0;
- var _loc3_:int = 0;
- var _loc4_:String = null;
- var _loc5_:Object = null;
- var _loc6_:SFSEvent = null;
- _loc2_ = int(param1.body.@r);
- _loc3_ = int(param1.body.user.@id);
- _loc4_ = String(param1.body.txt);
- (_loc5_ = {}).message = Entities.decodeEntities(_loc4_);
- _loc6_ = new SFSEvent(SFSEvent.onAdminMessage,_loc5_);
- sfs.dispatchEvent(_loc6_);
- }
-
- public function dispatchDisconnection() : void
- {
- var _loc1_:SFSEvent = null;
- _loc1_ = new SFSEvent(SFSEvent.onConnectionLost,null);
- sfs.dispatchEvent(_loc1_);
- }
-
- private function handleSpectatorSwitched(param1:Object) : void
- {
- var _loc2_:int = 0;
- var _loc3_:Object = null;
- var _loc4_:SFSEvent = null;
- _loc2_ = int(param1.body.rm.@id);
- sfs.playerId = int(param1.body.pid.@id);
- _loc3_ = {};
- _loc3_.success = sfs.playerId > 0;
- _loc3_.newId = sfs.playerId;
- _loc3_.room = sfs.getRoom(_loc2_);
- _loc4_ = new SFSEvent(SFSEvent.onSpectatorSwitched,_loc3_);
- sfs.dispatchEvent(_loc4_);
- }
-
- public function handleLoginOk(param1:Object) : void
- {
- var _loc2_:int = 0;
- var _loc3_:int = 0;
- var _loc4_:String = null;
- var _loc5_:Object = null;
- var _loc6_:SFSEvent = null;
- _loc2_ = int(param1.body.login.@id);
- _loc3_ = int(param1.body.login.@mod);
- _loc4_ = String(param1.body.login.@n);
- sfs.amIModerator = _loc3_ == 1;
- sfs.myUserId = _loc2_;
- sfs.myUserName = _loc4_;
- sfs.playerId = -1;
- (_loc5_ = {}).success = true;
- _loc5_.name = _loc4_;
- _loc5_.error = "";
- _loc6_ = new SFSEvent(SFSEvent.onLogin,_loc5_);
- sfs.dispatchEvent(_loc6_);
- sfs.getRoomList();
- }
-
- public function handleRoomVarsUpdate(param1:Object) : void
- {
- var _loc2_:int = 0;
- var _loc3_:int = 0;
- var _loc4_:Room = null;
- var _loc5_:Array = null;
- var _loc6_:Object = null;
- var _loc7_:SFSEvent = null;
- _loc2_ = int(param1.body.@r);
- _loc3_ = int(param1.body.user.@id);
- _loc4_ = sfs.getRoom(_loc2_);
- _loc5_ = [];
- if(param1.body.vars.toString().length > 0)
- {
- populateVariables(_loc4_.getVariables(),param1.body,_loc5_);
- }
- (_loc6_ = {}).room = _loc4_;
- _loc6_.changedVars = _loc5_;
- _loc7_ = new SFSEvent(SFSEvent.onRoomVariablesUpdate,_loc6_);
- sfs.dispatchEvent(_loc7_);
- }
-
- public function handleRoomList(param1:Object) : void
- {
- var _loc2_:Array = null;
- var _loc3_:XML = null;
- var _loc4_:Object = null;
- var _loc5_:SFSEvent = null;
- var _loc6_:int = 0;
- var _loc7_:Room = null;
- _loc2_ = sfs.getAllRooms();
- for each(_loc3_ in param1.body.rmList.rm)
- {
- _loc6_ = int(_loc3_.@id);
- _loc7_ = new Room(_loc6_,_loc3_.n,int(_loc3_.@maxu),int(_loc3_.@maxs),_loc3_.@temp == "1",_loc3_.@game == "1",_loc3_.@priv == "1",_loc3_.@lmb == "1",int(_loc3_.@ucnt),int(_loc3_.@scnt));
- if(_loc3_.vars.toString().length > 0)
- {
- populateVariables(_loc7_.getVariables(),_loc3_);
- }
- _loc2_[_loc6_] = _loc7_;
- }
- (_loc4_ = {}).roomList = _loc2_;
- _loc5_ = new SFSEvent(SFSEvent.onRoomListUpdate,_loc4_);
- sfs.dispatchEvent(_loc5_);
- }
-
- private function handleBuddyAdded(param1:Object) : void
- {
- var _loc2_:Object = null;
- var _loc3_:XMLList = null;
- var _loc4_:Object = null;
- var _loc5_:SFSEvent = null;
- var _loc6_:XML = null;
- _loc2_ = {};
- _loc2_.isOnline = param1.body.b.@s == "1" ? true : false;
- _loc2_.name = param1.body.b.n.toString();
- _loc2_.id = param1.body.b.@i;
- _loc2_.variables = {};
- _loc3_ = param1.body.b.vs;
- if(_loc3_.toString().length > 0)
- {
- for each(_loc6_ in _loc3_.v)
- {
- _loc2_.variables[_loc6_.@n.toString()] = _loc6_.v.toString();
- }
- }
- sfs.buddyList.push(_loc2_);
- (_loc4_ = {}).list = sfs.buddyList;
- _loc5_ = new SFSEvent(SFSEvent.onBuddyList,_loc4_);
- sfs.dispatchEvent(_loc5_);
- }
-
- private function handleRoomAdded(param1:Object) : void
- {
- var _loc2_:int = 0;
- var _loc3_:String = null;
- var _loc4_:int = 0;
- var _loc5_:int = 0;
- var _loc6_:Boolean = false;
- var _loc7_:Boolean = false;
- var _loc8_:Boolean = false;
- var _loc9_:Boolean = false;
- var _loc10_:Room = null;
- var _loc11_:Array = null;
- var _loc12_:Object = null;
- var _loc13_:SFSEvent = null;
- _loc2_ = int(param1.body.rm.@id);
- _loc3_ = String(param1.body.rm.name);
- _loc4_ = int(param1.body.rm.@max);
- _loc5_ = int(param1.body.rm.@spec);
- _loc6_ = param1.body.rm.@temp == "1" ? true : false;
- _loc7_ = param1.body.rm.@game == "1" ? true : false;
- _loc8_ = param1.body.rm.@priv == "1" ? true : false;
- _loc9_ = param1.body.rm.@limbo == "1" ? true : false;
- _loc10_ = new Room(_loc2_,_loc3_,_loc4_,_loc5_,_loc6_,_loc7_,_loc8_,_loc9_);
- (_loc11_ = sfs.getAllRooms())[_loc2_] = _loc10_;
- if(param1.body.rm.vars.toString().length > 0)
- {
- populateVariables(_loc10_.getVariables(),param1.body.rm);
- }
- (_loc12_ = {}).room = _loc10_;
- _loc13_ = new SFSEvent(SFSEvent.onRoomAdded,_loc12_);
- sfs.dispatchEvent(_loc13_);
- }
-
- private function populateVariables(param1:Array, param2:Object, param3:Array = null) : void
- {
- var _loc4_:XML = null;
- var _loc5_:String = null;
- var _loc6_:String = null;
- var _loc7_:String = null;
- for each(_loc4_ in param2.vars["var"])
- {
- _loc5_ = String(_loc4_.@n);
- _loc6_ = _loc4_.@t;
- _loc7_ = _loc4_;
- if(param3 != null)
- {
- param3.push(_loc5_);
- param3[_loc5_] = true;
- }
- if(_loc6_ == "b")
- {
- param1[_loc5_] = Boolean(_loc7_);
- }
- else if(_loc6_ == "n")
- {
- param1[_loc5_] = Number(_loc7_);
- }
- else if(_loc6_ == "s")
- {
- param1[_loc5_] = _loc7_;
- }
- else if(_loc6_ == "x")
- {
- delete param1[_loc5_];
- }
- }
- }
-
- private function handleLeaveRoom(param1:Object) : void
- {
- var _loc2_:int = 0;
- var _loc3_:Object = null;
- var _loc4_:SFSEvent = null;
- _loc2_ = int(param1.body.rm.@id);
- _loc3_ = {};
- _loc3_.roomId = _loc2_;
- _loc4_ = new SFSEvent(SFSEvent.onRoomLeft,_loc3_);
- sfs.dispatchEvent(_loc4_);
- }
-
- public function handleLoginKo(param1:Object) : void
- {
- var _loc2_:Object = null;
- var _loc3_:SFSEvent = null;
- _loc2_ = {};
- _loc2_.success = false;
- _loc2_.error = param1.body.login.@e;
- _loc3_ = new SFSEvent(SFSEvent.onLogin,_loc2_);
- sfs.dispatchEvent(_loc3_);
- }
-
- public function handleModMessage(param1:Object) : void
- {
- var _loc2_:int = 0;
- var _loc3_:int = 0;
- var _loc4_:String = null;
- var _loc5_:User = null;
- var _loc6_:Object = null;
- var _loc7_:SFSEvent = null;
- _loc2_ = int(param1.body.@r);
- _loc3_ = int(param1.body.user.@id);
- _loc4_ = String(param1.body.txt);
- _loc5_ = sfs.getRoom(_loc2_).getUser(_loc3_);
- (_loc6_ = {}).message = Entities.decodeEntities(_loc4_);
- _loc6_.sender = _loc5_;
- _loc7_ = new SFSEvent(SFSEvent.onModeratorMessage,_loc6_);
- sfs.dispatchEvent(_loc7_);
- }
-
- public function handleApiOK(param1:Object) : void
- {
- var _loc2_:SFSEvent = null;
- sfs.isConnected = true;
- _loc2_ = new SFSEvent(SFSEvent.onConnection,{"success":true});
- sfs.dispatchEvent(_loc2_);
- }
-
- private function handleRoundTripBench(param1:Object) : void
- {
- var _loc2_:int = 0;
- var _loc3_:int = 0;
- var _loc4_:Object = null;
- var _loc5_:SFSEvent = null;
- _loc2_ = getTimer();
- _loc3_ = _loc2_ - sfs.getBenchStartTime();
- (_loc4_ = {}).elapsed = _loc3_;
- _loc5_ = new SFSEvent(SFSEvent.onRoundTripResponse,_loc4_);
- sfs.dispatchEvent(_loc5_);
- }
-
- public function handleJoinOk(param1:Object) : void
- {
- var _loc2_:int = 0;
- var _loc3_:XMLList = null;
- var _loc4_:XMLList = null;
- var _loc5_:int = 0;
- var _loc6_:Room = null;
- var _loc7_:XML = null;
- var _loc8_:Object = null;
- var _loc9_:SFSEvent = null;
- var _loc10_:String = null;
- var _loc11_:int = 0;
- var _loc12_:Boolean = false;
- var _loc13_:Boolean = false;
- var _loc14_:int = 0;
- var _loc15_:User = null;
- _loc2_ = int(param1.body.@r);
- _loc3_ = param1.body;
- _loc4_ = param1.body.uLs.u;
- _loc5_ = int(param1.body.pid.@id);
- sfs.activeRoomId = _loc2_;
- _loc6_ = sfs.getRoom(_loc2_);
- sfs.playerId = _loc5_;
- _loc6_.setMyPlayerIndex(_loc5_);
- if(_loc3_.vars.toString().length > 0)
- {
- _loc6_.clearVariables();
- populateVariables(_loc6_.getVariables(),_loc3_);
- }
- for each(_loc7_ in _loc4_)
- {
- _loc10_ = String(_loc7_.n);
- _loc11_ = int(_loc7_.@i);
- _loc12_ = _loc7_.@m == "1" ? true : false;
- _loc13_ = _loc7_.@s == "1" ? true : false;
- _loc14_ = _loc7_.p == undefined ? -1 : int(_loc7_.p);
- (_loc15_ = new User(_loc11_,_loc10_)).setModerator(_loc12_);
- _loc15_.setIsSpectator(_loc13_);
- _loc15_.setPlayerId(_loc14_);
- if(_loc7_.vars.toString().length > 0)
- {
- populateVariables(_loc15_.getVariables(),_loc7_);
- }
- _loc6_.addUser(_loc15_,_loc11_);
- }
- sfs.changingRoom = false;
- (_loc8_ = {}).room = _loc6_;
- _loc9_ = new SFSEvent(SFSEvent.onJoinRoom,_loc8_);
- sfs.dispatchEvent(_loc9_);
- }
-
- public function handleJoinKo(param1:Object) : void
- {
- var _loc2_:Object = null;
- var _loc3_:SFSEvent = null;
- sfs.changingRoom = false;
- _loc2_ = {};
- _loc2_.error = param1.body.error.@msg;
- _loc3_ = new SFSEvent(SFSEvent.onJoinRoomError,_loc2_);
- sfs.dispatchEvent(_loc3_);
- }
-
- public function handleASObject(param1:Object) : void
- {
- var _loc2_:int = 0;
- var _loc3_:int = 0;
- var _loc4_:String = null;
- var _loc5_:User = null;
- var _loc6_:Object = null;
- var _loc7_:Object = null;
- var _loc8_:SFSEvent = null;
- _loc2_ = int(param1.body.@r);
- _loc3_ = int(param1.body.user.@id);
- _loc4_ = String(param1.body.dataObj);
- _loc5_ = sfs.getRoom(_loc2_).getUser(_loc3_);
- _loc6_ = ObjectSerializer.getInstance().deserialize(new XML(_loc4_));
- (_loc7_ = {}).obj = _loc6_;
- _loc7_.sender = _loc5_;
- _loc8_ = new SFSEvent(SFSEvent.onObjectReceived,_loc7_);
- sfs.dispatchEvent(_loc8_);
- }
-
- private function handleBuddyList(param1:Object) : void
- {
- var _loc2_:XMLList = null;
- var _loc3_:Object = null;
- var _loc4_:Object = null;
- var _loc5_:SFSEvent = null;
- var _loc6_:XML = null;
- var _loc7_:XMLList = null;
- var _loc8_:XML = null;
- _loc2_ = param1.body.bList;
- _loc4_ = {};
- _loc5_ = null;
- if(_loc2_ != null && _loc2_.b.length != null)
- {
- if(_loc2_.toString().length > 0)
- {
- for each(_loc6_ in _loc2_.b)
- {
- _loc3_ = {};
- _loc3_.isOnline = _loc6_.@s == "1" ? true : false;
- _loc3_.name = _loc6_.n.toString();
- _loc3_.id = _loc6_.@i;
- _loc3_.variables = {};
- if((_loc7_ = _loc6_.vs).toString().length > 0)
- {
- for each(_loc8_ in _loc7_.v)
- {
- _loc3_.variables[_loc8_.@n.toString()] = _loc8_.v.toString();
- }
- }
- sfs.buddyList.push(_loc3_);
- }
- }
- _loc4_.list = sfs.buddyList;
- _loc5_ = new SFSEvent(SFSEvent.onBuddyList,_loc4_);
- sfs.dispatchEvent(_loc5_);
- }
- else
- {
- _loc4_.error = param1.body.err.toString();
- _loc5_ = new SFSEvent(SFSEvent.onBuddyListError,_loc4_);
- sfs.dispatchEvent(_loc5_);
- }
- }
-
- public function handleApiKO(param1:Object) : void
- {
- var _loc2_:Object = null;
- var _loc3_:SFSEvent = null;
- _loc2_ = {};
- _loc2_.success = false;
- _loc2_.error = "API are obsolete, please upgrade";
- _loc3_ = new SFSEvent(SFSEvent.onConnection,_loc2_);
- sfs.dispatchEvent(_loc3_);
- }
- }
- }
-