diff --git a/src/main.rs b/src/main.rs index 5723410..82a842e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -17,6 +17,7 @@ struct Data { fresher: serenity::RoleId, gn_ch_id: serenity::ChannelId, member: serenity::RoleId, + old_member: serenity::RoleId, server: serenity::GuildId, } @@ -89,6 +90,11 @@ async fn poise( .expect("MEMBER_ID not found") .parse() .expect("MEMBER_ID not valid u64"); + let old_member = secret_store + .get("OLD_MEMBER_ID") + .expect("OLD_MEMBER_ID not found") + .parse() + .expect("OLD_MEMBER_ID not valid u64"); let server = secret_store .get("SERVER_ID") .expect("SERVER_ID not found") @@ -154,6 +160,7 @@ async fn poise( fresher, gn_ch_id, member, + old_member, server, }) }) diff --git a/src/verify/login.rs b/src/verify/login.rs index 8410334..7b5b705 100644 --- a/src/verify/login.rs +++ b/src/verify/login.rs @@ -255,20 +255,10 @@ pub(crate) async fn login_6( }) }) .await?; - // data.gn_ch_id - // .send_message(&ctx.http, |cm| { - // cm.content(format!( - // "Welcome to ICAS {}, if you have any questions, feel free \ - // to ping a committee member{}!", - // m.user, - // if fresher { - // ", and look out for other freshers in green" - // } else { - // "" - // } - // )) - // }) - // .await?; + if !mm.roles.contains(&data.old_member) { + crate::verify::welcome_user(&ctx.http, &data.gn_ch_id, &m.user, fresher) + .await?; + } } Err(e) => { eprintln!("Error: {e}"); diff --git a/src/verify/manual.rs b/src/verify/manual.rs index be51fc6..f13f11f 100644 --- a/src/verify/manual.rs +++ b/src/verify/manual.rs @@ -248,20 +248,9 @@ pub(crate) async fn manual_4( }) }) .await?; - // data.gn_ch_id - // .send_message(&ctx.http, |cm| { - // cm.content(format!( - // "Welcome to ICAS {}, if you have any questions, feel free \ - // to ping a committee member{}!", - // user, - // if fresher { - // ", and look out for other freshers in green" - // } else { - // "" - // } - // )) - // }) - // .await?; + if !member.roles.contains(&data.old_member) { + crate::verify::welcome_user(&ctx.http, &data.gn_ch_id, &user, fresher).await?; + } } Err(e) => { eprintln!("Error: {e}"); diff --git a/src/verify/membership.rs b/src/verify/membership.rs index e179c37..da9b5fa 100644 --- a/src/verify/membership.rs +++ b/src/verify/membership.rs @@ -176,20 +176,10 @@ pub(crate) async fn membership_3( }) }) .await?; - // data.gn_ch_id - // .send_message(&ctx.http, |cm| { - // cm.content(format!( - // "Welcome to ICAS {}, if you have any questions, feel free \ - // to ping a committee member{}!", - // m.user, - // if fresher { - // ", and look out for other freshers in green" - // } else { - // "" - // } - // )) - // }) - // .await?; + if !mm.roles.contains(&data.old_member) { + crate::verify::welcome_user(&ctx.http, &data.gn_ch_id, &m.user, fresher) + .await?; + } return Ok(()); } } diff --git a/src/verify/mod.rs b/src/verify/mod.rs index d78e9d8..854a800 100644 --- a/src/verify/mod.rs +++ b/src/verify/mod.rs @@ -127,3 +127,25 @@ pub(crate) async fn remove_role( ) -> Result<(), Error> { Ok(member.remove_role(&ctx.http, role).await?) } + +pub(crate) async fn welcome_user( + http: impl AsRef, + channel: &serenity::ChannelId, + user: &serenity::User, + fresher: bool, +) -> Result<(), Error> { + channel + .send_message(http, |m| { + m.content(format!( + "Welcome to ICAS {user}, if you have any questions, \ + feel free to ping a committee member{}!", + if fresher { + ", and look out for other freshers in green" + } else { + "" + } + )) + }) + .await?; + Ok(()) +}