public override void Execute(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 = _connectedAccountHttpClient.GetCharacter(null, goldPacket.Name ?? session.Character.Name); if (receiver.Item2 == null) //TODO: Handle 404 in WebApi { session.SendPacket(new InfoPacket { Message = Language.Instance.GetMessageFromKey(LanguageKey.CANT_FIND_CHARACTER, session.Account.Language) }); return; } _statHttpClient.ChangeStat(data, receiver.Item1); session.SendPacket(session.Character.GenerateGold()); }
public override void Execute(SetReputationPacket setReputationPacket, ClientSession session) { if ((setReputationPacket.Name == session.Character.Name) || string.IsNullOrEmpty(setReputationPacket.Name)) { session.Character.SetReputation(setReputationPacket.Reputation); return; } var data = new StatData { ActionType = UpdateStatActionType.UpdateReputation, Character = new Character { Name = setReputationPacket.Name }, Data = setReputationPacket.Reputation }; var receiver = _connectedAccountHttpClient.GetCharacter(null, setReputationPacket.Name); if (receiver.Item2 == null) //TODO: Handle 404 in WebApi { session.SendPacket(new InfoPacket { Message = Language.Instance.GetMessageFromKey(LanguageKey.CANT_FIND_CHARACTER, session.Account.Language) }); return; } _statHttpClient.ChangeStat(data, receiver.Item1); }
public override void Execute(SetHeroLevelCommandPacket levelPacket, ClientSession session) { if (string.IsNullOrEmpty(levelPacket.Name) || (levelPacket.Name == session.Character.Name)) { session.Character.SetHeroLevel(levelPacket.Level); return; } var data = new StatData { ActionType = UpdateStatActionType.UpdateHeroLevel, Character = new Character { Name = levelPacket.Name }, Data = levelPacket.Level }; var channels = _channelHttpClient.GetChannels() ?.Where(c => c.Type == ServerType.WorldServer); ConnectedAccount receiver = null; ServerConfiguration config = null; foreach (var channel in channels ?? new List <ChannelInfo>()) { var accounts = _connectedAccountHttpClient.GetConnectedAccount(channel); var target = accounts.FirstOrDefault(s => s.ConnectedCharacter.Name == levelPacket.Name); if (target != null) { receiver = target; config = channel.WebApi; } } if (receiver == null) //TODO: Handle 404 in WebApi { session.SendPacket(new InfoPacket { Message = Language.Instance.GetMessageFromKey(LanguageKey.CANT_FIND_CHARACTER, session.Account.Language) }); return; } _statHttpClient.ChangeStat(data, config); }