autojoin call if needed
This commit is contained in:
@@ -349,10 +349,18 @@ fn get_channel(ctx: &Context, msg: &Message) -> Result<ChannelId> {
|
|||||||
async fn get_call(ctx: &Context, msg: &Message) -> Result<Arc<Mutex<songbird::Call>>> {
|
async fn get_call(ctx: &Context, msg: &Message) -> Result<Arc<Mutex<songbird::Call>>> {
|
||||||
let manager = get_manager(ctx).await?;
|
let manager = get_manager(ctx).await?;
|
||||||
let guild = get_guild(ctx, msg)?;
|
let guild = get_guild(ctx, msg)?;
|
||||||
let call = manager
|
let call = manager.get(guild);
|
||||||
.get(guild)
|
|
||||||
.ok_or_else(|| anyhow!("Not in a voice channel"))?;
|
if let Some(c) = call {
|
||||||
Ok(call)
|
Ok(c)
|
||||||
|
} else {
|
||||||
|
let channel = get_channel(ctx, msg)?;
|
||||||
|
log::warn!("Not in a voice channel, trying to join");
|
||||||
|
let _handler = manager.join(guild, channel).await;
|
||||||
|
manager
|
||||||
|
.get(guild)
|
||||||
|
.ok_or_else(|| anyhow!("Not in a voice channel, try running 'join'"))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn get_song(track: &TrackHandle) -> Result<Song> {
|
async fn get_song(track: &TrackHandle) -> Result<Song> {
|
||||||
|
|||||||
Reference in New Issue
Block a user