Example #1
0
 private void OnMatchmakingFail(MatchmakingReadyFail obj)
 {
     if (_onMatchmakingUpdate != null)
         _onMatchmakingUpdate(obj);
 }
Example #2
0
        public void UserLeave(Jid user)
        {
            lock (_users)
            {
				Log.InfoFormat("[{0}] {1} User Left",this, user);
                var usr = _users.FirstOrDefault(x => x == user);
                if (usr == null)
                    return;
                switch (State)
                {
                    case MatchmakingQueueState.WaitingForReadyUsers:
                    case MatchmakingQueueState.WaitingForHostedGame:
                        if (usr.IsInReadyQueue)
                        {
							Log.InfoFormat("[{0}] {1} User was in ready queue, so cancel that.",this,usr);
                            State = MatchmakingQueueState.WaitingForUsers;
                            foreach (var u in _users)
                            {
                                u.IsInReadyQueue = false;
                                u.IsReady = false;
                            }
                            var msg = new MatchmakingReadyFail(null, this.QueueId);
							Log.InfoFormat("[{0}] {1} Tell everyone ready queue failed.",this,usr);
                            foreach (var u in _users.Where(x => x.IsInReadyQueue && x != usr))
                            {
                                msg.To = u.JidUser;
                                this.Bot.Messanger.Send(msg);
                            }
                        }
                        break;
                }
				Log.InfoFormat("[{0}] {1} Actually remove the user",this,usr);
                _users.Remove(usr);
            }
        }