diff --git a/src/scripting/client/mod.rs b/src/scripting/client/mod.rs index 64752b5..9f06dd8 100644 --- a/src/scripting/client/mod.rs +++ b/src/scripting/client/mod.rs @@ -10,6 +10,7 @@ use super::{ use azalea::{ Client as AzaleaClient, entity::metadata::{AirSupply, Score}, + interact::HitResultComponent, }; use mlua::{Lua, Result, UserData, UserDataFields, UserDataMethods}; @@ -49,6 +50,30 @@ impl UserData for Client { }) }); + f.add_field_method_get("looking_at", |lua, this| { + let hr = this + .inner + .as_ref() + .unwrap() + .component::(); + Ok(if hr.miss { + None + } else { + let result = lua.create_table()?; + result.set( + "position", + Vec3 { + x: f64::from(hr.block_pos.x), + y: f64::from(hr.block_pos.y), + z: f64::from(hr.block_pos.z), + }, + )?; + result.set("inside", hr.inside)?; + result.set("world_border", hr.world_border)?; + Some(result) + }) + }); + f.add_field_method_get("position", |_, this| { let p = this.inner.as_ref().unwrap().position(); Ok(Vec3 {