@@ -5,8 +5,8 @@ use ::serenity::builder::CreateEmbedAuthor;
55use octocrab:: models:: issues:: Issue ;
66use octocrab:: models:: pulls:: PullRequest ;
77use poise:: serenity_prelude:: {
8- self as serenity, ButtonStyle , Colour , Context , CreateActionRow , CreateButton , CreateEmbed ,
9- CreateInteractionResponse , Message , Permissions ,
8+ self as serenity, ButtonStyle , Colour , Context , CreateActionRow ,
9+ CreateButton , CreateEmbed , CreateInteractionResponse , Message , Permissions
1010} ;
1111use regex:: Regex ;
1212
@@ -49,65 +49,65 @@ pub async fn message(data: &Data, ctx: &Context, message: &Message) {
4949 . timeout ( Duration :: from_secs ( 60 ) )
5050 . await
5151 {
52- // Safe to unwap member because this only runs in guilds.
53- // The only way this could go wrong if cache isn't ready? (fresh bot restart)
5452 let has_perms = press. member . as_ref ( ) . map_or ( false , |member| {
5553 member. permissions . map_or ( false , |member_perms| {
5654 member_perms. contains ( Permissions :: MANAGE_MESSAGES )
5755 } )
5856 } ) ;
5957
60- if press. data . custom_id == remove_id
61- && ( press. user . id == message. author . id || has_perms)
62- {
63- let _ = press
64- . create_response ( ctx, CreateInteractionResponse :: Acknowledge )
58+
59+
60+ if press. data . custom_id == remove_id {
61+ if press. user . id == message. author . id || has_perms {
62+ let _ = press
63+ . create_response ( ctx, CreateInteractionResponse :: Acknowledge )
64+ . await ;
65+ if let Ok ( ref msg) = msg_result {
66+ let _ = msg. delete ( ctx) . await ;
67+ }
68+ msg_deleted = true ;
69+ } else {
70+ interaction_err (
71+ ctx,
72+ & press,
73+ "Unable to use interaction because you are missing `MANAGE_MESSAGES`." ,
74+ )
6575 . await ;
66- if let Ok ( ref msg) = msg_result {
67- let _ = msg. delete ( ctx) . await ;
6876 }
69- msg_deleted = true ;
70- } else {
71- interaction_err (
72- ctx,
73- & press,
74- "Unable to use interaction because you are missing `MANAGE_MESSAGES`." ,
75- )
76- . await ;
7777 }
7878
79- if press. data . custom_id == hide_body_id
80- && ( press. user . id == message. author . id || has_perms)
81- {
82- if !body_hid {
83- let mut hid_body_embeds : Vec < CreateEmbed > = Vec :: new ( ) ;
84- if let Ok ( ref msg ) = msg_result {
85- for mut embed in msg . embeds . clone ( ) {
86- embed. description = None ;
87- let embed : CreateEmbed = embed . clone ( ) . into ( ) ;
88- hid_body_embeds . push ( embed ) ;
79+ if press. data . custom_id == hide_body_id {
80+ if press. user . id == message. author . id || has_perms {
81+ if !body_hid {
82+ let mut hid_body_embeds : Vec < CreateEmbed > = Vec :: new ( ) ;
83+ if let Ok ( ref msg ) = msg_result {
84+ for mut embed in msg . embeds . clone ( ) {
85+ embed . description = None ;
86+ let embed: CreateEmbed = embed . clone ( ) . into ( ) ;
87+ hid_body_embeds . push ( embed ) ;
88+ }
8989 }
90- }
9190
92- let _ = press
93- . create_response (
94- ctx,
95- serenity:: CreateInteractionResponse :: UpdateMessage (
96- serenity:: CreateInteractionResponseMessage :: new ( )
97- . embeds ( hid_body_embeds)
98- . components ( vec ! [ remove. clone( ) ] ) ,
99- ) ,
100- )
101- . await ;
91+ let _ = press
92+ . create_response (
93+ ctx,
94+ serenity:: CreateInteractionResponse :: UpdateMessage (
95+ serenity:: CreateInteractionResponseMessage :: new ( )
96+ . embeds ( hid_body_embeds)
97+ . components ( vec ! [ remove. clone( ) ] ) ,
98+ ) ,
99+ )
100+ . await ;
101+ }
102+ body_hid = true ;
103+ } else {
104+ interaction_err (
105+ ctx,
106+ & press,
107+ "Unable to use interaction because you are missing `MANAGE_MESSAGES`." ,
108+ )
109+ . await ;
102110 }
103- body_hid = true ;
104- } else {
105- interaction_err (
106- ctx,
107- & press,
108- "Unable to use interaction because you are missing `MANAGE_MESSAGES`." ,
109- )
110- . await ;
111111 }
112112 }
113113 // Triggers on timeout.
@@ -121,6 +121,7 @@ pub async fn message(data: &Data, ctx: &Context, message: &Message) {
121121 }
122122}
123123
124+
124125async fn issue_embeds ( data : & Data , message : & Message ) -> Option < Vec < CreateEmbed > > {
125126 let mut embeds: Vec < CreateEmbed > = vec ! [ ] ;
126127 let client = octocrab:: instance ( ) ;
0 commit comments