diff options
| author | Jokler <jokler@protonmail.com> | 2020-09-01 18:14:17 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-09-01 18:14:17 +0200 |
| commit | 130cde033795382b70a312846a8f2704a15d11e3 (patch) | |
| tree | 9464e08f4e15906418f40ebef76bc150d3162bbe /src/bot/master.rs | |
| parent | 161c8ab648036cf0999b248fab4bf57e3a55cb61 (diff) | |
| parent | 1beccb77e57c53051160d664ccbb087835ac015a (diff) | |
| download | pokebot-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.rs | 20 |
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)?; |
