From 8eec78e9e0e5076289e98b82b2bb9b4a139be70d Mon Sep 17 00:00:00 2001 From: strawberry Date: Sat, 5 Oct 2024 12:51:15 -0400 Subject: [PATCH] mark the server user bot as online/offline on shutdown/startup Signed-off-by: strawberry --- src/service/services.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/service/services.rs b/src/service/services.rs index 0b63a5ca..ea81f434 100644 --- a/src/service/services.rs +++ b/src/service/services.rs @@ -123,6 +123,14 @@ impl Services { .start() .await?; + // set the server user as online + if self.server.config.allow_local_presence { + _ = self + .presence + .ping_presence(&self.globals.server_user, &ruma::presence::PresenceState::Online) + .await; + } + debug_info!("Services startup complete."); Ok(Arc::clone(self)) } @@ -130,6 +138,14 @@ impl Services { pub async fn stop(&self) { info!("Shutting down services..."); + // set the server user as offline + if self.server.config.allow_local_presence { + _ = self + .presence + .ping_presence(&self.globals.server_user, &ruma::presence::PresenceState::Offline) + .await; + } + self.interrupt(); if let Some(manager) = self.manager.lock().await.as_ref() { manager.stop().await;