Files
Apollo/utils/checkPermissions.ts
T
2024-10-26 20:33:18 +08:00

22 lines
710 B
TypeScript

import { ChatInputCommandInteraction, PermissionResolvable } from "discord.js";
import { Command } from "../interfaces/Command";
export interface PermissionResult {
result: boolean;
missing: string[];
}
export async function checkPermissions(
command: Command,
interaction: ChatInputCommandInteraction
): Promise<PermissionResult> {
const member = await interaction.guild!.members.fetch({ user: interaction.client.user!.id });
const requiredPermissions = command.permissions as PermissionResolvable[];
if (!command.permissions) return { result: true, missing: [] };
const missing = member.permissions.missing(requiredPermissions);
return { result: !Boolean(missing.length), missing };
}