aboutsummaryrefslogtreecommitdiffstats
path: root/src/bot/master.rs
diff options
context:
space:
mode:
authorJokler <jokler@protonmail.com>2020-09-01 18:14:17 +0200
committerGitHub <noreply@github.com>2020-09-01 18:14:17 +0200
commit130cde033795382b70a312846a8f2704a15d11e3 (patch)
tree9464e08f4e15906418f40ebef76bc150d3162bbe /src/bot/master.rs
parent161c8ab648036cf0999b248fab4bf57e3a55cb61 (diff)
parent1beccb77e57c53051160d664ccbb087835ac015a (diff)
downloadpokebot-130cde033795382b70a312846a8f2704a15d11e3.tar.gz
pokebot-130cde033795382b70a312846a8f2704a15d11e3.zip
Merge pull request #60 from Mavulp/auto-reconnect
Shut down on disconnect
Diffstat (limited to 'src/bot/master.rs')
-rw-r--r--src/bot/master.rs20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/bot/master.rs b/src/bot/master.rs
index 7612c68..dad2bed 100644
--- a/src/bot/master.rs
+++ b/src/bot/master.rs
@@ -88,11 +88,19 @@ impl MasterBot {
let msg_loop = async move {
'outer: loop {
while let Some(msg) = rx.recv().await {
- if let MusicBotMessage::Quit(reason) = msg {
- cbot.teamspeak.disconnect(&reason);
- break 'outer;
+ match msg {
+ MusicBotMessage::Quit(reason) => {
+ cbot.teamspeak.disconnect(&reason);
+ break 'outer;
+ }
+ MusicBotMessage::ClientDisconnected { id, .. } => {
+ if id == cbot.my_id() {
+ // TODO Reconnect since quit was not called
+ break 'outer;
+ }
+ },
+ _ => cbot.on_message(msg).await.unwrap(),
}
- cbot.on_message(msg).await.unwrap();
}
}
};
@@ -204,6 +212,10 @@ impl MasterBot {
Ok(())
}
+ fn my_id(&self) -> ClientId {
+ self.teamspeak.my_id()
+ }
+
pub fn bot_data(&self, name: String) -> Option<crate::web_server::BotData> {
let music_bots = self.music_bots.read().unwrap();
let bot = music_bots.connected_bots.get(&name)?;