feat: replace owner by administrator right

This commit is contained in:
Max batleforc 2024-06-28 15:47:06 +02:00
parent 3870f84585
commit 57ef7c0679
No known key found for this signature in database
GPG Key ID: 25D243AB4B6AC9E7

View File

@ -1,6 +1,6 @@
use super::check_if_server_enable::{check_if_server_enable, CheckIfServerEnableError};
use crate::{api::bot::info, db::server_config::ServerConfig};
use poise::serenity_prelude::{self, RoleId, UserId};
use crate::db::server_config::ServerConfig;
use poise::serenity_prelude::{self, CacheHttp, RoleId, UserId};
use tracing::{info, instrument};
#[instrument(level = "info", skip(http))]
@ -34,6 +34,7 @@ pub async fn check_if_server_enable_and_user_admin(
match guild.member(http, UserId::new(user_id)).await {
Ok(member) => {
info!(user_name = member.user.name, "Checking if user is admin");
if let Some(perm) = member.permissions {
info!(perm = perm.bits(), "Checking if user has admin permission");
if perm.administrator() {
@ -45,6 +46,7 @@ pub async fn check_if_server_enable_and_user_admin(
.permissions
.into_iter()
.any(|perm| perm.administrator())
|| guild.member_permissions(&member).administrator()
{
info!("User has administarator permission");
return Ok((true, Some(server_config)));