public static byte[] GetMapChunk(Chunk c) { using (MinecraftPacketStream stream = new MinecraftPacketStream()) { stream.WriteByte((byte)MinecraftOpcode.MapChunk); stream.WriteInt(c.Position.X); stream.WriteShort(c.Position.Y); stream.WriteInt(c.Position.Z); stream.WriteByte(15); stream.WriteByte(127); stream.WriteByte(15); using (MemoryStream mStream = new MemoryStream()) { using (ZOutputStream zStream = new ZOutputStream(mStream, zlibConst.Z_BEST_COMPRESSION)) { zStream.Write(c.Data, 0, c.Data.Length); stream.WriteInt((int)mStream.Length); mStream.Position = 0; mStream.CopyTo(stream); } } return stream.ToArray(); } }
public static byte[] GetPreChunk(Chunk c) { using (MinecraftPacketStream stream = new MinecraftPacketStream()) { stream.WriteByte((byte)MinecraftOpcode.PreChunk); stream.WriteInt(c.Position.X); stream.WriteInt(c.Position.Z); stream.WriteBool(true); return stream.ToArray(); } }