[WIP] Fix loading gif replies

This commit is contained in:
Alex Page 2024-01-25 12:57:30 -05:00
parent e58e70509c
commit 66b215a0cb

View file

@ -1,5 +1,5 @@
use anyhow::{Context, Result}; use anyhow::{Context, Result};
use poise::serenity_prelude::{EmbedMessageBuilding, MessageBuilder}; use poise::serenity_prelude::{CreateEmbed, EmbedMessageBuilding, MessageBuilder};
use tracing::{debug, log::warn}; use tracing::{debug, log::warn};
use crate::{personality, CommandContext, Error}; use crate::{personality, CommandContext, Error};
@ -11,7 +11,11 @@ pub async fn join(ctx: CommandContext<'_>) -> Result<(), Error> {
return Ok(()); return Ok(());
}; };
let Some(Some(channel_id)) = guild.voice_states.get(&ctx.author().id).map(|vs| vs.channel_id) else { let Some(Some(channel_id)) = guild
.voice_states
.get(&ctx.author().id)
.map(|vs| vs.channel_id)
else {
ctx.say("You're not in a voice channel, silly.").await?; ctx.say("You're not in a voice channel, silly.").await?;
return Ok(()); return Ok(());
}; };
@ -72,21 +76,26 @@ pub async fn play(
.clone(); .clone();
if manager.get(guild.id).is_none() { if manager.get(guild.id).is_none() {
let Some(Some(channel_id)) = guild.voice_states.get(&ctx.author().id).map(|vs| vs.channel_id) else { let Some(Some(channel_id)) = guild
ctx.say("Neither of us are in a voice channel, silly.").await?; .voice_states
.get(&ctx.author().id)
.map(|vs| vs.channel_id)
else {
ctx.say("Neither of us are in a voice channel, silly.")
.await?;
return Ok(()); return Ok(());
}; };
let _handler = manager.join(guild.id, channel_id).await; let _handler = manager.join(guild.id, channel_id).await;
} }
if let Some(handler_lock) = manager.get(guild.id) { if let Some(handler_lock) = manager.get(guild.id) {
let mut msg = MessageBuilder::new(); let reply = poise::CreateReply::default()
msg.push_line(String::from(personality::get_random_loading_message())) .content(personality::get_random_loading_message())
.push_named_link( .embed(
"", CreateEmbed::new()
"https://media.giphy.com/media/H1dxi6xdh4NGQCZSvz/giphy.gif", .image("https://media.giphy.com/media/H1dxi6xdh4NGQCZSvz/giphy.gif"),
); );
let response = ctx.send(|r| r.content(msg.build())).await?; let response = ctx.send(reply).await?;
let mut handler = handler_lock.lock().await; let mut handler = handler_lock.lock().await;
@ -170,21 +179,26 @@ pub async fn queue(
.clone(); .clone();
if manager.get(guild.id).is_none() { if manager.get(guild.id).is_none() {
let Some(Some(channel_id)) = guild.voice_states.get(&ctx.author().id).map(|vs| vs.channel_id) else { let Some(Some(channel_id)) = guild
ctx.say("Neither of us are in a voice channel, silly.").await?; .voice_states
.get(&ctx.author().id)
.map(|vs| vs.channel_id)
else {
ctx.say("Neither of us are in a voice channel, silly.")
.await?;
return Ok(()); return Ok(());
}; };
let _handler = manager.join(guild.id, channel_id).await; let _handler = manager.join(guild.id, channel_id).await;
} }
if let Some(handler_lock) = manager.get(guild.id) { if let Some(handler_lock) = manager.get(guild.id) {
let mut msg = MessageBuilder::new(); let reply = poise::CreateReply::default()
msg.push_line(String::from(personality::get_random_loading_message())) .content(personality::get_random_loading_message())
.push_named_link( .embed(
"", CreateEmbed::new()
"https://media.giphy.com/media/H1dxi6xdh4NGQCZSvz/giphy.gif", .image("https://media.giphy.com/media/H1dxi6xdh4NGQCZSvz/giphy.gif"),
); );
let response = ctx.send(|r| r.content(msg.build())).await?; let response = ctx.send(reply).await?;
let mut handler = handler_lock.lock().await; let mut handler = handler_lock.lock().await;