diff options
Diffstat (limited to 'src/bot.rs')
| -rw-r--r-- | src/bot.rs | 46 |
1 files changed, 19 insertions, 27 deletions
@@ -109,7 +109,7 @@ async fn perm_check(ctx: &Context, guild: &Guild) -> anyhow::Result<()> { let me = ctx.cache.current_user().id; let member = guild.member(&ctx, me).await?; - let perms = member.permissions(&ctx)?; + let perms = member.permissions(ctx)?; let lacking_perms = util::REQUIRED_PERMS.difference(perms); @@ -331,19 +331,17 @@ fn on_err(err: FrameworkError<PoiseData, anyhow::Error>) -> BoxFuture<()> { "BANIC".to_string() }, } + } else if let Err(e) = commands::meme::invoke::_meme( + PoiseContext::Prefix(ctx), + msg_content, + Default::default(), + ) + .await + { + tracing::error!(error = %e, "producing meme for unrecognized"); + "BANIC".to_string() } else { - if let Err(e) = commands::meme::invoke::_meme( - PoiseContext::Prefix(ctx), - msg_content, - Default::default(), - ) - .await - { - tracing::error!(error = %e, "producing meme for unrecognized"); - "BANIC".to_string() - } else { - return; - } + return; } }, _ => "BANIC".to_string(), @@ -365,7 +363,7 @@ async fn framework() -> poise::Framework<PoiseData, anyhow::Error> { let additional_prefixes = ALL_PREFIXES.iter().skip(1).map(|x| poise::Prefix::Literal(x.to_owned())).collect(); - let framework = poise::Framework::builder() + poise::Framework::builder() .options(poise::FrameworkOptions { pre_command: before_handle, post_command: after_handle, @@ -374,7 +372,7 @@ async fn framework() -> poise::Framework<PoiseData, anyhow::Error> { command_check: Some(check), prefix_options: poise::PrefixFrameworkOptions { - prefix: ALL_PREFIXES.get(0).map(|&x| x.to_owned()), + prefix: ALL_PREFIXES.first().map(|&x| x.to_owned()), additional_prefixes, case_insensitive_commands: true, mention_as_prefix: false, @@ -390,9 +388,7 @@ async fn framework() -> poise::Framework<PoiseData, anyhow::Error> { ..Default::default() }) .setup(|_ctx, _ready, _framework| Box::pin(async move { Ok(()) })) - .build(); - - framework + .build() } fn check(ctx: PoiseContext) -> BoxFuture<anyhow::Result<bool>> { @@ -466,9 +462,7 @@ fn after_handle(ctx: PoiseContext) -> BoxFuture<()> { pub async fn run() -> anyhow::Result<()> { #[cfg(all(windows, feature = "windows_autostart_postgres"))] - let started_pg = - tokio::task::spawn_blocking(|| unsafe { util::windows::ensure_postgres_started() }) - .await??; + let started_pg = tokio::task::spawn_blocking(util::windows::ensure_postgres_started).await??; let token = &CONFIG.discord.auth.token; @@ -506,7 +500,7 @@ pub async fn run() -> anyhow::Result<()> { let Some(songbird) = ({ let data = client_data.read().await; - data.get::<songbird::SongbirdKey>().map(|x| x.clone()) + data.get::<songbird::SongbirdKey>().cloned() }) else { tracing::warn!("gc songbird data: no songbird in state"); continue; @@ -559,12 +553,10 @@ pub async fn run() -> anyhow::Result<()> { tracing::info!("discord shutdown"); #[cfg(all(windows, feature = "windows_autostart_postgres"))] - unsafe { - if started_pg { - tracing::info!("we started postgres, stopping it before shutdown"); + if started_pg { + tracing::info!("we started postgres, stopping it before shutdown"); - tokio::task::spawn_blocking(|| util::windows::shutdown_postgres()).await??; - } + tokio::task::spawn_blocking(util::windows::shutdown_postgres).await??; } Ok(()) |
