Exemple #1
0
        public override void OnNoticeReceived(AVIMNotice notice)
        {
            bool visible = notice.RawData.GetValue <bool>("toggle", true);

            Play.Room.SetVisible(visible);
            base.OnNoticeReceived(notice);
        }
Exemple #2
0
        public override void OnNoticeReceived(AVIMNotice notice)
        {
            bool opened = notice.RawData.GetValue <bool>("toggle", true);

            Play.Room.SetOpened(opened);
            base.OnNoticeReceived(notice);
        }
Exemple #3
0
        public override void OnNoticeReceived(AVIMNotice notice)
        {
            var propObjs = notice.RawData["props"] as List <object>;

            if (propObjs != null)
            {
                propObjs.Every(metaData =>
                {
                    var prop = metaData as IDictionary <string, object>;
                    if (prop != null)
                    {
                        var clientId = prop["clientId"] as string;
                        if (clientId != null)
                        {
                            var player = Play.Room.GetPlayer(clientId);

                            var customProperties = prop["customProperties"] as IDictionary <string, object>;
                            if (player != null)
                            {
                                player.CustomPropertiesMetaData.Merge(customProperties);
                            }
                            Play.InvokeEvent(PlayEventCode.OnPlayerCustomPropertiesChanged, player, customProperties.ToHashtable());
                        }
                    }
                });
            }
        }
        public override void OnNoticeReceived(AVIMNotice notice)
        {
            var transformation = notice.RawData["attr"] as IDictionary <string, object>;

            Play.RoomUpdated(transformation);
            base.OnNoticeReceived(notice);
        }
Exemple #5
0
        public virtual Player RestorePlayer(AVIMNotice notice)
        {
            var clientId = notice.RawData["initBy"] as string;
            var player   = Play.Room.GetPlayer(clientId);

            return(player);
        }
Exemple #6
0
        public virtual void OnNoticeReceived(AVIMNotice notice)
        {
            var response = new PlayResponse(notice.RawData);

            if (response.IsSuccessful)
            {
                if (Done != null)
                {
                    Done(Command, response);
                }
            }
            //Play.LogCommand(Command, null, Play.CommandType.WebSocket);
            //Play.LogCommand(null, response, Play.CommandType.WebSocket);
            if (EventCode != PlayEventCode.None)
            {
                var next = PlayStateMachine.Next(EventCode, response);
                if (response.IsSuccessful)
                {
                    Play.InvokeEvent(next);
                }
                else
                {
                    Play.InvokeEvent(next, response.ErrorCode, response.ErrorReason);
                }
            }
            Play.UnsubscribeNoticeReceived(this);
        }
Exemple #7
0
        public override void OnNoticeReceived(AVIMNotice notice)
        {
            var player = this.RestorePlayer(notice);

            Play.PlayerOffline(player);
            base.OnNoticeReceived(notice);
        }
        public override void OnNoticeReceived(AVIMNotice notice)
        {
            var initBt            = notice.RawData["initBy"] as string;
            var newMasterClientId = notice.RawData["masterClientId"] as string;

            Play.MasterClientSwitch(initBt, newMasterClientId);
            base.OnNoticeReceived(notice);
        }
Exemple #9
0
 public bool ProtocolHook(AVIMNotice notice)
 {
     if (notice.CommandName != "direct")
     {
         return(false);
     }
     return(true);
 }
Exemple #10
0
        public override void OnNoticeReceived(AVIMNotice notice)
        {
            var player = this.RestorePlayer(notice);

            Play.Room.RemovePlayer(player.UserID);
            Play.PlayerLeft(player);
            base.OnNoticeReceived(notice);
        }
Exemple #11
0
        public virtual Player NewPlayer(AVIMNotice notice)
        {
            var clientId = notice.RawData["initBy"] as string;
            var actorId  = int.Parse(notice.RawData["memberId"].ToString());
            var player   = new Player(clientId, actorId);

            return(player);
        }
Exemple #12
0
        public override void OnNoticeReceived(AVIMNotice notice)
        {
            var newPlayer = this.NewPlayer(notice);

            Play.Room.AddPlayer(newPlayer);
            if (newPlayer.UserID != Play.Player.UserID)
            {
                Play.NewPlayerJoined(newPlayer);
            }
            base.OnNoticeReceived(notice);
        }
Exemple #13
0
 private static void Play_NoticeReceived(object sender, AVIMNotice e)
 {
     foreach (var listener in lisenters)
     {
         var approved = listener.ProtocolHook(e);
         if (approved)
         {
             listener.OnNoticeReceived(e);
             break;
         }
     }
 }
Exemple #14
0
 public virtual bool ProtocolHook(AVIMNotice notice)
 {
     if (!notice.RawData.ContainsKey("i"))
     {
         return(false);
     }
     if (int.Parse(notice.RawData["i"].ToString()) != Command.SocketCommandId)
     {
         return(false);
     }
     return(true);
 }
 public override void OnNoticeReceived(AVIMNotice notice)
 {
     lock (Play.roomLock)
     {
         var player = this.RestorePlayer(notice);
         if (player != null)
         {
             Play.PlayerOnline(player);
         }
         base.OnNoticeReceived(notice);
     }
 }
Exemple #16
0
 public virtual bool ProtocolHook(AVIMNotice notice)
 {
     if (notice.CommandName != "conv")
     {
         return(false);
     }
     if (!notice.RawData.ContainsKey("op"))
     {
         return(false);
     }
     if (notice.RawData.ContainsKey("i"))
     {
         return(false);
     }
     if (notice.RawData["op"].ToString() != this.MatchedOp)
     {
         return(false);
     }
     return(true);
 }
Exemple #17
0
        private static void RoomConnection_OnMessage(string obj)
        {
            try
            {
                lock (noticeMutext)
                {
                    Log("sokcet<=" + obj);

                    var metaNoticeFromServer = Json.Parse(obj) as IDictionary <string, object>;

                    var validator = AVIMNotice.IsValidLeanCloudProtocol(metaNoticeFromServer);

                    if (validator)
                    {
                        var notice = new AVIMNotice(metaNoticeFromServer);
                        m_NoticeReceived?.Invoke(peer, notice);
                    }
                }
            }
            catch (Exception ex)
            {
                if (ex.InnerException != null)
                {
                    Log(ex.InnerException.Source);
                }
                if (ex.Source != null)
                {
                    Log(ex.Source);
                }
                if (ex.StackTrace != null)
                {
                    Log(ex.StackTrace);
                }

                Log(ex.Message);
            }
        }
 internal PlayRpcMessage(AVIMNotice notice)
 {
     this.Deserialize(notice.RawData["msg"] as string);
 }
Exemple #19
0
 public virtual void OnNoticeReceived(AVIMNotice notice)
 {
 }
Exemple #20
0
        public void OnNoticeReceived(AVIMNotice notice)
        {
            var rpcMessage = new PlayRpcMessage(notice);

            Play.ReceivedRPC(rpcMessage);
        }