@@ -4,7 +4,7 @@ use lambda_http::tracing::info;
44use regex:: Regex ;
55use twilight_model:: id:: Id ;
66use twilight_model:: id:: marker:: { GuildMarker , RoleMarker , UserMarker } ;
7- use crate :: discord:: { add_guild_member_role, get_guild_member, remove_guild_member_role} ;
7+ use crate :: discord:: { add_guild_member_role, get_guild_member, get_guild_member_no_cache , remove_guild_member_role} ;
88use crate :: guilds:: verify:: models:: VerifyRole ;
99
1010async fn assign_role_user (
@@ -72,7 +72,7 @@ pub async fn assign_roles_guild_user_link(
7272 let roles = & mut guild. verify . roles ;
7373 for i in 0 ..roles. len ( ) {
7474 let role = roles. get_mut ( i) . unwrap ( ) ;
75- let has_dsc_role = get_guild_member ( guild. guild_id , user_id, bot) . await ?. roles . contains ( & role. role_id ) ;
75+ let has_dsc_role = get_guild_member_no_cache ( guild. guild_id , user_id, bot) . await ?. roles . contains ( & role. role_id ) ;
7676 if enabled && Regex :: new ( & role. pattern )
7777 . unwrap ( )
7878 . is_match ( link_address)
@@ -86,7 +86,9 @@ pub async fn assign_roles_guild_user_link(
8686 info ! ( "Removing role {} from user {}" , role. role_id, user_id) ;
8787 if has_dsc_role {
8888 remove_role_user ( guild. guild_id , user_id, role. role_id , bot) . await ?;
89- role. members -= 1 ;
89+ if role. members != 0 {
90+ role. members -= 1 ;
91+ }
9092 }
9193 }
9294 }
0 commit comments