From 1903dabe2cece2eab4a595b09636342aed260406 Mon Sep 17 00:00:00 2001 From: mat Date: Sat, 2 Dec 2023 15:48:21 -0600 Subject: [PATCH] make address an Arc --- azalea/src/swarm/mod.rs | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/azalea/src/swarm/mod.rs b/azalea/src/swarm/mod.rs index 2dfdc4805..417ca168b 100644 --- a/azalea/src/swarm/mod.rs +++ b/azalea/src/swarm/mod.rs @@ -37,9 +37,10 @@ pub struct Swarm { bots: Arc>>, - // bot_datas: Arc>>, - pub resolved_address: SocketAddr, - pub address: ServerAddress, + // the address is public and mutable so plugins can change it + pub resolved_address: Arc>, + pub address: Arc>, + pub instance_container: Arc>, bots_tx: mpsc::UnboundedSender<(Option, Client)>, @@ -326,8 +327,8 @@ where ecs_lock: ecs_lock.clone(), bots: Arc::new(Mutex::new(HashMap::new())), - resolved_address, - address, + resolved_address: Arc::new(RwLock::new(resolved_address)), + address: Arc::new(RwLock::new(address)), instance_container, bots_tx, @@ -524,17 +525,14 @@ impl Swarm { account: &Account, state: S, ) -> Result { - // tx is moved to the bot so it can send us events - // rx is used to receive events from the bot - // An event that causes the schedule to run. This is only used internally. - // let (run_schedule_sender, run_schedule_receiver) = mpsc::unbounded_channel(); - // let ecs_lock = start_ecs_runner(run_schedule_receiver, - // run_schedule_sender.clone()); + let address = self.address.read().clone(); + let resolved_address = self.resolved_address.read().clone(); + let (bot, mut rx) = Client::start_client( self.ecs_lock.clone(), account, - &self.address, - &self.resolved_address, + &address, + &resolved_address, self.run_schedule_sender.clone(), ) .await?;