UNPKG

@sapphire/framework

Version:

Discord bot framework built for advanced and amazing bots.

66 lines (64 loc) 3.03 kB
import { __name } from '../chunk-PAWJFY3S.mjs'; import { container } from '@sapphire/pieces'; import { PermissionsBitField, PermissionFlagsBits } from 'discord.js'; import { Identifiers } from '../lib/errors/Identifiers.mjs'; import { AllFlowsPrecondition } from '../lib/structures/Precondition.mjs'; import { CorePrecondition as CorePrecondition$1 } from './ClientPermissions.mjs'; var _CorePrecondition = class _CorePrecondition extends AllFlowsPrecondition { constructor() { super(...arguments); this.dmChannelPermissions = new PermissionsBitField( ~new PermissionsBitField([ PermissionFlagsBits.AddReactions, PermissionFlagsBits.AttachFiles, PermissionFlagsBits.EmbedLinks, PermissionFlagsBits.ReadMessageHistory, PermissionFlagsBits.SendMessages, PermissionFlagsBits.UseExternalEmojis, PermissionFlagsBits.ViewChannel, PermissionFlagsBits.UseExternalStickers, PermissionFlagsBits.MentionEveryone ]).bitfield & PermissionsBitField.All ).freeze(); } messageRun(message, _command, context) { const required = context.permissions ?? new PermissionsBitField(); const channel = message.channel; const permissions = message.guild ? channel.permissionsFor(message.author) : this.dmChannelPermissions; return this.sharedRun(required, permissions, "message"); } chatInputRun(interaction, _command, context) { const required = context.permissions ?? new PermissionsBitField(); const permissions = interaction.guildId ? interaction.memberPermissions : this.dmChannelPermissions; return this.sharedRun(required, permissions, "chat input"); } contextMenuRun(interaction, _command, context) { const required = context.permissions ?? new PermissionsBitField(); const permissions = interaction.guildId ? interaction.memberPermissions : this.dmChannelPermissions; return this.sharedRun(required, permissions, "context menu"); } sharedRun(requiredPermissions, availablePermissions, commandType) { if (!availablePermissions) { return this.error({ identifier: Identifiers.PreconditionUserPermissionsNoPermissions, message: `I was unable to resolve the end-user's permissions in the ${commandType} command invocation channel.` }); } const missing = availablePermissions.missing(requiredPermissions); return missing.length === 0 ? this.ok() : this.error({ identifier: Identifiers.PreconditionUserPermissions, message: `You are missing the following permissions to run this command: ${missing.map((perm) => CorePrecondition$1.readablePermissions[perm]).join(", ")}`, context: { missing } }); } }; __name(_CorePrecondition, "CorePrecondition"); var CorePrecondition = _CorePrecondition; void container.stores.loadPiece({ name: "UserPermissions", piece: CorePrecondition, store: "preconditions" }); export { CorePrecondition }; //# sourceMappingURL=UserPermissions.mjs.map //# sourceMappingURL=UserPermissions.mjs.map