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(); })); }
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); }
/// <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); } } }
public IProtocol GetProtocol(IProtocolStream protocolStream) { return new HyperProtocol(protocolStream); }
public IPacket WritePacket(IProtocolStream stream) { Coordinates.ToStreamShort(stream); return(this); }
public IPacket WritePacket(IProtocolStream stream) { // This space intentionally left blank return(this); }
public IPacket WritePacket(IProtocolStream stream) { stream.WriteString(Reason); return(this); }
public IPacket WritePacket(IProtocolStream stream) { stream.WriteString(Username); return(this); }
public IPacket WritePacket(IProtocolStream stream) { stream.WriteByte(SupportLevel); return(this); }
public IPacket WritePacket(IProtocolStream stream) { stream.WriteByte((byte)WeatherType); return(this); }
public IPacket WritePacket(IProtocolStream stream) { stream.WriteShort(Distance); return(this); }
public IPacket WritePacket(IProtocolStream stream) { stream.WriteString(ConnectionHash); return(this); }
public IPacket WritePacket(IProtocolStream stream) { return(this); }
public IProtocol GetProtocol(IProtocolStream protocolStream) { return new SimpleProtocol(protocolStream); }
public DebugStream(IProtocolStream protocolStream) { _protocolStream = protocolStream; }
public IPacket WritePacket(IProtocolStream stream) { stream.WriteByte(SelectionID); return(this); }
public HyperProtocol(IProtocolStream protocolStream) { _protocolStream = protocolStream; }
public IPacket WritePacket(IProtocolStream stream) { stream.WriteSByte(PlayerID); return(this); }
public SimpleProtocol(IProtocolStream protocolStream) { _protocolStream = protocolStream; }
public IPacket WritePacket(IProtocolStream stream) { stream.WriteShort(NameID); return(this); }