diff --git a/.gitignore b/.gitignore index 04f6c57..2c5ae19 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .idea +.vscode /target Cargo.lock diff --git a/src/lib.rs b/src/lib.rs index 5412134..4d88d74 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -164,14 +164,27 @@ impl Minecraft { } impl Player<'_> { - pub fn get_player_pos(&mut self) -> Vec3 { + pub fn get_pos(&mut self) -> Vec3 { let vec:Vec = self.conn.send_receive(&format!("player.getPos()")).split(',').map(|s| s.parse()).collect::, _>>().unwrap(); Vec3::from_vector(&vec) } - pub fn set_player_pos(&mut self, pos:&Vec3) { + pub fn set_pos(&mut self, pos:&Vec3) { self.conn.send(&format!("player.setPos({},{},{})", pos.x, pos.y, pos.z)); } + + pub fn get_tile_pos(&mut self) -> TileVec3 { + let vec:Vec = self.conn.send_receive(&format!("player.getTile()")).split(',').map(|s| s.parse()).collect::, _>>().unwrap(); + TileVec3::from_vector(&vec) + } + + pub fn set_tile_pos(&mut self, pos:&TileVec3) { + self.conn.send(&format!("player.setTile({},{},{})", pos.x, pos.y, pos.z)) + } + + pub fn setting(&mut self, setting:&str, status:bool) { + self.conn.send(&format!("player.setting({},{})",setting,if status {1} else {0})); + } } pub fn create(adress:&str) -> Minecraft { diff --git a/tests/player.rs b/tests/player.rs index f39bab5..aac6434 100644 --- a/tests/player.rs +++ b/tests/player.rs @@ -1,9 +1,13 @@ -use mcpi::{Vec3, create}; +use mcpi::{Vec3, create, TileVec3}; #[test] fn main() { let mut mc = create("localhost:4711"); - let posp = mc.player().get_player_pos(); + let posp = mc.player().get_pos(); let posp2 = Vec3::from(posp.x, posp.y + 10.0, posp.z); - mc.player().set_player_pos(&posp2); + mc.player().set_pos(&posp2); + let post = mc.player().get_tile_pos(); + let post2 = TileVec3::from(post.x, post.y + 10, post.z); + mc.player().set_tile_pos(&post2); + mc.player().setting("autojump", true); } \ No newline at end of file