public ServerObjectAvailabilityChanged(RoutingMetaPacket internalMetaPacket) : base(internalMetaPacket)
        {
            InternalMetaPacket.PacketId = AEPacketId.ServerNewObjectAvailable;

            RoutingObject = InternalPacket.ReadRoutingComponent();
            Available     = InternalPacket.ReadBoolean();
        }
Exemplo n.º 2
0
        public ClientHandshakeBeginPacket(RoutingMetaPacket metaPacket) : base(metaPacket)
        {
            InternalMetaPacket.PacketId = AEPacketId.ClientHandshakeBegin;

            Protocol  = InternalPacket.ReadUInt32();
            Password  = InternalPacket.ReadShortString();
            Component = InternalPacket.ReadRoutingComponent();
        }
        public ServerHandshakeResultPacket(RoutingMetaPacket metaPacket) : base(metaPacket)
        {
            InternalMetaPacket.PacketId = AEPacketId.ServerHandshakeResult;

            Result = ReadSHRPResult();

            if (Result == SHRPResult.Success)
            {
                OurComponent             = InternalPacket.ReadRoutingComponent();
                OtherAvailableComponents = InternalPacket.ReadList(PacketExtensions.ReadRoutingComponent);
            }
        }
Exemplo n.º 4
0
        public async Task HandlePacket(RoutingMetaPacket metaPacket, TPacketContext context)
        {
            var packet = new AEPacket(metaPacket);

            // If authentication doesn't matter, handle packet here and return

            if (!context.Authenticated)
            {
                switch (packet.PacketId)
                {
                case AEPacketId.ClientHandshakeBegin:
                    await ClientHandshakeBeginHandler(new ClientHandshakeBeginPacket(metaPacket), context);

                    break;

                case AEPacketId.ServerHandshakeResult:
                    await
                    ServerHandshakeResultHandler(new ServerHandshakeResultPacket(metaPacket),
                                                 context);

                    break;

                default:
                    throw new InvalidPacketException(
                              $"Received ({packet.PacketId}) requiring context to be unauthenticated but we are authenticated");
                }
            }
            else
            {
                switch (packet.PacketId)
                {
                case AEPacketId.ServerNewObjectAvailable:
                    await
                    ServerNewObjectAvailableHandler(new ServerObjectAvailabilityChanged(metaPacket),
                                                    context);

                    break;

                default:
                    throw new InvalidPacketException(
                              $"Received ({packet.PacketId}) requiring context to be authenticated but we are unauthenticated");
                }
            }
        }