aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJokler <jokler@protonmail.com>2020-02-24 01:54:04 +0100
committerJokler <jokler@protonmail.com>2020-02-24 01:54:04 +0100
commitc2bc58abc1c0f1abcf38ba4407cdba7ae1d07507 (patch)
tree02200603b0af63bc7970418847dbb4bf523dd013
parent763b8c6579f3ae571f7287c72b9fb4f8b6e89349 (diff)
downloadpokebot-c2bc58abc1c0f1abcf38ba4407cdba7ae1d07507.tar.gz
pokebot-c2bc58abc1c0f1abcf38ba4407cdba7ae1d07507.zip
Add volume to the bot's name
-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),
}
}