Skip to content

Commit 8aaf8ef

Browse files
Merge pull request #33 from jamesbt365/interaction-bug
fix interaction failure bug
2 parents 4b06939 + 8bd740e commit 8aaf8ef

3 files changed

Lines changed: 54 additions & 53 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: 44 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -49,65 +49,63 @@ 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+
if press.data.custom_id == remove_id {
59+
if press.user.id == message.author.id || has_perms {
60+
let _ = press
61+
.create_response(ctx, CreateInteractionResponse::Acknowledge)
62+
.await;
63+
if let Ok(ref msg) = msg_result {
64+
let _ = msg.delete(ctx).await;
65+
}
66+
msg_deleted = true;
67+
} else {
68+
interaction_err(
69+
ctx,
70+
&press,
71+
"Unable to use interaction because you are missing `MANAGE_MESSAGES`.",
72+
)
6573
.await;
66-
if let Ok(ref msg) = msg_result {
67-
let _ = msg.delete(ctx).await;
6874
}
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;
7775
}
7876

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);
77+
if press.data.custom_id == hide_body_id {
78+
if press.user.id == message.author.id || has_perms {
79+
if !body_hid {
80+
let mut hid_body_embeds: Vec<CreateEmbed> = Vec::new();
81+
if let Ok(ref msg) = msg_result {
82+
for mut embed in msg.embeds.clone() {
83+
embed.description = None;
84+
let embed: CreateEmbed = embed.clone().into();
85+
hid_body_embeds.push(embed);
86+
}
8987
}
90-
}
9188

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;
89+
let _ = press
90+
.create_response(
91+
ctx,
92+
serenity::CreateInteractionResponse::UpdateMessage(
93+
serenity::CreateInteractionResponseMessage::new()
94+
.embeds(hid_body_embeds)
95+
.components(vec![remove.clone()]),
96+
),
97+
)
98+
.await;
99+
}
100+
body_hid = true;
101+
} else {
102+
interaction_err(
103+
ctx,
104+
&press,
105+
"Unable to use interaction because you are missing `MANAGE_MESSAGES`.",
106+
)
107+
.await;
102108
}
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;
111109
}
112110
}
113111
// Triggers on timeout.

0 commit comments

Comments
 (0)