@sapphire/plugin-pattern-commands 5.1.1-next.eccc557.0 → 6.0.0-pr-512.86f3d06.0

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.
Files changed (88) hide show
  1. package/dist/cjs/index.cjs +52 -0
  2. package/dist/cjs/index.cjs.map +1 -0
  3. package/dist/cjs/index.d.ts +185 -0
  4. package/dist/cjs/lib/structures/PaternCommandStore.cjs +18 -0
  5. package/dist/cjs/lib/structures/PaternCommandStore.cjs.map +1 -0
  6. package/dist/cjs/lib/structures/PatternCommand.cjs +38 -0
  7. package/dist/cjs/lib/structures/PatternCommand.cjs.map +1 -0
  8. package/dist/cjs/lib/utils/PaternCommandEvents.cjs +18 -0
  9. package/dist/cjs/lib/utils/PaternCommandEvents.cjs.map +1 -0
  10. package/dist/cjs/lib/utils/PatternCommandInterfaces.cjs +4 -0
  11. package/dist/cjs/lib/utils/PatternCommandInterfaces.cjs.map +1 -0
  12. package/dist/cjs/listeners/PluginCommandAccepted.cjs +36 -0
  13. package/dist/cjs/listeners/PluginCommandAccepted.cjs.map +1 -0
  14. package/dist/cjs/listeners/PluginMessageParse.cjs +94 -0
  15. package/dist/cjs/listeners/PluginMessageParse.cjs.map +1 -0
  16. package/dist/cjs/listeners/PluginPreCommandRun.cjs +49 -0
  17. package/dist/cjs/listeners/PluginPreCommandRun.cjs.map +1 -0
  18. package/dist/cjs/listeners/_load.cjs +20 -0
  19. package/dist/cjs/listeners/_load.cjs.map +1 -0
  20. package/dist/cjs/register.cjs +25 -0
  21. package/dist/cjs/register.cjs.map +1 -0
  22. package/dist/{register.d.ts → cjs/register.d.ts} +6 -4
  23. package/dist/esm/chunk-6QB3UK4Q.mjs +11 -0
  24. package/dist/esm/chunk-6QB3UK4Q.mjs.map +1 -0
  25. package/dist/esm/index.d.mts +185 -0
  26. package/dist/esm/index.mjs +14 -0
  27. package/dist/esm/index.mjs.map +1 -0
  28. package/dist/esm/lib/structures/PaternCommandStore.mjs +15 -0
  29. package/dist/esm/lib/structures/PaternCommandStore.mjs.map +1 -0
  30. package/dist/esm/lib/structures/PatternCommand.mjs +30 -0
  31. package/dist/esm/lib/structures/PatternCommand.mjs.map +1 -0
  32. package/dist/esm/lib/utils/PaternCommandEvents.mjs +18 -0
  33. package/dist/esm/lib/utils/PaternCommandEvents.mjs.map +1 -0
  34. package/dist/esm/lib/utils/PatternCommandInterfaces.mjs +3 -0
  35. package/dist/esm/lib/utils/PatternCommandInterfaces.mjs.map +1 -0
  36. package/dist/esm/listeners/PluginCommandAccepted.mjs +33 -0
  37. package/dist/esm/listeners/PluginCommandAccepted.mjs.map +1 -0
  38. package/dist/esm/listeners/PluginMessageParse.mjs +86 -0
  39. package/dist/esm/listeners/PluginMessageParse.mjs.map +1 -0
  40. package/dist/esm/listeners/PluginPreCommandRun.mjs +46 -0
  41. package/dist/esm/listeners/PluginPreCommandRun.mjs.map +1 -0
  42. package/dist/esm/listeners/_load.mjs +17 -0
  43. package/dist/esm/listeners/_load.mjs.map +1 -0
  44. package/dist/esm/register.d.mts +15 -0
  45. package/dist/esm/register.mjs +22 -0
  46. package/dist/esm/register.mjs.map +1 -0
  47. package/package.json +34 -18
  48. package/dist/index.d.ts +0 -14
  49. package/dist/index.d.ts.map +0 -1
  50. package/dist/index.js +0 -28
  51. package/dist/index.js.map +0 -1
  52. package/dist/index.mjs +0 -9
  53. package/dist/lib/structures/PaternCommandStore.d.ts +0 -6
  54. package/dist/lib/structures/PaternCommandStore.d.ts.map +0 -1
  55. package/dist/lib/structures/PaternCommandStore.js +0 -12
  56. package/dist/lib/structures/PaternCommandStore.js.map +0 -1
  57. package/dist/lib/structures/PatternCommand.d.ts +0 -50
  58. package/dist/lib/structures/PatternCommand.d.ts.map +0 -1
  59. package/dist/lib/structures/PatternCommand.js +0 -45
  60. package/dist/lib/structures/PatternCommand.js.map +0 -1
  61. package/dist/lib/utils/PaternCommandEvents.d.ts +0 -59
  62. package/dist/lib/utils/PaternCommandEvents.d.ts.map +0 -1
  63. package/dist/lib/utils/PaternCommandEvents.js +0 -63
  64. package/dist/lib/utils/PaternCommandEvents.js.map +0 -1
  65. package/dist/lib/utils/PatternCommandInterfaces.d.ts +0 -41
  66. package/dist/lib/utils/PatternCommandInterfaces.d.ts.map +0 -1
  67. package/dist/lib/utils/PatternCommandInterfaces.js +0 -3
  68. package/dist/lib/utils/PatternCommandInterfaces.js.map +0 -1
  69. package/dist/listeners/PluginCommandAccepted.d.ts +0 -8
  70. package/dist/listeners/PluginCommandAccepted.d.ts.map +0 -1
  71. package/dist/listeners/PluginCommandAccepted.js +0 -30
  72. package/dist/listeners/PluginCommandAccepted.js.map +0 -1
  73. package/dist/listeners/PluginMessageParse.d.ts +0 -9
  74. package/dist/listeners/PluginMessageParse.d.ts.map +0 -1
  75. package/dist/listeners/PluginMessageParse.js +0 -86
  76. package/dist/listeners/PluginMessageParse.js.map +0 -1
  77. package/dist/listeners/PluginPreCommandRun.d.ts +0 -8
  78. package/dist/listeners/PluginPreCommandRun.d.ts.map +0 -1
  79. package/dist/listeners/PluginPreCommandRun.js +0 -42
  80. package/dist/listeners/PluginPreCommandRun.js.map +0 -1
  81. package/dist/listeners/_load.d.ts +0 -2
  82. package/dist/listeners/_load.d.ts.map +0 -1
  83. package/dist/listeners/_load.js +0 -15
  84. package/dist/listeners/_load.js.map +0 -1
  85. package/dist/register.d.ts.map +0 -1
  86. package/dist/register.js +0 -22
  87. package/dist/register.js.map +0 -1
  88. package/dist/register.mjs +0 -4
@@ -0,0 +1,11 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
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
+ };
8
+
9
+ export { __name, __publicField };
10
+ //# sourceMappingURL=out.js.map
11
+ //# sourceMappingURL=chunk-6QB3UK4Q.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -0,0 +1,185 @@
1
+ import { AliasStore } from '@sapphire/pieces';
2
+ import { MessageCommand, Command, Args, Listener, Events } from '@sapphire/framework';
3
+ import { Message, Awaitable } from 'discord.js';
4
+
5
+ interface PatternCommandOptions extends MessageCommand.Options {
6
+ /**
7
+ * The chance that the pattern command is triggered.
8
+ * @default 100
9
+ */
10
+ chance?: number;
11
+ /**
12
+ * The matching weight of the command.
13
+ * @default 5
14
+ */
15
+ weight?: number;
16
+ /**
17
+ * If true it will only trigger on full matches (for example, explore won't trigger lore)
18
+ * Note: It will only change the behavior of the command's name and not for the command's aliasses
19
+ * @default false
20
+ */
21
+ matchFullName?: boolean;
22
+ }
23
+ declare abstract class PatternCommand extends Command<Args, PatternCommand.Options> {
24
+ readonly chance: number;
25
+ readonly weight: number;
26
+ readonly matchFullName: boolean;
27
+ constructor(context: PatternCommand.LoaderContext, options: PatternCommand.Options);
28
+ /**
29
+ * Executes the pattern command's logic.
30
+ * @param message The message that triggered the pattern command.
31
+ */
32
+ abstract messageRun(message: Message): Awaitable<unknown>;
33
+ }
34
+ declare namespace PatternCommand {
35
+ /**
36
+ * Re-export of {@link MessageCommand.LoaderContext}
37
+ * @deprecated Use {@linkcode LoaderContext} instead.
38
+ */
39
+ type Context = LoaderContext;
40
+ type LoaderContext = MessageCommand.LoaderContext;
41
+ /** Re-export of {@link MessageCommand.RunContext} */
42
+ type RunContext = MessageCommand.RunContext;
43
+ /** Re-export of {@link MessageCommand.JSON} */
44
+ type JSON = MessageCommand.JSON;
45
+ /** Re-export of {@link MessageCommand.RunInTypes} */
46
+ type RunInTypes = MessageCommand.RunInTypes;
47
+ /**
48
+ * The PatternCommand Options
49
+ */
50
+ type Options = PatternCommandOptions;
51
+ }
52
+
53
+ declare class PatternCommandStore extends AliasStore<PatternCommand> {
54
+ constructor();
55
+ }
56
+
57
+ /**
58
+ * Events emitted during the parsing and command run.
59
+ * You can use these events for debugging and logging purposes.
60
+ */
61
+ declare enum PatternCommandEvents {
62
+ /**
63
+ * Event that is emitted when the RNG doesn't love the command
64
+ * @param message The message where the command was triggered
65
+ * @param command The command's piece
66
+ * @param alias The alias that triggered the command
67
+ */
68
+ CommandNoLuck = "patternCommandNoLuck",
69
+ /**
70
+ * Event that is emitted when an alias triggered the command but before parsing the preconditions
71
+ * @param payload PatternCommandRunPayload which contains message, command and alias
72
+ */
73
+ PreCommandRun = "patternCommandPreRun",
74
+ /**
75
+ * Event that is emitted after the preconditions if none of them denied the command
76
+ * @param payload PatternCommandAcceptedPayload which contains parameters, context, message, command and alias
77
+ */
78
+ CommandAccepted = "patternCommandAccepted",
79
+ /**
80
+ * Event that is emitted after the preconditions if at least one of them denied the command
81
+ * @param error The error of the precondition which denied the command
82
+ * @param payload PatternCommandDeniedPayload which contains parameters, context, message, command and alias
83
+ */
84
+ CommandDenied = "patternCommandDenied",
85
+ /**
86
+ * Event that is emitted just before the command is ran
87
+ * @param message The message where the command was triggered
88
+ * @param command The command's piece
89
+ * @param alias The alias that triggered the command
90
+ */
91
+ CommandRun = "patternCommandRun",
92
+ /**
93
+ * Event that is emitted if there's no error while running the command
94
+ * @param result The result of command's run
95
+ * @param command The command's piece
96
+ * @param alias The alias that triggered the command
97
+ * @param duration The duration which indicates how long it took the command to run
98
+ */
99
+ CommandSuccess = "patternCommandSuccess",
100
+ /**
101
+ * Event that is emitted if there's an error while running the command
102
+ * @param error The error message which happened while the command was running
103
+ * @param command The command's piece
104
+ * @param payload PatternCommandAcceptedPayload which contains parameters, context, message, command and alias
105
+ */
106
+ CommandError = "patternCommandError",
107
+ /**
108
+ * Event that is emitted if the command has finished, regardless of whether an error occurred or not
109
+ * @param command The command's piece
110
+ * @param duration The duration which indicates how long it took the command to run
111
+ * @param payload PatternCommandAcceptedPayload which contains parameters, context, message, command and alias
112
+ */
113
+ CommandFinished = "patternCommandFinished"
114
+ }
115
+
116
+ interface PatternCommandPrePayload {
117
+ message: Message;
118
+ possibleCommands: PossiblePatternCommand[];
119
+ }
120
+ interface PatternCommandPayload {
121
+ /** The message that triggered this PatternCommand */
122
+ message: Message;
123
+ /** The command that is triggered by this PatternCommand */
124
+ command: PatternCommand;
125
+ /** The alias of this pattern command */
126
+ alias: string;
127
+ }
128
+ interface PatternPreCommandRunPayload extends PatternCommandDeniedPayload {
129
+ }
130
+ interface PatternCommandDeniedPayload extends PatternCommandPayload {
131
+ parameters: string;
132
+ context: PatternCommand.RunContext;
133
+ }
134
+ interface PatternCommandAcceptedPayload extends PatternCommandPayload {
135
+ parameters: string;
136
+ context: PatternCommand.RunContext;
137
+ }
138
+ interface PatternCommandSuccessPayload extends PatternCommandFinishedPayload {
139
+ result: unknown;
140
+ }
141
+ interface PatternCommandFinishedPayload extends PatternCommandAcceptedPayload {
142
+ duration: number;
143
+ success: boolean;
144
+ }
145
+ interface PatternCommandErrorPayload extends PatternCommandFinishedPayload {
146
+ }
147
+ interface PatternCommandNoLuckPayload extends PatternCommandAcceptedPayload {
148
+ }
149
+ interface PossiblePatternCommand {
150
+ command: PatternCommand;
151
+ alias: string;
152
+ weight: number;
153
+ }
154
+
155
+ declare class PluginListener$2 extends Listener<typeof PatternCommandEvents.CommandAccepted> {
156
+ constructor(context: Listener.LoaderContext);
157
+ run(payload: PatternCommandAcceptedPayload): Promise<void>;
158
+ }
159
+
160
+ declare class PluginListener$1 extends Listener<typeof Events.PreMessageParsed> {
161
+ private readonly requiredPermissions;
162
+ constructor(context: Listener.LoaderContext);
163
+ run(message: Message): Promise<void>;
164
+ private canRunInChannel;
165
+ }
166
+
167
+ declare class PluginListener extends Listener<typeof PatternCommandEvents.PreCommandRun> {
168
+ constructor(context: Listener.LoaderContext);
169
+ run(payload: PatternCommandPrePayload): Promise<void>;
170
+ }
171
+
172
+ declare module '@sapphire/pieces' {
173
+ interface StoreRegistryEntries {
174
+ 'pattern-commands': PatternCommandStore;
175
+ }
176
+ }
177
+ /**
178
+ * The [@sapphire/plugin-pattern-commands](https://github.com/sapphiredev/plugins/blob/main/packages/pattern-commands) version that you are currently using.
179
+ * An example use of this is showing it of in a bot information command.
180
+ *
181
+ * Note to Sapphire developers: This needs to explicitly be `string` so it is not typed as the string that gets replaced by esbuild
182
+ */
183
+ declare const version: string;
184
+
185
+ export { PatternCommand, type PatternCommandAcceptedPayload, type PatternCommandDeniedPayload, type PatternCommandErrorPayload, PatternCommandEvents, type PatternCommandFinishedPayload, type PatternCommandNoLuckPayload, type PatternCommandOptions, type PatternCommandPayload, type PatternCommandPrePayload, PatternCommandStore, type PatternCommandSuccessPayload, type PatternPreCommandRunPayload, PluginListener$2 as PluginPatternCommandsCommandAcceptedListener, PluginListener$1 as PluginPatternCommandsMessageParseListener, PluginListener as PluginPatternCommandsPreCommandRunListener, type PossiblePatternCommand, version };
@@ -0,0 +1,14 @@
1
+ import './chunk-6QB3UK4Q.mjs';
2
+ export * from './lib/structures/PaternCommandStore.mjs';
3
+ export * from './lib/structures/PatternCommand.mjs';
4
+ export * from './lib/utils/PaternCommandEvents.mjs';
5
+ export * from './lib/utils/PatternCommandInterfaces.mjs';
6
+ export { PluginListener as PluginPatternCommandsCommandAcceptedListener } from './listeners/PluginCommandAccepted.mjs';
7
+ export { PluginListener as PluginPatternCommandsMessageParseListener } from './listeners/PluginMessageParse.mjs';
8
+ export { PluginListener as PluginPatternCommandsPreCommandRunListener } from './listeners/PluginPreCommandRun.mjs';
9
+
10
+ var version = "6.0.0-pr-512.86f3d06.0";
11
+
12
+ export { version };
13
+ //# sourceMappingURL=out.js.map
14
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +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;AAetE,IAAM,UAAkB","sourcesContent":["import type { PatternCommandStore } from './lib/structures/PaternCommandStore';\n\nexport * from './lib/structures/PaternCommandStore';\nexport * from './lib/structures/PatternCommand';\nexport * from './lib/utils/PaternCommandEvents';\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\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.0-pr-512.86f3d06.0';\n"]}
@@ -0,0 +1,15 @@
1
+ import { __name } from '../../chunk-6QB3UK4Q.mjs';
2
+ import { AliasStore } from '@sapphire/pieces';
3
+ import { PatternCommand } from './PatternCommand.mjs';
4
+
5
+ var _PatternCommandStore = class _PatternCommandStore extends AliasStore {
6
+ constructor() {
7
+ super(PatternCommand, { name: "pattern-commands" });
8
+ }
9
+ };
10
+ __name(_PatternCommandStore, "PatternCommandStore");
11
+ var PatternCommandStore = _PatternCommandStore;
12
+
13
+ export { PatternCommandStore };
14
+ //# sourceMappingURL=out.js.map
15
+ //# sourceMappingURL=PaternCommandStore.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/structures/PaternCommandStore.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,kBAAkB;AAC3B,SAAS,sBAAsB;AAExB,IAAM,uBAAN,MAAM,6BAA4B,WAA2B;AAAA,EAC5D,cAAc;AACpB,UAAM,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAAA,EACnD;AACD;AAJoE;AAA7D,IAAM,sBAAN","sourcesContent":["import { AliasStore } from '@sapphire/pieces';\nimport { PatternCommand } from './PatternCommand';\n\nexport class PatternCommandStore extends AliasStore<PatternCommand> {\n\tpublic constructor() {\n\t\tsuper(PatternCommand, { name: 'pattern-commands' });\n\t}\n}\n"]}
@@ -0,0 +1,30 @@
1
+ import { __name, __publicField } from '../../chunk-6QB3UK4Q.mjs';
2
+ import { Command } from '@sapphire/framework';
3
+
4
+ var _PatternCommand = class _PatternCommand extends Command {
5
+ constructor(context, options) {
6
+ super(context, options);
7
+ __publicField(this, "chance");
8
+ __publicField(this, "weight");
9
+ __publicField(this, "matchFullName");
10
+ this.chance = options.chance ?? 100;
11
+ if (options.weight) {
12
+ if (options.weight < 0) {
13
+ this.weight = 0;
14
+ } else if (options.weight > 10) {
15
+ this.weight = 10;
16
+ } else {
17
+ this.weight = options.weight;
18
+ }
19
+ } else {
20
+ this.weight = 5;
21
+ }
22
+ this.matchFullName = options.matchFullName ?? false;
23
+ }
24
+ };
25
+ __name(_PatternCommand, "PatternCommand");
26
+ var PatternCommand = _PatternCommand;
27
+
28
+ export { PatternCommand };
29
+ //# sourceMappingURL=out.js.map
30
+ //# sourceMappingURL=PatternCommand.mjs.map
@@ -0,0 +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"]}
@@ -0,0 +1,18 @@
1
+ import '../../chunk-6QB3UK4Q.mjs';
2
+
3
+ // src/lib/utils/PaternCommandEvents.ts
4
+ var PatternCommandEvents = /* @__PURE__ */ ((PatternCommandEvents2) => {
5
+ PatternCommandEvents2["CommandNoLuck"] = "patternCommandNoLuck";
6
+ PatternCommandEvents2["PreCommandRun"] = "patternCommandPreRun";
7
+ PatternCommandEvents2["CommandAccepted"] = "patternCommandAccepted";
8
+ PatternCommandEvents2["CommandDenied"] = "patternCommandDenied";
9
+ PatternCommandEvents2["CommandRun"] = "patternCommandRun";
10
+ PatternCommandEvents2["CommandSuccess"] = "patternCommandSuccess";
11
+ PatternCommandEvents2["CommandError"] = "patternCommandError";
12
+ PatternCommandEvents2["CommandFinished"] = "patternCommandFinished";
13
+ return PatternCommandEvents2;
14
+ })(PatternCommandEvents || {});
15
+
16
+ export { PatternCommandEvents };
17
+ //# sourceMappingURL=out.js.map
18
+ //# sourceMappingURL=PaternCommandEvents.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/utils/PaternCommandEvents.ts"],"names":["PatternCommandEvents"],"mappings":";;;AAIO,IAAK,uBAAL,kBAAKA,0BAAL;AAON,EAAAA,sBAAA,mBAAgB;AAKhB,EAAAA,sBAAA,mBAAgB;AAKhB,EAAAA,sBAAA,qBAAkB;AAMlB,EAAAA,sBAAA,mBAAgB;AAOhB,EAAAA,sBAAA,gBAAa;AAQb,EAAAA,sBAAA,oBAAiB;AAOjB,EAAAA,sBAAA,kBAAe;AAOf,EAAAA,sBAAA,qBAAkB;AApDP,SAAAA;AAAA,GAAA","sourcesContent":["/**\n * Events emitted during the parsing and command run.\n * You can use these events for debugging and logging purposes.\n */\nexport enum PatternCommandEvents {\n\t/**\n\t * Event that is emitted when the RNG doesn't love the command\n\t * @param message The message where the command was triggered\n\t * @param command The command's piece\n\t * @param alias The alias that triggered the command\n\t */\n\tCommandNoLuck = 'patternCommandNoLuck',\n\t/**\n\t * Event that is emitted when an alias triggered the command but before parsing the preconditions\n\t * @param payload PatternCommandRunPayload which contains message, command and alias\n\t */\n\tPreCommandRun = 'patternCommandPreRun',\n\t/**\n\t * Event that is emitted after the preconditions if none of them denied the command\n\t * @param payload PatternCommandAcceptedPayload which contains parameters, context, message, command and alias\n\t */\n\tCommandAccepted = 'patternCommandAccepted',\n\t/**\n\t * Event that is emitted after the preconditions if at least one of them denied the command\n\t * @param error The error of the precondition which denied the command\n\t * @param payload PatternCommandDeniedPayload which contains parameters, context, message, command and alias\n\t */\n\tCommandDenied = 'patternCommandDenied',\n\t/**\n\t * Event that is emitted just before the command is ran\n\t * @param message The message where the command was triggered\n\t * @param command The command's piece\n\t * @param alias The alias that triggered the command\n\t */\n\tCommandRun = 'patternCommandRun',\n\t/**\n\t * Event that is emitted if there's no error while running the command\n\t * @param result The result of command's run\n\t * @param command The command's piece\n\t * @param alias The alias that triggered the command\n\t * @param duration The duration which indicates how long it took the command to run\n\t */\n\tCommandSuccess = 'patternCommandSuccess',\n\t/**\n\t * Event that is emitted if there's an error while running the command\n\t * @param error The error message which happened while the command was running\n\t * @param command The command's piece\n\t * @param payload PatternCommandAcceptedPayload which contains parameters, context, message, command and alias\n\t */\n\tCommandError = 'patternCommandError',\n\t/**\n\t * Event that is emitted if the command has finished, regardless of whether an error occurred or not\n\t * @param command The command's piece\n\t * @param duration The duration which indicates how long it took the command to run\n\t * @param payload PatternCommandAcceptedPayload which contains parameters, context, message, command and alias\n\t */\n\tCommandFinished = 'patternCommandFinished'\n}\n"]}
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=out.js.map
3
+ //# sourceMappingURL=PatternCommandInterfaces.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,33 @@
1
+ import { __name } from '../chunk-6QB3UK4Q.mjs';
2
+ import { Listener, Result } from '@sapphire/framework';
3
+ import { Stopwatch } from '@sapphire/stopwatch';
4
+ import { PatternCommandEvents } from '../lib/utils/PaternCommandEvents.mjs';
5
+
6
+ var _PluginListener = class _PluginListener extends Listener {
7
+ constructor(context) {
8
+ super(context, { event: PatternCommandEvents.CommandAccepted });
9
+ }
10
+ async run(payload) {
11
+ const { message, command } = payload;
12
+ const result = await Result.fromAsync(async () => {
13
+ message.client.emit(PatternCommandEvents.CommandRun, message, command, payload);
14
+ const stopwatch = new Stopwatch();
15
+ const result2 = await command.messageRun(message);
16
+ const { duration } = stopwatch.stop();
17
+ message.client.emit(PatternCommandEvents.CommandSuccess, { ...payload, result: result2, duration });
18
+ return duration;
19
+ });
20
+ result.inspectErr((error) => message.client.emit(PatternCommandEvents.CommandError, error, { ...payload, duration: -1 }));
21
+ message.client.emit(PatternCommandEvents.CommandFinished, message, command, {
22
+ ...payload,
23
+ success: result.isOk(),
24
+ duration: result.unwrapOr(-1)
25
+ });
26
+ }
27
+ };
28
+ __name(_PluginListener, "PluginListener");
29
+ var PluginListener = _PluginListener;
30
+
31
+ export { PluginListener };
32
+ //# sourceMappingURL=out.js.map
33
+ //# sourceMappingURL=PluginCommandAccepted.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/listeners/PluginCommandAccepted.ts"],"names":["result"],"mappings":";;;;;AAAA,SAAS,UAAU,cAAc;AACjC,SAAS,iBAAiB;AAC1B,SAAS,4BAA4B;AAG9B,IAAM,kBAAN,MAAM,wBAAuB,SAAsD;AAAA,EAClF,YAAY,SAAiC;AACnD,UAAM,SAAS,EAAE,OAAO,qBAAqB,gBAAgB,CAAC;AAAA,EAC/D;AAAA,EAEA,MAAsB,IAAI,SAAwC;AACjE,UAAM,EAAE,SAAS,QAAQ,IAAI;AAE7B,UAAM,SAAS,MAAM,OAAO,UAAU,YAAY;AACjD,cAAQ,OAAO,KAAK,qBAAqB,YAAY,SAAS,SAAS,OAAO;AAE9E,YAAM,YAAY,IAAI,UAAU;AAChC,YAAMA,UAAS,MAAM,QAAQ,WAAW,OAAO;AAC/C,YAAM,EAAE,SAAS,IAAI,UAAU,KAAK;AAEpC,cAAQ,OAAO,KAAK,qBAAqB,gBAAgB,EAAE,GAAG,SAAS,QAAAA,SAAQ,SAAS,CAAC;AAEzF,aAAO;AAAA,IACR,CAAC;AAED,WAAO,WAAW,CAAC,UAAU,QAAQ,OAAO,KAAK,qBAAqB,cAAc,OAAO,EAAE,GAAG,SAAS,UAAU,GAAG,CAAC,CAAC;AAExH,YAAQ,OAAO,KAAK,qBAAqB,iBAAiB,SAAS,SAAS;AAAA,MAC3E,GAAG;AAAA,MACH,SAAS,OAAO,KAAK;AAAA,MACrB,UAAU,OAAO,SAAS,EAAE;AAAA,IAC7B,CAAC;AAAA,EACF;AACD;AA5B0F;AAAnF,IAAM,iBAAN","sourcesContent":["import { Listener, Result } from '@sapphire/framework';\nimport { Stopwatch } from '@sapphire/stopwatch';\nimport { PatternCommandEvents } from '../lib/utils/PaternCommandEvents';\nimport type { PatternCommandAcceptedPayload } from '../lib/utils/PatternCommandInterfaces';\n\nexport class PluginListener extends Listener<typeof PatternCommandEvents.CommandAccepted> {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, { event: PatternCommandEvents.CommandAccepted });\n\t}\n\n\tpublic override async run(payload: PatternCommandAcceptedPayload) {\n\t\tconst { message, command } = payload;\n\n\t\tconst result = await Result.fromAsync(async () => {\n\t\t\tmessage.client.emit(PatternCommandEvents.CommandRun, message, command, payload);\n\n\t\t\tconst stopwatch = new Stopwatch();\n\t\t\tconst result = await command.messageRun(message);\n\t\t\tconst { duration } = stopwatch.stop();\n\n\t\t\tmessage.client.emit(PatternCommandEvents.CommandSuccess, { ...payload, result, duration });\n\n\t\t\treturn duration;\n\t\t});\n\n\t\tresult.inspectErr((error) => message.client.emit(PatternCommandEvents.CommandError, error, { ...payload, duration: -1 }));\n\n\t\tmessage.client.emit(PatternCommandEvents.CommandFinished, message, command, {\n\t\t\t...payload,\n\t\t\tsuccess: result.isOk(),\n\t\t\tduration: result.unwrapOr(-1)\n\t\t});\n\t}\n}\n"]}
@@ -0,0 +1,86 @@
1
+ import { __name, __publicField } from '../chunk-6QB3UK4Q.mjs';
2
+ import { isDMChannel } from '@sapphire/discord.js-utilities';
3
+ import { Listener, Events } from '@sapphire/framework';
4
+ import { PermissionsBitField, PermissionFlagsBits } from 'discord.js';
5
+ import { PatternCommandEvents } from '../lib/utils/PaternCommandEvents.mjs';
6
+
7
+ var _PluginListener = class _PluginListener extends Listener {
8
+ constructor(context) {
9
+ super(context, { event: Events.PreMessageParsed });
10
+ __publicField(this, "requiredPermissions", new PermissionsBitField([PermissionFlagsBits.ViewChannel, PermissionFlagsBits.SendMessages]).freeze());
11
+ }
12
+ async run(message) {
13
+ const canRun = await this.canRunInChannel(message);
14
+ if (!canRun)
15
+ return;
16
+ let { content } = message;
17
+ const { client, stores } = this.container;
18
+ const patternCommandStore = stores.get("pattern-commands");
19
+ if (!patternCommandStore) {
20
+ return;
21
+ }
22
+ if (client.options.caseInsensitiveCommands) {
23
+ content = content.toLowerCase();
24
+ }
25
+ const possiblePatternCommands = [];
26
+ for (const [key, patternCommand] of patternCommandStore) {
27
+ if (content === key) {
28
+ possiblePatternCommands.push({
29
+ command: patternCommand,
30
+ alias: key,
31
+ weight: patternCommand.weight
32
+ });
33
+ continue;
34
+ }
35
+ const aliasMatch = patternCommand.aliases.find((alias) => alias === content);
36
+ if (aliasMatch) {
37
+ possiblePatternCommands.push({
38
+ command: patternCommand,
39
+ alias: aliasMatch,
40
+ weight: patternCommand.weight
41
+ });
42
+ continue;
43
+ }
44
+ if (content.match(new RegExp(patternCommand.matchFullName ? `\b${key}\b` : key, client.options.caseInsensitiveCommands ? "i" : void 0))) {
45
+ possiblePatternCommands.push({
46
+ command: patternCommand,
47
+ alias: content,
48
+ weight: patternCommand.weight
49
+ });
50
+ continue;
51
+ }
52
+ const aliasRegexMatch = patternCommand.aliases.find(
53
+ (alias) => content.match(new RegExp(alias, client.options.caseInsensitiveCommands ? "i" : void 0))
54
+ );
55
+ if (aliasRegexMatch) {
56
+ possiblePatternCommands.push({
57
+ command: patternCommand,
58
+ alias: aliasRegexMatch,
59
+ weight: patternCommand.weight
60
+ });
61
+ continue;
62
+ }
63
+ }
64
+ if (possiblePatternCommands.length > 0) {
65
+ const sortedPossiblePatternCommands = possiblePatternCommands.sort((first, second) => {
66
+ return second.weight - first.weight;
67
+ });
68
+ client.emit(PatternCommandEvents.PreCommandRun, { message, possibleCommands: sortedPossiblePatternCommands });
69
+ }
70
+ }
71
+ async canRunInChannel(message) {
72
+ if (isDMChannel(message.channel))
73
+ return true;
74
+ const me = await message.guild?.members.fetchMe();
75
+ if (!me)
76
+ return false;
77
+ const channel = message.channel;
78
+ return channel.permissionsFor(me).has(this.requiredPermissions, false);
79
+ }
80
+ };
81
+ __name(_PluginListener, "PluginListener");
82
+ var PluginListener = _PluginListener;
83
+
84
+ export { PluginListener };
85
+ //# sourceMappingURL=out.js.map
86
+ //# sourceMappingURL=PluginMessageParse.mjs.map
@@ -0,0 +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/PaternCommandStore';\nimport { PatternCommandEvents } from '../lib/utils/PaternCommandEvents';\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"]}
@@ -0,0 +1,46 @@
1
+ import { __name } from '../chunk-6QB3UK4Q.mjs';
2
+ import { Listener } from '@sapphire/framework';
3
+ import { PatternCommandEvents } from '../lib/utils/PaternCommandEvents.mjs';
4
+
5
+ var _PluginListener = class _PluginListener extends Listener {
6
+ constructor(context) {
7
+ super(context, { event: PatternCommandEvents.PreCommandRun });
8
+ }
9
+ async run(payload) {
10
+ const { message, possibleCommands } = payload;
11
+ for (const possibleCommand of possibleCommands) {
12
+ const { command } = possibleCommand;
13
+ const commandPayload = {
14
+ message,
15
+ command,
16
+ alias: possibleCommand.alias
17
+ };
18
+ const globalResult = await this.container.stores.get("preconditions").messageRun(
19
+ message,
20
+ command,
21
+ commandPayload
22
+ );
23
+ if (globalResult.isErr()) {
24
+ message.client.emit(PatternCommandEvents.CommandDenied, globalResult.unwrapErr(), commandPayload);
25
+ continue;
26
+ }
27
+ const localResult = await command.preconditions.messageRun(message, command, payload);
28
+ if (localResult.isErr()) {
29
+ message.client.emit(PatternCommandEvents.CommandDenied, localResult.unwrapErr(), commandPayload);
30
+ continue;
31
+ }
32
+ if (command.chance >= Math.round(Math.random() * 99) + 1) {
33
+ message.client.emit(PatternCommandEvents.CommandAccepted, commandPayload);
34
+ break;
35
+ } else {
36
+ message.client.emit(PatternCommandEvents.CommandNoLuck, commandPayload);
37
+ }
38
+ }
39
+ }
40
+ };
41
+ __name(_PluginListener, "PluginListener");
42
+ var PluginListener = _PluginListener;
43
+
44
+ export { PluginListener };
45
+ //# sourceMappingURL=out.js.map
46
+ //# sourceMappingURL=PluginPreCommandRun.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/listeners/PluginPreCommandRun.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,gBAAwC;AACjD,SAAS,4BAA4B;AAG9B,IAAM,kBAAN,MAAM,wBAAuB,SAAoD;AAAA,EAChF,YAAY,SAAiC;AACnD,UAAM,SAAS,EAAE,OAAO,qBAAqB,cAAc,CAAC;AAAA,EAC7D;AAAA,EAEA,MAAsB,IAAI,SAAmC;AAC5D,UAAM,EAAE,SAAS,iBAAiB,IAAI;AAEtC,eAAW,mBAAmB,kBAAkB;AAC/C,YAAM,EAAE,QAAQ,IAAI;AACpB,YAAM,iBAAwC;AAAA,QAC7C;AAAA,QACA;AAAA,QACA,OAAO,gBAAgB;AAAA,MACxB;AAGA,YAAM,eAAe,MAAO,KAAK,UAAU,OAAO,IAAI,eAAe,EAAmC;AAAA,QACvG;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAEA,UAAI,aAAa,MAAM,GAAG;AACzB,gBAAQ,OAAO,KAAK,qBAAqB,eAAe,aAAa,UAAU,GAAG,cAAc;AAChG;AAAA,MACD;AAGA,YAAM,cAAc,MAAM,QAAQ,cAAc,WAAW,SAAS,SAAS,OAAc;AAC3F,UAAI,YAAY,MAAM,GAAG;AACxB,gBAAQ,OAAO,KAAK,qBAAqB,eAAe,YAAY,UAAU,GAAG,cAAc;AAC/F;AAAA,MACD;AAEA,UAAI,QAAQ,UAAU,KAAK,MAAM,KAAK,OAAO,IAAI,EAAE,IAAI,GAAG;AACzD,gBAAQ,OAAO,KAAK,qBAAqB,iBAAiB,cAAc;AACxE;AAAA,MACD,OAAO;AACN,gBAAQ,OAAO,KAAK,qBAAqB,eAAe,cAAc;AAAA,MACvE;AAAA,IACD;AAAA,EACD;AACD;AA3CwF;AAAjF,IAAM,iBAAN","sourcesContent":["import { Listener, type PreconditionStore } from '@sapphire/framework';\nimport { PatternCommandEvents } from '../lib/utils/PaternCommandEvents';\nimport type { PatternCommandPayload, PatternCommandPrePayload } from '../lib/utils/PatternCommandInterfaces';\n\nexport class PluginListener extends Listener<typeof PatternCommandEvents.PreCommandRun> {\n\tpublic constructor(context: Listener.LoaderContext) {\n\t\tsuper(context, { event: PatternCommandEvents.PreCommandRun });\n\t}\n\n\tpublic override async run(payload: PatternCommandPrePayload) {\n\t\tconst { message, possibleCommands } = payload;\n\n\t\tfor (const possibleCommand of possibleCommands) {\n\t\t\tconst { command } = possibleCommand;\n\t\t\tconst commandPayload: PatternCommandPayload = {\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\talias: possibleCommand.alias\n\t\t\t};\n\n\t\t\t// Run global preconditions:\n\t\t\tconst globalResult = await (this.container.stores.get('preconditions') as unknown as PreconditionStore).messageRun(\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tcommandPayload as any\n\t\t\t);\n\n\t\t\tif (globalResult.isErr()) {\n\t\t\t\tmessage.client.emit(PatternCommandEvents.CommandDenied, globalResult.unwrapErr(), commandPayload);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Run command-specific preconditions:\n\t\t\tconst localResult = await command.preconditions.messageRun(message, command, payload as any);\n\t\t\tif (localResult.isErr()) {\n\t\t\t\tmessage.client.emit(PatternCommandEvents.CommandDenied, localResult.unwrapErr(), commandPayload);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (command.chance >= Math.round(Math.random() * 99) + 1) {\n\t\t\t\tmessage.client.emit(PatternCommandEvents.CommandAccepted, commandPayload);\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tmessage.client.emit(PatternCommandEvents.CommandNoLuck, commandPayload);\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
@@ -0,0 +1,17 @@
1
+ import { __name } from '../chunk-6QB3UK4Q.mjs';
2
+ import { container } from '@sapphire/pieces';
3
+ import { PluginListener } from './PluginCommandAccepted.mjs';
4
+ import { PluginListener as PluginListener$1 } from './PluginMessageParse.mjs';
5
+ import { PluginListener as PluginListener$2 } from './PluginPreCommandRun.mjs';
6
+
7
+ function loadListeners() {
8
+ const store = "listeners";
9
+ void container.stores.loadPiece({ name: "PluginCommandAccepted", piece: PluginListener, store });
10
+ void container.stores.loadPiece({ name: "PluginMessageParse", piece: PluginListener$1, store });
11
+ void container.stores.loadPiece({ name: "PluginPreCommandRun", piece: PluginListener$2, store });
12
+ }
13
+ __name(loadListeners, "loadListeners");
14
+
15
+ export { loadListeners };
16
+ //# sourceMappingURL=out.js.map
17
+ //# sourceMappingURL=_load.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/listeners/_load.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB,6BAA6B;AACxD,SAAS,kBAAkB,0BAA0B;AACrD,SAAS,kBAAkB,2BAA2B;AAE/C,SAAS,gBAAgB;AAC/B,QAAM,QAAQ;AACd,OAAK,UAAU,OAAO,UAAU,EAAE,MAAM,yBAAyB,OAAO,uBAAuB,MAAM,CAAC;AACtG,OAAK,UAAU,OAAO,UAAU,EAAE,MAAM,sBAAsB,OAAO,oBAAoB,MAAM,CAAC;AAChG,OAAK,UAAU,OAAO,UAAU,EAAE,MAAM,uBAAuB,OAAO,qBAAqB,MAAM,CAAC;AACnG;AALgB","sourcesContent":["import { container } from '@sapphire/pieces';\nimport { PluginListener as PluginCommandAccepted } from './PluginCommandAccepted';\nimport { PluginListener as PluginMessageParse } from './PluginMessageParse';\nimport { PluginListener as PluginPreCommandRun } from './PluginPreCommandRun';\n\nexport function loadListeners() {\n\tconst store = 'listeners' as const;\n\tvoid container.stores.loadPiece({ name: 'PluginCommandAccepted', piece: PluginCommandAccepted, store });\n\tvoid container.stores.loadPiece({ name: 'PluginMessageParse', piece: PluginMessageParse, store });\n\tvoid container.stores.loadPiece({ name: 'PluginPreCommandRun', piece: PluginPreCommandRun, store });\n}\n"]}
@@ -0,0 +1,15 @@
1
+ import './index.mjs';
2
+ import { Plugin, postInitialization, SapphireClient } from '@sapphire/framework';
3
+ import { ClientOptions } from 'discord.js';
4
+
5
+ /**
6
+ * @since 1.0.0
7
+ */
8
+ declare class PatternCommandPlugin extends Plugin {
9
+ /**
10
+ * @since 1.0.0
11
+ */
12
+ static [postInitialization](this: SapphireClient, _options: ClientOptions): void;
13
+ }
14
+
15
+ export { PatternCommandPlugin };
@@ -0,0 +1,22 @@
1
+ import { __name } from './chunk-6QB3UK4Q.mjs';
2
+ import './index.mjs';
3
+ import { SapphireClient, postInitialization, Plugin } from '@sapphire/framework';
4
+ import { PatternCommandStore } from './lib/structures/PaternCommandStore.mjs';
5
+ import { loadListeners } from './listeners/_load.mjs';
6
+
7
+ var _PatternCommandPlugin = class _PatternCommandPlugin extends Plugin {
8
+ /**
9
+ * @since 1.0.0
10
+ */
11
+ static [postInitialization](_options) {
12
+ this.stores.register(new PatternCommandStore());
13
+ loadListeners();
14
+ }
15
+ };
16
+ __name(_PatternCommandPlugin, "PatternCommandPlugin");
17
+ var PatternCommandPlugin = _PatternCommandPlugin;
18
+ SapphireClient.plugins.registerPostInitializationHook(PatternCommandPlugin[postInitialization], "Pattern-Command-PostInitialization");
19
+
20
+ export { PatternCommandPlugin };
21
+ //# sourceMappingURL=out.js.map
22
+ //# sourceMappingURL=register.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/register.ts"],"names":[],"mappings":";;;;;AAAA,OAAO;AAEP,SAAS,QAAQ,oBAAoB,sBAAsB;AAE3D,SAAS,2BAA2B;AACpC,SAAS,qBAAqB;AAKvB,IAAM,wBAAN,MAAM,8BAA6B,OAAO;AAAA;AAAA;AAAA;AAAA,EAIhD,QAAe,kBAAkB,EAAwB,UAA+B;AACvF,SAAK,OAAO,SAAS,IAAI,oBAAoB,CAAC;AAC9C,kBAAc;AAAA,EACf;AACD;AARiD;AAA1C,IAAM,uBAAN;AAUP,eAAe,QAAQ,+BAA+B,qBAAqB,kBAAkB,GAAG,oCAAoC","sourcesContent":["import './index';\n\nimport { Plugin, postInitialization, SapphireClient } from '@sapphire/framework';\nimport type { ClientOptions } from 'discord.js';\nimport { PatternCommandStore } from './lib/structures/PaternCommandStore';\nimport { loadListeners } from './listeners/_load';\n\n/**\n * @since 1.0.0\n */\nexport class PatternCommandPlugin extends Plugin {\n\t/**\n\t * @since 1.0.0\n\t */\n\tpublic static [postInitialization](this: SapphireClient, _options: ClientOptions): void {\n\t\tthis.stores.register(new PatternCommandStore());\n\t\tloadListeners();\n\t}\n}\n\nSapphireClient.plugins.registerPostInitializationHook(PatternCommandPlugin[postInitialization], 'Pattern-Command-PostInitialization');\n"]}