Exemplo n.º 1
0
        void InitializeSessionCallback(SQLQueryHolder <AccountInfoQueryLoad> realmHolder, SQLQueryHolder <AccountInfoQueryLoad> holder)
        {
            LoadAccountData(realmHolder.GetResult(AccountInfoQueryLoad.GlobalAccountDataIndexPerRealm), AccountDataTypes.GlobalCacheMask);
            LoadTutorialsData(realmHolder.GetResult(AccountInfoQueryLoad.TutorialsIndexPerRealm));
            _collectionMgr.LoadAccountToys(holder.GetResult(AccountInfoQueryLoad.GlobalAccountToys));
            _collectionMgr.LoadAccountHeirlooms(holder.GetResult(AccountInfoQueryLoad.GlobalAccountHeirlooms));
            _collectionMgr.LoadAccountMounts(holder.GetResult(AccountInfoQueryLoad.Mounts));
            _collectionMgr.LoadAccountItemAppearances(holder.GetResult(AccountInfoQueryLoad.ItemAppearances), holder.GetResult(AccountInfoQueryLoad.ItemFavoriteAppearances));

            if (!m_inQueue)
            {
                SendAuthResponse(BattlenetRpcErrorCode.Ok, false);
            }
            else
            {
                SendAuthWaitQue(0);
            }

            SetInQueue(false);
            ResetTimeOutTime();

            SendSetTimeZoneInformation();
            SendFeatureSystemStatusGlueScreen();
            SendClientCacheVersion(WorldConfig.GetUIntValue(WorldCfg.ClientCacheVersion));
            SendAvailableHotfixes(WorldConfig.GetIntValue(WorldCfg.HotfixCacheVersion));
            SendTutorialsData();

            SQLResult result = holder.GetResult(AccountInfoQueryLoad.GlobalRealmCharacterCounts);

            if (!result.IsEmpty())
            {
                do
                {
                    _realmCharacterCounts[new RealmHandle(result.Read <byte>(3), result.Read <byte>(4), result.Read <uint>(2)).GetAddress()] = result.Read <byte>(1);
                } while (result.NextRow());
            }

            SetSessionState bnetConnected = new SetSessionState();

            bnetConnected.State = 1;
            SendPacket(bnetConnected);

            _battlePetMgr.LoadFromDB(holder.GetResult(AccountInfoQueryLoad.BattlePets), holder.GetResult(AccountInfoQueryLoad.BattlePetSlot));

            realmHolder = null;
            holder      = null;
        }
Exemplo n.º 2
0
 public SQLQueryHolderTask(SQLQueryHolder <R> holder)
 {
     m_holder = holder;
     m_result = new TaskCompletionSource <SQLQueryHolder <R> >();
 }