Compare commits
	
		
			3 Commits
		
	
	
		
			a957aaeaec
			...
			571581767e
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 571581767e | |||
| 823a63e93d | |||
| 3e672c4d1a | 
| @@ -7,11 +7,12 @@ pub mod logging; | |||||||
| pub mod nochatreports; | pub mod nochatreports; | ||||||
| pub mod player; | pub mod player; | ||||||
| pub mod system; | pub mod system; | ||||||
|  | pub mod thread; | ||||||
| pub mod vec3; | pub mod vec3; | ||||||
|  |  | ||||||
| use crate::{ListenerMap, build_info::built}; | use crate::{ListenerMap, build_info::built}; | ||||||
| use mlua::{Lua, Table}; | use mlua::{Lua, Table}; | ||||||
| use std::{io, time::Duration}; | use std::io; | ||||||
|  |  | ||||||
| #[derive(Debug)] | #[derive(Debug)] | ||||||
| #[allow(dead_code)] | #[allow(dead_code)] | ||||||
| @@ -33,19 +34,12 @@ pub fn register_globals( | |||||||
|     globals.set("GIT_COMMIT_HASH", built::GIT_COMMIT_HASH)?; |     globals.set("GIT_COMMIT_HASH", built::GIT_COMMIT_HASH)?; | ||||||
|     globals.set("GIT_COMMIT_HASH_SHORT", built::GIT_COMMIT_HASH_SHORT)?; |     globals.set("GIT_COMMIT_HASH_SHORT", built::GIT_COMMIT_HASH_SHORT)?; | ||||||
|  |  | ||||||
|     globals.set( |  | ||||||
|         "sleep", |  | ||||||
|         lua.create_async_function(async |_, duration: u64| { |  | ||||||
|             tokio::time::sleep(Duration::from_millis(duration)).await; |  | ||||||
|             Ok(()) |  | ||||||
|         })?, |  | ||||||
|     )?; |  | ||||||
|  |  | ||||||
|     block::register_globals(lua, globals)?; |     block::register_globals(lua, globals)?; | ||||||
|     events::register_globals(lua, globals, event_listeners)?; |     events::register_globals(lua, globals, event_listeners)?; | ||||||
|     logging::register_globals(lua, globals)?; |     logging::register_globals(lua, globals)?; | ||||||
|     nochatreports::register_globals(lua, globals)?; |     nochatreports::register_globals(lua, globals)?; | ||||||
|     system::register_globals(lua, globals) |     system::register_globals(lua, globals)?; | ||||||
|  |     thread::register_globals(lua, globals) | ||||||
| } | } | ||||||
|  |  | ||||||
| pub fn reload(lua: &Lua, sender: Option<String>) -> Result<(), Error> { | pub fn reload(lua: &Lua, sender: Option<String>) -> Result<(), Error> { | ||||||
|   | |||||||
							
								
								
									
										27
									
								
								src/lua/thread.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								src/lua/thread.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | |||||||
|  | use mlua::{Error, Function, Lua, Result, Table}; | ||||||
|  | use std::time::Duration; | ||||||
|  | use tokio::time::{sleep, timeout}; | ||||||
|  |  | ||||||
|  | pub fn register_globals(lua: &Lua, globals: &Table) -> Result<()> { | ||||||
|  |     globals.set( | ||||||
|  |         "sleep", | ||||||
|  |         lua.create_async_function(async |_, duration: u64| { | ||||||
|  |             sleep(Duration::from_millis(duration)).await; | ||||||
|  |             Ok(()) | ||||||
|  |         })?, | ||||||
|  |     )?; | ||||||
|  |  | ||||||
|  |     globals.set( | ||||||
|  |         "timeout", | ||||||
|  |         lua.create_async_function(async |_, (duration, function): (u64, Function)| { | ||||||
|  |             timeout( | ||||||
|  |                 Duration::from_millis(duration), | ||||||
|  |                 function.call_async::<()>(()), | ||||||
|  |             ) | ||||||
|  |             .await | ||||||
|  |             .map_err(Error::external) | ||||||
|  |         })?, | ||||||
|  |     )?; | ||||||
|  |  | ||||||
|  |     Ok(()) | ||||||
|  | } | ||||||
							
								
								
									
										16
									
								
								src/main.rs
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								src/main.rs
									
									
									
									
									
								
							| @@ -14,6 +14,7 @@ use arguments::Arguments; | |||||||
| use azalea::{ | use azalea::{ | ||||||
|     DefaultBotPlugins, DefaultPlugins, brigadier::prelude::CommandDispatcher, prelude::*, |     DefaultBotPlugins, DefaultPlugins, brigadier::prelude::CommandDispatcher, prelude::*, | ||||||
| }; | }; | ||||||
|  | use azalea_hax::HaxPlugin; | ||||||
| use bevy_app::PluginGroup; | use bevy_app::PluginGroup; | ||||||
| use bevy_log::{ | use bevy_log::{ | ||||||
|     LogPlugin, |     LogPlugin, | ||||||
| @@ -113,8 +114,14 @@ async fn main() -> anyhow::Result<()> { | |||||||
|             }, |             }, | ||||||
|         )), |         )), | ||||||
|     }; |     }; | ||||||
|  |     let account = if username.contains('@') { | ||||||
|  |         Account::microsoft(&username).await? | ||||||
|  |     } else { | ||||||
|  |         Account::offline(&username) | ||||||
|  |     }; | ||||||
|     let Err(error) = ClientBuilder::new_without_plugins() |     let Err(error) = ClientBuilder::new_without_plugins() | ||||||
|         .add_plugins(DefaultBotPlugins) |         .add_plugins(DefaultBotPlugins) | ||||||
|  |         .add_plugins(HaxPlugin) | ||||||
|         .add_plugins(default_plugins) |         .add_plugins(default_plugins) | ||||||
|         .add_plugins(record_plugin) |         .add_plugins(record_plugin) | ||||||
|         .set_handler(events::handle_event) |         .set_handler(events::handle_event) | ||||||
| @@ -123,14 +130,7 @@ async fn main() -> anyhow::Result<()> { | |||||||
|             event_listeners, |             event_listeners, | ||||||
|             commands: Arc::new(commands), |             commands: Arc::new(commands), | ||||||
|         }) |         }) | ||||||
|         .start( |         .start(account, server) | ||||||
|             if username.contains('@') { |  | ||||||
|                 Account::microsoft(&username).await? |  | ||||||
|             } else { |  | ||||||
|                 Account::offline(&username) |  | ||||||
|             }, |  | ||||||
|             server, |  | ||||||
|         ) |  | ||||||
|         .await; |         .await; | ||||||
|     eprintln!("{error}"); |     eprintln!("{error}"); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -68,11 +68,12 @@ impl Recorder { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     pub fn save_raw_packet(&mut self, raw_packet: &[u8]) -> Result<()> { |     pub fn save_raw_packet(&mut self, raw_packet: &[u8]) -> Result<()> { | ||||||
|         let mut data = Vec::with_capacity(raw_packet.len() + 8); |         self.zip_writer.write_all( | ||||||
|         data.extend(TryInto::<u32>::try_into(self.start.elapsed().as_millis())?.to_be_bytes()); |             &TryInto::<u32>::try_into(self.start.elapsed().as_millis())?.to_be_bytes(), | ||||||
|         data.extend(TryInto::<u32>::try_into(raw_packet.len())?.to_be_bytes()); |         )?; | ||||||
|         data.extend(raw_packet); |         self.zip_writer | ||||||
|         self.zip_writer.write_all(&data)?; |             .write_all(&TryInto::<u32>::try_into(raw_packet.len())?.to_be_bytes())?; | ||||||
|  |         self.zip_writer.write_all(raw_packet)?; | ||||||
|         Ok(()) |         Ok(()) | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user