Esempio n. 1
0
        protected async UniTaskVoid HandleRequestDeleteCharacter(
            RequestHandlerData requestHandler,
            RequestDeleteCharacterMessage request,
            RequestProceedResultDelegate <ResponseDeleteCharacterMessage> result)
        {
#if UNITY_STANDALONE && !CLIENT_BUILD
            long connectionId = requestHandler.ConnectionId;
            CentralUserPeerInfo userPeerInfo;
            if (!userPeers.TryGetValue(connectionId, out userPeerInfo))
            {
                result.InvokeError(new ResponseDeleteCharacterMessage()
                {
                    message = UITextKeys.UI_ERROR_NOT_LOGGED_IN,
                });
                return;
            }
            AsyncResponseData <EmptyMessage> deleteResp = await DbServiceClient.DeleteCharacterAsync(new DeleteCharacterReq()
            {
                UserId      = userPeerInfo.userId,
                CharacterId = request.characterId
            });

            if (!deleteResp.IsSuccess)
            {
                result.InvokeError(new ResponseDeleteCharacterMessage()
                {
                    message = UITextKeys.UI_ERROR_INTERNAL_SERVER_ERROR,
                });
                return;
            }
            // Response
            result.InvokeSuccess(new ResponseDeleteCharacterMessage());
#endif
        }
        protected async UniTaskVoid HandleRequestUserLogout(
            RequestHandlerData requestHandler,
            EmptyMessage request,
            RequestProceedResultDelegate <EmptyMessage> result)
        {
#if UNITY_STANDALONE && !CLIENT_BUILD
            long connectionId = requestHandler.ConnectionId;
            CentralUserPeerInfo userPeerInfo;
            if (userPeers.TryGetValue(connectionId, out userPeerInfo))
            {
                userPeersByUserId.Remove(userPeerInfo.userId);
                userPeers.Remove(connectionId);
                AsyncResponseData <EmptyMessage> updateAccessTokenResp = await DbServiceClient.UpdateAccessTokenAsync(new UpdateAccessTokenReq()
                {
                    UserId      = userPeerInfo.userId,
                    AccessToken = string.Empty
                });

                if (!updateAccessTokenResp.IsSuccess)
                {
                    result.InvokeError(EmptyMessage.Value);
                    return;
                }
            }
            // Response
            result.InvokeSuccess(EmptyMessage.Value);
#endif
        }
        protected async UniTaskVoid HandleRequestDeleteCharacter(
            RequestHandlerData requestHandler,
            RequestDeleteCharacterMessage request,
            RequestProceedResultDelegate <ResponseDeleteCharacterMessage> result)
        {
            long connectionId = requestHandler.ConnectionId;

            ResponseDeleteCharacterMessage.Error error = ResponseDeleteCharacterMessage.Error.None;
            CentralUserPeerInfo userPeerInfo;

            if (!userPeers.TryGetValue(connectionId, out userPeerInfo))
            {
                error = ResponseDeleteCharacterMessage.Error.NotLoggedin;
            }
            else
            {
                await DbServiceClient.DeleteCharacterAsync(new DeleteCharacterReq()
                {
                    UserId      = userPeerInfo.userId,
                    CharacterId = request.characterId
                });
            }
            // Response
            result.Invoke(
                error == ResponseDeleteCharacterMessage.Error.None ? AckResponseCode.Success : AckResponseCode.Error,
                new ResponseDeleteCharacterMessage()
            {
                error = error,
            });
        }
        protected override async UniTask PreSpawnEntities()
        {
            // Spawn buildings
            if (!IsInstanceMap())
            {
                // Load buildings
                // Don't load buildings if it's instance map
                BuildingsResp resp = await DbServiceClient.ReadBuildingsAsync(new ReadBuildingsReq()
                {
                    MapName = CurrentMapInfo.Id,
                });

                HashSet <StorageId>     storageIds = new HashSet <StorageId>();
                List <BuildingSaveData> buildings  = resp.List;
                BuildingEntity          buildingEntity;
                foreach (BuildingSaveData building in buildings)
                {
                    buildingEntity = CreateBuildingEntity(building, true);
                    if (buildingEntity is StorageEntity)
                    {
                        storageIds.Add(new StorageId(StorageType.Building, (buildingEntity as StorageEntity).Id));
                    }
                }
                List <UniTask> tasks = new List <UniTask>();
                // Load building storage
                foreach (StorageId storageId in storageIds)
                {
                    tasks.Add(LoadStorageRoutine(storageId));
                }
                // Wait until all building storage loaded
                await UniTask.WhenAll(tasks);
            }
        }
Esempio n. 5
0
        public async UniTaskVoid HandleRequestAcceptGuildInvitation(RequestHandlerData requestHandler, RequestAcceptGuildInvitationMessage request, RequestProceedResultDelegate <ResponseAcceptGuildInvitationMessage> result)
        {
#if UNITY_STANDALONE && !CLIENT_BUILD
            await UniTask.Yield();

            BasePlayerCharacterEntity playerCharacter;
            if (!GameInstance.ServerUserHandlers.TryGetPlayerCharacter(requestHandler.ConnectionId, out playerCharacter))
            {
                result.InvokeError(new ResponseAcceptGuildInvitationMessage()
                {
                    message = UITextKeys.UI_ERROR_NOT_LOGGED_IN,
                });
                return;
            }
            ValidateGuildRequestResult validateResult = GameInstance.ServerGuildHandlers.CanAcceptGuildInvitation(request.guildId, playerCharacter);
            if (!validateResult.IsSuccess)
            {
                result.InvokeError(new ResponseAcceptGuildInvitationMessage()
                {
                    message = validateResult.GameMessage,
                });
                return;
            }
            playerCharacter.GuildId = request.guildId;
            validateResult.Guild.AddMember(playerCharacter);
            GameInstance.ServerGuildHandlers.SetGuild(request.guildId, validateResult.Guild);
            GameInstance.ServerGuildHandlers.RemoveGuildInvitation(request.guildId, playerCharacter.Id);
            // Save to database
            AsyncResponseData <GuildResp> updateResp = await DbServiceClient.UpdateCharacterGuildAsync(new UpdateCharacterGuildReq()
            {
                SocialCharacterData = SocialCharacterData.Create(playerCharacter),
                GuildId             = request.guildId,
                GuildRole           = validateResult.Guild.GetMemberRole(playerCharacter.Id)
            });

            if (!updateResp.IsSuccess)
            {
                result.InvokeError(new ResponseAcceptGuildInvitationMessage()
                {
                    message = UITextKeys.UI_ERROR_INTERNAL_SERVER_ERROR,
                });
                return;
            }
            // Broadcast via chat server
            if (ClusterClient.IsNetworkActive)
            {
                ClusterClient.SendAddSocialMember(MMOMessageTypes.UpdateGuildMember, request.guildId, playerCharacter.Id, playerCharacter.CharacterName, playerCharacter.DataId, playerCharacter.Level);
            }
            GameInstance.ServerGameMessageHandlers.SendSetGuildData(requestHandler.ConnectionId, validateResult.Guild);
            GameInstance.ServerGameMessageHandlers.SendAddGuildMembersToOne(requestHandler.ConnectionId, validateResult.Guild);
            GameInstance.ServerGameMessageHandlers.SendAddGuildMemberToMembers(validateResult.Guild, playerCharacter.Id, playerCharacter.CharacterName, playerCharacter.DataId, playerCharacter.Level);
            // Send message to inviter
            GameInstance.ServerGameMessageHandlers.SendGameMessageByCharacterId(request.inviterId, UITextKeys.UI_GUILD_INVITATION_ACCEPTED);
            // Response to invitee
            result.InvokeSuccess(new ResponseAcceptGuildInvitationMessage()
            {
                message = UITextKeys.UI_GUILD_INVITATION_ACCEPTED,
            });
#endif
        }
Esempio n. 6
0
        private async UniTaskVoid HandleRequestDeleteCharacterRoutine(LiteNetLibMessageHandler messageHandler)
        {
            long connectionId = messageHandler.connectionId;
            RequestDeleteCharacterMessage message = messageHandler.ReadMessage <RequestDeleteCharacterMessage>();

            ResponseDeleteCharacterMessage.Error error = ResponseDeleteCharacterMessage.Error.None;
            CentralUserPeerInfo userPeerInfo;

            if (!userPeers.TryGetValue(connectionId, out userPeerInfo))
            {
                error = ResponseDeleteCharacterMessage.Error.NotLoggedin;
            }
            else
            {
                await DbServiceClient.DeleteCharacterAsync(new DeleteCharacterReq()
                {
                    UserId      = userPeerInfo.userId,
                    CharacterId = message.characterId
                });
            }
            ResponseDeleteCharacterMessage responseMessage = new ResponseDeleteCharacterMessage();

            responseMessage.ackId        = message.ackId;
            responseMessage.responseCode = error == ResponseDeleteCharacterMessage.Error.None ? AckResponseCode.Success : AckResponseCode.Error;
            responseMessage.error        = error;
            ServerSendResponse(connectionId, MMOMessageTypes.ResponseDeleteCharacter, responseMessage);
        }
Esempio n. 7
0
        public async UniTaskVoid IncreaseGuildExp(IPlayerCharacterData playerCharacter, int exp)
        {
#if UNITY_STANDALONE && !CLIENT_BUILD
            ValidateGuildRequestResult validateResult = this.CanIncreaseGuildExp(playerCharacter, exp);
            if (!validateResult.IsSuccess)
            {
                return;
            }
            AsyncResponseData <GuildResp> resp = await DbServiceClient.IncreaseGuildExpAsync(new IncreaseGuildExpReq()
            {
                GuildId = validateResult.GuildId,
                Exp     = exp,
            });

            if (!resp.IsSuccess)
            {
                return;
            }
            GuildData guild = resp.Response.GuildData;
            SetGuild(validateResult.GuildId, guild);
            // Broadcast via chat server
            if (ClusterClient.IsNetworkActive)
            {
                ClusterClient.SendSetGuildLevelExpSkillPoint(MMOMessageTypes.UpdateGuild, guild.id, guild.level, guild.exp, guild.skillPoint);
            }
            GameInstance.ServerGameMessageHandlers.SendSetGuildLevelExpSkillPointToMembers(guild);
#endif
        }
Esempio n. 8
0
        private async UniTaskVoid HandleRequestCharactersRoutine(LiteNetLibMessageHandler messageHandler)
        {
            long connectionId = messageHandler.connectionId;
            RequestCharactersMessage message = messageHandler.ReadMessage <RequestCharactersMessage>();

            ResponseCharactersMessage.Error error      = ResponseCharactersMessage.Error.None;
            List <PlayerCharacterData>      characters = null;
            CentralUserPeerInfo             userPeerInfo;

            if (!userPeers.TryGetValue(connectionId, out userPeerInfo))
            {
                error = ResponseCharactersMessage.Error.NotLoggedin;
            }
            else
            {
                CharactersResp charactersResp = await DbServiceClient.ReadCharactersAsync(new ReadCharactersReq()
                {
                    UserId = userPeerInfo.userId
                });

                characters = DatabaseServiceUtils.MakeListFromRepeatedByteString <PlayerCharacterData>(charactersResp.List);
            }
            ResponseCharactersMessage responseMessage = new ResponseCharactersMessage();

            responseMessage.ackId        = message.ackId;
            responseMessage.responseCode = error == ResponseCharactersMessage.Error.None ? AckResponseCode.Success : AckResponseCode.Error;
            responseMessage.error        = error;
            responseMessage.characters   = characters;
            ServerSendResponse(connectionId, MMOMessageTypes.ResponseCharacters, responseMessage);
        }
        protected async UniTaskVoid HandleRequestCharacters(
            RequestHandlerData requestHandler,
            EmptyMessage request,
            RequestProceedResultDelegate <ResponseCharactersMessage> result)
        {
            long connectionId = requestHandler.ConnectionId;

            ResponseCharactersMessage.Error error      = ResponseCharactersMessage.Error.None;
            List <PlayerCharacterData>      characters = null;
            CentralUserPeerInfo             userPeerInfo;

            if (!userPeers.TryGetValue(connectionId, out userPeerInfo))
            {
                error = ResponseCharactersMessage.Error.NotLoggedin;
            }
            else
            {
                CharactersResp charactersResp = await DbServiceClient.ReadCharactersAsync(new ReadCharactersReq()
                {
                    UserId = userPeerInfo.userId
                });

                characters = DatabaseServiceUtils.MakeListFromRepeatedByteString <PlayerCharacterData>(charactersResp.List);
            }
            // Response
            result.Invoke(
                error == ResponseCharactersMessage.Error.None ? AckResponseCode.Success : AckResponseCode.Error,
                new ResponseCharactersMessage()
            {
                error      = error,
                characters = characters,
            });
        }
Esempio n. 10
0
        protected async UniTaskVoid HandleRequestDeleteCharacter(
            RequestHandlerData requestHandler,
            RequestDeleteCharacterMessage request,
            RequestProceedResultDelegate <ResponseDeleteCharacterMessage> result)
        {
#if UNITY_STANDALONE && !CLIENT_BUILD
            long                connectionId = requestHandler.ConnectionId;
            UITextKeys          message      = UITextKeys.NONE;
            CentralUserPeerInfo userPeerInfo;
            if (!userPeers.TryGetValue(connectionId, out userPeerInfo))
            {
                message = UITextKeys.UI_ERROR_NOT_LOGGED_IN;
            }
            else
            {
                await DbServiceClient.DeleteCharacterAsync(new DeleteCharacterReq()
                {
                    UserId      = userPeerInfo.userId,
                    CharacterId = request.characterId
                });
            }
            // Response
            result.Invoke(
                message == UITextKeys.NONE ? AckResponseCode.Success : AckResponseCode.Error,
                new ResponseDeleteCharacterMessage()
            {
                message = message,
            });
#endif
        }
        /// <summary>
        /// Adds the loot bag items to the specified loot bag storage.
        /// </summary>
        /// <param name="storageId">loot bag storage ID</param>
        /// <param name="addingItems">items to add to loot bag</param>
        /// <returns>true if successful, false otherwise</returns>
        public async UniTask <bool> AddLootBagItems(StorageId storageId, List <CharacterItem> lootItems)
        {
#if UNITY_STANDALONE && !CLIENT_BUILD
            // Attempt to read from storage first. This registers it and adds it to cache.
            ReadStorageItemsReq rsir = new ReadStorageItemsReq();
            rsir.StorageType    = storageId.storageType;
            rsir.StorageOwnerId = storageId.storageOwnerId;
            ReadStorageItemsResp rsiresp = await DbServiceClient.ReadStorageItemsAsync(rsir);

            foreach (CharacterItem lootItem in lootItems)
            {
                Storage storge = GetStorage(storageId, out _);
                IncreaseStorageItemsReq req = new IncreaseStorageItemsReq();
                req.StorageType    = storageId.storageType;
                req.StorageOwnerId = storageId.storageOwnerId;
                req.WeightLimit    = storge.weightLimit;
                req.SlotLimit      = storge.slotLimit;
                req.Item           = lootItem;
                IncreaseStorageItemsResp resp = await DbServiceClient.IncreaseStorageItemsAsync(req);

                if (UITextKeys.NONE != resp.Error)
                {
                    return(false);
                }
                SetStorageItems(storageId, resp.StorageCharacterItems);
            }
            return(true);
#else
            return(false);
#endif
        }
Esempio n. 12
0
        protected async UniTaskVoid HandleRequestCharacters(
            RequestHandlerData requestHandler,
            EmptyMessage request,
            RequestProceedResultDelegate <ResponseCharactersMessage> result)
        {
#if UNITY_STANDALONE && !CLIENT_BUILD
            long       connectionId = requestHandler.ConnectionId;
            UITextKeys message      = UITextKeys.NONE;
            List <PlayerCharacterData> characters = null;
            CentralUserPeerInfo        userPeerInfo;
            if (!userPeers.TryGetValue(connectionId, out userPeerInfo))
            {
                message = UITextKeys.UI_ERROR_NOT_LOGGED_IN;
            }
            else
            {
                CharactersResp charactersResp = await DbServiceClient.ReadCharactersAsync(new ReadCharactersReq()
                {
                    UserId = userPeerInfo.userId
                });

                characters = charactersResp.List;
            }
            // Response
            result.Invoke(
                message == UITextKeys.NONE ? AckResponseCode.Success : AckResponseCode.Error,
                new ResponseCharactersMessage()
            {
                message    = message,
                characters = characters,
            });
#endif
        }
        protected async override void OnDestroy()
        {
            // Save immediately
#if UNITY_STANDALONE && !CLIENT_BUILD
            if (IsServer)
            {
                foreach (BasePlayerCharacterEntity playerCharacter in ServerUserHandlers.GetPlayerCharacters())
                {
                    if (playerCharacter == null)
                    {
                        continue;
                    }
                    await DbServiceClient.UpdateCharacterAsync(new UpdateCharacterReq()
                    {
                        CharacterData = playerCharacter.CloneTo(new PlayerCharacterData())
                    });
                }
                string mapName = CurrentMapInfo.Id;
                foreach (BuildingEntity buildingEntity in ServerBuildingHandlers.GetBuildings())
                {
                    if (buildingEntity == null)
                    {
                        continue;
                    }
                    await DbServiceClient.UpdateBuildingAsync(new UpdateBuildingReq()
                    {
                        MapName      = mapName,
                        BuildingData = buildingEntity.CloneTo(new BuildingSaveData())
                    });
                }
            }
#endif
            base.OnDestroy();
        }
Esempio n. 14
0
        private async UniTaskVoid HandleRequestCreateCharacterRoutine(LiteNetLibMessageHandler messageHandler)
        {
            long connectionId = messageHandler.connectionId;
            RequestCreateCharacterMessage message = messageHandler.ReadMessage <RequestCreateCharacterMessage>();

            ResponseCreateCharacterMessage.Error error = ResponseCreateCharacterMessage.Error.None;
            string characterName = message.characterName;
            int    dataId        = message.dataId;
            int    entityId      = message.entityId;
            int    factionId     = message.factionId;
            CentralUserPeerInfo   userPeerInfo;
            FindCharacterNameResp findCharacterNameResp = await DbServiceClient.FindCharacterNameAsync(new FindCharacterNameReq()
            {
                CharacterName = characterName
            });

            if (findCharacterNameResp.FoundAmount > 0)
            {
                error = ResponseCreateCharacterMessage.Error.CharacterNameAlreadyExisted;
            }
            else if (!userPeers.TryGetValue(connectionId, out userPeerInfo))
            {
                error = ResponseCreateCharacterMessage.Error.NotLoggedin;
            }
            else if (string.IsNullOrEmpty(characterName) || characterName.Length < minCharacterNameLength)
            {
                error = ResponseCreateCharacterMessage.Error.TooShortCharacterName;
            }
            else if (characterName.Length > maxCharacterNameLength)
            {
                error = ResponseCreateCharacterMessage.Error.TooLongCharacterName;
            }
            else if (!GameInstance.PlayerCharacters.ContainsKey(dataId) ||
                     !GameInstance.PlayerCharacterEntities.ContainsKey(entityId) ||
                     (GameInstance.Factions.Count > 0 && !GameInstance.Factions.ContainsKey(factionId)))
            {
                // If there is factions, it must have faction with the id stored in faction dictionary
                error = ResponseCreateCharacterMessage.Error.InvalidData;
            }
            else
            {
                string characterId = GenericUtils.GetUniqueId();
                PlayerCharacterData characterData = new PlayerCharacterData();
                characterData.Id = characterId;
                characterData.SetNewPlayerCharacterData(characterName, dataId, entityId);
                characterData.FactionId = factionId;
                DeserializeCreateCharacterExtra(characterData, messageHandler.reader);
                await DbServiceClient.CreateCharacterAsync(new CreateCharacterReq()
                {
                    UserId        = userPeerInfo.userId,
                    CharacterData = characterData.ToByteString()
                });
            }
            ResponseCreateCharacterMessage responseMessage = new ResponseCreateCharacterMessage();

            responseMessage.ackId        = message.ackId;
            responseMessage.responseCode = error == ResponseCreateCharacterMessage.Error.None ? AckResponseCode.Success : AckResponseCode.Error;
            responseMessage.error        = error;
            ServerSendResponse(connectionId, MMOMessageTypes.ResponseCreateCharacter, responseMessage);
        }
Esempio n. 15
0
 public ActionResult Update(wniosekWithDecyzja wwd)
 {
     using (DbServiceClient client = new DbServiceClient())
     {
         client.EditWniosek(wwd.Id_wniosek, wwd.Klient_skrot, wwd.Klient_skrot, wwd.Kwota_kredytu_brutto, wwd.Wnioskowana_kwota_kredytu, wwd.Data_rejestracji_wniosku);
     }
     return(RedirectToAction("ListaWnioskow", new { data1 = data1, data2 = data2 }));
 }
Esempio n. 16
0
 private async UniTask DestroyBuildingEntityRoutine(string id)
 {
     await DbServiceClient.DeleteBuildingAsync(new DeleteBuildingReq()
     {
         MapName    = Assets.onlineScene.SceneName,
         BuildingId = id
     });
 }
 private async UniTask DestroyBuildingEntityRoutine(string id)
 {
     await DbServiceClient.DeleteBuildingAsync(new DeleteBuildingReq()
     {
         MapName    = CurrentMapInfo.Id,
         BuildingId = id
     });
 }
 public override void DestroyBuildingEntity(string id)
 {
     base.DestroyBuildingEntity(id);
     DbServiceClient.DeleteBuildingAsync(new DeleteBuildingReq()
     {
         MapName    = Assets.onlineScene.SceneName,
         BuildingId = id
     });
 }
Esempio n. 19
0
        public async UniTaskVoid HandleRequestChangeMemberGuildRole(RequestHandlerData requestHandler, RequestChangeMemberGuildRoleMessage request, RequestProceedResultDelegate <ResponseChangeMemberGuildRoleMessage> result)
        {
#if UNITY_STANDALONE && !CLIENT_BUILD
            await UniTask.Yield();

            IPlayerCharacterData playerCharacter;
            if (!GameInstance.ServerUserHandlers.TryGetPlayerCharacter(requestHandler.ConnectionId, out playerCharacter))
            {
                result.InvokeError(new ResponseChangeMemberGuildRoleMessage()
                {
                    message = UITextKeys.UI_ERROR_NOT_LOGGED_IN,
                });
                return;
            }
            ValidateGuildRequestResult validateResult = GameInstance.ServerGuildHandlers.CanChangeGuildMemberRole(playerCharacter, request.memberId);
            if (!validateResult.IsSuccess)
            {
                result.InvokeError(new ResponseChangeMemberGuildRoleMessage()
                {
                    message = validateResult.GameMessage,
                });
                return;
            }
            // Save to database
            AsyncResponseData <GuildResp> updateResp = await DbServiceClient.UpdateGuildMemberRoleAsync(new UpdateGuildMemberRoleReq()
            {
                GuildId           = validateResult.GuildId,
                MemberCharacterId = request.memberId,
                GuildRole         = request.guildRole
            });

            if (!updateResp.IsSuccess)
            {
                result.InvokeError(new ResponseChangeMemberGuildRoleMessage()
                {
                    message = UITextKeys.UI_ERROR_INTERNAL_SERVER_ERROR,
                });
                return;
            }
            // Update cache
            validateResult.Guild.SetMemberRole(request.memberId, request.guildRole);
            GameInstance.ServerGuildHandlers.SetGuild(validateResult.GuildId, validateResult.Guild);
            IPlayerCharacterData memberCharacter;
            if (GameInstance.ServerUserHandlers.TryGetPlayerCharacterById(request.memberId, out memberCharacter))
            {
                memberCharacter.GuildRole      = request.guildRole;
                memberCharacter.SharedGuildExp = validateResult.Guild.GetRole(request.guildRole).shareExpPercentage;
            }
            // Broadcast via chat server
            if (ClusterClient.IsNetworkActive)
            {
                ClusterClient.SendSetGuildMemberRole(MMOMessageTypes.UpdateGuild, validateResult.GuildId, request.memberId, request.guildRole);
            }
            GameInstance.ServerGameMessageHandlers.SendSetGuildMemberRoleToMembers(validateResult.Guild, request.memberId, request.guildRole);
            result.InvokeSuccess(new ResponseChangeMemberGuildRoleMessage());
#endif
        }
Esempio n. 20
0
        protected async UniTaskVoid HandleRequestSelectCharacter(
            RequestHandlerData requestHandler,
            RequestSelectCharacterMessage request,
            RequestProceedResultDelegate <ResponseSelectCharacterMessage> result)
        {
#if UNITY_STANDALONE && !CLIENT_BUILD
            long connectionId = requestHandler.ConnectionId;
            CentralServerPeerInfo mapServerPeerInfo = default;
            CentralUserPeerInfo   userPeerInfo;
            if (!userPeers.TryGetValue(connectionId, out userPeerInfo))
            {
                result.InvokeError(new ResponseSelectCharacterMessage()
                {
                    message = UITextKeys.UI_ERROR_NOT_LOGGED_IN,
                });
                return;
            }
            AsyncResponseData <CharacterResp> characterResp = await DbServiceClient.ReadCharacterAsync(new ReadCharacterReq()
            {
                UserId      = userPeerInfo.userId,
                CharacterId = request.characterId
            });

            if (!characterResp.IsSuccess)
            {
                result.InvokeError(new ResponseSelectCharacterMessage()
                {
                    message = UITextKeys.UI_ERROR_INTERNAL_SERVER_ERROR,
                });
                return;
            }
            PlayerCharacterData character = characterResp.Response.CharacterData;
            if (character == null)
            {
                result.InvokeError(new ResponseSelectCharacterMessage()
                {
                    message = UITextKeys.UI_ERROR_INVALID_CHARACTER_DATA,
                });
                return;
            }
            if (!ClusterServer.MapServerPeersByMapId.TryGetValue(character.CurrentMapName, out mapServerPeerInfo))
            {
                result.InvokeError(new ResponseSelectCharacterMessage()
                {
                    message = UITextKeys.UI_ERROR_MAP_SERVER_NOT_READY,
                });
                return;
            }
            // Response
            result.InvokeSuccess(new ResponseSelectCharacterMessage()
            {
                sceneName      = mapServerPeerInfo.extra,
                networkAddress = mapServerPeerInfo.networkAddress,
                networkPort    = mapServerPeerInfo.networkPort,
            });
#endif
        }
Esempio n. 21
0
        public ActionResult ListaWnioskow(string data1, string data2)
        {
            using (DbServiceClient client = new DbServiceClient())
            {
                IEnumerable <wniosekWithDecyzja> wwdList = client.GetWnioskiBetweenDates(data1, data2);

                return(View(wwdList));
            }
        }
Esempio n. 22
0
        public async UniTaskVoid HandleRequestKickMemberFromGuild(RequestHandlerData requestHandler, RequestKickMemberFromGuildMessage request, RequestProceedResultDelegate <ResponseKickMemberFromGuildMessage> result)
        {
#if UNITY_STANDALONE && !CLIENT_BUILD
            await UniTask.Yield();

            IPlayerCharacterData playerCharacter;
            if (!GameInstance.ServerUserHandlers.TryGetPlayerCharacter(requestHandler.ConnectionId, out playerCharacter))
            {
                result.InvokeError(new ResponseKickMemberFromGuildMessage()
                {
                    message = UITextKeys.UI_ERROR_NOT_LOGGED_IN,
                });
                return;
            }
            ValidateGuildRequestResult validateResult = GameInstance.ServerGuildHandlers.CanKickMemberFromGuild(playerCharacter, request.memberId);
            if (!validateResult.IsSuccess)
            {
                result.InvokeError(new ResponseKickMemberFromGuildMessage()
                {
                    message = validateResult.GameMessage,
                });
                return;
            }
            // Save to database
            AsyncResponseData <EmptyMessage> updateResp = await DbServiceClient.ClearCharacterGuildAsync(new ClearCharacterGuildReq()
            {
                CharacterId = request.memberId
            });

            if (!updateResp.IsSuccess)
            {
                result.InvokeError(new ResponseKickMemberFromGuildMessage()
                {
                    message = validateResult.GameMessage,
                });
                return;
            }
            // Delete from cache
            IPlayerCharacterData memberCharacter;
            long memberConnectionId;
            if (GameInstance.ServerUserHandlers.TryGetPlayerCharacterById(request.memberId, out memberCharacter) &&
                GameInstance.ServerUserHandlers.TryGetConnectionId(request.memberId, out memberConnectionId))
            {
                memberCharacter.ClearGuild();
                GameInstance.ServerGameMessageHandlers.SendClearGuildData(memberConnectionId, validateResult.GuildId);
            }
            validateResult.Guild.RemoveMember(request.memberId);
            GameInstance.ServerGuildHandlers.SetGuild(validateResult.GuildId, validateResult.Guild);
            // Broadcast via chat server
            if (ClusterClient.IsNetworkActive)
            {
                ClusterClient.SendRemoveSocialMember(MMOMessageTypes.UpdateGuildMember, validateResult.GuildId, request.memberId);
            }
            GameInstance.ServerGameMessageHandlers.SendRemoveGuildMemberToMembers(validateResult.Guild, request.memberId);
            result.InvokeSuccess(new ResponseKickMemberFromGuildMessage());
#endif
        }
        public async UniTaskVoid HandleRequestDepositGuildGold(RequestHandlerData requestHandler, RequestDepositGuildGoldMessage request, RequestProceedResultDelegate <ResponseDepositGuildGoldMessage> result)
        {
#if UNITY_STANDALONE && !CLIENT_BUILD
            IPlayerCharacterData playerCharacter;
            if (!GameInstance.ServerUserHandlers.TryGetPlayerCharacter(requestHandler.ConnectionId, out playerCharacter))
            {
                result.InvokeError(new ResponseDepositGuildGoldMessage()
                {
                    message = UITextKeys.UI_ERROR_NOT_LOGGED_IN,
                });
                return;
            }
            GuildData guild;
            if (!GameInstance.ServerGuildHandlers.TryGetGuild(playerCharacter.GuildId, out guild))
            {
                result.InvokeError(new ResponseDepositGuildGoldMessage()
                {
                    message = UITextKeys.UI_ERROR_NOT_JOINED_GUILD,
                });
                return;
            }
            if (playerCharacter.Gold - request.gold < 0)
            {
                result.InvokeError(new ResponseDepositGuildGoldMessage()
                {
                    message = UITextKeys.UI_ERROR_NOT_ENOUGH_GOLD_TO_DEPOSIT,
                });
                return;
            }
            // Update gold
            AsyncResponseData <GuildGoldResp> changeGoldResp = await DbServiceClient.ChangeGuildGoldAsync(new ChangeGuildGoldReq()
            {
                GuildId      = playerCharacter.GuildId,
                ChangeAmount = request.gold
            });

            if (!changeGoldResp.IsSuccess)
            {
                result.InvokeError(new ResponseDepositGuildGoldMessage()
                {
                    message = UITextKeys.UI_ERROR_INTERNAL_SERVER_ERROR,
                });
                return;
            }
            guild.gold            = changeGoldResp.Response.GuildGold;
            playerCharacter.Gold -= request.gold;
            GameInstance.ServerGuildHandlers.SetGuild(playerCharacter.GuildId, guild);
            // Broadcast via chat server
            if (ClusterClient.IsNetworkActive)
            {
                ClusterClient.SendSetGuildGold(MMOMessageTypes.UpdateGuild, guild.id, guild.gold);
            }
            GameInstance.ServerGameMessageHandlers.SendSetGuildGoldToMembers(guild);
            result.InvokeSuccess(new ResponseDepositGuildGoldMessage());
#endif
        }
        public async UniTaskVoid HandleRequestWithdrawUserGold(RequestHandlerData requestHandler, RequestWithdrawUserGoldMessage request, RequestProceedResultDelegate <ResponseWithdrawUserGoldMessage> result)
        {
#if UNITY_STANDALONE && !CLIENT_BUILD
            IPlayerCharacterData playerCharacter;
            if (!GameInstance.ServerUserHandlers.TryGetPlayerCharacter(requestHandler.ConnectionId, out playerCharacter))
            {
                result.InvokeError(new ResponseWithdrawUserGoldMessage()
                {
                    message = UITextKeys.UI_ERROR_NOT_LOGGED_IN,
                });
                return;
            }
            // Get gold
            AsyncResponseData <GoldResp> goldResp = await DbServiceClient.GetGoldAsync(new GetGoldReq()
            {
                UserId = playerCharacter.UserId
            });

            if (!goldResp.IsSuccess)
            {
                result.InvokeError(new ResponseWithdrawUserGoldMessage()
                {
                    message = UITextKeys.UI_ERROR_INTERNAL_SERVER_ERROR,
                });
                return;
            }
            if (goldResp.Response.Gold - request.gold < 0)
            {
                result.InvokeError(new ResponseWithdrawUserGoldMessage()
                {
                    message = UITextKeys.UI_ERROR_NOT_ENOUGH_GOLD_TO_WITHDRAW,
                });
                return;
            }
            // Update gold
            AsyncResponseData <GoldResp> changeGoldResp = await DbServiceClient.ChangeGoldAsync(new ChangeGoldReq()
            {
                UserId       = playerCharacter.UserId,
                ChangeAmount = -request.gold
            });

            if (!changeGoldResp.IsSuccess)
            {
                result.InvokeError(new ResponseWithdrawUserGoldMessage()
                {
                    message = UITextKeys.UI_ERROR_INTERNAL_SERVER_ERROR,
                });
                return;
            }
            playerCharacter.UserGold = changeGoldResp.Response.Gold;
            playerCharacter.Gold     = playerCharacter.Gold.Increase(request.gold);
            result.InvokeSuccess(new ResponseWithdrawUserGoldMessage());
#endif
        }
 private async UniTask CreateBuildingEntityRoutine(BuildingSaveData saveData, bool initialize)
 {
     if (!initialize)
     {
         await DbServiceClient.CreateBuildingAsync(new CreateBuildingReq()
         {
             MapName      = CurrentMapInfo.Id,
             BuildingData = saveData,
         });
     }
 }
Esempio n. 26
0
 private async UniTask CreateBuildingEntityRoutine(BuildingSaveData saveData, bool initialize)
 {
     if (!initialize)
     {
         await DbServiceClient.CreateBuildingAsync(new CreateBuildingReq()
         {
             MapName      = Assets.onlineScene.SceneName,
             BuildingData = saveData.ToByteString()
         });
     }
 }
 public override BuildingEntity CreateBuildingEntity(BuildingSaveData saveData, bool initialize)
 {
     if (!initialize)
     {
         DbServiceClient.CreateBuildingAsync(new CreateBuildingReq()
         {
             MapName      = Assets.onlineScene.SceneName,
             BuildingData = saveData.ToByteString()
         });
     }
     return(base.CreateBuildingEntity(saveData, initialize));
 }
Esempio n. 28
0
        public ActionResult Edit(int id_wniosek)
        {
            wniosekWithDecyzja wwd;

            using (DbServiceClient client = new DbServiceClient())
            {
                wwd = client.GetWniosek(id_wniosek);
            }
            ViewBag.Date1 = data1;
            ViewBag.Date2 = data2;
            return(View(wwd));
        }
        public async UniTaskVoid HandleRequestCreateParty(RequestHandlerData requestHandler, RequestCreatePartyMessage request, RequestProceedResultDelegate <ResponseCreatePartyMessage> result)
        {
#if UNITY_STANDALONE && !CLIENT_BUILD
            await UniTask.Yield();

            IPlayerCharacterData playerCharacter;
            if (!GameInstance.ServerUserHandlers.TryGetPlayerCharacter(requestHandler.ConnectionId, out playerCharacter))
            {
                result.InvokeError(new ResponseCreatePartyMessage()
                {
                    message = UITextKeys.UI_ERROR_NOT_LOGGED_IN,
                });
                return;
            }
            ValidatePartyRequestResult validateResult = playerCharacter.CanCreateParty();
            if (!validateResult.IsSuccess)
            {
                result.InvokeError(new ResponseCreatePartyMessage()
                {
                    message = validateResult.GameMessage,
                });
                return;
            }
            AsyncResponseData <PartyResp> createPartyResp = await DbServiceClient.CreatePartyAsync(new CreatePartyReq()
            {
                LeaderCharacterId = playerCharacter.Id,
                ShareExp          = request.shareExp,
                ShareItem         = request.shareItem
            });

            if (!createPartyResp.IsSuccess)
            {
                result.InvokeError(new ResponseCreatePartyMessage()
                {
                    message = UITextKeys.UI_ERROR_INTERNAL_SERVER_ERROR,
                });
                return;
            }
            // Update cache
            PartyData party = createPartyResp.Response.PartyData;
            GameInstance.ServerPartyHandlers.SetParty(party.id, party);
            playerCharacter.PartyId = party.id;
            // Broadcast via chat server
            if (ClusterClient.IsNetworkActive)
            {
                ClusterClient.SendCreateParty(MMOMessageTypes.UpdateParty, party.id, party.shareExp, party.shareItem, playerCharacter.Id);
                ClusterClient.SendAddSocialMember(MMOMessageTypes.UpdatePartyMember, party.id, playerCharacter.Id, playerCharacter.CharacterName, playerCharacter.DataId, playerCharacter.Level);
            }
            GameInstance.ServerGameMessageHandlers.SendSetPartyData(requestHandler.ConnectionId, party);
            GameInstance.ServerGameMessageHandlers.SendAddPartyMembersToOne(requestHandler.ConnectionId, party);
            result.InvokeSuccess(new ResponseCreatePartyMessage());
#endif
        }
Esempio n. 30
0
        protected async UniTaskVoid HandleRequestValidateAccessToken(
            RequestHandlerData requestHandler,
            RequestValidateAccessTokenMessage request,
            RequestProceedResultDelegate <ResponseValidateAccessTokenMessage> result)
        {
#if UNITY_STANDALONE && !CLIENT_BUILD
            long       connectionId = requestHandler.ConnectionId;
            UITextKeys message      = UITextKeys.NONE;
            string     userId       = request.userId;
            string     accessToken  = request.accessToken;
            ValidateAccessTokenResp validateAccessTokenResp = await DbServiceClient.ValidateAccessTokenAsync(new ValidateAccessTokenReq()
            {
                UserId      = userId,
                AccessToken = accessToken
            });

            if (!validateAccessTokenResp.IsPass)
            {
                message     = UITextKeys.UI_ERROR_INVALID_USER_TOKEN;
                userId      = string.Empty;
                accessToken = string.Empty;
            }
            else
            {
                CentralUserPeerInfo userPeerInfo;
                if (userPeersByUserId.TryGetValue(userId, out userPeerInfo))
                {
                    userPeersByUserId.Remove(userPeerInfo.userId);
                    userPeers.Remove(userPeerInfo.connectionId);
                }
                userPeerInfo = new CentralUserPeerInfo();
                userPeerInfo.connectionId = connectionId;
                userPeerInfo.userId       = userId;
                userPeerInfo.accessToken  = accessToken = Regex.Replace(System.Convert.ToBase64String(System.Guid.NewGuid().ToByteArray()), "[/+=]", "");
                userPeersByUserId[userId] = userPeerInfo;
                userPeers[connectionId]   = userPeerInfo;
                await DbServiceClient.UpdateAccessTokenAsync(new UpdateAccessTokenReq()
                {
                    UserId      = userPeerInfo.userId,
                    AccessToken = accessToken
                });
            }
            // Response
            result.Invoke(
                message == UITextKeys.NONE ? AckResponseCode.Success : AckResponseCode.Error,
                new ResponseValidateAccessTokenMessage()
            {
                message     = message,
                userId      = userId,
                accessToken = accessToken,
            });
#endif
        }
Esempio n. 31
0
        public ActionResult ViewCity(string id)
        {
            DbServiceClient client = new DbServiceClient();

            return View(client.GetAddress("Bothell").ToList());
        }