Exemple #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) !);
                }
            }
        }
        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 !
                },
Exemple #3
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)
 {
 }
        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 BtkPacketHandler(ILogger logger, ISerializer packetSerializer, IFriendHttpClient friendHttpClient,
                         IPacketHttpClient packetHttpClient, IConnectedAccountHttpClient connectedAccountHttpClient)
 {
     _logger                     = logger;
     _packetSerializer           = packetSerializer;
     _friendHttpClient           = friendHttpClient;
     _connectedAccountHttpClient = connectedAccountHttpClient;
     _packetHttpClient           = packetHttpClient;
 }
 public WhisperPacketHandler(ILogger logger, ISerializer packetSerializer,
                             IBlacklistHttpClient blacklistHttpClient,
                             IConnectedAccountHttpClient connectedAccountHttpClient, IPacketHttpClient packetHttpClient)
 {
     _logger                     = logger;
     _packetSerializer           = packetSerializer;
     _blacklistHttpClient        = blacklistHttpClient;
     _connectedAccountHttpClient = connectedAccountHttpClient;
     _packetHttpClient           = packetHttpClient;
 }
Exemple #7
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;
 }
 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;
 }
 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;
 }
Exemple #10
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) !);
         }
     }
 }
Exemple #11
0
 public ClientSession(IOptions <LoginConfiguration> configuration, ILogger logger,
                      IEnumerable <IPacketHandler> packetsHandlers, IFriendHttpClient friendHttpClient,
                      ISerializer packetSerializer, IPacketHttpClient packetHttpClient) : this(logger, packetsHandlers, friendHttpClient, packetSerializer, packetHttpClient)
 {
 }
Exemple #12
0
 public ShoutPacketHandler(ISerializer packetSerializer, IPacketHttpClient packetHttpClient)
 {
     _packetSerializer = packetSerializer;
     _packetHttpClient = packetHttpClient;
 }