@@ -28,7 +28,7 @@ use serenity::{
2828
2929#[ async_trait]
3030pub trait CommandContext : Sync {
31- fn context < ' a > ( & ' a self ) -> & ' a Context ;
31+ fn context ( & self ) -> & Context ;
3232 fn sender ( & self ) -> Result < UserId , Error > ;
3333 fn channel ( & self ) -> Result < ChannelId , Error > ;
3434 async fn attachments < ' a > ( & ' a self ) -> Result < & ' a [ Attachment ] , Error > ;
@@ -59,7 +59,7 @@ pub trait CommandContext: Sync {
5959 let g_members = guild. members ( self . context ( ) , Some ( 1000 ) , None ) . await ?;
6060
6161 Ok (
62- futures:: stream:: iter ( g_members. iter ( ) . map ( |m| m . clone ( ) ) ) // fetch members in the channel message was sent in
62+ futures:: stream:: iter ( g_members. iter ( ) . cloned ( ) ) // fetch members in the channel message was sent in
6363 . filter_map ( |member| async {
6464 if guild
6565 . user_permissions_in ( & channel, & member)
@@ -121,7 +121,7 @@ impl MessageContext<'_> {
121121
122122#[ async_trait]
123123impl CommandContext for MessageContext < ' _ > {
124- fn context < ' a > ( & ' a self ) -> & ' a Context {
124+ fn context ( & self ) -> & Context {
125125 self . ctx
126126 }
127127 fn sender ( & self ) -> Result < UserId , Error > {
@@ -148,7 +148,7 @@ impl SlashCommandContext<'_> {
148148
149149#[ async_trait]
150150impl CommandContext for SlashCommandContext < ' _ > {
151- fn context < ' a > ( & ' a self ) -> & ' a Context {
151+ fn context ( & self ) -> & Context {
152152 self . ctx
153153 }
154154 fn sender ( & self ) -> Result < UserId , Error > {
@@ -164,13 +164,10 @@ impl CommandContext for SlashCommandContext<'_> {
164164 }
165165 }
166166 fn channel ( & self ) -> Result < ChannelId , Error > {
167- self . interaction . channel_id . map_or (
168- Err ( Error :: new (
169- "Error retrieving channel for slash command" ,
170- ErrorType :: IO ( IOErrorType :: Discord ) ,
171- ) ) ,
172- |c| Ok ( c) ,
173- )
167+ self . interaction . channel_id . ok_or ( Error :: new (
168+ "Error retrieving channel for slash command" ,
169+ ErrorType :: IO ( IOErrorType :: Discord ) ,
170+ ) )
174171 }
175172 async fn attachments < ' a > ( & ' a self ) -> Result < & ' a [ Attachment ] , Error > {
176173 Err ( Error :: new (
@@ -427,14 +424,13 @@ pub async fn execute_command<T>(
427424 output. output_line ( & "Selected character:" ) ;
428425 output. output_line ( & selected) ;
429426 output. output_line ( & "" ) ;
427+ } else if non_selected. is_empty ( ) {
428+ output. output_line ( & "No character found for your discord account" ) ;
430429 } else {
431- if non_selected. is_empty ( ) {
432- output. output_line ( & "No character found for your discord account" ) ;
433- } else {
434- output. output_line ( & "No character currently selected" ) ;
435- output. output_line ( & "" ) ;
436- }
430+ output. output_line ( & "No character currently selected" ) ;
431+ output. output_line ( & "" ) ;
437432 }
433+
438434 if !non_selected. is_empty ( ) {
439435 output. output_line ( & "Other characters:" ) ;
440436 for name in non_selected {
@@ -594,7 +590,7 @@ pub async fn execute_command<T>(
594590 }
595591
596592 Some ( ( "ini" , sub_m) ) => {
597- match initiative ( character_manager. read ( ) . await , & sub_m, cmd_ctx, output) . await {
593+ match initiative ( character_manager. read ( ) . await , sub_m, cmd_ctx, output) . await {
598594 Ok ( ( ) ) => { }
599595 Err ( e) => match e. err_type ( ) {
600596 ErrorType :: InvalidInput ( _) => {
@@ -609,7 +605,7 @@ pub async fn execute_command<T>(
609605 }
610606
611607 Some ( ( "rename" , sub_m) ) => {
612- match rename ( character_manager. read ( ) . await , & sub_m, cmd_ctx, output) . await {
608+ match rename ( character_manager. read ( ) . await , sub_m, cmd_ctx, output) . await {
613609 Ok ( ( ) ) => { }
614610 Err ( e) => match e. err_type ( ) {
615611 ErrorType :: InvalidInput ( _) => {
@@ -735,7 +731,7 @@ where
735731 Ok ( character_name) => {
736732 let display_name = member. display_name ( ) ;
737733 let display_name = display_name. split ( " Ξ " ) . last ( ) . unwrap ( ) ;
738- new_name = calculate_name ( & character_name, & display_name, 32 ) ?;
734+ new_name = calculate_name ( character_name, display_name, 32 ) ?;
739735 }
740736 } ;
741737 } else if let Some ( index) = nickname. find ( ' ' ) {
@@ -816,7 +812,7 @@ where
816812
817813 if sub_m. is_present ( "new" ) {
818814 let custom_args: Vec < & str > = sub_m. values_of ( "new" ) . unwrap ( ) . collect ( ) ;
819- if custom_args. len ( ) % 2 != 0 {
815+ if ! custom_args. len ( ) . is_multiple_of ( 2 ) {
820816 return Err ( Error :: new (
821817 "The \" new\" argument expects an even number of values (name and level for each custom character)" ,
822818 ErrorType :: InvalidInput ( InputErrorType :: InvalidArgument )
@@ -865,7 +861,7 @@ where
865861 s
866862 } ) ;
867863 let discord_name = displ_name. split ( " Ξ " ) . last ( ) . unwrap ( ) ;
868- let suffix = calculate_name ( & character. 0 , & discord_name, 32 - ini_str. len ( ) ) ?;
864+ let suffix = calculate_name ( & character. 0 , discord_name, 32 - ini_str. len ( ) ) ?;
869865 let new_name = match displ_name. contains ( 'Ξ' ) {
870866 // only use cool renameing if already used rename
871867 true => format ! ( "{} {}" , ini_str, suffix) ,
@@ -875,7 +871,7 @@ where
875871 let roll = roll;
876872 let member = characters_members[ roll. 0 ] . as_ref ( ) . unwrap ( ) ;
877873 let new_name = new_name;
878- if let Err ( e) = cmd_ctx. rename_member ( & member, & new_name) . await {
874+ if let Err ( e) = cmd_ctx. rename_member ( member, & new_name) . await {
879875 println ! (
880876 "Error changing user nickname from {} to {}: {:?}" ,
881877 member. display_name( ) ,
@@ -912,9 +908,10 @@ where
912908 2. The user has a discord nickname
913909 3. The discord nickname is of the form ".* Ξ orig_name"
914910 */
915- if let Ok ( _ ) = character_manager
911+ if character_manager
916912 . find_character_for_user ( user_id, None :: < String > )
917913 . await
914+ . is_ok ( )
918915 {
919916 if let Some ( nickname) = member. nick . clone ( ) {
920917 if let Some ( index) = nickname. find ( 'Ξ' ) {
@@ -967,23 +964,20 @@ where
967964 ) ) ;
968965 }
969966 Ok ( character_name) => {
970- let new_name = calculate_name ( & character_name, & nickname, 32 ) ?;
967+ let new_name = calculate_name ( character_name, & nickname, 32 ) ?;
971968
972969 rename_futs. push ( async {
973970 let member = member;
974971 let new_name = new_name;
975972 if let Err ( e) = cmd_ctx. rename_member ( & member, & new_name) . await {
976973 if e. message ( ) == "Missing Permissions" {
977- match & cmd_ctx. get_guild_owner ( ) . await {
978- Ok ( Some ( owner) ) => {
979- if owner == & member. user . id {
980- return Ok ( Some ( format ! (
981- "Unable to change server owners nickname to {}" ,
982- new_name
983- ) ) ) ;
984- }
974+ if let Ok ( Some ( owner) ) = & cmd_ctx. get_guild_owner ( ) . await {
975+ if owner == & member. user . id {
976+ return Ok ( Some ( format ! (
977+ "Unable to change server owners nickname to {}" ,
978+ new_name
979+ ) ) ) ;
985980 }
986- _ => { }
987981 }
988982 }
989983
@@ -1058,7 +1052,7 @@ fn calculate_name(character_name: &str, org_name: &str, limit: usize) -> Result<
10581052 // we don't fit our first name :(
10591053 character_name. push_str ( & first_name[ ..allowed_character_len] ) ;
10601054 } else {
1061- character_name. push_str ( & first_name) ;
1055+ character_name. push_str ( first_name) ;
10621056 allowed_character_len -= first_name. len ( ) ;
10631057
10641058 let last_name = character_split. clone ( ) . last ( ) . unwrap_or ( "" ) ;
@@ -1074,11 +1068,11 @@ fn calculate_name(character_name: &str, org_name: &str, limit: usize) -> Result<
10741068 break ;
10751069 }
10761070 allowed_character_len -= mid_name. len ( ) + 1 ;
1077- character_name. push_str ( " " ) ;
1071+ character_name. push ( ' ' ) ;
10781072 character_name. push_str ( mid_name) ;
10791073 }
10801074
1081- character_name. push_str ( " " ) ;
1075+ character_name. push ( ' ' ) ;
10821076 character_name. push_str ( last_name) ;
10831077 }
10841078 }
0 commit comments