Exemplo n.º 1
0
        public ClientSession(ServerConfiguration configuration, IMapInstanceProvider?mapInstanceProvider,
                             IExchangeProvider?exchangeProvider, ILogger logger,
                             IEnumerable <IPacketHandler> packetsHandlers, IFriendHttpClient friendHttpClient,
                             ISerializer packetSerializer, IPacketHttpClient packetHttpClient,
                             IMinilandProvider?minilandProvider) : base(logger)
        {
            _logger           = logger;
            _packetsHandlers  = packetsHandlers.ToList();
            _friendHttpClient = friendHttpClient;
            _packetSerializer = packetSerializer;
            _packetHttpClient = packetHttpClient;
            if (!(configuration is WorldConfiguration worldConfiguration))
            {
                return;
            }

            WorldConfiguration   = worldConfiguration;
            _mapInstanceProvider = mapInstanceProvider !;
            _exchangeProvider    = exchangeProvider !;
            _minilandProvider    = minilandProvider !;
            _isWorldClient       = true;
            foreach (var handler in _packetsHandlers)
            {
                var type = handler.GetType().BaseType?.GenericTypeArguments[0] !;
                if (!_attributeDic.ContainsKey(type ?? throw new InvalidOperationException()))
                {
                    _attributeDic.Add(type, type.GetCustomAttribute <PacketHeaderAttribute>(true) !);
                }
            }
        }
Exemplo n.º 2
0
 public FinsPacketHandler(IFriendHttpClient friendHttpClient, IChannelHttpClient channelHttpClient,
                          IConnectedAccountHttpClient connectedAccountHttpClient)
 {
     _friendHttpClient           = friendHttpClient;
     _channelHttpClient          = channelHttpClient;
     _connectedAccountHttpClient = connectedAccountHttpClient;
 }
        public static void SendFinfo(this ICharacterEntity visualEntity, IFriendHttpClient friendHttpClient,
                                     IPacketHttpClient packetHttpClient, ISerializer packetSerializer, bool isConnected)
        {
            var friendlist = friendHttpClient.GetListFriends(visualEntity.VisualId);

            foreach (var friend in friendlist)
            {
                packetHttpClient.BroadcastPacket(new PostedPacket
                {
                    Packet = packetSerializer.Serialize(new[]
                    {
                        new FinfoPacket
                        {
                            FriendList = new List <FinfoSubPackets>
                            {
                                new FinfoSubPackets
                                {
                                    CharacterId = visualEntity.VisualId,
                                    IsConnected = isConnected
                                }
                            }
                        }
                    }),
                    ReceiverType    = ReceiverType.OnlySomeone,
                    SenderCharacter = new Data.WebApi.Character {
                        Id = visualEntity.VisualId, Name = visualEntity.Name
                    },
                    ReceiverCharacter = new Data.WebApi.Character
                    {
                        Id   = friend.CharacterId,
                        Name = friend.CharacterName
                    }
                });
            }
        }
        public static async Task SendFinfoAsync(this ICharacterEntity visualEntity, IFriendHttpClient friendHttpClient,
                                                IPacketHttpClient packetHttpClient, ISerializer packetSerializer, bool isConnected)
        {
            var friendlist = await friendHttpClient.GetListFriendsAsync(visualEntity.VisualId).ConfigureAwait(false);

            await Task.WhenAll(friendlist.Select(friend =>
                                                 packetHttpClient.BroadcastPacketAsync(new PostedPacket
            {
                Packet = packetSerializer.Serialize(new[]
                {
                    new FinfoPacket
                    {
                        FriendList = new List <FinfoSubPackets?>
                        {
                            new FinfoSubPackets
                            {
                                CharacterId = visualEntity.VisualId,
                                IsConnected = isConnected
                            }
                        }
                    }
                }),
                ReceiverType    = ReceiverType.OnlySomeone,
                SenderCharacter = new Data.WebApi.Character {
                    Id = visualEntity.VisualId, Name = visualEntity.Name !
                },
Exemplo n.º 5
0
 public BtkPacketHandler(ILogger logger, ISerializer packetSerializer, IFriendHttpClient friendHttpClient,
                         IPacketHttpClient packetHttpClient, IConnectedAccountHttpClient connectedAccountHttpClient)
 {
     _logger                     = logger;
     _packetSerializer           = packetSerializer;
     _friendHttpClient           = friendHttpClient;
     _connectedAccountHttpClient = connectedAccountHttpClient;
     _packetHttpClient           = packetHttpClient;
 }
Exemplo n.º 6
0
 public void Setup()
 {
     Broadcaster.Reset();
     TestHelpers.Reset();
     _friendHttpClient = new Mock <IFriendHttpClient>().Object;
     TestHelpers.Instance.WorldConfiguration.BackpackSize = 3;
     _instanceProvider = TestHelpers.Instance.MapInstanceProvider;
     _session          = TestHelpers.Instance.GenerateSession();
 }
Exemplo n.º 7
0
 public MinilandProvider(IMapInstanceProvider mapInstanceProvider, IFriendHttpClient friendHttpClient, List <MapDto> maps,
                         IGenericDao <MinilandDto> minilandDao, IGenericDao <MinilandObjectDto> minilandObjectsDao)
 {
     _mapInstanceProvider = mapInstanceProvider;
     _friendHttpClient    = friendHttpClient;
     _maps               = maps;
     _minilandIds        = new ConcurrentDictionary <long, Miniland>();
     _minilandDao        = minilandDao;
     _minilandObjectsDao = minilandObjectsDao;
 }
Exemplo n.º 8
0
 public MinilandService(IMapInstanceAccessorService mapInstanceAccessorService, IFriendHttpClient friendHttpClient, List <MapDto> maps,
                        IDao <MinilandDto, Guid> minilandDao, IDao <MinilandObjectDto, Guid> minilandObjectsDao, MinilandHolder minilandHolder)
 {
     _mapInstanceAccessorService = mapInstanceAccessorService;
     _friendHttpClient           = friendHttpClient;
     _maps               = maps;
     _minilandDao        = minilandDao;
     _minilandObjectsDao = minilandObjectsDao;
     _minilandHolder     = minilandHolder;
 }
Exemplo n.º 9
0
 public ClientSession(IOptions <WorldConfiguration> configuration, IMapInstanceProvider?mapInstanceProvider,
                      IExchangeProvider?exchangeProvider, ILogger logger,
                      IEnumerable <IPacketHandler> packetsHandlers, IFriendHttpClient friendHttpClient,
                      ISerializer packetSerializer, IPacketHttpClient packetHttpClient,
                      IMinilandProvider?minilandProvider) : this(logger, packetsHandlers, friendHttpClient, packetSerializer, packetHttpClient)
 {
     _mapInstanceProvider = mapInstanceProvider !;
     _exchangeProvider    = exchangeProvider !;
     _minilandProvider    = minilandProvider !;
     _isWorldClient       = true;
 }
Exemplo n.º 10
0
 public GameStartPacketHandler(WorldConfiguration worldConfiguration, IFriendHttpClient friendHttpClient,
                               IChannelHttpClient channelHttpClient,
                               IConnectedAccountHttpClient connectedAccountHttpClient, IBlacklistHttpClient blacklistHttpClient,
                               IPacketHttpClient packetHttpClient,
                               ISerializer packetSerializer, IMailHttpClient mailHttpClient)
 {
     _worldConfiguration         = worldConfiguration;
     _packetSerializer           = packetSerializer;
     _blacklistHttpClient        = blacklistHttpClient;
     _connectedAccountHttpClient = connectedAccountHttpClient;
     _channelHttpClient          = channelHttpClient;
     _friendHttpClient           = friendHttpClient;
     _packetHttpClient           = packetHttpClient;
     _mailHttpClient             = mailHttpClient;
 }
Exemplo n.º 11
0
 public GameStartPacketHandler(IOptions <WorldConfiguration> worldConfiguration, IFriendHttpClient friendHttpClient,
                               IChannelHttpClient channelHttpClient,
                               IConnectedAccountHttpClient connectedAccountHttpClient, IBlacklistHttpClient blacklistHttpClient,
                               IPacketHttpClient packetHttpClient,
                               ISerializer packetSerializer, IMailHttpClient mailHttpClient, IQuestService questProvider)
 {
     _worldConfiguration         = worldConfiguration;
     _packetSerializer           = packetSerializer;
     _blacklistHttpClient        = blacklistHttpClient;
     _connectedAccountHttpClient = connectedAccountHttpClient;
     _channelHttpClient          = channelHttpClient;
     _friendHttpClient           = friendHttpClient;
     _packetHttpClient           = packetHttpClient;
     _mailHttpClient             = mailHttpClient;
     _questProvider = questProvider;
 }
Exemplo n.º 12
0
 public ClientSession(ILogger logger, IEnumerable <IPacketHandler> packetsHandlers, IFriendHttpClient friendHttpClient,
                      ISerializer packetSerializer, IPacketHttpClient packetHttpClient)
     : base(logger)
 {
     _logger           = logger;
     _packetsHandlers  = packetsHandlers.ToList();
     _friendHttpClient = friendHttpClient;
     _packetSerializer = packetSerializer;
     _packetHttpClient = packetHttpClient;
     foreach (var handler in _packetsHandlers)
     {
         var type = handler.GetType().BaseType?.GenericTypeArguments[0] !;
         if (!_attributeDic.ContainsKey(type ?? throw new InvalidOperationException()))
         {
             _attributeDic.Add(type, type.GetCustomAttribute <PacketHeaderAttribute>(true) !);
         }
     }
 }
        public static FinitPacket GenerateFinit(this ICharacterEntity visualEntity, IFriendHttpClient friendHttpClient,
                                                IChannelHttpClient channelHttpClient, IConnectedAccountHttpClient connectedAccountHttpClient)
        {
            //same canal
            var servers = channelHttpClient.GetChannels()
                          ?.Where(c => c.Type == ServerType.WorldServer).ToList();
            var accounts = new List <ConnectedAccount>();

            foreach (var server in servers ?? new List <ChannelInfo>())
            {
                accounts.AddRange(
                    connectedAccountHttpClient.GetConnectedAccount(server));
            }

            var subpackets = new List <FinitSubPacket>();
            var friendlist = friendHttpClient.GetListFriends(visualEntity.VisualId);

            //TODO add spouselist
            //var spouseList = _webApiAccess.Get<List<CharacterRelationDto>>(WebApiRoute.Spouse, friendServer.WebApi, visualEntity.VisualId) ?? new List<CharacterRelationDto>();
            foreach (var relation in friendlist)
            {
                var account = accounts.Find(s =>
                                            (s.ConnectedCharacter != null) && (s.ConnectedCharacter.Id == relation.CharacterId));
                subpackets.Add(new FinitSubPacket
                {
                    CharacterId   = relation.CharacterId,
                    RelationType  = relation.RelationType,
                    IsOnline      = account != null,
                    CharacterName = relation.CharacterName
                });
            }

            return(new FinitPacket {
                SubPackets = subpackets
            });
        }
Exemplo n.º 14
0
 public ClientSession(ServerConfiguration configuration,
                      ILogger logger, IEnumerable <IPacketHandler> packetsHandlers, IFriendHttpClient friendHttpClient,
                      ISerializer packetSerializer, IPacketHttpClient packetHttpClient)
     : this(configuration, null, null, logger, packetsHandlers, friendHttpClient, packetSerializer,
            packetHttpClient, null)
 {
 }
Exemplo n.º 15
0
 public ClientSession(IOptions <LoginConfiguration> configuration, ILogger logger,
                      IEnumerable <IPacketHandler> packetsHandlers, IFriendHttpClient friendHttpClient,
                      ISerializer packetSerializer, IPacketHttpClient packetHttpClient) : this(logger, packetsHandlers, friendHttpClient, packetSerializer, packetHttpClient)
 {
 }
Exemplo n.º 16
0
 public MJoinPacketHandler(IFriendHttpClient friendHttpClient, IMinilandProvider minilandProvider)
 {
     _friendHttpClient = friendHttpClient;
     _minilandProvider = minilandProvider;
 }