all repos — stealth-developers @ e2ccb0014092a9a52f4a52835de92b3051fb0664

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
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));
}