コード例 #1
0
        public void SendPacket(IPacket packet)
        {
            PacketBuffer sendBuffer = new PacketBuffer();

            packet.Send(sendBuffer);
            byte[] packetIdVI = ByteUtils.ToVarInt(packet.GetId());
            byte[] packetData = ByteUtils.Concat(packetIdVI, sendBuffer.ToArray());
            if (compressionThreshold > 0)
            {
                if (packetData.Length > compressionThreshold)
                {
                    byte[] uncompressed_length      = ByteUtils.ToVarInt(packetData.Length);
                    byte[] compressed_packet        = Zlib.Compress(packetData);
                    byte[] compressed_packet_length = ByteUtils.ToVarInt(compressed_packet.Length);
                    packetData = ByteUtils.Concat(compressed_packet_length, compressed_packet);
                }
                else
                {
                    byte[] uncompressed_length = ByteUtils.ToVarInt(0);
                    packetData = ByteUtils.Concat(uncompressed_length, packetData);
                }
            }

            byte[] lengthVI = ByteUtils.ToVarInt(packetData.Length);
            var    l        = ByteUtils.Concat(lengthVI, packetData);

            SendBytes(l);
        }
コード例 #2
0
        public void SendPacket(IPacket packet)
        {
            var buf = new PacketBuffer();

            packet.Send(buf);
            SendPacket(packet.GetId(), buf, true);
        }
コード例 #3
0
        public void SendPacket(IPacket packet, NetClient client)
        {
            var message = server.CreateMessage();

            message.Write((byte)packet.GetId());
            packet.ToMessage(message);

            server.SendMessage(message, client.ServerConnection, NetDeliveryMethod.ReliableSequenced, 0);
        }
コード例 #4
0
        public void SendAll(IPacket packet)
        {
            Console.WriteLine(server.Connections[0]);

            var message = server.CreateMessage();

            message.Write((byte)packet.GetId());
            packet.ToMessage(message);

            server.SendToAll(message, NetDeliveryMethod.ReliableSequenced);
        }