mirror of
https://github.com/revanced/revanced-discord-bot.git
synced 2025-04-30 22:44:26 +02:00
perf: clone Arc
of data.database
This commit is contained in:
parent
8840a65c94
commit
3ad345b009
@ -1,4 +1,4 @@
|
|||||||
pub mod configuration;
|
pub mod configuration;
|
||||||
|
pub mod misc;
|
||||||
pub mod moderation;
|
pub mod moderation;
|
||||||
pub mod utils;
|
pub mod utils;
|
||||||
pub mod misc;
|
|
@ -30,7 +30,7 @@ pub async fn unmute(
|
|||||||
&ctx,
|
&ctx,
|
||||||
ModerationKind::Unmute(
|
ModerationKind::Unmute(
|
||||||
queue_unmute_member(
|
queue_unmute_member(
|
||||||
ctx.discord(),
|
&ctx.discord().http,
|
||||||
&data.database,
|
&data.database,
|
||||||
&member,
|
&member,
|
||||||
configuration.general.mute.role,
|
configuration.general.mute.role,
|
||||||
@ -161,7 +161,7 @@ pub async fn mute(
|
|||||||
data.pending_unmutes.insert(
|
data.pending_unmutes.insert(
|
||||||
member.user.id.0,
|
member.user.id.0,
|
||||||
queue_unmute_member(
|
queue_unmute_member(
|
||||||
ctx.discord(),
|
&ctx.discord().http,
|
||||||
&data.database,
|
&data.database,
|
||||||
&member,
|
&member,
|
||||||
mute_role_id,
|
mute_role_id,
|
||||||
@ -303,11 +303,7 @@ pub async fn ban(
|
|||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
let ban_result = member
|
let ban_result = member
|
||||||
.ban_with_reason(
|
.ban_with_reason(&ctx.discord().http, cmp::min(dmd.unwrap_or(0), 7), reason)
|
||||||
&ctx.discord().http,
|
|
||||||
cmp::min(dmd.unwrap_or(0), 7),
|
|
||||||
reason,
|
|
||||||
)
|
|
||||||
.await;
|
.await;
|
||||||
|
|
||||||
let embed_color = ctx.data().read().await.configuration.general.embed_color;
|
let embed_color = ctx.data().read().await.configuration.general.embed_color;
|
||||||
|
@ -39,7 +39,7 @@ pub async fn load_muted_members(ctx: &serenity::Context, _: &serenity::Ready) {
|
|||||||
data.pending_unmutes.insert(
|
data.pending_unmutes.insert(
|
||||||
member.user.id.0,
|
member.user.id.0,
|
||||||
queue_unmute_member(
|
queue_unmute_member(
|
||||||
ctx,
|
&ctx.http,
|
||||||
&data.database,
|
&data.database,
|
||||||
&member,
|
&member,
|
||||||
mute_role_id,
|
mute_role_id,
|
||||||
|
16
src/main.rs
16
src/main.rs
@ -28,7 +28,7 @@ impl serenity::TypeMapKey for Data {
|
|||||||
|
|
||||||
pub struct Data {
|
pub struct Data {
|
||||||
configuration: Configuration,
|
configuration: Configuration,
|
||||||
database: Database,
|
database: Arc<Database>,
|
||||||
pending_unmutes: HashMap<u64, JoinHandle<Option<Error>>>,
|
pending_unmutes: HashMap<u64, JoinHandle<Option<Error>>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -67,12 +67,14 @@ async fn main() {
|
|||||||
|
|
||||||
let data = Arc::new(RwLock::new(Data {
|
let data = Arc::new(RwLock::new(Data {
|
||||||
configuration,
|
configuration,
|
||||||
database: Database::new(
|
database: Arc::new(
|
||||||
&env::var("MONGODB_URI").expect("MONGODB_URI environment variable not set"),
|
Database::new(
|
||||||
"revanced_discord_bot",
|
&env::var("MONGODB_URI").expect("MONGODB_URI environment variable not set"),
|
||||||
)
|
"revanced_discord_bot",
|
||||||
.await
|
)
|
||||||
.unwrap(),
|
.await
|
||||||
|
.unwrap(),
|
||||||
|
),
|
||||||
pending_unmutes: HashMap::new(),
|
pending_unmutes: HashMap::new(),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
use std::sync::Arc;
|
||||||
|
|
||||||
|
use poise::serenity_prelude::Http;
|
||||||
use tokio::task::JoinHandle;
|
use tokio::task::JoinHandle;
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
@ -11,13 +14,13 @@ pub enum ModerationKind {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn queue_unmute_member(
|
pub fn queue_unmute_member(
|
||||||
ctx: &serenity::Context,
|
http: &Arc<Http>,
|
||||||
database: &Database,
|
database: &Arc<Database>,
|
||||||
member: &Member,
|
member: &Member,
|
||||||
mute_role_id: u64,
|
mute_role_id: u64,
|
||||||
mute_duration: u64,
|
mute_duration: u64,
|
||||||
) -> JoinHandle<Option<Error>> {
|
) -> JoinHandle<Option<Error>> {
|
||||||
let ctx = ctx.clone();
|
let http = http.clone();
|
||||||
let database = database.clone();
|
let database = database.clone();
|
||||||
let mut member = member.clone();
|
let mut member = member.clone();
|
||||||
|
|
||||||
@ -46,9 +49,9 @@ pub fn queue_unmute_member(
|
|||||||
.map(|r| RoleId::from(r.parse::<u64>().unwrap()))
|
.map(|r| RoleId::from(r.parse::<u64>().unwrap()))
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
if let Err(add_role_result) = member.add_roles(&ctx.http, &taken_roles).await {
|
if let Err(add_role_result) = member.add_roles(&http, &taken_roles).await {
|
||||||
Some(Error::from(add_role_result))
|
Some(Error::from(add_role_result))
|
||||||
} else if let Err(remove_result) = member.remove_role(ctx.http, mute_role_id).await {
|
} else if let Err(remove_result) = member.remove_role(http, mute_role_id).await {
|
||||||
Some(Error::from(remove_result))
|
Some(Error::from(remove_result))
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
|
Loading…
x
Reference in New Issue
Block a user