@sapphire/plugin-pattern-commands 5.1.1-next.eccc557.0 → 6.0.0-next.d9aa006.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.
- package/dist/cjs/index.cjs +52 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/index.d.ts +185 -0
- package/dist/cjs/lib/structures/PaternCommandStore.cjs +18 -0
- package/dist/cjs/lib/structures/PaternCommandStore.cjs.map +1 -0
- package/dist/cjs/lib/structures/PatternCommand.cjs +38 -0
- package/dist/cjs/lib/structures/PatternCommand.cjs.map +1 -0
- package/dist/cjs/lib/utils/PaternCommandEvents.cjs +18 -0
- package/dist/cjs/lib/utils/PaternCommandEvents.cjs.map +1 -0
- package/dist/cjs/lib/utils/PatternCommandInterfaces.cjs +4 -0
- package/dist/cjs/lib/utils/PatternCommandInterfaces.cjs.map +1 -0
- package/dist/cjs/listeners/PluginCommandAccepted.cjs +36 -0
- package/dist/cjs/listeners/PluginCommandAccepted.cjs.map +1 -0
- package/dist/cjs/listeners/PluginMessageParse.cjs +94 -0
- package/dist/cjs/listeners/PluginMessageParse.cjs.map +1 -0
- package/dist/cjs/listeners/PluginPreCommandRun.cjs +49 -0
- package/dist/cjs/listeners/PluginPreCommandRun.cjs.map +1 -0
- package/dist/cjs/listeners/_load.cjs +20 -0
- package/dist/cjs/listeners/_load.cjs.map +1 -0
- package/dist/cjs/register.cjs +25 -0
- package/dist/cjs/register.cjs.map +1 -0
- package/dist/{register.d.ts → cjs/register.d.ts} +6 -4
- package/dist/esm/chunk-6QB3UK4Q.mjs +11 -0
- package/dist/esm/chunk-6QB3UK4Q.mjs.map +1 -0
- package/dist/esm/index.d.mts +185 -0
- package/dist/esm/index.mjs +14 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/lib/structures/PaternCommandStore.mjs +15 -0
- package/dist/esm/lib/structures/PaternCommandStore.mjs.map +1 -0
- package/dist/esm/lib/structures/PatternCommand.mjs +30 -0
- package/dist/esm/lib/structures/PatternCommand.mjs.map +1 -0
- package/dist/esm/lib/utils/PaternCommandEvents.mjs +18 -0
- package/dist/esm/lib/utils/PaternCommandEvents.mjs.map +1 -0
- package/dist/esm/lib/utils/PatternCommandInterfaces.mjs +3 -0
- package/dist/esm/lib/utils/PatternCommandInterfaces.mjs.map +1 -0
- package/dist/esm/listeners/PluginCommandAccepted.mjs +33 -0
- package/dist/esm/listeners/PluginCommandAccepted.mjs.map +1 -0
- package/dist/esm/listeners/PluginMessageParse.mjs +86 -0
- package/dist/esm/listeners/PluginMessageParse.mjs.map +1 -0
- package/dist/esm/listeners/PluginPreCommandRun.mjs +46 -0
- package/dist/esm/listeners/PluginPreCommandRun.mjs.map +1 -0
- package/dist/esm/listeners/_load.mjs +17 -0
- package/dist/esm/listeners/_load.mjs.map +1 -0
- package/dist/esm/register.d.mts +15 -0
- package/dist/esm/register.mjs +22 -0
- package/dist/esm/register.mjs.map +1 -0
- package/package.json +34 -18
- package/dist/index.d.ts +0 -14
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -28
- package/dist/index.js.map +0 -1
- package/dist/index.mjs +0 -9
- package/dist/lib/structures/PaternCommandStore.d.ts +0 -6
- package/dist/lib/structures/PaternCommandStore.d.ts.map +0 -1
- package/dist/lib/structures/PaternCommandStore.js +0 -12
- package/dist/lib/structures/PaternCommandStore.js.map +0 -1
- package/dist/lib/structures/PatternCommand.d.ts +0 -50
- package/dist/lib/structures/PatternCommand.d.ts.map +0 -1
- package/dist/lib/structures/PatternCommand.js +0 -45
- package/dist/lib/structures/PatternCommand.js.map +0 -1
- package/dist/lib/utils/PaternCommandEvents.d.ts +0 -59
- package/dist/lib/utils/PaternCommandEvents.d.ts.map +0 -1
- package/dist/lib/utils/PaternCommandEvents.js +0 -63
- package/dist/lib/utils/PaternCommandEvents.js.map +0 -1
- package/dist/lib/utils/PatternCommandInterfaces.d.ts +0 -41
- package/dist/lib/utils/PatternCommandInterfaces.d.ts.map +0 -1
- package/dist/lib/utils/PatternCommandInterfaces.js +0 -3
- package/dist/lib/utils/PatternCommandInterfaces.js.map +0 -1
- package/dist/listeners/PluginCommandAccepted.d.ts +0 -8
- package/dist/listeners/PluginCommandAccepted.d.ts.map +0 -1
- package/dist/listeners/PluginCommandAccepted.js +0 -30
- package/dist/listeners/PluginCommandAccepted.js.map +0 -1
- package/dist/listeners/PluginMessageParse.d.ts +0 -9
- package/dist/listeners/PluginMessageParse.d.ts.map +0 -1
- package/dist/listeners/PluginMessageParse.js +0 -86
- package/dist/listeners/PluginMessageParse.js.map +0 -1
- package/dist/listeners/PluginPreCommandRun.d.ts +0 -8
- package/dist/listeners/PluginPreCommandRun.d.ts.map +0 -1
- package/dist/listeners/PluginPreCommandRun.js +0 -42
- package/dist/listeners/PluginPreCommandRun.js.map +0 -1
- package/dist/listeners/_load.d.ts +0 -2
- package/dist/listeners/_load.d.ts.map +0 -1
- package/dist/listeners/_load.js +0 -15
- package/dist/listeners/_load.js.map +0 -1
- package/dist/register.d.ts.map +0 -1
- package/dist/register.js +0 -22
- package/dist/register.js.map +0 -1
- package/dist/register.mjs +0 -4
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var PaternCommandStore_cjs = require('./lib/structures/PaternCommandStore.cjs');
|
|
4
|
+
var PatternCommand_cjs = require('./lib/structures/PatternCommand.cjs');
|
|
5
|
+
var PaternCommandEvents_cjs = require('./lib/utils/PaternCommandEvents.cjs');
|
|
6
|
+
var PatternCommandInterfaces_cjs = require('./lib/utils/PatternCommandInterfaces.cjs');
|
|
7
|
+
var PluginCommandAccepted_cjs = require('./listeners/PluginCommandAccepted.cjs');
|
|
8
|
+
var PluginMessageParse_cjs = require('./listeners/PluginMessageParse.cjs');
|
|
9
|
+
var PluginPreCommandRun_cjs = require('./listeners/PluginPreCommandRun.cjs');
|
|
10
|
+
|
|
11
|
+
// src/index.ts
|
|
12
|
+
var version = "6.0.0-next.d9aa006.0";
|
|
13
|
+
|
|
14
|
+
Object.defineProperty(exports, 'PluginPatternCommandsCommandAcceptedListener', {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () { return PluginCommandAccepted_cjs.PluginListener; }
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, 'PluginPatternCommandsMessageParseListener', {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () { return PluginMessageParse_cjs.PluginListener; }
|
|
21
|
+
});
|
|
22
|
+
Object.defineProperty(exports, 'PluginPatternCommandsPreCommandRunListener', {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
get: function () { return PluginPreCommandRun_cjs.PluginListener; }
|
|
25
|
+
});
|
|
26
|
+
exports.version = version;
|
|
27
|
+
Object.keys(PaternCommandStore_cjs).forEach(function (k) {
|
|
28
|
+
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
get: function () { return PaternCommandStore_cjs[k]; }
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
Object.keys(PatternCommand_cjs).forEach(function (k) {
|
|
34
|
+
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
35
|
+
enumerable: true,
|
|
36
|
+
get: function () { return PatternCommand_cjs[k]; }
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
Object.keys(PaternCommandEvents_cjs).forEach(function (k) {
|
|
40
|
+
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
41
|
+
enumerable: true,
|
|
42
|
+
get: function () { return PaternCommandEvents_cjs[k]; }
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
Object.keys(PatternCommandInterfaces_cjs).forEach(function (k) {
|
|
46
|
+
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
47
|
+
enumerable: true,
|
|
48
|
+
get: function () { return PatternCommandInterfaces_cjs[k]; }
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=out.js.map
|
|
52
|
+
//# sourceMappingURL=index.cjs.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-next.d9aa006.0';\n"]}
|
|
@@ -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,18 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var pieces = require('@sapphire/pieces');
|
|
4
|
+
var PatternCommand_cjs = require('./PatternCommand.cjs');
|
|
5
|
+
|
|
6
|
+
var __defProp = Object.defineProperty;
|
|
7
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
8
|
+
var _PatternCommandStore = class _PatternCommandStore extends pieces.AliasStore {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(PatternCommand_cjs.PatternCommand, { name: "pattern-commands" });
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
__name(_PatternCommandStore, "PatternCommandStore");
|
|
14
|
+
var PatternCommandStore = _PatternCommandStore;
|
|
15
|
+
|
|
16
|
+
exports.PatternCommandStore = PatternCommandStore;
|
|
17
|
+
//# sourceMappingURL=out.js.map
|
|
18
|
+
//# sourceMappingURL=PaternCommandStore.cjs.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,38 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var framework = require('@sapphire/framework');
|
|
4
|
+
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
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
|
+
};
|
|
12
|
+
var _PatternCommand = class _PatternCommand extends framework.Command {
|
|
13
|
+
constructor(context, options) {
|
|
14
|
+
super(context, options);
|
|
15
|
+
__publicField(this, "chance");
|
|
16
|
+
__publicField(this, "weight");
|
|
17
|
+
__publicField(this, "matchFullName");
|
|
18
|
+
this.chance = options.chance ?? 100;
|
|
19
|
+
if (options.weight) {
|
|
20
|
+
if (options.weight < 0) {
|
|
21
|
+
this.weight = 0;
|
|
22
|
+
} else if (options.weight > 10) {
|
|
23
|
+
this.weight = 10;
|
|
24
|
+
} else {
|
|
25
|
+
this.weight = options.weight;
|
|
26
|
+
}
|
|
27
|
+
} else {
|
|
28
|
+
this.weight = 5;
|
|
29
|
+
}
|
|
30
|
+
this.matchFullName = options.matchFullName ?? false;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
__name(_PatternCommand, "PatternCommand");
|
|
34
|
+
var PatternCommand = _PatternCommand;
|
|
35
|
+
|
|
36
|
+
exports.PatternCommand = PatternCommand;
|
|
37
|
+
//# sourceMappingURL=out.js.map
|
|
38
|
+
//# sourceMappingURL=PatternCommand.cjs.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
|
+
'use strict';
|
|
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
|
+
exports.PatternCommandEvents = PatternCommandEvents;
|
|
17
|
+
//# sourceMappingURL=out.js.map
|
|
18
|
+
//# sourceMappingURL=PaternCommandEvents.cjs.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 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var framework = require('@sapphire/framework');
|
|
4
|
+
var stopwatch = require('@sapphire/stopwatch');
|
|
5
|
+
var PaternCommandEvents_cjs = require('../lib/utils/PaternCommandEvents.cjs');
|
|
6
|
+
|
|
7
|
+
var __defProp = Object.defineProperty;
|
|
8
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
9
|
+
var _PluginListener = class _PluginListener extends framework.Listener {
|
|
10
|
+
constructor(context) {
|
|
11
|
+
super(context, { event: PaternCommandEvents_cjs.PatternCommandEvents.CommandAccepted });
|
|
12
|
+
}
|
|
13
|
+
async run(payload) {
|
|
14
|
+
const { message, command } = payload;
|
|
15
|
+
const result = await framework.Result.fromAsync(async () => {
|
|
16
|
+
message.client.emit(PaternCommandEvents_cjs.PatternCommandEvents.CommandRun, message, command, payload);
|
|
17
|
+
const stopwatch$1 = new stopwatch.Stopwatch();
|
|
18
|
+
const result2 = await command.messageRun(message);
|
|
19
|
+
const { duration } = stopwatch$1.stop();
|
|
20
|
+
message.client.emit(PaternCommandEvents_cjs.PatternCommandEvents.CommandSuccess, { ...payload, result: result2, duration });
|
|
21
|
+
return duration;
|
|
22
|
+
});
|
|
23
|
+
result.inspectErr((error) => message.client.emit(PaternCommandEvents_cjs.PatternCommandEvents.CommandError, error, { ...payload, duration: -1 }));
|
|
24
|
+
message.client.emit(PaternCommandEvents_cjs.PatternCommandEvents.CommandFinished, message, command, {
|
|
25
|
+
...payload,
|
|
26
|
+
success: result.isOk(),
|
|
27
|
+
duration: result.unwrapOr(-1)
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
__name(_PluginListener, "PluginListener");
|
|
32
|
+
var PluginListener = _PluginListener;
|
|
33
|
+
|
|
34
|
+
exports.PluginListener = PluginListener;
|
|
35
|
+
//# sourceMappingURL=out.js.map
|
|
36
|
+
//# sourceMappingURL=PluginCommandAccepted.cjs.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,94 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var discord_jsUtilities = require('@sapphire/discord.js-utilities');
|
|
4
|
+
var framework = require('@sapphire/framework');
|
|
5
|
+
var discord_js = require('discord.js');
|
|
6
|
+
var PaternCommandEvents_cjs = require('../lib/utils/PaternCommandEvents.cjs');
|
|
7
|
+
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
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
|
+
};
|
|
15
|
+
var _PluginListener = class _PluginListener extends framework.Listener {
|
|
16
|
+
constructor(context) {
|
|
17
|
+
super(context, { event: framework.Events.PreMessageParsed });
|
|
18
|
+
__publicField(this, "requiredPermissions", new discord_js.PermissionsBitField([discord_js.PermissionFlagsBits.ViewChannel, discord_js.PermissionFlagsBits.SendMessages]).freeze());
|
|
19
|
+
}
|
|
20
|
+
async run(message) {
|
|
21
|
+
const canRun = await this.canRunInChannel(message);
|
|
22
|
+
if (!canRun)
|
|
23
|
+
return;
|
|
24
|
+
let { content } = message;
|
|
25
|
+
const { client, stores } = this.container;
|
|
26
|
+
const patternCommandStore = stores.get("pattern-commands");
|
|
27
|
+
if (!patternCommandStore) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (client.options.caseInsensitiveCommands) {
|
|
31
|
+
content = content.toLowerCase();
|
|
32
|
+
}
|
|
33
|
+
const possiblePatternCommands = [];
|
|
34
|
+
for (const [key, patternCommand] of patternCommandStore) {
|
|
35
|
+
if (content === key) {
|
|
36
|
+
possiblePatternCommands.push({
|
|
37
|
+
command: patternCommand,
|
|
38
|
+
alias: key,
|
|
39
|
+
weight: patternCommand.weight
|
|
40
|
+
});
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
const aliasMatch = patternCommand.aliases.find((alias) => alias === content);
|
|
44
|
+
if (aliasMatch) {
|
|
45
|
+
possiblePatternCommands.push({
|
|
46
|
+
command: patternCommand,
|
|
47
|
+
alias: aliasMatch,
|
|
48
|
+
weight: patternCommand.weight
|
|
49
|
+
});
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
if (content.match(new RegExp(patternCommand.matchFullName ? `\b${key}\b` : key, client.options.caseInsensitiveCommands ? "i" : void 0))) {
|
|
53
|
+
possiblePatternCommands.push({
|
|
54
|
+
command: patternCommand,
|
|
55
|
+
alias: content,
|
|
56
|
+
weight: patternCommand.weight
|
|
57
|
+
});
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
const aliasRegexMatch = patternCommand.aliases.find(
|
|
61
|
+
(alias) => content.match(new RegExp(alias, client.options.caseInsensitiveCommands ? "i" : void 0))
|
|
62
|
+
);
|
|
63
|
+
if (aliasRegexMatch) {
|
|
64
|
+
possiblePatternCommands.push({
|
|
65
|
+
command: patternCommand,
|
|
66
|
+
alias: aliasRegexMatch,
|
|
67
|
+
weight: patternCommand.weight
|
|
68
|
+
});
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (possiblePatternCommands.length > 0) {
|
|
73
|
+
const sortedPossiblePatternCommands = possiblePatternCommands.sort((first, second) => {
|
|
74
|
+
return second.weight - first.weight;
|
|
75
|
+
});
|
|
76
|
+
client.emit(PaternCommandEvents_cjs.PatternCommandEvents.PreCommandRun, { message, possibleCommands: sortedPossiblePatternCommands });
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
async canRunInChannel(message) {
|
|
80
|
+
if (discord_jsUtilities.isDMChannel(message.channel))
|
|
81
|
+
return true;
|
|
82
|
+
const me = await message.guild?.members.fetchMe();
|
|
83
|
+
if (!me)
|
|
84
|
+
return false;
|
|
85
|
+
const channel = message.channel;
|
|
86
|
+
return channel.permissionsFor(me).has(this.requiredPermissions, false);
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
__name(_PluginListener, "PluginListener");
|
|
90
|
+
var PluginListener = _PluginListener;
|
|
91
|
+
|
|
92
|
+
exports.PluginListener = PluginListener;
|
|
93
|
+
//# sourceMappingURL=out.js.map
|
|
94
|
+
//# sourceMappingURL=PluginMessageParse.cjs.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,49 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var framework = require('@sapphire/framework');
|
|
4
|
+
var PaternCommandEvents_cjs = require('../lib/utils/PaternCommandEvents.cjs');
|
|
5
|
+
|
|
6
|
+
var __defProp = Object.defineProperty;
|
|
7
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
8
|
+
var _PluginListener = class _PluginListener extends framework.Listener {
|
|
9
|
+
constructor(context) {
|
|
10
|
+
super(context, { event: PaternCommandEvents_cjs.PatternCommandEvents.PreCommandRun });
|
|
11
|
+
}
|
|
12
|
+
async run(payload) {
|
|
13
|
+
const { message, possibleCommands } = payload;
|
|
14
|
+
for (const possibleCommand of possibleCommands) {
|
|
15
|
+
const { command } = possibleCommand;
|
|
16
|
+
const commandPayload = {
|
|
17
|
+
message,
|
|
18
|
+
command,
|
|
19
|
+
alias: possibleCommand.alias
|
|
20
|
+
};
|
|
21
|
+
const globalResult = await this.container.stores.get("preconditions").messageRun(
|
|
22
|
+
message,
|
|
23
|
+
command,
|
|
24
|
+
commandPayload
|
|
25
|
+
);
|
|
26
|
+
if (globalResult.isErr()) {
|
|
27
|
+
message.client.emit(PaternCommandEvents_cjs.PatternCommandEvents.CommandDenied, globalResult.unwrapErr(), commandPayload);
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
const localResult = await command.preconditions.messageRun(message, command, payload);
|
|
31
|
+
if (localResult.isErr()) {
|
|
32
|
+
message.client.emit(PaternCommandEvents_cjs.PatternCommandEvents.CommandDenied, localResult.unwrapErr(), commandPayload);
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
if (command.chance >= Math.round(Math.random() * 99) + 1) {
|
|
36
|
+
message.client.emit(PaternCommandEvents_cjs.PatternCommandEvents.CommandAccepted, commandPayload);
|
|
37
|
+
break;
|
|
38
|
+
} else {
|
|
39
|
+
message.client.emit(PaternCommandEvents_cjs.PatternCommandEvents.CommandNoLuck, commandPayload);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
__name(_PluginListener, "PluginListener");
|
|
45
|
+
var PluginListener = _PluginListener;
|
|
46
|
+
|
|
47
|
+
exports.PluginListener = PluginListener;
|
|
48
|
+
//# sourceMappingURL=out.js.map
|
|
49
|
+
//# sourceMappingURL=PluginPreCommandRun.cjs.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,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var pieces = require('@sapphire/pieces');
|
|
4
|
+
var PluginCommandAccepted_cjs = require('./PluginCommandAccepted.cjs');
|
|
5
|
+
var PluginMessageParse_cjs = require('./PluginMessageParse.cjs');
|
|
6
|
+
var PluginPreCommandRun_cjs = require('./PluginPreCommandRun.cjs');
|
|
7
|
+
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
10
|
+
function loadListeners() {
|
|
11
|
+
const store = "listeners";
|
|
12
|
+
void pieces.container.stores.loadPiece({ name: "PluginCommandAccepted", piece: PluginCommandAccepted_cjs.PluginListener, store });
|
|
13
|
+
void pieces.container.stores.loadPiece({ name: "PluginMessageParse", piece: PluginMessageParse_cjs.PluginListener, store });
|
|
14
|
+
void pieces.container.stores.loadPiece({ name: "PluginPreCommandRun", piece: PluginPreCommandRun_cjs.PluginListener, store });
|
|
15
|
+
}
|
|
16
|
+
__name(loadListeners, "loadListeners");
|
|
17
|
+
|
|
18
|
+
exports.loadListeners = loadListeners;
|
|
19
|
+
//# sourceMappingURL=out.js.map
|
|
20
|
+
//# sourceMappingURL=_load.cjs.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,25 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('./index.cjs');
|
|
4
|
+
var framework = require('@sapphire/framework');
|
|
5
|
+
var PaternCommandStore_cjs = require('./lib/structures/PaternCommandStore.cjs');
|
|
6
|
+
var _load_cjs = require('./listeners/_load.cjs');
|
|
7
|
+
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
10
|
+
var _PatternCommandPlugin = class _PatternCommandPlugin extends framework.Plugin {
|
|
11
|
+
/**
|
|
12
|
+
* @since 1.0.0
|
|
13
|
+
*/
|
|
14
|
+
static [framework.postInitialization](_options) {
|
|
15
|
+
this.stores.register(new PaternCommandStore_cjs.PatternCommandStore());
|
|
16
|
+
_load_cjs.loadListeners();
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
__name(_PatternCommandPlugin, "PatternCommandPlugin");
|
|
20
|
+
var PatternCommandPlugin = _PatternCommandPlugin;
|
|
21
|
+
framework.SapphireClient.plugins.registerPostInitializationHook(PatternCommandPlugin[framework.postInitialization], "Pattern-Command-PostInitialization");
|
|
22
|
+
|
|
23
|
+
exports.PatternCommandPlugin = PatternCommandPlugin;
|
|
24
|
+
//# sourceMappingURL=out.js.map
|
|
25
|
+
//# sourceMappingURL=register.cjs.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"]}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import './index';
|
|
1
|
+
import './index.cjs';
|
|
2
2
|
import { Plugin, postInitialization, SapphireClient } from '@sapphire/framework';
|
|
3
|
-
import
|
|
3
|
+
import { ClientOptions } from 'discord.js';
|
|
4
|
+
|
|
4
5
|
/**
|
|
5
6
|
* @since 1.0.0
|
|
6
7
|
*/
|
|
7
|
-
|
|
8
|
+
declare class PatternCommandPlugin extends Plugin {
|
|
8
9
|
/**
|
|
9
10
|
* @since 1.0.0
|
|
10
11
|
*/
|
|
11
12
|
static [postInitialization](this: SapphireClient, _options: ClientOptions): void;
|
|
12
13
|
}
|
|
13
|
-
|
|
14
|
+
|
|
15
|
+
export { PatternCommandPlugin };
|