@sapphire/plugin-pattern-commands 6.0.2 → 6.0.3-next.03b2a90

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,7 +10,7 @@ var PluginPreCommandRun_cjs = require('./listeners/PluginPreCommandRun.cjs');
10
10
  var _load_cjs = require('./listeners/_load.cjs');
11
11
 
12
12
  // src/index.ts
13
- var version = "6.0.2";
13
+ var version = "6.0.3-next.03b2a90";
14
14
 
15
15
  Object.defineProperty(exports, "PluginPatternCommandsCommandAcceptedListener", {
16
16
  enumerable: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":["PluginListener"],"mappings":";AAEA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAA2B,sBAAoD;AAC/E,SAA2B,kBAAlBA,uBAAmE;AAC5E,SAA2B,kBAAlBA,uBAAoE;AAE7E,SAAS,qBAAqB;AAevB,IAAM,UAAkB","sourcesContent":["import type { PatternCommandStore } from './lib/structures/PatternCommandStore';\n\nexport * from './lib/structures/PatternCommandStore';\nexport * from './lib/structures/PatternCommand';\nexport * from './lib/utils/PatternCommandEvents';\nexport * from './lib/utils/PatternCommandInterfaces';\nexport { PluginListener as PluginPatternCommandsCommandAcceptedListener } from './listeners/PluginCommandAccepted';\nexport { PluginListener as PluginPatternCommandsMessageParseListener } from './listeners/PluginMessageParse';\nexport { PluginListener as PluginPatternCommandsPreCommandRunListener } from './listeners/PluginPreCommandRun';\n\nexport { loadListeners } from './listeners/_load';\n\ndeclare module '@sapphire/pieces' {\n\tinterface StoreRegistryEntries {\n\t\t'pattern-commands': PatternCommandStore;\n\t}\n}\n\n/**\n * The [@sapphire/plugin-pattern-commands](https://github.com/sapphiredev/plugins/blob/main/packages/pattern-commands) version that you are currently using.\n * An example use of this is showing it of in a bot information command.\n *\n * Note to Sapphire developers: This needs to explicitly be `string` so it is not typed as the string that gets replaced by esbuild\n */\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\nexport const version: string = '6.0.2';\n"]}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":["PluginListener"],"mappings":";AAEA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAA2B,sBAAoD;AAC/E,SAA2B,kBAAlBA,uBAAmE;AAC5E,SAA2B,kBAAlBA,uBAAoE;AAE7E,SAAS,qBAAqB;AAevB,IAAM,UAAkB","sourcesContent":["import type { PatternCommandStore } from './lib/structures/PatternCommandStore';\n\nexport * from './lib/structures/PatternCommandStore';\nexport * from './lib/structures/PatternCommand';\nexport * from './lib/utils/PatternCommandEvents';\nexport * from './lib/utils/PatternCommandInterfaces';\nexport { PluginListener as PluginPatternCommandsCommandAcceptedListener } from './listeners/PluginCommandAccepted';\nexport { PluginListener as PluginPatternCommandsMessageParseListener } from './listeners/PluginMessageParse';\nexport { PluginListener as PluginPatternCommandsPreCommandRunListener } from './listeners/PluginPreCommandRun';\n\nexport { loadListeners } from './listeners/_load';\n\ndeclare module '@sapphire/pieces' {\n\tinterface StoreRegistryEntries {\n\t\t'pattern-commands': PatternCommandStore;\n\t}\n}\n\n/**\n * The [@sapphire/plugin-pattern-commands](https://github.com/sapphiredev/plugins/blob/main/packages/pattern-commands) version that you are currently using.\n * An example use of this is showing it of in a bot information command.\n *\n * Note to Sapphire developers: This needs to explicitly be `string` so it is not typed as the string that gets replaced by esbuild\n */\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\nexport const version: string = '6.0.3-next.03b2a90';\n"]}
@@ -5,10 +5,7 @@ var framework = require('@sapphire/framework');
5
5
  var __defProp = Object.defineProperty;
6
6
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
7
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
- var __publicField = (obj, key, value) => {
9
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
10
- return value;
11
- };
8
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
12
9
  var _PatternCommand = class _PatternCommand extends framework.Command {
13
10
  constructor(context, options) {
14
11
  super(context, options);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/structures/PatternCommand.ts"],"names":[],"mappings":";;;;;;;;;AAAA,SAAe,eAAoC;AAG5C,IAAe,kBAAf,MAAe,wBAAuB,QAAsC;AAAA,EAI3E,YAAY,SAAuC,SAAiC;AAC1F,UAAM,SAAS,OAAO;AAJvB,wBAAgB;AAChB,wBAAgB;AAChB,wBAAgB;AAGf,SAAK,SAAS,QAAQ,UAAU;AAChC,QAAI,QAAQ,QAAQ;AACnB,UAAI,QAAQ,SAAS,GAAG;AACvB,aAAK,SAAS;AAAA,MACf,WAAW,QAAQ,SAAS,IAAI;AAC/B,aAAK,SAAS;AAAA,MACf,OAAO;AACN,aAAK,SAAS,QAAQ;AAAA,MACvB;AAAA,IACD,OAAO;AACN,WAAK,SAAS;AAAA,IACf;AACA,SAAK,gBAAgB,QAAQ,iBAAiB;AAAA,EAC/C;AAOD;AA1BmF;AAA5E,IAAe,iBAAf","sourcesContent":["import { Args, Command, type MessageCommand } from '@sapphire/framework';\nimport type { Awaitable, Message } from 'discord.js';\n\nexport abstract class PatternCommand extends Command<Args, PatternCommand.Options> {\n\tpublic readonly chance: number;\n\tpublic readonly weight: number;\n\tpublic readonly matchFullName: boolean;\n\tpublic constructor(context: PatternCommand.LoaderContext, options: PatternCommand.Options) {\n\t\tsuper(context, options);\n\t\tthis.chance = options.chance ?? 100;\n\t\tif (options.weight) {\n\t\t\tif (options.weight < 0) {\n\t\t\t\tthis.weight = 0;\n\t\t\t} else if (options.weight > 10) {\n\t\t\t\tthis.weight = 10;\n\t\t\t} else {\n\t\t\t\tthis.weight = options.weight;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.weight = 5;\n\t\t}\n\t\tthis.matchFullName = options.matchFullName ?? false;\n\t}\n\n\t/**\n\t * Executes the pattern command's logic.\n\t * @param message The message that triggered the pattern command.\n\t */\n\tpublic abstract override messageRun(message: Message): Awaitable<unknown>;\n}\n\nexport interface PatternCommandOptions extends MessageCommand.Options {\n\t/**\n\t * The chance that the pattern command is triggered.\n\t * @default 100\n\t */\n\tchance?: number;\n\t/**\n\t * The matching weight of the command.\n\t * @default 5\n\t */\n\tweight?: number;\n\t/**\n\t * If true it will only trigger on full matches (for example, explore won't trigger lore)\n\t * Note: It will only change the behavior of the command's name and not for the command's aliasses\n\t * @default false\n\t */\n\tmatchFullName?: boolean;\n}\n\nexport namespace PatternCommand {\n\t/**\n\t * Re-export of {@link MessageCommand.LoaderContext}\n\t * @deprecated Use {@linkcode LoaderContext} instead.\n\t */\n\texport type Context = LoaderContext;\n\texport type LoaderContext = MessageCommand.LoaderContext;\n\n\t/** Re-export of {@link MessageCommand.RunContext} */\n\texport type RunContext = MessageCommand.RunContext;\n\n\t/** Re-export of {@link MessageCommand.JSON} */\n\texport type JSON = MessageCommand.JSON;\n\n\t/** Re-export of {@link MessageCommand.RunInTypes} */\n\texport type RunInTypes = MessageCommand.RunInTypes;\n\n\t/**\n\t * The PatternCommand Options\n\t */\n\texport type Options = PatternCommandOptions;\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/lib/structures/PatternCommand.ts"],"names":[],"mappings":";;;;;;AAAA,SAAe,eAAoC;AAG5C,IAAe,kBAAf,MAAe,wBAAuB,QAAsC;AAAA,EAI3E,YAAY,SAAuC,SAAiC;AAC1F,UAAM,SAAS,OAAO;AAJvB,wBAAgB;AAChB,wBAAgB;AAChB,wBAAgB;AAGf,SAAK,SAAS,QAAQ,UAAU;AAChC,QAAI,QAAQ,QAAQ;AACnB,UAAI,QAAQ,SAAS,GAAG;AACvB,aAAK,SAAS;AAAA,MACf,WAAW,QAAQ,SAAS,IAAI;AAC/B,aAAK,SAAS;AAAA,MACf,OAAO;AACN,aAAK,SAAS,QAAQ;AAAA,MACvB;AAAA,IACD,OAAO;AACN,WAAK,SAAS;AAAA,IACf;AACA,SAAK,gBAAgB,QAAQ,iBAAiB;AAAA,EAC/C;AAOD;AA1BmF;AAA5E,IAAe,iBAAf","sourcesContent":["import { Args, Command, type MessageCommand } from '@sapphire/framework';\nimport type { Awaitable, Message } from 'discord.js';\n\nexport abstract class PatternCommand extends Command<Args, PatternCommand.Options> {\n\tpublic readonly chance: number;\n\tpublic readonly weight: number;\n\tpublic readonly matchFullName: boolean;\n\tpublic constructor(context: PatternCommand.LoaderContext, options: PatternCommand.Options) {\n\t\tsuper(context, options);\n\t\tthis.chance = options.chance ?? 100;\n\t\tif (options.weight) {\n\t\t\tif (options.weight < 0) {\n\t\t\t\tthis.weight = 0;\n\t\t\t} else if (options.weight > 10) {\n\t\t\t\tthis.weight = 10;\n\t\t\t} else {\n\t\t\t\tthis.weight = options.weight;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.weight = 5;\n\t\t}\n\t\tthis.matchFullName = options.matchFullName ?? false;\n\t}\n\n\t/**\n\t * Executes the pattern command's logic.\n\t * @param message The message that triggered the pattern command.\n\t */\n\tpublic abstract override messageRun(message: Message): Awaitable<unknown>;\n}\n\nexport interface PatternCommandOptions extends MessageCommand.Options {\n\t/**\n\t * The chance that the pattern command is triggered.\n\t * @default 100\n\t */\n\tchance?: number;\n\t/**\n\t * The matching weight of the command.\n\t * @default 5\n\t */\n\tweight?: number;\n\t/**\n\t * If true it will only trigger on full matches (for example, explore won't trigger lore)\n\t * Note: It will only change the behavior of the command's name and not for the command's aliasses\n\t * @default false\n\t */\n\tmatchFullName?: boolean;\n}\n\nexport namespace PatternCommand {\n\t/**\n\t * Re-export of {@link MessageCommand.LoaderContext}\n\t * @deprecated Use {@linkcode LoaderContext} instead.\n\t */\n\texport type Context = LoaderContext;\n\texport type LoaderContext = MessageCommand.LoaderContext;\n\n\t/** Re-export of {@link MessageCommand.RunContext} */\n\texport type RunContext = MessageCommand.RunContext;\n\n\t/** Re-export of {@link MessageCommand.JSON} */\n\texport type JSON = MessageCommand.JSON;\n\n\t/** Re-export of {@link MessageCommand.RunInTypes} */\n\texport type RunInTypes = MessageCommand.RunInTypes;\n\n\t/**\n\t * The PatternCommand Options\n\t */\n\texport type Options = PatternCommandOptions;\n}\n"]}
@@ -8,10 +8,7 @@ var PatternCommandEvents_cjs = require('../lib/utils/PatternCommandEvents.cjs');
8
8
  var __defProp = Object.defineProperty;
9
9
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
10
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
11
- var __publicField = (obj, key, value) => {
12
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
13
- return value;
14
- };
11
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
15
12
  var _PluginListener = class _PluginListener extends framework.Listener {
16
13
  constructor(context) {
17
14
  super(context, { event: framework.Events.PreMessageParsed });
@@ -19,8 +16,7 @@ var _PluginListener = class _PluginListener extends framework.Listener {
19
16
  }
20
17
  async run(message) {
21
18
  const canRun = await this.canRunInChannel(message);
22
- if (!canRun)
23
- return;
19
+ if (!canRun) return;
24
20
  let { content } = message;
25
21
  const { client, stores } = this.container;
26
22
  const patternCommandStore = stores.get("pattern-commands");
@@ -77,11 +73,9 @@ var _PluginListener = class _PluginListener extends framework.Listener {
77
73
  }
78
74
  }
79
75
  async canRunInChannel(message) {
80
- if (discord_jsUtilities.isDMChannel(message.channel))
81
- return true;
76
+ if (discord_jsUtilities.isDMChannel(message.channel)) return true;
82
77
  const me = await message.guild?.members.fetchMe();
83
- if (!me)
84
- return false;
78
+ if (!me) return false;
85
79
  const channel = message.channel;
86
80
  return channel.permissionsFor(me).has(this.requiredPermissions, false);
87
81
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/listeners/PluginMessageParse.ts"],"names":[],"mappings":";;;;;;;;;AAAA,SAAS,mBAAgD;AACzD,SAAS,QAAQ,gBAAgB;AACjC,SAAkB,qBAAqB,2BAA2B;AAElE,SAAS,4BAA4B;AAG9B,IAAM,kBAAN,MAAM,wBAAuB,SAAyC;AAAA,EAErE,YAAY,SAAiC;AACnD,UAAM,SAAS,EAAE,OAAO,OAAO,iBAAiB,CAAC;AAFlD,wBAAiB,uBAAsB,IAAI,oBAAoB,CAAC,oBAAoB,aAAa,oBAAoB,YAAY,CAAC,EAAE,OAAO;AAAA,EAG3I;AAAA,EAEA,MAAsB,IAAI,SAAkB;AAC3C,UAAM,SAAS,MAAM,KAAK,gBAAgB,OAAO;AACjD,QAAI,CAAC;AAAQ;AAEb,QAAI,EAAE,QAAQ,IAAI;AAClB,UAAM,EAAE,QAAQ,OAAO,IAAI,KAAK;AAEhC,UAAM,sBAAsB,OAAO,IAAI,kBAAkB;AAEzD,QAAI,CAAC,qBAAqB;AACzB;AAAA,IACD;AAEA,QAAI,OAAO,QAAQ,yBAAyB;AAC3C,gBAAU,QAAQ,YAAY;AAAA,IAC/B;AAEA,UAAM,0BAAoD,CAAC;AAE3D,eAAW,CAAC,KAAK,cAAc,KAAK,qBAAqB;AACxD,UAAI,YAAY,KAAK;AACpB,gCAAwB,KAAK;AAAA,UAC5B,SAAS;AAAA,UACT,OAAO;AAAA,UACP,QAAQ,eAAe;AAAA,QACxB,CAAC;AACD;AAAA,MACD;AAEA,YAAM,aAAa,eAAe,QAAQ,KAAK,CAAC,UAAU,UAAU,OAAO;AAE3E,UAAI,YAAY;AACf,gCAAwB,KAAK;AAAA,UAC5B,SAAS;AAAA,UACT,OAAO;AAAA,UACP,QAAQ,eAAe;AAAA,QACxB,CAAC;AACD;AAAA,MACD;AAEA,UACC,QAAQ,MAAM,IAAI,OAAO,eAAe,gBAAgB,KAAK,GAAG,OAAO,KAAK,OAAO,QAAQ,0BAA0B,MAAM,MAAS,CAAC,GACpI;AACD,gCAAwB,KAAK;AAAA,UAC5B,SAAS;AAAA,UACT,OAAO;AAAA,UACP,QAAQ,eAAe;AAAA,QACxB,CAAC;AACD;AAAA,MACD;AAEA,YAAM,kBAAkB,eAAe,QAAQ;AAAA,QAAK,CAAC,UACpD,QAAQ,MAAM,IAAI,OAAO,OAAO,OAAO,QAAQ,0BAA0B,MAAM,MAAS,CAAC;AAAA,MAC1F;AAEA,UAAI,iBAAiB;AACpB,gCAAwB,KAAK;AAAA,UAC5B,SAAS;AAAA,UACT,OAAO;AAAA,UACP,QAAQ,eAAe;AAAA,QACxB,CAAC;AACD;AAAA,MACD;AAAA,IACD;AAEA,QAAI,wBAAwB,SAAS,GAAG;AACvC,YAAM,gCAAgC,wBAAwB,KAAK,CAAC,OAAO,WAAW;AACrF,eAAO,OAAO,SAAS,MAAM;AAAA,MAC9B,CAAC;AAED,aAAO,KAAK,qBAAqB,eAAe,EAAE,SAAS,kBAAkB,8BAA8B,CAAC;AAAA,IAC7G;AAAA,EACD;AAAA,EAEA,MAAc,gBAAgB,SAAoC;AACjE,QAAI,YAAY,QAAQ,OAAO;AAAG,aAAO;AAEzC,UAAM,KAAK,MAAM,QAAQ,OAAO,QAAQ,QAAQ;AAChD,QAAI,CAAC;AAAI,aAAO;AAEhB,UAAM,UAAU,QAAQ;AACxB,WAAO,QAAQ,eAAe,EAAE,EAAE,IAAI,KAAK,qBAAqB,KAAK;AAAA,EACtE;AACD;AAzF6E;AAAtE,IAAM,iBAAN","sourcesContent":["import { isDMChannel, type GuildBasedChannelTypes } from '@sapphire/discord.js-utilities';\nimport { Events, Listener } from '@sapphire/framework';\nimport { Message, PermissionFlagsBits, PermissionsBitField } from 'discord.js';\nimport type { PatternCommandStore } from '../lib/structures/PatternCommandStore';\nimport { PatternCommandEvents } from '../lib/utils/PatternCommandEvents';\nimport type { PossiblePatternCommand } from '../lib/utils/PatternCommandInterfaces';\n\nexport class PluginListener extends Listener<typeof Events.PreMessageParsed> {\n\tprivate readonly requiredPermissions = new PermissionsBitField([PermissionFlagsBits.ViewChannel, PermissionFlagsBits.SendMessages]).freeze();\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, { event: Events.PreMessageParsed });\n\t}\n\n\tpublic override async run(message: Message) {\n\t\tconst canRun = await this.canRunInChannel(message);\n\t\tif (!canRun) return;\n\n\t\tlet { content } = message;\n\t\tconst { client, stores } = this.container;\n\n\t\tconst patternCommandStore = stores.get('pattern-commands') as PatternCommandStore | undefined;\n\n\t\tif (!patternCommandStore) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (client.options.caseInsensitiveCommands) {\n\t\t\tcontent = content.toLowerCase();\n\t\t}\n\n\t\tconst possiblePatternCommands: PossiblePatternCommand[] = [];\n\n\t\tfor (const [key, patternCommand] of patternCommandStore) {\n\t\t\tif (content === key) {\n\t\t\t\tpossiblePatternCommands.push({\n\t\t\t\t\tcommand: patternCommand,\n\t\t\t\t\talias: key,\n\t\t\t\t\tweight: patternCommand.weight\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst aliasMatch = patternCommand.aliases.find((alias) => alias === content);\n\n\t\t\tif (aliasMatch) {\n\t\t\t\tpossiblePatternCommands.push({\n\t\t\t\t\tcommand: patternCommand,\n\t\t\t\t\talias: aliasMatch,\n\t\t\t\t\tweight: patternCommand.weight\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tcontent.match(new RegExp(patternCommand.matchFullName ? `\\b${key}\\b` : key, client.options.caseInsensitiveCommands ? 'i' : undefined))\n\t\t\t) {\n\t\t\t\tpossiblePatternCommands.push({\n\t\t\t\t\tcommand: patternCommand,\n\t\t\t\t\talias: content,\n\t\t\t\t\tweight: patternCommand.weight\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst aliasRegexMatch = patternCommand.aliases.find((alias) =>\n\t\t\t\tcontent.match(new RegExp(alias, client.options.caseInsensitiveCommands ? 'i' : undefined))\n\t\t\t);\n\n\t\t\tif (aliasRegexMatch) {\n\t\t\t\tpossiblePatternCommands.push({\n\t\t\t\t\tcommand: patternCommand,\n\t\t\t\t\talias: aliasRegexMatch,\n\t\t\t\t\tweight: patternCommand.weight\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tif (possiblePatternCommands.length > 0) {\n\t\t\tconst sortedPossiblePatternCommands = possiblePatternCommands.sort((first, second) => {\n\t\t\t\treturn second.weight - first.weight;\n\t\t\t});\n\n\t\t\tclient.emit(PatternCommandEvents.PreCommandRun, { message, possibleCommands: sortedPossiblePatternCommands });\n\t\t}\n\t}\n\n\tprivate async canRunInChannel(message: Message): Promise<boolean> {\n\t\tif (isDMChannel(message.channel)) return true;\n\n\t\tconst me = await message.guild?.members.fetchMe();\n\t\tif (!me) return false;\n\n\t\tconst channel = message.channel as GuildBasedChannelTypes;\n\t\treturn channel.permissionsFor(me).has(this.requiredPermissions, false);\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/listeners/PluginMessageParse.ts"],"names":[],"mappings":";;;;;;AAAA,SAAS,mBAAgD;AACzD,SAAS,QAAQ,gBAAgB;AACjC,SAAkB,qBAAqB,2BAA2B;AAElE,SAAS,4BAA4B;AAG9B,IAAM,kBAAN,MAAM,wBAAuB,SAAyC;AAAA,EAErE,YAAY,SAAiC;AACnD,UAAM,SAAS,EAAE,OAAO,OAAO,iBAAiB,CAAC;AAFlD,wBAAiB,uBAAsB,IAAI,oBAAoB,CAAC,oBAAoB,aAAa,oBAAoB,YAAY,CAAC,EAAE,OAAO;AAAA,EAG3I;AAAA,EAEA,MAAsB,IAAI,SAAkB;AAC3C,UAAM,SAAS,MAAM,KAAK,gBAAgB,OAAO;AACjD,QAAI,CAAC,OAAQ;AAEb,QAAI,EAAE,QAAQ,IAAI;AAClB,UAAM,EAAE,QAAQ,OAAO,IAAI,KAAK;AAEhC,UAAM,sBAAsB,OAAO,IAAI,kBAAkB;AAEzD,QAAI,CAAC,qBAAqB;AACzB;AAAA,IACD;AAEA,QAAI,OAAO,QAAQ,yBAAyB;AAC3C,gBAAU,QAAQ,YAAY;AAAA,IAC/B;AAEA,UAAM,0BAAoD,CAAC;AAE3D,eAAW,CAAC,KAAK,cAAc,KAAK,qBAAqB;AACxD,UAAI,YAAY,KAAK;AACpB,gCAAwB,KAAK;AAAA,UAC5B,SAAS;AAAA,UACT,OAAO;AAAA,UACP,QAAQ,eAAe;AAAA,QACxB,CAAC;AACD;AAAA,MACD;AAEA,YAAM,aAAa,eAAe,QAAQ,KAAK,CAAC,UAAU,UAAU,OAAO;AAE3E,UAAI,YAAY;AACf,gCAAwB,KAAK;AAAA,UAC5B,SAAS;AAAA,UACT,OAAO;AAAA,UACP,QAAQ,eAAe;AAAA,QACxB,CAAC;AACD;AAAA,MACD;AAEA,UACC,QAAQ,MAAM,IAAI,OAAO,eAAe,gBAAgB,KAAK,GAAG,OAAO,KAAK,OAAO,QAAQ,0BAA0B,MAAM,MAAS,CAAC,GACpI;AACD,gCAAwB,KAAK;AAAA,UAC5B,SAAS;AAAA,UACT,OAAO;AAAA,UACP,QAAQ,eAAe;AAAA,QACxB,CAAC;AACD;AAAA,MACD;AAEA,YAAM,kBAAkB,eAAe,QAAQ;AAAA,QAAK,CAAC,UACpD,QAAQ,MAAM,IAAI,OAAO,OAAO,OAAO,QAAQ,0BAA0B,MAAM,MAAS,CAAC;AAAA,MAC1F;AAEA,UAAI,iBAAiB;AACpB,gCAAwB,KAAK;AAAA,UAC5B,SAAS;AAAA,UACT,OAAO;AAAA,UACP,QAAQ,eAAe;AAAA,QACxB,CAAC;AACD;AAAA,MACD;AAAA,IACD;AAEA,QAAI,wBAAwB,SAAS,GAAG;AACvC,YAAM,gCAAgC,wBAAwB,KAAK,CAAC,OAAO,WAAW;AACrF,eAAO,OAAO,SAAS,MAAM;AAAA,MAC9B,CAAC;AAED,aAAO,KAAK,qBAAqB,eAAe,EAAE,SAAS,kBAAkB,8BAA8B,CAAC;AAAA,IAC7G;AAAA,EACD;AAAA,EAEA,MAAc,gBAAgB,SAAoC;AACjE,QAAI,YAAY,QAAQ,OAAO,EAAG,QAAO;AAEzC,UAAM,KAAK,MAAM,QAAQ,OAAO,QAAQ,QAAQ;AAChD,QAAI,CAAC,GAAI,QAAO;AAEhB,UAAM,UAAU,QAAQ;AACxB,WAAO,QAAQ,eAAe,EAAE,EAAE,IAAI,KAAK,qBAAqB,KAAK;AAAA,EACtE;AACD;AAzF6E;AAAtE,IAAM,iBAAN","sourcesContent":["import { isDMChannel, type GuildBasedChannelTypes } from '@sapphire/discord.js-utilities';\nimport { Events, Listener } from '@sapphire/framework';\nimport { Message, PermissionFlagsBits, PermissionsBitField } from 'discord.js';\nimport type { PatternCommandStore } from '../lib/structures/PatternCommandStore';\nimport { PatternCommandEvents } from '../lib/utils/PatternCommandEvents';\nimport type { PossiblePatternCommand } from '../lib/utils/PatternCommandInterfaces';\n\nexport class PluginListener extends Listener<typeof Events.PreMessageParsed> {\n\tprivate readonly requiredPermissions = new PermissionsBitField([PermissionFlagsBits.ViewChannel, PermissionFlagsBits.SendMessages]).freeze();\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, { event: Events.PreMessageParsed });\n\t}\n\n\tpublic override async run(message: Message) {\n\t\tconst canRun = await this.canRunInChannel(message);\n\t\tif (!canRun) return;\n\n\t\tlet { content } = message;\n\t\tconst { client, stores } = this.container;\n\n\t\tconst patternCommandStore = stores.get('pattern-commands') as PatternCommandStore | undefined;\n\n\t\tif (!patternCommandStore) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (client.options.caseInsensitiveCommands) {\n\t\t\tcontent = content.toLowerCase();\n\t\t}\n\n\t\tconst possiblePatternCommands: PossiblePatternCommand[] = [];\n\n\t\tfor (const [key, patternCommand] of patternCommandStore) {\n\t\t\tif (content === key) {\n\t\t\t\tpossiblePatternCommands.push({\n\t\t\t\t\tcommand: patternCommand,\n\t\t\t\t\talias: key,\n\t\t\t\t\tweight: patternCommand.weight\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst aliasMatch = patternCommand.aliases.find((alias) => alias === content);\n\n\t\t\tif (aliasMatch) {\n\t\t\t\tpossiblePatternCommands.push({\n\t\t\t\t\tcommand: patternCommand,\n\t\t\t\t\talias: aliasMatch,\n\t\t\t\t\tweight: patternCommand.weight\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tcontent.match(new RegExp(patternCommand.matchFullName ? `\\b${key}\\b` : key, client.options.caseInsensitiveCommands ? 'i' : undefined))\n\t\t\t) {\n\t\t\t\tpossiblePatternCommands.push({\n\t\t\t\t\tcommand: patternCommand,\n\t\t\t\t\talias: content,\n\t\t\t\t\tweight: patternCommand.weight\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst aliasRegexMatch = patternCommand.aliases.find((alias) =>\n\t\t\t\tcontent.match(new RegExp(alias, client.options.caseInsensitiveCommands ? 'i' : undefined))\n\t\t\t);\n\n\t\t\tif (aliasRegexMatch) {\n\t\t\t\tpossiblePatternCommands.push({\n\t\t\t\t\tcommand: patternCommand,\n\t\t\t\t\talias: aliasRegexMatch,\n\t\t\t\t\tweight: patternCommand.weight\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tif (possiblePatternCommands.length > 0) {\n\t\t\tconst sortedPossiblePatternCommands = possiblePatternCommands.sort((first, second) => {\n\t\t\t\treturn second.weight - first.weight;\n\t\t\t});\n\n\t\t\tclient.emit(PatternCommandEvents.PreCommandRun, { message, possibleCommands: sortedPossiblePatternCommands });\n\t\t}\n\t}\n\n\tprivate async canRunInChannel(message: Message): Promise<boolean> {\n\t\tif (isDMChannel(message.channel)) return true;\n\n\t\tconst me = await message.guild?.members.fetchMe();\n\t\tif (!me) return false;\n\n\t\tconst channel = message.channel as GuildBasedChannelTypes;\n\t\treturn channel.permissionsFor(me).has(this.requiredPermissions, false);\n\t}\n}\n"]}
@@ -1,11 +1,8 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
4
- var __publicField = (obj, key, value) => {
5
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
6
- return value;
7
- };
4
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
8
5
 
9
6
  export { __name, __publicField };
10
7
  //# sourceMappingURL=out.js.map
11
- //# sourceMappingURL=chunk-6QB3UK4Q.mjs.map
8
+ //# sourceMappingURL=chunk-2JTKI4GS.mjs.map
@@ -1,4 +1,4 @@
1
- import './chunk-6QB3UK4Q.mjs';
1
+ import './chunk-2JTKI4GS.mjs';
2
2
  export * from './lib/structures/PatternCommandStore.mjs';
3
3
  export * from './lib/structures/PatternCommand.mjs';
4
4
  export * from './lib/utils/PatternCommandEvents.mjs';
@@ -8,7 +8,7 @@ export { PluginListener as PluginPatternCommandsMessageParseListener } from './l
8
8
  export { PluginListener as PluginPatternCommandsPreCommandRunListener } from './listeners/PluginPreCommandRun.mjs';
9
9
  export { loadListeners } from './listeners/_load.mjs';
10
10
 
11
- var version = "6.0.2";
11
+ var version = "6.0.3-next.03b2a90";
12
12
 
13
13
  export { version };
14
14
  //# sourceMappingURL=out.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":["PluginListener"],"mappings":";;;AAEA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAA2B,sBAAoD;AAC/E,SAA2B,kBAAlBA,uBAAmE;AAC5E,SAA2B,kBAAlBA,uBAAoE;AAE7E,SAAS,qBAAqB;AAevB,IAAM,UAAkB","sourcesContent":["import type { PatternCommandStore } from './lib/structures/PatternCommandStore';\n\nexport * from './lib/structures/PatternCommandStore';\nexport * from './lib/structures/PatternCommand';\nexport * from './lib/utils/PatternCommandEvents';\nexport * from './lib/utils/PatternCommandInterfaces';\nexport { PluginListener as PluginPatternCommandsCommandAcceptedListener } from './listeners/PluginCommandAccepted';\nexport { PluginListener as PluginPatternCommandsMessageParseListener } from './listeners/PluginMessageParse';\nexport { PluginListener as PluginPatternCommandsPreCommandRunListener } from './listeners/PluginPreCommandRun';\n\nexport { loadListeners } from './listeners/_load';\n\ndeclare module '@sapphire/pieces' {\n\tinterface StoreRegistryEntries {\n\t\t'pattern-commands': PatternCommandStore;\n\t}\n}\n\n/**\n * The [@sapphire/plugin-pattern-commands](https://github.com/sapphiredev/plugins/blob/main/packages/pattern-commands) version that you are currently using.\n * An example use of this is showing it of in a bot information command.\n *\n * Note to Sapphire developers: This needs to explicitly be `string` so it is not typed as the string that gets replaced by esbuild\n */\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\nexport const version: string = '6.0.2';\n"]}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":["PluginListener"],"mappings":";;;AAEA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAA2B,sBAAoD;AAC/E,SAA2B,kBAAlBA,uBAAmE;AAC5E,SAA2B,kBAAlBA,uBAAoE;AAE7E,SAAS,qBAAqB;AAevB,IAAM,UAAkB","sourcesContent":["import type { PatternCommandStore } from './lib/structures/PatternCommandStore';\n\nexport * from './lib/structures/PatternCommandStore';\nexport * from './lib/structures/PatternCommand';\nexport * from './lib/utils/PatternCommandEvents';\nexport * from './lib/utils/PatternCommandInterfaces';\nexport { PluginListener as PluginPatternCommandsCommandAcceptedListener } from './listeners/PluginCommandAccepted';\nexport { PluginListener as PluginPatternCommandsMessageParseListener } from './listeners/PluginMessageParse';\nexport { PluginListener as PluginPatternCommandsPreCommandRunListener } from './listeners/PluginPreCommandRun';\n\nexport { loadListeners } from './listeners/_load';\n\ndeclare module '@sapphire/pieces' {\n\tinterface StoreRegistryEntries {\n\t\t'pattern-commands': PatternCommandStore;\n\t}\n}\n\n/**\n * The [@sapphire/plugin-pattern-commands](https://github.com/sapphiredev/plugins/blob/main/packages/pattern-commands) version that you are currently using.\n * An example use of this is showing it of in a bot information command.\n *\n * Note to Sapphire developers: This needs to explicitly be `string` so it is not typed as the string that gets replaced by esbuild\n */\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\nexport const version: string = '6.0.3-next.03b2a90';\n"]}
@@ -1,4 +1,4 @@
1
- import { __name, __publicField } from '../../chunk-6QB3UK4Q.mjs';
1
+ import { __name, __publicField } from '../../chunk-2JTKI4GS.mjs';
2
2
  import { Command } from '@sapphire/framework';
3
3
 
4
4
  var _PatternCommand = class _PatternCommand extends Command {
@@ -1,4 +1,4 @@
1
- import { __name } from '../../chunk-6QB3UK4Q.mjs';
1
+ import { __name } from '../../chunk-2JTKI4GS.mjs';
2
2
  import { AliasStore } from '@sapphire/pieces';
3
3
  import { PatternCommand } from './PatternCommand.mjs';
4
4
 
@@ -1,4 +1,4 @@
1
- import '../../chunk-6QB3UK4Q.mjs';
1
+ import '../../chunk-2JTKI4GS.mjs';
2
2
 
3
3
  // src/lib/utils/PatternCommandEvents.ts
4
4
  var PatternCommandEvents = /* @__PURE__ */ ((PatternCommandEvents2) => {
@@ -1,4 +1,4 @@
1
- import { __name } from '../chunk-6QB3UK4Q.mjs';
1
+ import { __name } from '../chunk-2JTKI4GS.mjs';
2
2
  import { Listener, Result } from '@sapphire/framework';
3
3
  import { Stopwatch } from '@sapphire/stopwatch';
4
4
  import { PatternCommandEvents } from '../lib/utils/PatternCommandEvents.mjs';
@@ -1,4 +1,4 @@
1
- import { __name, __publicField } from '../chunk-6QB3UK4Q.mjs';
1
+ import { __name, __publicField } from '../chunk-2JTKI4GS.mjs';
2
2
  import { isDMChannel } from '@sapphire/discord.js-utilities';
3
3
  import { Listener, Events } from '@sapphire/framework';
4
4
  import { PermissionsBitField, PermissionFlagsBits } from 'discord.js';
@@ -11,8 +11,7 @@ var _PluginListener = class _PluginListener extends Listener {
11
11
  }
12
12
  async run(message) {
13
13
  const canRun = await this.canRunInChannel(message);
14
- if (!canRun)
15
- return;
14
+ if (!canRun) return;
16
15
  let { content } = message;
17
16
  const { client, stores } = this.container;
18
17
  const patternCommandStore = stores.get("pattern-commands");
@@ -69,11 +68,9 @@ var _PluginListener = class _PluginListener extends Listener {
69
68
  }
70
69
  }
71
70
  async canRunInChannel(message) {
72
- if (isDMChannel(message.channel))
73
- return true;
71
+ if (isDMChannel(message.channel)) return true;
74
72
  const me = await message.guild?.members.fetchMe();
75
- if (!me)
76
- return false;
73
+ if (!me) return false;
77
74
  const channel = message.channel;
78
75
  return channel.permissionsFor(me).has(this.requiredPermissions, false);
79
76
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/listeners/PluginMessageParse.ts"],"names":[],"mappings":";;;;;;AAAA,SAAS,mBAAgD;AACzD,SAAS,QAAQ,gBAAgB;AACjC,SAAkB,qBAAqB,2BAA2B;AAElE,SAAS,4BAA4B;AAG9B,IAAM,kBAAN,MAAM,wBAAuB,SAAyC;AAAA,EAErE,YAAY,SAAiC;AACnD,UAAM,SAAS,EAAE,OAAO,OAAO,iBAAiB,CAAC;AAFlD,wBAAiB,uBAAsB,IAAI,oBAAoB,CAAC,oBAAoB,aAAa,oBAAoB,YAAY,CAAC,EAAE,OAAO;AAAA,EAG3I;AAAA,EAEA,MAAsB,IAAI,SAAkB;AAC3C,UAAM,SAAS,MAAM,KAAK,gBAAgB,OAAO;AACjD,QAAI,CAAC;AAAQ;AAEb,QAAI,EAAE,QAAQ,IAAI;AAClB,UAAM,EAAE,QAAQ,OAAO,IAAI,KAAK;AAEhC,UAAM,sBAAsB,OAAO,IAAI,kBAAkB;AAEzD,QAAI,CAAC,qBAAqB;AACzB;AAAA,IACD;AAEA,QAAI,OAAO,QAAQ,yBAAyB;AAC3C,gBAAU,QAAQ,YAAY;AAAA,IAC/B;AAEA,UAAM,0BAAoD,CAAC;AAE3D,eAAW,CAAC,KAAK,cAAc,KAAK,qBAAqB;AACxD,UAAI,YAAY,KAAK;AACpB,gCAAwB,KAAK;AAAA,UAC5B,SAAS;AAAA,UACT,OAAO;AAAA,UACP,QAAQ,eAAe;AAAA,QACxB,CAAC;AACD;AAAA,MACD;AAEA,YAAM,aAAa,eAAe,QAAQ,KAAK,CAAC,UAAU,UAAU,OAAO;AAE3E,UAAI,YAAY;AACf,gCAAwB,KAAK;AAAA,UAC5B,SAAS;AAAA,UACT,OAAO;AAAA,UACP,QAAQ,eAAe;AAAA,QACxB,CAAC;AACD;AAAA,MACD;AAEA,UACC,QAAQ,MAAM,IAAI,OAAO,eAAe,gBAAgB,KAAK,GAAG,OAAO,KAAK,OAAO,QAAQ,0BAA0B,MAAM,MAAS,CAAC,GACpI;AACD,gCAAwB,KAAK;AAAA,UAC5B,SAAS;AAAA,UACT,OAAO;AAAA,UACP,QAAQ,eAAe;AAAA,QACxB,CAAC;AACD;AAAA,MACD;AAEA,YAAM,kBAAkB,eAAe,QAAQ;AAAA,QAAK,CAAC,UACpD,QAAQ,MAAM,IAAI,OAAO,OAAO,OAAO,QAAQ,0BAA0B,MAAM,MAAS,CAAC;AAAA,MAC1F;AAEA,UAAI,iBAAiB;AACpB,gCAAwB,KAAK;AAAA,UAC5B,SAAS;AAAA,UACT,OAAO;AAAA,UACP,QAAQ,eAAe;AAAA,QACxB,CAAC;AACD;AAAA,MACD;AAAA,IACD;AAEA,QAAI,wBAAwB,SAAS,GAAG;AACvC,YAAM,gCAAgC,wBAAwB,KAAK,CAAC,OAAO,WAAW;AACrF,eAAO,OAAO,SAAS,MAAM;AAAA,MAC9B,CAAC;AAED,aAAO,KAAK,qBAAqB,eAAe,EAAE,SAAS,kBAAkB,8BAA8B,CAAC;AAAA,IAC7G;AAAA,EACD;AAAA,EAEA,MAAc,gBAAgB,SAAoC;AACjE,QAAI,YAAY,QAAQ,OAAO;AAAG,aAAO;AAEzC,UAAM,KAAK,MAAM,QAAQ,OAAO,QAAQ,QAAQ;AAChD,QAAI,CAAC;AAAI,aAAO;AAEhB,UAAM,UAAU,QAAQ;AACxB,WAAO,QAAQ,eAAe,EAAE,EAAE,IAAI,KAAK,qBAAqB,KAAK;AAAA,EACtE;AACD;AAzF6E;AAAtE,IAAM,iBAAN","sourcesContent":["import { isDMChannel, type GuildBasedChannelTypes } from '@sapphire/discord.js-utilities';\nimport { Events, Listener } from '@sapphire/framework';\nimport { Message, PermissionFlagsBits, PermissionsBitField } from 'discord.js';\nimport type { PatternCommandStore } from '../lib/structures/PatternCommandStore';\nimport { PatternCommandEvents } from '../lib/utils/PatternCommandEvents';\nimport type { PossiblePatternCommand } from '../lib/utils/PatternCommandInterfaces';\n\nexport class PluginListener extends Listener<typeof Events.PreMessageParsed> {\n\tprivate readonly requiredPermissions = new PermissionsBitField([PermissionFlagsBits.ViewChannel, PermissionFlagsBits.SendMessages]).freeze();\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, { event: Events.PreMessageParsed });\n\t}\n\n\tpublic override async run(message: Message) {\n\t\tconst canRun = await this.canRunInChannel(message);\n\t\tif (!canRun) return;\n\n\t\tlet { content } = message;\n\t\tconst { client, stores } = this.container;\n\n\t\tconst patternCommandStore = stores.get('pattern-commands') as PatternCommandStore | undefined;\n\n\t\tif (!patternCommandStore) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (client.options.caseInsensitiveCommands) {\n\t\t\tcontent = content.toLowerCase();\n\t\t}\n\n\t\tconst possiblePatternCommands: PossiblePatternCommand[] = [];\n\n\t\tfor (const [key, patternCommand] of patternCommandStore) {\n\t\t\tif (content === key) {\n\t\t\t\tpossiblePatternCommands.push({\n\t\t\t\t\tcommand: patternCommand,\n\t\t\t\t\talias: key,\n\t\t\t\t\tweight: patternCommand.weight\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst aliasMatch = patternCommand.aliases.find((alias) => alias === content);\n\n\t\t\tif (aliasMatch) {\n\t\t\t\tpossiblePatternCommands.push({\n\t\t\t\t\tcommand: patternCommand,\n\t\t\t\t\talias: aliasMatch,\n\t\t\t\t\tweight: patternCommand.weight\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tcontent.match(new RegExp(patternCommand.matchFullName ? `\\b${key}\\b` : key, client.options.caseInsensitiveCommands ? 'i' : undefined))\n\t\t\t) {\n\t\t\t\tpossiblePatternCommands.push({\n\t\t\t\t\tcommand: patternCommand,\n\t\t\t\t\talias: content,\n\t\t\t\t\tweight: patternCommand.weight\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst aliasRegexMatch = patternCommand.aliases.find((alias) =>\n\t\t\t\tcontent.match(new RegExp(alias, client.options.caseInsensitiveCommands ? 'i' : undefined))\n\t\t\t);\n\n\t\t\tif (aliasRegexMatch) {\n\t\t\t\tpossiblePatternCommands.push({\n\t\t\t\t\tcommand: patternCommand,\n\t\t\t\t\talias: aliasRegexMatch,\n\t\t\t\t\tweight: patternCommand.weight\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tif (possiblePatternCommands.length > 0) {\n\t\t\tconst sortedPossiblePatternCommands = possiblePatternCommands.sort((first, second) => {\n\t\t\t\treturn second.weight - first.weight;\n\t\t\t});\n\n\t\t\tclient.emit(PatternCommandEvents.PreCommandRun, { message, possibleCommands: sortedPossiblePatternCommands });\n\t\t}\n\t}\n\n\tprivate async canRunInChannel(message: Message): Promise<boolean> {\n\t\tif (isDMChannel(message.channel)) return true;\n\n\t\tconst me = await message.guild?.members.fetchMe();\n\t\tif (!me) return false;\n\n\t\tconst channel = message.channel as GuildBasedChannelTypes;\n\t\treturn channel.permissionsFor(me).has(this.requiredPermissions, false);\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/listeners/PluginMessageParse.ts"],"names":[],"mappings":";;;;;;AAAA,SAAS,mBAAgD;AACzD,SAAS,QAAQ,gBAAgB;AACjC,SAAkB,qBAAqB,2BAA2B;AAElE,SAAS,4BAA4B;AAG9B,IAAM,kBAAN,MAAM,wBAAuB,SAAyC;AAAA,EAErE,YAAY,SAAiC;AACnD,UAAM,SAAS,EAAE,OAAO,OAAO,iBAAiB,CAAC;AAFlD,wBAAiB,uBAAsB,IAAI,oBAAoB,CAAC,oBAAoB,aAAa,oBAAoB,YAAY,CAAC,EAAE,OAAO;AAAA,EAG3I;AAAA,EAEA,MAAsB,IAAI,SAAkB;AAC3C,UAAM,SAAS,MAAM,KAAK,gBAAgB,OAAO;AACjD,QAAI,CAAC,OAAQ;AAEb,QAAI,EAAE,QAAQ,IAAI;AAClB,UAAM,EAAE,QAAQ,OAAO,IAAI,KAAK;AAEhC,UAAM,sBAAsB,OAAO,IAAI,kBAAkB;AAEzD,QAAI,CAAC,qBAAqB;AACzB;AAAA,IACD;AAEA,QAAI,OAAO,QAAQ,yBAAyB;AAC3C,gBAAU,QAAQ,YAAY;AAAA,IAC/B;AAEA,UAAM,0BAAoD,CAAC;AAE3D,eAAW,CAAC,KAAK,cAAc,KAAK,qBAAqB;AACxD,UAAI,YAAY,KAAK;AACpB,gCAAwB,KAAK;AAAA,UAC5B,SAAS;AAAA,UACT,OAAO;AAAA,UACP,QAAQ,eAAe;AAAA,QACxB,CAAC;AACD;AAAA,MACD;AAEA,YAAM,aAAa,eAAe,QAAQ,KAAK,CAAC,UAAU,UAAU,OAAO;AAE3E,UAAI,YAAY;AACf,gCAAwB,KAAK;AAAA,UAC5B,SAAS;AAAA,UACT,OAAO;AAAA,UACP,QAAQ,eAAe;AAAA,QACxB,CAAC;AACD;AAAA,MACD;AAEA,UACC,QAAQ,MAAM,IAAI,OAAO,eAAe,gBAAgB,KAAK,GAAG,OAAO,KAAK,OAAO,QAAQ,0BAA0B,MAAM,MAAS,CAAC,GACpI;AACD,gCAAwB,KAAK;AAAA,UAC5B,SAAS;AAAA,UACT,OAAO;AAAA,UACP,QAAQ,eAAe;AAAA,QACxB,CAAC;AACD;AAAA,MACD;AAEA,YAAM,kBAAkB,eAAe,QAAQ;AAAA,QAAK,CAAC,UACpD,QAAQ,MAAM,IAAI,OAAO,OAAO,OAAO,QAAQ,0BAA0B,MAAM,MAAS,CAAC;AAAA,MAC1F;AAEA,UAAI,iBAAiB;AACpB,gCAAwB,KAAK;AAAA,UAC5B,SAAS;AAAA,UACT,OAAO;AAAA,UACP,QAAQ,eAAe;AAAA,QACxB,CAAC;AACD;AAAA,MACD;AAAA,IACD;AAEA,QAAI,wBAAwB,SAAS,GAAG;AACvC,YAAM,gCAAgC,wBAAwB,KAAK,CAAC,OAAO,WAAW;AACrF,eAAO,OAAO,SAAS,MAAM;AAAA,MAC9B,CAAC;AAED,aAAO,KAAK,qBAAqB,eAAe,EAAE,SAAS,kBAAkB,8BAA8B,CAAC;AAAA,IAC7G;AAAA,EACD;AAAA,EAEA,MAAc,gBAAgB,SAAoC;AACjE,QAAI,YAAY,QAAQ,OAAO,EAAG,QAAO;AAEzC,UAAM,KAAK,MAAM,QAAQ,OAAO,QAAQ,QAAQ;AAChD,QAAI,CAAC,GAAI,QAAO;AAEhB,UAAM,UAAU,QAAQ;AACxB,WAAO,QAAQ,eAAe,EAAE,EAAE,IAAI,KAAK,qBAAqB,KAAK;AAAA,EACtE;AACD;AAzF6E;AAAtE,IAAM,iBAAN","sourcesContent":["import { isDMChannel, type GuildBasedChannelTypes } from '@sapphire/discord.js-utilities';\nimport { Events, Listener } from '@sapphire/framework';\nimport { Message, PermissionFlagsBits, PermissionsBitField } from 'discord.js';\nimport type { PatternCommandStore } from '../lib/structures/PatternCommandStore';\nimport { PatternCommandEvents } from '../lib/utils/PatternCommandEvents';\nimport type { PossiblePatternCommand } from '../lib/utils/PatternCommandInterfaces';\n\nexport class PluginListener extends Listener<typeof Events.PreMessageParsed> {\n\tprivate readonly requiredPermissions = new PermissionsBitField([PermissionFlagsBits.ViewChannel, PermissionFlagsBits.SendMessages]).freeze();\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, { event: Events.PreMessageParsed });\n\t}\n\n\tpublic override async run(message: Message) {\n\t\tconst canRun = await this.canRunInChannel(message);\n\t\tif (!canRun) return;\n\n\t\tlet { content } = message;\n\t\tconst { client, stores } = this.container;\n\n\t\tconst patternCommandStore = stores.get('pattern-commands') as PatternCommandStore | undefined;\n\n\t\tif (!patternCommandStore) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (client.options.caseInsensitiveCommands) {\n\t\t\tcontent = content.toLowerCase();\n\t\t}\n\n\t\tconst possiblePatternCommands: PossiblePatternCommand[] = [];\n\n\t\tfor (const [key, patternCommand] of patternCommandStore) {\n\t\t\tif (content === key) {\n\t\t\t\tpossiblePatternCommands.push({\n\t\t\t\t\tcommand: patternCommand,\n\t\t\t\t\talias: key,\n\t\t\t\t\tweight: patternCommand.weight\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst aliasMatch = patternCommand.aliases.find((alias) => alias === content);\n\n\t\t\tif (aliasMatch) {\n\t\t\t\tpossiblePatternCommands.push({\n\t\t\t\t\tcommand: patternCommand,\n\t\t\t\t\talias: aliasMatch,\n\t\t\t\t\tweight: patternCommand.weight\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tcontent.match(new RegExp(patternCommand.matchFullName ? `\\b${key}\\b` : key, client.options.caseInsensitiveCommands ? 'i' : undefined))\n\t\t\t) {\n\t\t\t\tpossiblePatternCommands.push({\n\t\t\t\t\tcommand: patternCommand,\n\t\t\t\t\talias: content,\n\t\t\t\t\tweight: patternCommand.weight\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst aliasRegexMatch = patternCommand.aliases.find((alias) =>\n\t\t\t\tcontent.match(new RegExp(alias, client.options.caseInsensitiveCommands ? 'i' : undefined))\n\t\t\t);\n\n\t\t\tif (aliasRegexMatch) {\n\t\t\t\tpossiblePatternCommands.push({\n\t\t\t\t\tcommand: patternCommand,\n\t\t\t\t\talias: aliasRegexMatch,\n\t\t\t\t\tweight: patternCommand.weight\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tif (possiblePatternCommands.length > 0) {\n\t\t\tconst sortedPossiblePatternCommands = possiblePatternCommands.sort((first, second) => {\n\t\t\t\treturn second.weight - first.weight;\n\t\t\t});\n\n\t\t\tclient.emit(PatternCommandEvents.PreCommandRun, { message, possibleCommands: sortedPossiblePatternCommands });\n\t\t}\n\t}\n\n\tprivate async canRunInChannel(message: Message): Promise<boolean> {\n\t\tif (isDMChannel(message.channel)) return true;\n\n\t\tconst me = await message.guild?.members.fetchMe();\n\t\tif (!me) return false;\n\n\t\tconst channel = message.channel as GuildBasedChannelTypes;\n\t\treturn channel.permissionsFor(me).has(this.requiredPermissions, false);\n\t}\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { __name } from '../chunk-6QB3UK4Q.mjs';
1
+ import { __name } from '../chunk-2JTKI4GS.mjs';
2
2
  import { Listener } from '@sapphire/framework';
3
3
  import { PatternCommandEvents } from '../lib/utils/PatternCommandEvents.mjs';
4
4
 
@@ -1,4 +1,4 @@
1
- import { __name } from '../chunk-6QB3UK4Q.mjs';
1
+ import { __name } from '../chunk-2JTKI4GS.mjs';
2
2
  import { container } from '@sapphire/pieces';
3
3
  import { PluginListener } from './PluginCommandAccepted.mjs';
4
4
  import { PluginListener as PluginListener$1 } from './PluginMessageParse.mjs';
@@ -1,4 +1,4 @@
1
- import { __name } from './chunk-6QB3UK4Q.mjs';
1
+ import { __name } from './chunk-2JTKI4GS.mjs';
2
2
  import { PatternCommandStore, loadListeners } from './index.mjs';
3
3
  import { SapphireClient, postInitialization, Plugin } from '@sapphire/framework';
4
4
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapphire/plugin-pattern-commands",
3
- "version": "6.0.2",
3
+ "version": "6.0.3-next.03b2a90",
4
4
  "description": "Plugin for @sapphire/framework that adds support for pattern commands.",
5
5
  "author": "@sapphire",
6
6
  "license": "MIT",
@@ -78,13 +78,13 @@
78
78
  "access": "public"
79
79
  },
80
80
  "devDependencies": {
81
- "@favware/cliff-jumper": "^2.2.3",
81
+ "@favware/cliff-jumper": "^4.0.2",
82
82
  "@favware/rollup-type-bundler": "^3.3.0",
83
83
  "concurrently": "^8.2.2",
84
- "tsup": "^8.0.1",
85
- "tsx": "^4.7.0",
86
- "typedoc": "^0.25.7",
87
- "typedoc-json-parser": "^9.0.1",
88
- "typescript": "^5.3.3"
84
+ "tsup": "^8.1.0",
85
+ "tsx": "^4.16.0",
86
+ "typedoc": "^0.25.13",
87
+ "typedoc-json-parser": "^10.0.0",
88
+ "typescript": "~5.4.5"
89
89
  }
90
90
  }