Пример #1
0
        private static async Task DispatchDeltaAsync(Control control, Bitmap bitmap, IProtocolStream stream)
        {
            var buffer = await stream.ReceiveAsync();

            control.Invoke(new Action(() =>
            {
                int len = buffer.DecompressQuick(_bufferUncompressed);

                ProcessDelta(bitmap, _bufferUncompressed, 0, len);

                control.Refresh();
            }));
        }
Пример #2
0
        public IProtocol Initialize(IMinecraftClient client, INetworkTCP tcp, bool debugPackets = false)
        {
            _minecraft  = client;
            _stream     = new ClassicStream(tcp);
            SavePackets = debugPackets;

            PacketsReceived = new List <IPacket>();
            PacketsSended   = new List <IPacket>();

            SendingAsyncHandlers = new Dictionary <Type, Func <ISendingAsyncArgs, Task> >();
            RegisterSupportedSendings();

            return(this);
        }
Пример #3
0
        /// <summary>
        /// Packets are handled here. Compression and encryption are handled here too
        /// </summary>
        /// <param name="id">Packet ID</param>
        /// <param name="stream"></param>
        private void HandlePacket(int id, IProtocolStream stream)
        {
            using (var reader = new TrueCraftDataReader(stream as Stream))
            {
                IPacket packet = null;

                switch (State)
                {
                    #region Login

                case ConnectionState.Joining:
                    if (ServerResponse.JoiningServer[id] == null)
                    {
                        throw new ProtocolException("Reading error: Wrong Login packet ID.");
                    }

                    packet = ServerResponse.JoiningServer[id]().ReadPacket(reader);

                    OnPacketHandled(id, packet, ConnectionState.Joining);
                    break;

                    #endregion Login

                    #region Play

                case ConnectionState.Joined:
                    if (ServerResponse.JoinedServer[id] == null)
                    {
                        throw new ProtocolException("Reading error: Wrong Play packet ID.");
                    }

                    packet = ServerResponse.JoinedServer[id]().ReadPacket(reader);

                    OnPacketHandled(id, packet, ConnectionState.Joined);
                    break;

                    #endregion Play
                }

                if (SavePackets)
                {
                    PacketsReceived.Add(packet);
                }
            }
        }
Пример #4
0
 public IProtocol GetProtocol(IProtocolStream protocolStream)
 {
     return new HyperProtocol(protocolStream);
 }
Пример #5
0
        public IPacket WritePacket(IProtocolStream stream)
        {
            Coordinates.ToStreamShort(stream);

            return(this);
        }
Пример #6
0
 public IPacket WritePacket(IProtocolStream stream)
 {
     // This space intentionally left blank
     return(this);
 }
Пример #7
0
        public IPacket WritePacket(IProtocolStream stream)
        {
            stream.WriteString(Reason);

            return(this);
        }
Пример #8
0
        public IPacket WritePacket(IProtocolStream stream)
        {
            stream.WriteString(Username);

            return(this);
        }
Пример #9
0
        public IPacket WritePacket(IProtocolStream stream)
        {
            stream.WriteByte(SupportLevel);

            return(this);
        }
Пример #10
0
        public IPacket WritePacket(IProtocolStream stream)
        {
            stream.WriteByte((byte)WeatherType);

            return(this);
        }
        public IPacket WritePacket(IProtocolStream stream)
        {
            stream.WriteShort(Distance);

            return(this);
        }
Пример #12
0
        public IPacket WritePacket(IProtocolStream stream)
        {
            stream.WriteString(ConnectionHash);

            return(this);
        }
Пример #13
0
 public IPacket WritePacket(IProtocolStream stream)
 {
     return(this);
 }
Пример #14
0
 public IProtocol GetProtocol(IProtocolStream protocolStream)
 {
     return new SimpleProtocol(protocolStream);
 }
Пример #15
0
 public DebugStream(IProtocolStream protocolStream)
 {
     _protocolStream = protocolStream;
 }
Пример #16
0
        public IPacket WritePacket(IProtocolStream stream)
        {
            stream.WriteByte(SelectionID);

            return(this);
        }
Пример #17
0
 public HyperProtocol(IProtocolStream protocolStream)
 {
     _protocolStream = protocolStream;
 }
Пример #18
0
        public IPacket WritePacket(IProtocolStream stream)
        {
            stream.WriteSByte(PlayerID);

            return(this);
        }
Пример #19
0
 public SimpleProtocol(IProtocolStream protocolStream)
 {
     _protocolStream = protocolStream;
 }
        public IPacket WritePacket(IProtocolStream stream)
        {
            stream.WriteShort(NameID);

            return(this);
        }