Fix ST command to defer, as it can be quite slow

This commit is contained in:
bluepython508
2024-12-09 18:40:38 +00:00
parent 062a419c94
commit b4371f438e

View File

@@ -179,7 +179,11 @@ async fn dawn(ctx: Context<'_>) -> Result<()> {
} }
#[poise::command(slash_command, ephemeral)] #[poise::command(slash_command, ephemeral)]
async fn join(ctx: Context<'_>, to: serenity::UserId, user: Option<serenity::UserId>) -> Result<()> { async fn join(
ctx: Context<'_>,
to: serenity::UserId,
user: Option<serenity::UserId>,
) -> Result<()> {
let guild = ctx let guild = ctx
.guild_id() .guild_id()
.ok_or_eyre("This bot only works in servers")?; .ok_or_eyre("This bot only works in servers")?;
@@ -195,7 +199,9 @@ async fn join(ctx: Context<'_>, to: serenity::UserId, user: Option<serenity::Use
match channel { match channel {
Some(channel) => { Some(channel) => {
guild.move_member(ctx, user.unwrap_or(ctx.author().id), channel).await?; guild
.move_member(ctx, user.unwrap_or(ctx.author().id), channel)
.await?;
ctx.reply("Joined player").await?; ctx.reply("Joined player").await?;
} }
None => { None => {
@@ -213,6 +219,8 @@ async fn st(ctx: Context<'_>, mut spectators: Vec<serenity::UserId>) -> Result<(
let GuildData { st, .. } = ctx.data().get(guild).await?; let GuildData { st, .. } = ctx.data().get(guild).await?;
spectators.push(ctx.author().id); spectators.push(ctx.author().id);
ctx.defer_ephemeral().await?;
guild guild
.members_iter(&ctx) .members_iter(&ctx)
.try_for_each(|member| { .try_for_each(|member| {
@@ -313,7 +321,14 @@ async fn main() -> Result<()> {
let framework = poise::Framework::builder() let framework = poise::Framework::builder()
.options(poise::FrameworkOptions { .options(poise::FrameworkOptions {
commands: vec![dusk(), dawn(), st(), currently_playing(), join(), configure()], commands: vec![
dusk(),
dawn(),
st(),
currently_playing(),
join(),
configure(),
],
event_handler: |ctx, ev, ctxf, data| on_event(ctx, ev, ctxf, data).boxed(), event_handler: |ctx, ev, ctxf, data| on_event(ctx, ev, ctxf, data).boxed(),
..Default::default() ..Default::default()
}) })