public Player(string username) { //TODO: Store username? using (NBTFile file = NBTFile.Open(MinecraftServer.Instance.Path + "Players/" + username + ".dat")) { Tag[] pos = (Tag[])file.FindPayload("Pos"); Position = new PointDouble() { X = (double)pos[0].Payload, Y = (double)pos[1].Payload, Z = (double)pos[2].Payload }; Tag[] rotation = (Tag[])file.FindPayload("Rotation"); Rotation = new Rotation() { Yaw = (float)rotation[0].Payload, Pitch = (float)rotation[1].Payload }; OnGround = BitConverter.ToBoolean(new byte[] { (byte)file.FindPayload("OnGround") }, 0); } }
public static byte[] GetPositionLook(PointDouble position, Rotation rotation, bool onGround) { using (MinecraftPacketStream stream = new MinecraftPacketStream()) { stream.WriteByte((byte)MinecraftOpcode.PlayerPositionLook); stream.WriteDouble(position.X); stream.WriteDouble(position.Y); stream.WriteDouble(position.Y + 1.62); // dunno what 1.62 means... stream.WriteDouble(position.Z); stream.WriteFloat(rotation.Yaw); stream.WriteFloat(rotation.Pitch); stream.WriteBool(onGround); return stream.ToArray(); } }