use azalea::prelude::*; use azalea::{Account, Client, Event}; use parking_lot::Mutex; use std::sync::Arc; #[derive(Default)] struct State {} #[tokio::main] async fn main() -> anyhow::Result<()> { env_logger::init(); let account = Account::microsoft("example@example.com").await?; azalea::start(azalea::Options { account, address: "localhost", state: Arc::new(Mutex::new(State::default())), plugins: vec![], handle, }) .await .unwrap(); Ok(()) } async fn handle(bot: Client, event: Arc, _state: Arc>) -> anyhow::Result<()> { match *event { Event::Login => { bot.chat("Hello world").await?; } Event::Tick => { bot.jump(); } _ => {} } Ok(()) }