mirror of
https://github.com/revanced/revanced-discord-bot.git
synced 2025-05-01 06:54:27 +02:00
35 lines
984 B
Rust
35 lines
984 B
Rust
use std::sync::Arc;
|
|
|
|
use poise::serenity_prelude::{self as serenity, RwLock};
|
|
|
|
use crate::model::application::Configuration;
|
|
use crate::Data;
|
|
|
|
pub fn load_configuration() -> Configuration {
|
|
Configuration::load().expect("Failed to load configuration")
|
|
}
|
|
|
|
// Share the lock reference between the threads in serenity framework
|
|
pub async fn get_data_lock(ctx: &serenity::Context) -> Arc<RwLock<Data>> {
|
|
ctx.data.read().await.get::<Data>().unwrap().clone()
|
|
}
|
|
|
|
pub async fn get_member(
|
|
ctx: &serenity::Context,
|
|
guild_id: serenity::GuildId,
|
|
user_id: serenity::UserId,
|
|
) -> serenity::Result<Option<serenity::Member>> {
|
|
match guild_id.member(ctx, user_id).await {
|
|
Ok(member) => Ok(Some(member)),
|
|
Err(serenity::SerenityError::Http(err))
|
|
if matches!(
|
|
err.status_code(),
|
|
Some(serenity::http::StatusCode::NOT_FOUND)
|
|
) =>
|
|
{
|
|
Ok(None)
|
|
},
|
|
Err(err) => Err(err),
|
|
}
|
|
}
|