From 528c1a07e3ac089ff70036a5e403eb2b8d3ae21f Mon Sep 17 00:00:00 2001 From: mat Date: Mon, 19 Sep 2022 20:38:08 -0500 Subject: [PATCH] change example --- azalea-physics/src/collision/shape.rs | 1 - bot/src/main.rs | 118 +++++--------------------- 2 files changed, 21 insertions(+), 98 deletions(-) diff --git a/azalea-physics/src/collision/shape.rs b/azalea-physics/src/collision/shape.rs index d229a25d..cfd05d2e 100644 --- a/azalea-physics/src/collision/shape.rs +++ b/azalea-physics/src/collision/shape.rs @@ -47,7 +47,6 @@ pub trait VoxelShape { return empty_shape(); } - Box::new(ArrayVoxelShape::new( self.shape(), self.get_coords(Axis::X).iter().map(|c| c + x).collect(), diff --git a/bot/src/main.rs b/bot/src/main.rs index f9977d99..5423e017 100644 --- a/bot/src/main.rs +++ b/bot/src/main.rs @@ -1,103 +1,27 @@ -#![allow(unused_variables, unused_imports)] -use azalea_client::{Account, Event, MoveDirection}; -use azalea_core::{PositionXYZ, Vec3}; -use azalea_physics::collision::{HasCollision, MoverType}; +use azalea_client::{Account, Client, Event, MoveDirection}; +use std::convert::TryInto; #[tokio::main] -async fn main() -> Result<(), Box> { - println!("Hello, world!"); +async fn main() { + let bot = Account::offline("bot"); - // let address = "95.111.249.143:10000"; - let address = "localhost"; - // let response = azalea_client::ping::ping_server(&address.try_into().unwrap()) - // .await - // .unwrap(); + let (bot, mut rx) = bot.join(&"localhost".try_into().unwrap()).await.unwrap(); - // println!("{}", response.description.to_ansi(None)); - let account = Account::offline("bot"); - let (mut client, mut rx) = account.join(&address.try_into().unwrap()).await.unwrap(); - println!("connected"); - - while let Some(e) = &rx.recv().await { - match e { - // TODO: have a "loaded" or "ready" event that fires when all chunks are loaded - Event::Login => {} - // Event::GameTick => { - // let world = client.world(); - // if let Some(b) = world.find_one_entity(|e| { - // e.uuid == uuid::uuid!("6536bfed-8695-48fd-83a1-ecd24cf2a0fd") - // }) { - // // let world = state.world.as_ref().unwrap(); - // // world. - // println!("{:?}", b); - // } - // // world.get_block_state(state.player.entity.pos); - // // println!("{}", p.message.to_ansi(None)); - // // if p.message.to_ansi(None) == " ok" { - // // let state = client.state.lock(); - // // let world = state.world.as_ref().unwrap(); - // // let c = world.get_block_state(&BlockPos::new(5, 78, -2)).unwrap(); - // // println!("block state: {:?}", c); - // // } - // } - Event::Chat(m) => { - let message = m.message().to_string(); - println!("{}", message); - - match &message[..] { - "stop" => { - println!("stopping"); - client.walk(MoveDirection::None); - } - "forward" => { - println!("moving forward"); - client.walk(MoveDirection::Forward); - } - "backward" => { - println!("moving backward"); - client.walk(MoveDirection::Backward); - } - "left" => { - println!("moving left"); - client.walk(MoveDirection::Left); - } - "right" => { - println!("moving right"); - client.walk(MoveDirection::Right); - } - _ => {} - } - - // let new_pos = { - // let dimension_lock = client.dimension.lock().unwrap(); - // let player = client.player.lock().unwrap(); - // let entity = player - // .entity(&dimension_lock) - // .expect("Player entity is not in world"); - // entity.pos().add_y(-0.5) - // }; - - // println!("{:?}", new_pos); - // client.set_pos(new_pos).await.unwrap(); - // client.move_entity() - - // println!("{}", m.to_ansi(None)); - // if let Err(e) = client - // .move_entity(&Vec3 { - // x: 0., - // y: -0.5, - // z: 0., - // }) - // .await - // { - // eprintln!("{:?}", e); - // } - } - _ => {} - } + while let Some(event) = rx.recv().await { + tokio::spawn(handle_event(event, bot.clone())); + } +} + +async fn handle_event(event: Event, mut bot: Client) { + match event { + Event::Login => { + // tokio::time::sleep(std::time::Duration::from_secs(1)).await; + bot.walk(MoveDirection::Forward); + // loop { + // tokio::time::sleep(std::time::Duration::from_secs(2)).await; + // } + // bot.walk(MoveDirection::None); + } + _ => {} } - - println!("done"); - - Ok(()) }