Ejemplo n.º 1
0
        public void Write(PacketLogEntry entry)
        {
            if (entry == null)
            {
                throw new ArgumentNullException(nameof(entry));
            }

            if (!Servers.ContainsKey(entry.ServerId))
            {
                throw new ArgumentException("Invalid server ID.", nameof(entry));
            }

            if (!Messages.Game.OpCodeToName.ContainsKey(entry.OpCode))
            {
                throw new ArgumentException("Invalid opcode.", nameof(entry));
            }

            if (_disposed)
            {
                throw new ObjectDisposedException(GetType().FullName);
            }

            _writer.WriteInt64(new DateTimeOffset(entry.Timestamp).ToUnixTimeMilliseconds());
            _writer.WriteInt32(entry.ServerId);
            _writer.WriteByte((byte)entry.Direction);
            _writer.WriteUInt16(entry.OpCode);
            _writer.WriteUInt16((ushort)entry.Payload.Count);
            _writer.WriteBytes(entry.Payload.ToArray());
        }
Ejemplo n.º 2
0
        public void Write(PacketLogEntry entry)
        {
            _writer.Write(entry.Timestamp.ToUniversalTime().ToBinary());
            _writer.Write(entry.ServerName);
            _writer.Write((byte)entry.Direction);
            _writer.Write(entry.OpCode);
            _writer.Write((ushort)entry.Payload.Count);
            _writer.Write(entry.Payload.ToArray());

            _writer.Flush();
        }