Bump ver
This commit is contained in:
parent
1f0d7adae3
commit
6ae1096d79
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -2431,7 +2431,7 @@ checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "reminder-rs"
|
name = "reminder-rs"
|
||||||
version = "1.7.21"
|
version = "1.7.22"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64 0.22.1",
|
"base64 0.22.1",
|
||||||
"chrono",
|
"chrono",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "reminder-rs"
|
name = "reminder-rs"
|
||||||
version = "1.7.21"
|
version = "1.7.22"
|
||||||
authors = ["Jude Southworth <judesouthworth@pm.me>"]
|
authors = ["Jude Southworth <judesouthworth@pm.me>"]
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "AGPL-3.0 only"
|
license = "AGPL-3.0 only"
|
||||||
|
43
src/hooks.rs
43
src/hooks.rs
@ -58,6 +58,10 @@ async fn macro_check(ctx: Context<'_>) -> bool {
|
|||||||
|
|
||||||
async fn check_self_permissions(ctx: Context<'_>) -> bool {
|
async fn check_self_permissions(ctx: Context<'_>) -> bool {
|
||||||
let user_id = ctx.serenity_context().cache.current_user().id;
|
let user_id = ctx.serenity_context().cache.current_user().id;
|
||||||
|
let app_permissions = match ctx {
|
||||||
|
Context::Application(app_ctx) => app_ctx.interaction.app_permissions,
|
||||||
|
_ => None,
|
||||||
|
};
|
||||||
|
|
||||||
match ctx.guild().map(|g| g.to_owned()) {
|
match ctx.guild().map(|g| g.to_owned()) {
|
||||||
Some(guild) => {
|
Some(guild) => {
|
||||||
@ -66,42 +70,37 @@ async fn check_self_permissions(ctx: Context<'_>) -> bool {
|
|||||||
.await
|
.await
|
||||||
.map_or(false, |m| m.permissions(&ctx).map_or(false, |p| p.manage_webhooks()));
|
.map_or(false, |m| m.permissions(&ctx).map_or(false, |p| p.manage_webhooks()));
|
||||||
|
|
||||||
let (view_channel, send_messages, embed_links) = ctx
|
if let Some(permissions) = app_permissions {
|
||||||
.channel_id()
|
return if permissions.send_messages()
|
||||||
.to_channel(&ctx)
|
&& permissions.embed_links()
|
||||||
.await
|
&& permissions.view_channel()
|
||||||
.ok()
|
&& manage_webhooks
|
||||||
.and_then(|c| {
|
{
|
||||||
if let Channel::Guild(channel) = c {
|
|
||||||
let perms = channel.permissions_for_user(&ctx, user_id).ok()?;
|
|
||||||
|
|
||||||
Some((perms.view_channel(), perms.send_messages(), perms.embed_links()))
|
|
||||||
} else {
|
|
||||||
None
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.unwrap_or((true, true, true));
|
|
||||||
|
|
||||||
if manage_webhooks && send_messages && embed_links {
|
|
||||||
true
|
true
|
||||||
} else {
|
} else {
|
||||||
let _ = ctx
|
let _ = ctx
|
||||||
.send(CreateReply::default().content(format!(
|
.send(CreateReply::default().content(format!(
|
||||||
"Please ensure the bot has the correct permissions:
|
"The bot appears to be missing some permissions:
|
||||||
|
|
||||||
{} **View Channel**
|
{} **View Channel**
|
||||||
{} **Send Message**
|
{} **Send Message**
|
||||||
{} **Embed Links**
|
{} **Embed Links**
|
||||||
{} **Manage Webhooks**",
|
{} **Manage Webhooks**
|
||||||
if view_channel { "✅" } else { "❌" },
|
|
||||||
if send_messages { "✅" } else { "❌" },
|
Please check the bot's roles, and any channel overrides. Alternatively, giving the bot
|
||||||
if embed_links { "✅" } else { "❌" },
|
\"Administrator\" will bypass permission checks",
|
||||||
|
if permissions.view_channel() { "✅" } else { "❌" },
|
||||||
|
if permissions.send_messages() { "✅" } else { "❌" },
|
||||||
|
if permissions.embed_links() { "✅" } else { "❌" },
|
||||||
if manage_webhooks { "✅" } else { "❌" },
|
if manage_webhooks { "✅" } else { "❌" },
|
||||||
)))
|
)))
|
||||||
.await;
|
.await;
|
||||||
|
|
||||||
false
|
false
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
manage_webhooks
|
||||||
}
|
}
|
||||||
|
|
||||||
None => {
|
None => {
|
||||||
|
Loading…
Reference in New Issue
Block a user