harmony/src/utils/permissions.ts

22 lines
842 B
TypeScript
Raw Normal View History

// Ported from https://github.com/discordjs/discord.js/blob/master/src/util/Permissions.js
import { PermissionFlags } from "../types/permissionFlags.ts"
import { BitField } from "./bitfield.ts"
export type PermissionResolvable = string | number | Permissions | PermissionResolvable[]
export class Permissions extends BitField {
static DEFAULT = 104324673
static ALL = Object.values(PermissionFlags).reduce((all, p) => all | p, 0)
constructor(bits: any) {
super(PermissionFlags, bits)
}
any(permission: PermissionResolvable, checkAdmin = true): boolean {
return (checkAdmin && super.has(this.flags.ADMINISTRATOR)) || super.any(permission as any)
}
has(permission: PermissionResolvable, checkAdmin = true): boolean {
return (checkAdmin && super.has(this.flags.ADMINISTRATOR)) || super.has(permission as any)
}
}