@sapphire/framework
Version:
Discord bot framework built for advanced and amazing bots.
1 lines • 5.36 kB
Source Map (JSON)
{"version":3,"sources":["../../../src/preconditions/RunIn.ts"],"names":["AllFlowsPrecondition","Command","Identifiers","container"],"mappings":"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","file":"RunIn.cjs","sourcesContent":["import { container } from '@sapphire/pieces';\nimport type { ChatInputCommandInteraction, ContextMenuCommandInteraction, Message } from 'discord.js';\nimport { Identifiers } from '../lib/errors/Identifiers';\nimport { Command } from '../lib/structures/Command';\nimport { AllFlowsPrecondition, type Preconditions } from '../lib/structures/Precondition';\nimport type { ChatInputCommand, ContextMenuCommand, MessageCommand } from '../lib/types/CommandTypes';\n\nexport interface RunInPreconditionContext extends AllFlowsPrecondition.Context {\n\ttypes?: Preconditions['RunIn']['types'];\n}\n\nexport class CorePrecondition extends AllFlowsPrecondition {\n\tpublic override messageRun(message: Message<boolean>, _: MessageCommand, context: RunInPreconditionContext): AllFlowsPrecondition.Result {\n\t\tconst commandType = 'message';\n\t\tif (!context.types) return this.ok();\n\n\t\tconst channelType = message.channel.type;\n\n\t\tif (Command.runInTypeIsSpecificsObject(context.types)) {\n\t\t\treturn context.types.messageRun.includes(channelType) ? this.ok() : this.makeSharedError(context, commandType);\n\t\t}\n\n\t\treturn context.types.includes(channelType) ? this.ok() : this.makeSharedError(context, commandType);\n\t}\n\n\tpublic override async chatInputRun(\n\t\tinteraction: ChatInputCommandInteraction,\n\t\t_: ChatInputCommand,\n\t\tcontext: RunInPreconditionContext\n\t): AllFlowsPrecondition.AsyncResult {\n\t\tconst commandType = 'chat input';\n\t\tif (!context.types) return this.ok();\n\n\t\tconst channelType = (await this.fetchChannelFromInteraction(interaction)).type;\n\n\t\tif (Command.runInTypeIsSpecificsObject(context.types)) {\n\t\t\treturn context.types.chatInputRun.includes(channelType) ? this.ok() : this.makeSharedError(context, commandType);\n\t\t}\n\n\t\treturn context.types.includes(channelType) ? this.ok() : this.makeSharedError(context, commandType);\n\t}\n\n\tpublic override async contextMenuRun(\n\t\tinteraction: ContextMenuCommandInteraction,\n\t\t_: ContextMenuCommand,\n\t\tcontext: RunInPreconditionContext\n\t): AllFlowsPrecondition.AsyncResult {\n\t\tconst commandType = 'context menu';\n\t\tif (!context.types) return this.ok();\n\n\t\tconst channelType = (await this.fetchChannelFromInteraction(interaction)).type;\n\n\t\tif (Command.runInTypeIsSpecificsObject(context.types)) {\n\t\t\treturn context.types.contextMenuRun.includes(channelType) ? this.ok() : this.makeSharedError(context, commandType);\n\t\t}\n\n\t\treturn context.types.includes(channelType) ? this.ok() : this.makeSharedError(context, commandType);\n\t}\n\n\tprivate makeSharedError(context: RunInPreconditionContext, commandType: string): AllFlowsPrecondition.Result {\n\t\treturn this.error({\n\t\t\tidentifier: Identifiers.PreconditionRunIn,\n\t\t\tmessage: `You cannot run this ${commandType} command in this type of channel.`,\n\t\t\tcontext: { types: context.types }\n\t\t});\n\t}\n}\n\nvoid container.stores.loadPiece({\n\tname: 'RunIn',\n\tpiece: CorePrecondition,\n\tstore: 'preconditions'\n});\n"]}