Ejemplo n.º 1
0
        public override async Task ExecuteAsync(SetGoldCommandPacket goldPacket, ClientSession session)
        {
            var data = new StatData
            {
                ActionType = UpdateStatActionType.UpdateGold,
                Character  = new Character {
                    Name = goldPacket.Name ?? session.Character.Name
                },
                Data = goldPacket.Gold
            };

            var receiver = await _connectedAccountHttpClient.GetCharacterAsync(null, goldPacket.Name ?? session.Character.Name).ConfigureAwait(false);

            if (receiver.Item2 == null) //TODO: Handle 404 in WebApi
            {
                await session.SendPacketAsync(new InfoPacket
                {
                    Message = GameLanguage.Instance.GetMessageFromKey(LanguageKey.CANT_FIND_CHARACTER,
                                                                      session.Account.Language)
                }).ConfigureAwait(false);

                return;
            }

            await _statHttpClient.ChangeStatAsync(data, receiver.Item1 !).ConfigureAwait(false);

            await session.SendPacketAsync(session.Character.GenerateGold()).ConfigureAwait(false);
        }
        public override async Task ExecuteAsync(SetReputationPacket setReputationPacket, ClientSession session)
        {
            if ((setReputationPacket.Name == session.Character.Name) || string.IsNullOrEmpty(setReputationPacket.Name))
            {
                await session.Character.SetReputationAsync(setReputationPacket.Reputation).ConfigureAwait(false);

                return;
            }

            var data = new StatData
            {
                ActionType = UpdateStatActionType.UpdateReputation,
                Character  = new Character {
                    Name = setReputationPacket.Name
                },
                Data = setReputationPacket.Reputation
            };

            var receiver = await _connectedAccountHttpClient.GetCharacterAsync(null, setReputationPacket.Name).ConfigureAwait(false);

            if (receiver.Item2 == null) //TODO: Handle 404 in WebApi
            {
                await session.SendPacketAsync(new InfoPacket
                {
                    Message = GameLanguage.Instance.GetMessageFromKey(LanguageKey.CANT_FIND_CHARACTER,
                                                                      session.Account.Language)
                }).ConfigureAwait(false);

                return;
            }

            await _statHttpClient.ChangeStatAsync(data, receiver.Item1 !).ConfigureAwait(false);
        }