all repos — stealth-developers @ 7a84b741bc2c10def09e4d5e05151d8224e8220d

src/utils/discord/permissions.ts (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
import type { GuildMember } from "discord.js";
import { getGuild, getManagerRoleIds } from "../../database/queries";

export async function hasManagerPermissions(member: GuildMember): Promise<boolean> {
	if (member.permissions.has("ManageGuild") || member.guild.ownerId === member.id) return true;

	const guild = await getGuild(member.guild.id);
	const managers = await getManagerRoleIds(guild.data.guildId);
	if (!guild || !managers || managers.length === 0) return false;

	return member.roles.cache.some((role) => managers.includes(role.id));
}