aboutsummaryrefslogtreecommitdiffstats
path: root/src/bot
diff options
context:
space:
mode:
Diffstat (limited to 'src/bot')
-rw-r--r--src/bot/music.rs31
1 files changed, 19 insertions, 12 deletions
diff --git a/src/bot/music.rs b/src/bot/music.rs
index 41976e5..427338e 100644
--- a/src/bot/music.rs
+++ b/src/bot/music.rs
@@ -154,7 +154,7 @@ impl MusicBot {
player,
teamspeak: connection,
playlist,
- state: Arc::new(RwLock::new(State::Stopped)),
+ state: Arc::new(RwLock::new(State::EndOfStream)),
});
let cbot = bot.clone();
@@ -176,6 +176,8 @@ impl MusicBot {
debug!("Left message loop");
};
+ bot.update_name(State::EndOfStream);
+
(bot, msg_loop)
}
@@ -350,6 +352,7 @@ impl MusicBot {
Command::Volume { percent: volume } => {
let volume = volume.max(0.0).min(100.0) * 0.01;
self.player.set_volume(volume)?;
+ self.update_name(self.state());
}
Command::Leave => {
self.quit(String::from("Leaving"));
@@ -359,20 +362,19 @@ impl MusicBot {
Ok(())
}
+ fn update_name(&self, state: State) {
+ let volume = (self.volume() * 100.0).round();
+ let name = match state {
+ State::EndOfStream => format!("🎵 {} ({}%)", self.name, volume),
+ _ => format!("🎵 {} - {} ({}%)", self.name, state, volume),
+ };
+ self.set_nickname(&name);
+ }
+
fn on_state(&self, state: State) -> Result<(), AudioPlayerError> {
let mut current_state = self.state.write().unwrap();
if *current_state != state {
match state {
- State::Playing => {
- self.set_nickname(&format!("🎵 {} - Playing", self.name));
- }
- State::Paused => {
- self.set_nickname(&format!("🎵 {} - Paused", self.name));
- }
- State::Stopped => {
- self.set_nickname(&format!("🎵 {}", self.name));
- self.set_description("");
- }
State::EndOfStream => {
let next_track = self
.playlist
@@ -384,10 +386,15 @@ impl MusicBot {
self.start_playing_audio(request);
} else {
- self.set_nickname(&format!("🎵 {}", self.name));
+ self.set_nickname(&format!("🎵 {} ({}%)", self.name, self.volume().round()));
self.set_description("");
}
}
+ State::Stopped => {
+ self.update_name(state);
+ self.set_description("");
+ }
+ _ => self.update_name(state),
}
}