Represents a class for constructing game packets.
This class exclusively uses little-endian byte order.
Inheritance: IPacketBuilder, IDisposable
Exemplo n.º 1
0
        public PacketBuilder CreatePacket(string label)
        {
            ushort code = this.packets.GetOutgoingCode(label);

            var builder = new PacketBuilder();
            builder.WriteInt16(code);
            return builder;
        }
Exemplo n.º 2
0
 public void SetUp()
 {
     _builder = new PacketBuilder();
 }
Exemplo n.º 3
0
        private static void ShouldThrowOde(Action<PacketBuilder> operation)
        {
            var builder = new PacketBuilder();
            builder.Dispose();

            builder
                .Invoking(operation)
                .ShouldThrow<ObjectDisposedException>();
        }
Exemplo n.º 4
0
 public void SetUp()
 {
     this.builder = new PacketBuilder();
 }
Exemplo n.º 5
0
        private static byte[] ConstructHandshakePacketContent(HandshakeInfo handshakeInfo)
        {
            using (var builder = new PacketBuilder())
            {
                builder.WriteInt16(handshakeInfo.Version);
                builder.WriteLengthString(handshakeInfo.Subversion);
                builder.WriteBytes(handshakeInfo.ServerIv);
                builder.WriteBytes(handshakeInfo.ClientIv);

                // Locale ID (used for localizations and test servers)
                builder.WriteByte(handshakeInfo.LocaleId);

                return builder.ToByteArray();
            }
        }
Exemplo n.º 6
0
        private static byte[] ConstructHandshakePacket(HandshakeInfo handshakeInfo)
        {
            var content = ConstructHandshakePacketContent(handshakeInfo);

            using (var builder = new PacketBuilder())
            {
                if (handshakeInfo.Header.HasValue)
                {
                    builder.WriteInt16(handshakeInfo.Header.Value);
                }
                else
                {
                    builder.WriteInt16((ushort)content.Length);
                }

                builder.WriteBytes(content);

                return builder.ToByteArray();
            }
        }