Skip to content

Commit 3801adc

Browse files
committed
fix interaction failure bug
1 parent 4b06939 commit 3801adc

3 files changed

Lines changed: 59 additions & 55 deletions

File tree

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ serde_json = { version = "1.0" }
1313

1414
# Discord API
1515
poise = { git = "https://github.com/serenity-rs/poise.git", branch = "current" }
16-
serenity = {version = "0.12", default-features = false, features = ["cache", "client", "gateway", "rustls_backend", "model", "framework", "standard_framework"] }
16+
serenity = {version = "0.12" }
1717
tokio = { version = "1.29.1", features = ["macros", "signal", "rt-multi-thread"] }
1818

1919
# Misc

src/commands/snippets.rs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,10 @@ async fn remove_snippet_confirm(ctx: &Context<'_>, snippet: &Snippet) -> Result<
294294
]);
295295

296296
let builder: poise::CreateReply = poise::CreateReply::default()
297-
.content(format!("Are you sure you want to delete snippet `{}`?", snippet.id))
297+
.content(format!(
298+
"Are you sure you want to delete snippet `{}`?",
299+
snippet.id
300+
))
298301
.ephemeral(true)
299302
.embed(snippet_embed)
300303
.components(vec![components]);
@@ -321,22 +324,22 @@ async fn handle_delete(
321324
snippet: &Snippet,
322325
interaction: serenity::ComponentInteraction,
323326
) -> Result<(), Error> {
324-
325327
rm_snippet(ctx, snippet).await;
326328
interaction
327329
.create_response(
328330
ctx,
329331
CreateInteractionResponse::UpdateMessage(
330-
CreateInteractionResponseMessage::new().content("Deleted!")
332+
CreateInteractionResponseMessage::new()
333+
.content("Deleted!")
331334
.embeds(vec![])
332335
.components(vec![]),
333336
),
334337
)
335338
.await?;
336339

337-
let title = format!("{} removed a snippet", ctx.author().tag());
338-
let content = &&format!("Removed snippet `{}`", snippet.format_output());
339-
respond_ok(ctx, &title, content).await;
340+
let title = format!("{} removed a snippet", ctx.author().tag());
341+
let content = &&format!("Removed snippet `{}`", snippet.format_output());
342+
respond_ok(ctx, &title, content).await;
340343

341344
Ok(())
342345
}

src/events/issue.rs

Lines changed: 49 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ use ::serenity::builder::CreateEmbedAuthor;
55
use octocrab::models::issues::Issue;
66
use octocrab::models::pulls::PullRequest;
77
use 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
};
1111
use 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+
124125
async 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

Comments
 (0)