summary refs log tree commit diff
path: root/src/system/bot/client.rs
diff options
context:
space:
mode:
authorAshelyn Rose <git@ashen.earth>2024-11-10 12:52:02 -0700
committerAshelyn Rose <git@ashen.earth>2024-11-10 12:52:02 -0700
commit66208d1d9fcd32a88dcd9ecba13e87723812028a (patch)
treea3a080fa136c50e7d160f79c1b83a58e5d3e418d /src/system/bot/client.rs
parent058fb241e4373e083f1ab706904bd601abbf509a (diff)
Implement nick command
Diffstat (limited to 'src/system/bot/client.rs')
-rw-r--r--src/system/bot/client.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/system/bot/client.rs b/src/system/bot/client.rs
index a2d1b28..19fcbe6 100644
--- a/src/system/bot/client.rs
+++ b/src/system/bot/client.rs
@@ -23,6 +23,20 @@ impl Client {
         }
     }
 
+    pub async fn set_nick<'a>(&self, server_id: ServerId, nick: &'a str) -> Result<(), TwiError> {
+        let client = self.client.lock().await;
+
+        let current_user = client.current_user()
+            .await?.model().await.expect("Could not retrieve current user");
+
+        client
+           .update_guild_member(server_id, current_user.id)
+           .nick(Some(nick)).expect("Invalid nick")
+           .await?;
+
+        Ok(())
+    }
+
     pub async fn fetch_message(&self, message_id: MessageId, channel_id: ChannelId) -> FullMessage {
         let client = self.client.lock().await;