public void handlePacketData(byte[] data) { int pos = 0; while (pos < data.Length) { try { int MessageLength = Base64Encoding.DecodeInt32(new byte[] { data[pos++], data[pos++], data[pos++] }); int MessageId = Base64Encoding.DecodeInt32(new byte[] { data[pos++], data[pos++] }); byte[] Content = new byte[MessageLength - 2]; for (int i = 0; i < Content.Length && pos < data.Length; i++) { Content[i] = data[pos++]; } if (onNewPacket != null) { using (ClientMessage message = ClientMessageFactory.GetClientMessage(MessageId, Content)) { onNewPacket.Invoke(message); } } } catch (Exception e) { Logging.HandleException(e, "packet handling"); con.Dispose(); } } }
public void handlePacketData(byte[] data) { int position = 0; while (position < data.Length) { try { var MessageLength = HabboEncoding.DecodeInt32(new byte[] { data[position++], data[position++], data[position++], data[position++] }); if (MessageLength < 2 || MessageLength > 4096) { continue; } var MessageId = HabboEncoding.DecodeInt16(new byte[] { data[position++], data[position++] }); var Content = new byte[MessageLength - 2]; Buffer.BlockCopy(data, position, Content, 0, MessageLength - 2); position += MessageLength - 2; if (onNewPacket != null) { using (ClientMessage message = ClientMessageFactory.GetClientMessage(MessageId, Content)) { onNewPacket.Invoke(message); } } } catch { } } }
/// <summary> /// Handles the message. /// </summary> /// <param name="messageId">The message identifier.</param> /// <param name="packetContent">Content of the packet.</param> /// <param name="position">The position.</param> /// <param name="packetLength">Length of the packet.</param> private void HandleMessage(int messageId, byte[] packetContent, int position, int packetLength) { using (ClientMessage clientMessage = ClientMessageFactory.GetClientMessage(messageId, packetContent, position, packetLength)) if (_currentClient?.GetMessageHandler() != null) { _currentClient.GetMessageHandler().HandleRequest(clientMessage); } }
public void handlePacketData(byte[] data) { int pos = 0; while (pos < data.Length) { try { int MessageLength = HabboEncoding.DecodeInt32(new byte[] { data[pos++], data[pos++], data[pos++], data[pos++] }); if (MessageLength < 2 || MessageLength > 1024) { //Logging.WriteLine("bad size packet!"); continue; } int MessageId = HabboEncoding.DecodeInt16(new byte[] { data[pos++], data[pos++] }); byte[] Content = new byte[MessageLength - 2]; for (int i = 0; i < Content.Length && pos < data.Length; i++) { Content[i] = data[pos++]; } //Logging.WriteLine("[REQUEST] [" + MessageId + " / len: " + MessageLength + "] => " + Encoding.Default.GetString(Content).Replace(Convert.ToChar(0).ToString(), "{char0}")); if (onNewPacket != null) { using (ClientMessage message = ClientMessageFactory.GetClientMessage(MessageId, Content)) { onNewPacket.Invoke(message); } } } catch (Exception e) { int MessageLength = HabboEncoding.DecodeInt32(new byte[] { data[pos++], data[pos++], data[pos++], data[pos++] }); int MessageId = HabboEncoding.DecodeInt16(new byte[] { data[pos++], data[pos++] }); Logging.HandleException(e, "packet handling ----> " + MessageId); con.Dispose(); } } }
public void handlePacketData(byte[] data) { int i = 0; if (currentClient != null && currentClient.ARC4 != null) { currentClient.ARC4.Decrypt(ref data); } checked { while (i < data.Length) { try { int num = HabboEncoding.DecodeInt32(new byte[] { data[i++], data[i++], data[i++], data[i++] }); if (num >= 2 && num <= 1024) { int messageId = HabboEncoding.DecodeInt16(new byte[] { data[i++], data[i++] }); byte[] array = new byte[num - 2]; int num2 = 0; while (num2 < array.Length && i < data.Length) { array[num2] = data[i++]; num2++; } if (this.onNewPacket != null) { using (ClientMessage clientMessage = ClientMessageFactory.GetClientMessage(messageId, array)) { this.onNewPacket(clientMessage); } } } } catch (Exception pException) { HabboEncoding.DecodeInt32(new byte[] { data[i++], data[i++], data[i++], data[i++] }); int num3 = HabboEncoding.DecodeInt16(new byte[] { data[i++], data[i++] }); Logging.HandleException(pException, "packet handling ----> " + num3); this.con.Dispose(); } } } }