From 6bd5db720870520583297218afc158a8e5935b7c Mon Sep 17 00:00:00 2001 From: seth Date: Mon, 18 Mar 2024 09:48:37 -0400 Subject: [PATCH] utils::resolve_message: use perms from behind pk proxy --- src/handlers/event/mod.rs | 2 +- src/utils/resolve_message.rs | 22 ++++++++++++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/handlers/event/mod.rs b/src/handlers/event/mod.rs index cafd16c..7eff42f 100644 --- a/src/handlers/event/mod.rs +++ b/src/handlers/event/mod.rs @@ -15,7 +15,7 @@ mod support_onboard; pub async fn handle( ctx: &Context, event: &FullEvent, - _framework: FrameworkContext<'_, Data, Report>, + _: FrameworkContext<'_, Data, Report>, data: &Data, ) -> Result<()> { match event { diff --git a/src/utils/resolve_message.rs b/src/utils/resolve_message.rs index c237eda..95b01d5 100644 --- a/src/utils/resolve_message.rs +++ b/src/utils/resolve_message.rs @@ -1,3 +1,4 @@ +use crate::api::pluralkit; use std::str::FromStr; use eyre::{eyre, Context as _, Result}; @@ -5,7 +6,7 @@ use log::{debug, trace}; use once_cell::sync::Lazy; use poise::serenity_prelude::{ Cache, CacheHttp, ChannelId, ChannelType, Colour, Context, CreateEmbed, CreateEmbedAuthor, - CreateEmbedFooter, GuildChannel, Member, Message, MessageId, Permissions, + CreateEmbedFooter, GuildChannel, Member, Message, MessageId, Permissions, UserId, }; use regex::Regex; @@ -22,6 +23,14 @@ fn find_first_image(message: &Message) -> Option { .map(|res| res.url.clone()) } +async fn find_real_author_id(message: &Message) -> UserId { + if let Ok(sender) = pluralkit::get_sender(message.id).await { + sender + } else { + message.author.id + } +} + async fn member_can_view_channel( ctx: impl CacheHttp + AsRef, member: &Member, @@ -108,7 +117,16 @@ pub async fn from_message(ctx: &Context, msg: &Message) -> Result