@pikokr/command.ts 4.0.0-dev.fddc66b → 4.0.2-dev.425daba
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/.github/workflows/docs.yml +79 -0
- package/.github/workflows/publish.stable.yml +19 -0
- package/dist/index.d.ts +310 -10
- package/dist/index.js +1 -25
- package/dist/index.js.map +1 -1
- package/docs/index.yml +5 -0
- package/package.json +9 -4
- package/scripts/docs.ts +11 -0
- package/src/structures/Registry.ts +30 -12
- package/test/modules/dev.ts +1 -0
- package/tsconfig.json +1 -1
- package/tsup.config.ts +14 -0
- package/dist/applicationCommand/AppCommand.d.ts +0 -18
- package/dist/applicationCommand/AppCommand.js +0 -25
- package/dist/applicationCommand/AppCommand.js.map +0 -1
- package/dist/applicationCommand/decorator.d.ts +0 -10
- package/dist/applicationCommand/decorator.js +0 -42
- package/dist/applicationCommand/decorator.js.map +0 -1
- package/dist/applicationCommand/index.d.ts +0 -2
- package/dist/applicationCommand/index.js +0 -18
- package/dist/applicationCommand/index.js.map +0 -1
- package/dist/builtinModules/BuiltInModule.d.ts +0 -4
- package/dist/builtinModules/BuiltInModule.js +0 -16
- package/dist/builtinModules/BuiltInModule.js.map +0 -1
- package/dist/builtinModules/BuiltinApplicationCommandConverters.d.ts +0 -8
- package/dist/builtinModules/BuiltinApplicationCommandConverters.js +0 -16
- package/dist/builtinModules/BuiltinApplicationCommandConverters.js.map +0 -1
- package/dist/builtinModules/BuiltinCommandConverters.d.ts +0 -16
- package/dist/builtinModules/BuiltinCommandConverters.js +0 -130
- package/dist/builtinModules/BuiltinCommandConverters.js.map +0 -1
- package/dist/builtinModules/CommandHandler.d.ts +0 -14
- package/dist/builtinModules/CommandHandler.js +0 -360
- package/dist/builtinModules/CommandHandler.js.map +0 -1
- package/dist/builtinModules/index.d.ts +0 -3
- package/dist/builtinModules/index.js +0 -19
- package/dist/builtinModules/index.js.map +0 -1
- package/dist/command/ArgumentConverter.d.ts +0 -15
- package/dist/command/ArgumentConverter.js +0 -28
- package/dist/command/ArgumentConverter.js.map +0 -1
- package/dist/command/Command.d.ts +0 -20
- package/dist/command/Command.js +0 -25
- package/dist/command/Command.js.map +0 -1
- package/dist/command/cooldown/adapter.d.ts +0 -10
- package/dist/command/cooldown/adapter.js +0 -34
- package/dist/command/cooldown/adapter.js.map +0 -1
- package/dist/command/cooldown/decorator.d.ts +0 -2
- package/dist/command/cooldown/decorator.js +0 -76
- package/dist/command/cooldown/decorator.js.map +0 -1
- package/dist/command/cooldown/error.d.ts +0 -4
- package/dist/command/cooldown/error.js +0 -14
- package/dist/command/cooldown/error.js.map +0 -1
- package/dist/command/cooldown/index.d.ts +0 -5
- package/dist/command/cooldown/index.js +0 -21
- package/dist/command/cooldown/index.js.map +0 -1
- package/dist/command/cooldown/type.d.ts +0 -8
- package/dist/command/cooldown/type.js +0 -16
- package/dist/command/cooldown/type.js.map +0 -1
- package/dist/command/decorator.d.ts +0 -17
- package/dist/command/decorator.js +0 -141
- package/dist/command/decorator.js.map +0 -1
- package/dist/command/index.d.ts +0 -5
- package/dist/command/index.js +0 -21
- package/dist/command/index.js.map +0 -1
- package/dist/command/utils.d.ts +0 -2
- package/dist/command/utils.js +0 -33
- package/dist/command/utils.js.map +0 -1
- package/dist/constants.d.ts +0 -14
- package/dist/constants.js +0 -21
- package/dist/constants.js.map +0 -1
- package/dist/error/ArgumentConverterNotFound.d.ts +0 -13
- package/dist/error/ArgumentConverterNotFound.js +0 -23
- package/dist/error/ArgumentConverterNotFound.js.map +0 -1
- package/dist/error/ArgumentNotProvided.d.ts +0 -8
- package/dist/error/ArgumentNotProvided.js +0 -16
- package/dist/error/ArgumentNotProvided.js.map +0 -1
- package/dist/error/CommandCheckFailed.d.ts +0 -13
- package/dist/error/CommandCheckFailed.js +0 -23
- package/dist/error/CommandCheckFailed.js.map +0 -1
- package/dist/error/CommandNotFound.d.ts +0 -7
- package/dist/error/CommandNotFound.js +0 -16
- package/dist/error/CommandNotFound.js.map +0 -1
- package/dist/error/InvalidTargetError.d.ts +0 -3
- package/dist/error/InvalidTargetError.js +0 -13
- package/dist/error/InvalidTargetError.js.map +0 -1
- package/dist/error/ModuleError.d.ts +0 -6
- package/dist/error/ModuleError.js +0 -17
- package/dist/error/ModuleError.js.map +0 -1
- package/dist/error/PermissionRequired.d.ts +0 -10
- package/dist/error/PermissionRequired.js +0 -22
- package/dist/error/PermissionRequired.js.map +0 -1
- package/dist/error/checks/DMOnlyCommand.d.ts +0 -3
- package/dist/error/checks/DMOnlyCommand.js +0 -13
- package/dist/error/checks/DMOnlyCommand.js.map +0 -1
- package/dist/error/checks/GuildOnlyCommand.d.ts +0 -3
- package/dist/error/checks/GuildOnlyCommand.js +0 -13
- package/dist/error/checks/GuildOnlyCommand.js.map +0 -1
- package/dist/error/checks/OwnerOnlyCommand.d.ts +0 -3
- package/dist/error/checks/OwnerOnlyCommand.js +0 -13
- package/dist/error/checks/OwnerOnlyCommand.js.map +0 -1
- package/dist/error/checks/SlashCommandGlobalCheckError.d.ts +0 -5
- package/dist/error/checks/SlashCommandGlobalCheckError.js +0 -14
- package/dist/error/checks/SlashCommandGlobalCheckError.js.map +0 -1
- package/dist/error/checks/index.d.ts +0 -3
- package/dist/error/checks/index.js +0 -19
- package/dist/error/checks/index.js.map +0 -1
- package/dist/error/index.d.ts +0 -7
- package/dist/error/index.js +0 -23
- package/dist/error/index.js.map +0 -1
- package/dist/interface/index.d.ts +0 -1
- package/dist/interface/index.js +0 -6
- package/dist/interface/index.js.map +0 -1
- package/dist/listener/Listener.d.ts +0 -5
- package/dist/listener/Listener.js +0 -14
- package/dist/listener/Listener.js.map +0 -1
- package/dist/listener/decorator.d.ts +0 -2
- package/dist/listener/decorator.js +0 -25
- package/dist/listener/decorator.js.map +0 -1
- package/dist/listener/index.d.ts +0 -2
- package/dist/listener/index.js +0 -18
- package/dist/listener/index.js.map +0 -1
- package/dist/messageComponents/base.d.ts +0 -10
- package/dist/messageComponents/base.js +0 -18
- package/dist/messageComponents/base.js.map +0 -1
- package/dist/messageComponents/button.d.ts +0 -5
- package/dist/messageComponents/button.js +0 -31
- package/dist/messageComponents/button.js.map +0 -1
- package/dist/messageComponents/index.d.ts +0 -2
- package/dist/messageComponents/index.js +0 -18
- package/dist/messageComponents/index.js.map +0 -1
- package/dist/messageComponents/selectMenu.d.ts +0 -5
- package/dist/messageComponents/selectMenu.js +0 -31
- package/dist/messageComponents/selectMenu.js.map +0 -1
- package/dist/structures/CommandClient.d.ts +0 -45
- package/dist/structures/CommandClient.js +0 -97
- package/dist/structures/CommandClient.js.map +0 -1
- package/dist/structures/Module.d.ts +0 -21
- package/dist/structures/Module.js +0 -41
- package/dist/structures/Module.js.map +0 -1
- package/dist/structures/Registry.d.ts +0 -30
- package/dist/structures/Registry.js +0 -229
- package/dist/structures/Registry.js.map +0 -1
- package/dist/structures/index.d.ts +0 -3
- package/dist/structures/index.js +0 -19
- package/dist/structures/index.js.map +0 -1
- package/dist/typings.d.ts +0 -30
- package/dist/typings.js +0 -6
- package/dist/typings.js.map +0 -1
- package/dist/utils.d.ts +0 -1
- package/dist/utils.js +0 -14
- package/dist/utils.js.map +0 -1
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
name: Documentation
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches:
|
|
5
|
+
- 'dev'
|
|
6
|
+
- 'master'
|
|
7
|
+
- '!docs'
|
|
8
|
+
tags:
|
|
9
|
+
- '*'
|
|
10
|
+
jobs:
|
|
11
|
+
build:
|
|
12
|
+
name: Build documentation
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
outputs:
|
|
15
|
+
BRANCH_NAME: ${{ steps.env.outputs.BRANCH_NAME }}
|
|
16
|
+
BRANCH_OR_TAG: ${{ steps.env.outputs.BRANCH_OR_TAG }}
|
|
17
|
+
SHA: ${{ steps.env.outputs.SHA }}
|
|
18
|
+
if: github.repository_owner == 'pikokr'
|
|
19
|
+
steps:
|
|
20
|
+
- name: Checkout repository
|
|
21
|
+
uses: actions/checkout@v2
|
|
22
|
+
|
|
23
|
+
- name: Install node.js v16
|
|
24
|
+
uses: actions/setup-node@v2
|
|
25
|
+
with:
|
|
26
|
+
node-version: 16
|
|
27
|
+
cache: 'yarn'
|
|
28
|
+
cache-dependency-path: yarn.lock
|
|
29
|
+
- name: Install dependencies
|
|
30
|
+
run: yarn --immutable
|
|
31
|
+
|
|
32
|
+
- name: Build docs
|
|
33
|
+
run: yarn docs
|
|
34
|
+
|
|
35
|
+
- name: Upload artifacts
|
|
36
|
+
uses: actions/upload-artifact@v2
|
|
37
|
+
with:
|
|
38
|
+
name: docs
|
|
39
|
+
path: docs/docs.json
|
|
40
|
+
- name: Set outputs for upload job
|
|
41
|
+
id: env
|
|
42
|
+
run: |
|
|
43
|
+
echo "::set-output name=BRANCH_NAME::${GITHUB_REF_NAME}"
|
|
44
|
+
echo "::set-output name=BRANCH_OR_TAG::${GITHUB_REF_TYPE}"
|
|
45
|
+
echo "::set-output name=SHA::${GITHUB_SHA}"
|
|
46
|
+
upload:
|
|
47
|
+
name: Upload Documentation
|
|
48
|
+
needs: build
|
|
49
|
+
runs-on: ubuntu-latest
|
|
50
|
+
env:
|
|
51
|
+
BRANCH_NAME: ${{ needs.build.outputs.BRANCH_NAME }}
|
|
52
|
+
BRANCH_OR_TAG: ${{ needs.build.outputs.BRANCH_OR_TAG }}
|
|
53
|
+
SHA: ${{ needs.build.outputs.SHA }}
|
|
54
|
+
steps:
|
|
55
|
+
- name: Download artifacts
|
|
56
|
+
uses: actions/download-artifact@v2
|
|
57
|
+
with:
|
|
58
|
+
name: docs
|
|
59
|
+
path: docs
|
|
60
|
+
|
|
61
|
+
- name: Checkout docs repository
|
|
62
|
+
uses: actions/checkout@v2
|
|
63
|
+
with:
|
|
64
|
+
repository: 'pikokr/docs'
|
|
65
|
+
token: ${{ secrets.PIKOKR_DOCS }}
|
|
66
|
+
path: 'out'
|
|
67
|
+
|
|
68
|
+
- name: Move docs to correct directory
|
|
69
|
+
run: |
|
|
70
|
+
mkdir -p out/command.ts
|
|
71
|
+
mv docs/docs.json out/command.ts/${BRANCH_NAME}.json
|
|
72
|
+
- name: Commit and push
|
|
73
|
+
run: |
|
|
74
|
+
cd out
|
|
75
|
+
git config user.name github-actions[bot]
|
|
76
|
+
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
|
|
77
|
+
git add .
|
|
78
|
+
git commit -m "Docs build for ${BRANCH_OR_TAG} ${BRANCH_NAME}: ${SHA}" || true
|
|
79
|
+
git push
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
on:
|
|
2
|
+
push:
|
|
3
|
+
branches:
|
|
4
|
+
- stable
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
publish:
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
if: "!contains(github.event.head_commit.message, '[skip ci]')"
|
|
10
|
+
steps:
|
|
11
|
+
- uses: actions/checkout@v1
|
|
12
|
+
- uses: actions/setup-node@v1
|
|
13
|
+
with:
|
|
14
|
+
node-version: 16.6
|
|
15
|
+
- run: yarn
|
|
16
|
+
- run: COMMIT_ID=$(git rev-parse --short HEAD) node publish-version.js
|
|
17
|
+
- uses: JS-DevTools/npm-publish@v1
|
|
18
|
+
with:
|
|
19
|
+
token: ${{ secrets.NPM_TOKEN }}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,310 @@
|
|
|
1
|
-
import '
|
|
2
|
-
import '
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import * as tslog from 'tslog';
|
|
2
|
+
import { Logger } from 'tslog';
|
|
3
|
+
import { ApplicationCommandDataResolvable, Snowflake, MessageComponentInteraction, MessageComponentType, Collection, Message, CommandInteraction, Interaction, Client, ContextMenuInteraction, PermissionResolvable, GuildMember, Permissions } from 'discord.js';
|
|
4
|
+
|
|
5
|
+
declare class Listener {
|
|
6
|
+
name: string;
|
|
7
|
+
execute: Function;
|
|
8
|
+
constructor(name: string, execute: Function);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
declare const listener: (event: string) => (target: Module, propertyKey: string) => void;
|
|
12
|
+
|
|
13
|
+
declare type ApplicationCommandOptions$1 = {
|
|
14
|
+
guild: Snowflake | Snowflake[];
|
|
15
|
+
optionTypes?: any[];
|
|
16
|
+
};
|
|
17
|
+
declare const applicationCommand: (opt: Partial<ApplicationCommandOptions$1> & {
|
|
18
|
+
command: ApplicationCommandDataResolvable;
|
|
19
|
+
}) => (target: Object, propertyKey: string) => void;
|
|
20
|
+
declare const option: (key: string) => ParameterDecorator;
|
|
21
|
+
|
|
22
|
+
declare type AppCommandArgument = {
|
|
23
|
+
type: any;
|
|
24
|
+
name?: string;
|
|
25
|
+
};
|
|
26
|
+
declare class AppCommand {
|
|
27
|
+
command: ApplicationCommandDataResolvable;
|
|
28
|
+
private run;
|
|
29
|
+
module: Module;
|
|
30
|
+
params: AppCommandArgument[];
|
|
31
|
+
guild: Snowflake | Snowflake[] | undefined;
|
|
32
|
+
private key;
|
|
33
|
+
get checks(): ApplicationCommandCheckFunction[];
|
|
34
|
+
execute(module: Module, args: any[]): any;
|
|
35
|
+
constructor(command: ApplicationCommandDataResolvable, run: Function, module: Module, params: AppCommandArgument[], guild: Snowflake | Snowflake[] | undefined, key: string | symbol);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
declare type MessageComponentExecutor = (i: MessageComponentInteraction) => void | Promise<void>;
|
|
39
|
+
declare class MessageComponentHandler {
|
|
40
|
+
componentId: string;
|
|
41
|
+
componentType: Exclude<MessageComponentType, 'ACTION_ROW'>;
|
|
42
|
+
execute: MessageComponentExecutor;
|
|
43
|
+
constructor(componentId: string, componentType: Exclude<MessageComponentType, 'ACTION_ROW'>, execute: MessageComponentExecutor);
|
|
44
|
+
run(module: Module, i: MessageComponentInteraction): void | Promise<void>;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
declare class Registry {
|
|
48
|
+
client: CommandClient;
|
|
49
|
+
constructor(client: CommandClient);
|
|
50
|
+
modules: Collection<symbol, Module>;
|
|
51
|
+
private get logger();
|
|
52
|
+
get commands(): Command[];
|
|
53
|
+
get argumentConverters(): ArgumentConverter[];
|
|
54
|
+
get applicationCommandArgumentConverters(): ApplicationCommandArgumentConverter[];
|
|
55
|
+
get applicationCommands(): AppCommand[];
|
|
56
|
+
get messageComponentHandlers(): MessageComponentHandler[];
|
|
57
|
+
registerModule(module: Module): Module;
|
|
58
|
+
loadModulesIn(dir: string, absolute?: boolean): Promise<void>;
|
|
59
|
+
loadModule(file: string, absolute?: boolean): Promise<Module>;
|
|
60
|
+
syncCommands(): Promise<void>;
|
|
61
|
+
unregisterModule(module: Module): Promise<Module>;
|
|
62
|
+
unloadModule(module: Module): Promise<void>;
|
|
63
|
+
reloadModule(module: Module): Promise<boolean>;
|
|
64
|
+
reloadAll(): Promise<{
|
|
65
|
+
path: string;
|
|
66
|
+
success: boolean;
|
|
67
|
+
error?: Error | undefined;
|
|
68
|
+
}[]>;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
interface CommandOptions$1 {
|
|
72
|
+
prefix: string | ((msg: any) => string | Promise<string | string[]> | string[]) | string[];
|
|
73
|
+
check: (msg: Message) => boolean | Promise<boolean>;
|
|
74
|
+
globalAliases: (cmd: string, msg: Message) => string[] | Promise<string[]>;
|
|
75
|
+
}
|
|
76
|
+
interface SlashCommandOptions {
|
|
77
|
+
check: (i: CommandInteraction) => boolean | Promise<boolean>;
|
|
78
|
+
}
|
|
79
|
+
interface ApplicationCommandOptions {
|
|
80
|
+
guild?: Snowflake | Snowflake[];
|
|
81
|
+
autoSync: boolean;
|
|
82
|
+
beforeRunCheck: (i: Interaction) => void | Promise<void>;
|
|
83
|
+
}
|
|
84
|
+
interface CommandClientOptions {
|
|
85
|
+
command: CommandOptions$1;
|
|
86
|
+
owners: 'auto' | Snowflake[];
|
|
87
|
+
slashCommands: SlashCommandOptions;
|
|
88
|
+
applicationCommands: ApplicationCommandOptions;
|
|
89
|
+
}
|
|
90
|
+
interface CommandClientOptionsParam {
|
|
91
|
+
command: Partial<CommandOptions$1>;
|
|
92
|
+
owners: 'auto' | string[];
|
|
93
|
+
slashCommands: Partial<SlashCommandOptions>;
|
|
94
|
+
applicationCommands: Partial<ApplicationCommandOptions>;
|
|
95
|
+
}
|
|
96
|
+
declare class CommandClient {
|
|
97
|
+
options: CommandClientOptions;
|
|
98
|
+
owners: string[];
|
|
99
|
+
registry: Registry;
|
|
100
|
+
client: Client;
|
|
101
|
+
coolDownAdapter: CoolDownAdapter;
|
|
102
|
+
logger: Logger;
|
|
103
|
+
private _isReady;
|
|
104
|
+
private fetchOwners;
|
|
105
|
+
ready(): Promise<void>;
|
|
106
|
+
constructor({ client, coolDownAdapter, logger, ...options }: Partial<CommandClientOptionsParam> & {
|
|
107
|
+
client: Client;
|
|
108
|
+
coolDownAdapter?: CoolDownAdapter;
|
|
109
|
+
logger?: Logger;
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
declare abstract class Module {
|
|
114
|
+
commandClient: CommandClient;
|
|
115
|
+
get logger(): tslog.Logger;
|
|
116
|
+
get commands(): Command[];
|
|
117
|
+
get listeners(): Listener[];
|
|
118
|
+
get argumentConverters(): ArgumentConverter[];
|
|
119
|
+
get applicationCommandArgumentConverters(): ApplicationCommandArgumentConverter[];
|
|
120
|
+
get applicationCommands(): AppCommand[];
|
|
121
|
+
get messageComponentHandlers(): MessageComponentHandler[];
|
|
122
|
+
get path(): string | undefined;
|
|
123
|
+
load(): void;
|
|
124
|
+
unload(): void;
|
|
125
|
+
beforeReload(): void;
|
|
126
|
+
afterReload(): void;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
declare type Argument = {
|
|
130
|
+
optional: boolean;
|
|
131
|
+
type: any;
|
|
132
|
+
rest: boolean;
|
|
133
|
+
};
|
|
134
|
+
declare type CheckFunction = (msg: Message) => boolean | Promise<boolean>;
|
|
135
|
+
declare type ApplicationCommandCheckFunction = (i: CommandInteraction | MessageComponentInteraction | ContextMenuInteraction) => boolean | Promise<boolean>;
|
|
136
|
+
declare class Command {
|
|
137
|
+
private run;
|
|
138
|
+
argTypes: Argument[];
|
|
139
|
+
name: string;
|
|
140
|
+
aliases: string[] | ((msg: Message) => string[] | Promise<string[]>);
|
|
141
|
+
module: Module;
|
|
142
|
+
key: symbol | string;
|
|
143
|
+
execute(module: Module, args: any[]): any;
|
|
144
|
+
get checks(): CheckFunction[];
|
|
145
|
+
constructor(run: Function, argTypes: Argument[], name: string, aliases: string[] | ((msg: Message) => string[] | Promise<string[]>), module: Module, key: symbol | string);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
declare type CommandOptions = {
|
|
149
|
+
name: string;
|
|
150
|
+
aliases: string[] | ((msg: Message) => string[]);
|
|
151
|
+
optionTypes?: any[];
|
|
152
|
+
};
|
|
153
|
+
declare const command: (options?: Partial<CommandOptions>) => (target: Object, propertyKey: string) => void;
|
|
154
|
+
declare const argumentConverter: (type: object, requireParameter?: boolean) => (target: Object, propertyKey: string) => void;
|
|
155
|
+
declare const applicationCommandArgumentConverter: (type: object) => (target: Object, propertyKey: string) => void;
|
|
156
|
+
declare const optional: ParameterDecorator;
|
|
157
|
+
declare const rest: ParameterDecorator;
|
|
158
|
+
declare const ownerOnly: MethodDecorator;
|
|
159
|
+
declare const guildOnly: MethodDecorator;
|
|
160
|
+
declare const dmOnly: MethodDecorator;
|
|
161
|
+
declare const requireUserPermissions: (permission: PermissionResolvable) => MethodDecorator;
|
|
162
|
+
declare const requireClientPermissions: (permission: PermissionResolvable) => MethodDecorator;
|
|
163
|
+
|
|
164
|
+
declare class ArgumentConverter {
|
|
165
|
+
type: object;
|
|
166
|
+
private run;
|
|
167
|
+
withoutParameter: boolean;
|
|
168
|
+
execute(module: Module, msg: Message, arg?: string): any;
|
|
169
|
+
constructor(type: object, run: Function, withoutParameter: boolean);
|
|
170
|
+
}
|
|
171
|
+
declare class ApplicationCommandArgumentConverter {
|
|
172
|
+
type: object;
|
|
173
|
+
private run;
|
|
174
|
+
execute(module: Module, interaction: CommandInteraction | ContextMenuInteraction): any;
|
|
175
|
+
constructor(type: object, run: Function);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
declare const createCheckDecorator: (execute: ((msg: Message) => boolean | Promise<boolean>) | null, executeApplicationCommand?: ((i: CommandInteraction | MessageComponentInteraction | ContextMenuInteraction) => boolean | Promise<boolean>) | undefined) => MethodDecorator;
|
|
179
|
+
|
|
180
|
+
declare enum CoolDownType {
|
|
181
|
+
USER = 0,
|
|
182
|
+
CHANNEL = 1,
|
|
183
|
+
GUILD = 2,
|
|
184
|
+
ROLE = 3,
|
|
185
|
+
CATEGORY = 4,
|
|
186
|
+
MEMBER = 5
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
declare const coolDown: (type: CoolDownType, seconds: number) => MethodDecorator;
|
|
190
|
+
|
|
191
|
+
interface CoolDownAdapter {
|
|
192
|
+
get(id: string): Promise<number | undefined>;
|
|
193
|
+
set(id: string, value: number): Promise<void>;
|
|
194
|
+
}
|
|
195
|
+
declare class DefaultCoolDownAdapter implements CoolDownAdapter {
|
|
196
|
+
map: Collection<string, number>;
|
|
197
|
+
get(id: string): Promise<number | undefined>;
|
|
198
|
+
set(id: string, value: number): Promise<void>;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
declare class CoolDownError extends Error {
|
|
202
|
+
endsAt: Date;
|
|
203
|
+
constructor(endsAt: Date);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
declare module 'discord.js' {
|
|
207
|
+
interface Message {
|
|
208
|
+
data: {
|
|
209
|
+
command: Command | null;
|
|
210
|
+
prefix: string;
|
|
211
|
+
cts: CommandClient;
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
interface CommandInteraction {
|
|
215
|
+
data: {
|
|
216
|
+
command: AppCommand;
|
|
217
|
+
cts: CommandClient;
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
interface MessageComponentInteraction {
|
|
221
|
+
data: {
|
|
222
|
+
command: AppCommand;
|
|
223
|
+
cts: CommandClient;
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
interface ContextMenuInteraction {
|
|
227
|
+
data: {
|
|
228
|
+
command: AppCommand;
|
|
229
|
+
cts: CommandClient;
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
declare class InvalidTargetError extends Error {
|
|
235
|
+
constructor();
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
declare class ModuleLoadError extends Error {
|
|
239
|
+
error: Error;
|
|
240
|
+
constructor(file: string, error: Error);
|
|
241
|
+
}
|
|
242
|
+
declare class InvalidModuleError extends Error {
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
declare class ArgumentNotProvided extends Error {
|
|
246
|
+
index: number;
|
|
247
|
+
command: Command;
|
|
248
|
+
msg: Message;
|
|
249
|
+
constructor(index: number, command: Command, msg: Message);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
declare class ArgumentConverterNotFound extends Error {
|
|
253
|
+
type: Argument;
|
|
254
|
+
msg: Message;
|
|
255
|
+
constructor(type: Argument, msg: Message);
|
|
256
|
+
}
|
|
257
|
+
declare class ApplicationCommandArgumentConverterNotFound extends Error {
|
|
258
|
+
type: AppCommandArgument;
|
|
259
|
+
interaction: CommandInteraction | ContextMenuInteraction;
|
|
260
|
+
constructor(type: AppCommandArgument, interaction: CommandInteraction | ContextMenuInteraction);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
declare class CommandCheckFailed extends Error {
|
|
264
|
+
msg: Message;
|
|
265
|
+
command: Command;
|
|
266
|
+
constructor(msg: Message, command: Command);
|
|
267
|
+
}
|
|
268
|
+
declare class ApplicationCommandCheckFailed extends Error {
|
|
269
|
+
interaction: CommandInteraction | MessageComponentInteraction | ContextMenuInteraction;
|
|
270
|
+
command: AppCommand;
|
|
271
|
+
constructor(interaction: CommandInteraction | MessageComponentInteraction | ContextMenuInteraction, command: AppCommand);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
declare class UserPermissionRequired extends Error {
|
|
275
|
+
user: GuildMember;
|
|
276
|
+
permissions: Permissions;
|
|
277
|
+
constructor(user: GuildMember, permissions: Permissions);
|
|
278
|
+
}
|
|
279
|
+
declare class ClientPermissionRequired extends Error {
|
|
280
|
+
permissions: Permissions;
|
|
281
|
+
constructor(permissions: Permissions);
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
declare class OwnerOnlyCommandError extends Error {
|
|
285
|
+
constructor();
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
declare class GuildOnlyCommandError extends Error {
|
|
289
|
+
constructor();
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
declare class DMOnlyCommandError extends Error {
|
|
293
|
+
constructor();
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
declare class BuiltInModule extends Module {
|
|
297
|
+
constructor();
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
declare class ButtonInteractionHandler extends MessageComponentHandler {
|
|
301
|
+
constructor(id: string, execute: MessageComponentExecutor);
|
|
302
|
+
}
|
|
303
|
+
declare const messageButton: (id: string) => MethodDecorator;
|
|
304
|
+
|
|
305
|
+
declare class SelectMenuInteractionHandler extends MessageComponentHandler {
|
|
306
|
+
constructor(id: string, execute: MessageComponentExecutor);
|
|
307
|
+
}
|
|
308
|
+
declare const messageSelectMenu: (id: string) => MethodDecorator;
|
|
309
|
+
|
|
310
|
+
export { AppCommand, AppCommandArgument, ApplicationCommandArgumentConverter, ApplicationCommandArgumentConverterNotFound, ApplicationCommandCheckFailed, ApplicationCommandCheckFunction, ApplicationCommandOptions, Argument, ArgumentConverter, ArgumentConverterNotFound, ArgumentNotProvided, BuiltInModule, ButtonInteractionHandler, CheckFunction, ClientPermissionRequired, Command, CommandCheckFailed, CommandClient, CommandClientOptions, CommandClientOptionsParam, CommandOptions$1 as CommandOptions, CoolDownAdapter, CoolDownError, CoolDownType, DMOnlyCommandError, DefaultCoolDownAdapter, GuildOnlyCommandError, InvalidModuleError, InvalidTargetError, Listener, Module, ModuleLoadError, OwnerOnlyCommandError, Registry, SelectMenuInteractionHandler, SlashCommandOptions, UserPermissionRequired, applicationCommand, applicationCommandArgumentConverter, argumentConverter, command, coolDown, createCheckDecorator, dmOnly, guildOnly, listener, messageButton, messageSelectMenu, option, optional, ownerOnly, requireClientPermissions, requireUserPermissions, rest };
|
package/dist/index.js
CHANGED
|
@@ -1,26 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright (c) 2022 pikokr. Licensed under the MIT license
|
|
4
|
-
*/
|
|
5
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
8
|
-
}) : (function(o, m, k, k2) {
|
|
9
|
-
if (k2 === undefined) k2 = k;
|
|
10
|
-
o[k2] = m[k];
|
|
11
|
-
}));
|
|
12
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
13
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
14
|
-
};
|
|
15
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
require("reflect-metadata");
|
|
17
|
-
require("./typings");
|
|
18
|
-
__exportStar(require("./interface"), exports);
|
|
19
|
-
__exportStar(require("./structures"), exports);
|
|
20
|
-
__exportStar(require("./error"), exports);
|
|
21
|
-
__exportStar(require("./command"), exports);
|
|
22
|
-
__exportStar(require("./listener"), exports);
|
|
23
|
-
__exportStar(require("./builtinModules/BuiltInModule"), exports);
|
|
24
|
-
__exportStar(require("./applicationCommand"), exports);
|
|
25
|
-
__exportStar(require("./messageComponents"), exports);
|
|
1
|
+
var dt=Object.create;var W=Object.defineProperty;var ut=Object.getOwnPropertyDescriptor;var pt=Object.getOwnPropertyNames,ve=Object.getOwnPropertySymbols,ft=Object.getPrototypeOf,Oe=Object.prototype.hasOwnProperty,ht=Object.prototype.propertyIsEnumerable;var ke=n=>W(n,"__esModule",{value:!0}),i=(n,e)=>W(n,"name",{value:e,configurable:!0});var Ae=(n,e)=>{var t={};for(var r in n)Oe.call(n,r)&&e.indexOf(r)<0&&(t[r]=n[r]);if(n!=null&&ve)for(var r of ve(n))e.indexOf(r)<0&&ht.call(n,r)&&(t[r]=n[r]);return t};var gt=(n,e)=>{for(var t in e)W(n,t,{get:e[t],enumerable:!0})},Te=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of pt(e))!Oe.call(n,o)&&(t||o!=="default")&&W(n,o,{get:()=>e[o],enumerable:!(r=ut(e,o))||r.enumerable});return n},de=(n,e)=>Te(ke(W(n!=null?dt(ft(n)):{},"default",!e&&n&&n.__esModule?{get:()=>n.default,enumerable:!0}:{value:n,enumerable:!0})),n),yt=(n=>(e,t)=>n&&n.get(e)||(t=Te(ke({}),e,1),n&&n.set(e,t),t))(typeof WeakMap!="undefined"?new WeakMap:0);var jt={};gt(jt,{AppCommand:()=>me,ApplicationCommandArgumentConverter:()=>ce,ApplicationCommandArgumentConverterNotFound:()=>k,ApplicationCommandCheckFailed:()=>A,ArgumentConverter:()=>ae,ArgumentConverterNotFound:()=>D,ArgumentNotProvided:()=>K,BuiltInModule:()=>R,ButtonInteractionHandler:()=>ye,ClientPermissionRequired:()=>U,Command:()=>ie,CommandCheckFailed:()=>re,CommandClient:()=>Ee,CoolDownError:()=>G,CoolDownType:()=>g,DMOnlyCommandError:()=>H,DefaultCoolDownAdapter:()=>le,GuildOnlyCommandError:()=>N,InvalidModuleError:()=>L,InvalidTargetError:()=>O,Listener:()=>se,Module:()=>C,ModuleLoadError:()=>te,OwnerOnlyCommandError:()=>B,Registry:()=>oe,SelectMenuInteractionHandler:()=>we,UserPermissionRequired:()=>P,applicationCommand:()=>kt,applicationCommandArgumentConverter:()=>xt,argumentConverter:()=>S,command:()=>wt,coolDown:()=>Ot,createCheckDecorator:()=>M,dmOnly:()=>Et,guildOnly:()=>Mt,listener:()=>pe,messageButton:()=>Tt,messageSelectMenu:()=>_t,option:()=>At,optional:()=>Ct,ownerOnly:()=>bt,requireClientPermissions:()=>vt,requireUserPermissions:()=>St,rest:()=>Rt});var Yn=require("reflect-metadata");var q=Symbol("Command.TS Commands"),Y=Symbol("Command.TS Slash Commands"),ue=Symbol("Command.TS Slash Command Options"),J=Symbol("Command.TS Listeners"),I=Symbol("Command.TS Module Path"),Ce=Symbol("Command.TS Module Identifier"),Q=Symbol("Command.TS Built-In Module"),Re=Symbol("Command.TS Optional Parameters"),be=Symbol("Command.TS Rest Parameter"),V=Symbol("Command.TS Argument Converter"),X=Symbol("Command.TS Slash Argument Converter"),Z=Symbol("Command.TS Command Checks"),ee=Symbol("Command.TS Slash Command Checks"),E=Symbol("Command.TS Message Component Handlers");var C=class{get logger(){return this.commandClient.logger.getChildLogger({name:this.constructor.name})}get commands(){return Reflect.getMetadata(q,this)||[]}get listeners(){return Reflect.getMetadata(J,this)||[]}get argumentConverters(){return Reflect.getMetadata(V,this)||[]}get applicationCommandArgumentConverters(){return Reflect.getMetadata(X,this)||[]}get applicationCommands(){return Reflect.getMetadata(Y,this)||[]}get messageComponentHandlers(){return Reflect.getMetadata(E,this)||[]}get path(){return Reflect.getMetadata(I,this)}load(){}unload(){}beforeReload(){}afterReload(){}};i(C,"Module");var ct=de(require("lodash"));var ne=de(require("path"));var O=class extends Error{constructor(){super('Class does not extend "Module" class.')}};i(O,"InvalidTargetError");var te=class extends Error{constructor(e,t){super("Failed to load module "+e);this.error=t}};i(te,"ModuleLoadError");var L=class extends Error{};i(L,"InvalidModuleError");var K=class extends Error{constructor(e,t,r){super(`Required argument #${e} not provided.`);this.index=e,this.command=t,this.msg=r}};i(K,"ArgumentNotProvided");var D=class extends Error{constructor(e,t){super(`Argument converter ${e.type.name} not found.`);this.type=e,this.msg=t}};i(D,"ArgumentConverterNotFound");var k=class extends Error{constructor(e,t){super(`Argument converter ${e.type.name} not found.`);this.type=e,this.interaction=t}};i(k,"ApplicationCommandArgumentConverterNotFound");var re=class extends Error{constructor(e,t){super();this.msg=e,this.command=t}};i(re,"CommandCheckFailed");var A=class extends Error{constructor(e,t){super();this.interaction=e,this.command=t}};i(A,"ApplicationCommandCheckFailed");var P=class extends Error{constructor(e,t){super();this.user=e,this.permissions=t}};i(P,"UserPermissionRequired");var U=class extends Error{constructor(e){super();this.permissions=e}};i(U,"ClientPermissionRequired");var B=class extends Error{constructor(){super()}};i(B,"OwnerOnlyCommandError");var N=class extends Error{constructor(){super()}};i(N,"GuildOnlyCommandError");var H=class extends Error{constructor(){super()}};i(H,"DMOnlyCommandError");var _e=require("discord.js"),je=de(require("walk-sync")),Ie=de(require("fs")),oe=class{constructor(e){this.client=e,this.modules=new _e.Collection}get logger(){return this.client.logger.getChildLogger({name:"Registry"})}get commands(){let e=[];for(let[,t]of this.modules)e.push(...t.commands);return e}get argumentConverters(){let e=[];for(let[,t]of this.modules)e.push(...t.argumentConverters);return e}get applicationCommandArgumentConverters(){let e=[];for(let[,t]of this.modules)e.push(...t.applicationCommandArgumentConverters);return e}get applicationCommands(){let e=[];for(let[,t]of this.modules)e.push(...t.applicationCommands);return e}get messageComponentHandlers(){let e=[];for(let[,t]of this.modules)e.push(...t.messageComponentHandlers);return e}registerModule(e){e.commandClient=this.client,this.modules.set(Symbol(e.constructor.name),e);let t=[];for(let r of e.listeners){let o=r.execute.bind(e);t.push({event:r.name,execute:o}),this.client.client.on(r.name,o)}return Reflect.defineMetadata(Ce,t,e),e}async loadModulesIn(e,t=!1){let r=t?e:ne.default.join(require.main.path,e);for(let o of(0,je.default)(r))if(Ie.lstatSync(ne.default.join(r,o)).isFile()){if(o.endsWith(".map"))continue;await this.loadModule(ne.default.join(r,o),!0)}}async loadModule(e,t=!1){let r=t?e:ne.default.join(require.main.path,e),o;try{o=require(r)}catch(c){throw new te(r,c)}if(o.loaded)throw new Error("MODULE_ALREADY_LOADED");if(!o.install)throw new L("Install function not found.");let s=o.install(this.client);if(!(s instanceof C))throw new O;return Reflect.defineMetadata(I,require.resolve(r),s),this.registerModule(s),await s.load(),o.loaded=!0,s}async syncCommands(){var c;this.logger.debug("Syncing commands...");let e=this.applicationCommands.filter(a=>!a.guild),t=this.client.options.applicationCommands.guild,r=i(async(a,l)=>{this.logger.debug(`Syncing for guild ${a.name}(${a.id})`);let d=l.map(w=>w.command);this.logger.debug(`Command List: ${d.map(w=>w.name).join(", ")}`),await a.commands.set(d)},"syncForGuild");if(t)if(typeof t=="string")await r(await this.client.client.guilds.fetch(t),e);else for(let a of t)await r(await this.client.client.guilds.fetch(a),e);else this.logger.debug("Syncing global..."),await((c=this.client.client.application)==null?void 0:c.commands.set(e.map(a=>a.command)));let o=this.applicationCommands.filter(a=>!!a.guild),s=new Set;for(let a of o)if(!!a.guild)if(typeof a.guild=="string")s.add(a.guild);else for(let l of a.guild)s.add(l);for(let a of s)await r(await this.client.client.guilds.fetch(a),o.filter(l=>l.guild&&(typeof l.guild=="string"?a===l.guild:l.guild.includes(a))));this.logger.debug("Syncing ended.")}async unregisterModule(e){if(Reflect.getMetadata(Q,e))throw new Error("Built-in modules cannot be unloaded");let t=this.modules.findKey(o=>o===e);if(!t)return e;await e.unload();let r=Reflect.getMetadata(Ce,e);for(let o of r)this.client.client.removeListener(o.event,o.execute);return this.modules.delete(t),e}async unloadModule(e){let t=Reflect.getMetadata(I,e);if(!t)throw new L("This module is not loaded by loadModule.");await this.unregisterModule(e),delete require.cache[t]}async reloadModule(e){await e.beforeReload();let t=Reflect.getMetadata(I,e);return await this.unloadModule(e),await(await this.loadModule(t,!0)).afterReload(),!0}async reloadAll(){let e=[];for(let[,t]of this.modules.filter(r=>!!r.path&&!Reflect.getMetadata(Q,r)))try{await this.reloadModule(t),e.push({path:t.path,success:!0})}catch(r){e.push({error:r,path:t.path,success:!1})}return e}};i(oe,"Registry");var lt=require("discord.js");var R=class extends C{constructor(){super();Reflect.defineMetadata(Q,!0,this)}};i(R,"BuiltInModule");var se=class{constructor(e,t){this.name=e,this.execute=t}};i(se,"Listener");var y=i(n=>{if(!(n instanceof C))throw new O},"checkTarget");var pe=i(n=>(e,t)=>{y(e);let r=Reflect.getMetadata(J,e),o=new se(n,Reflect.get(e,t));r?r.push(o):(r=[o],Reflect.defineMetadata(J,r,e))},"listener");var f=require("discord.js");var fe=class extends Error{constructor(e,t,r){super(`Command ${e} not found.`);this.commandName=e,this.msg=t,this.args=r}};i(fe,"CommandNotFound");var he=class extends Error{constructor(e){super("Slash command before-run check failed.");this.i=e}};i(he,"SlashCommandGlobalCheckError");function Le(n,e,t,r,o){var s={};Object.keys(r).forEach(function(a){s[a]=r[a]}),s.enumerable=!!s.enumerable,s.configurable=!!s.configurable,("value"in s||s.initializer)&&(s.writable=!0),s=t.slice().reverse().reduce(function(a,l){return l&&l(n,e,a)||a},s),o&&s.initializer!==void 0&&(s.value=s.initializer?s.initializer.call(o):void 0,s.initializer=void 0);var c=Object.getOwnPropertyDescriptor(n,e);return c&&(c.get||c.set)&&(delete s.writable,delete s.initializer),s.initializer===void 0&&(Object.defineProperty(n,e,s),s=null),s}i(Le,"_applyDecoratedDescriptor");var b,Ke,De,Pe,Ue,Be,Ne,He=(b=i(class extends R{constructor(e){super();this.registry=e,this.client=e.client}async message(e){let t=i(r=>this.client.client.emit("commandError",r,e),"error1");try{let r=typeof this.client.options.command.prefix=="string"?this.client.options.command.prefix:typeof this.client.options.command.prefix=="function"?await this.client.options.command.prefix(e):this.client.options.command.prefix,o;if(typeof r=="object"){let u=r.find(x=>e.content.includes(x));if(!u)return;o=u}else{if(!e.content.includes(r))return;o=r}if(!e.content.startsWith(o))return;let s=e.content.slice(o.length).split(" "),c=s.shift();if(!c)return;let a=null,l=await this.client.options.command.globalAliases(c,e);for(let u of this.registry.commands){let x=await this.client.options.command.globalAliases(u.name,e);if([...typeof u.aliases=="function"?await u.aliases(e):u.aliases,u.name].some(v=>v===c)){a=u;break}if(l.every((v,$)=>x[$]===v)){a=u;break}}if(e.data={cts:this.client,command:a,prefix:o},!await this.client.options.command.check(e))return;if(!a)return t(new fe(c,e,s));let d=this.registry.modules.find(u=>u.commands.includes(a));if(!d)return;let w=[];for(let u of a.checks)if(!await u(e))return t(new re(e,a));for(let u=0;u<a.argTypes.length;u++){let x=a.argTypes[u],_=this.registry.argumentConverters.find(j=>j.type===x.type);if(x.rest){let j=s.join(" ");if(!j)break;w.push(j);break}if(!_)return t(new D(x,e));let v=this.registry.modules.find(j=>j.argumentConverters.includes(_));if(!v)return t(new D(x,e));if(_.withoutParameter){w.push(await _.execute(v,e));continue}let $=s.shift();if(x.optional&&!$)break;if(!$)return t(new K(u,a,e));let xe=await _.execute(v,e,$);if(xe==null&&!x.optional)return t(new K(u,a,e));w.push(xe)}try{await a.execute(d,w)}catch(u){return t(u)}}catch(r){return t(r)}}async command(e){var r,o;let t=i(s=>this.client.client.emit("applicationCommandError",s,e),"error2");try{let s=this.registry.applicationCommands.find(l=>l.command.type==="CHAT_INPUT"&&l.command.name===e.commandName);if(!s)return;let c=this.registry.modules.find(l=>l.applicationCommands.includes(s));if(!c)return;let a=[];if(e.data={cts:this.client,command:s},!await this.client.options.slashCommands.check(e))return t(new he(e));for(let l of s.checks)if(!await l(e))return t(new A(e,s));for(let l=0;l<s.params.length;l++){let d=s.params[l],w=this.registry.applicationCommandArgumentConverters.find(u=>u.type===d.type);if(d.type===f.CommandInteraction){a.push(e);continue}if(d.type===f.CommandInteractionOptionResolver){a.push(e.options);continue}if(d.name){switch(d.type){case String:a.push(e.options.getString(d.name,!1)||void 0);break;case f.Role:a.push(e.options.getRole(d.name,!1)||void 0);break;case f.User:a.push(e.options.getUser(d.name,!1)||void 0);break;case f.GuildMember:a.push(e.options.getMember(d.name,!1)||void 0);break;case Boolean:a.push(e.options.getBoolean(d.name,!1)||void 0);break;case Number:let u=e.options.get(d.name,!1);if(!u){a.push(void 0);break}if(u.type=="NUMBER"){a.push((r=e.options.getNumber(d.name,!1))!=null?r:void 0);break}if(u.type=="INTEGER"){a.push((o=e.options.getInteger(d.name,!1))!=null?o:void 0);break}}continue}if(!w)return t(new k(d,e));a.push(await w.execute(c,e))}await s.execute(c,a)}catch(s){return t(s)}}async messageComponent(e){let t=i(r=>this.client.client.emit("messageComponentError",r),"error");try{let r=[];for(let o of this.registry.messageComponentHandlers)o.componentId===o.componentId&&o.componentType===e.componentType&&r.push(o);for(let o of r){let s=this.registry.modules.find(c=>c.messageComponentHandlers.includes(o));!s||await o.run(s,e)}}catch(r){t(r)}}async userContextMenu(e){let t=i(r=>this.client.client.emit("applicationCommandError",r,e),"error3");try{let r=this.registry.applicationCommands.find(c=>c.command.type==="USER"&&c.command.name===e.commandName);if(!r)return;let o=this.registry.modules.find(c=>c.applicationCommands.includes(r));if(!o)return;e.data={cts:this.client,command:r};for(let c of r.checks)if(!await c(e))return t(new A(e,r));let s=[];for(let c=0;c<r.params.length;c++){let a=r.params[c],l=this.registry.applicationCommandArgumentConverters.find(d=>d.type===a.type);if(a.type===f.UserContextMenuInteraction){s.push(e);continue}if(!l)return t(new k(a,e));s.push(await l.execute(o,e))}await r.execute(o,s)}catch(r){return t(r)}}async messageContextMenu(e){let t=i(r=>this.client.client.emit("applicationCommandError",r,e),"error4");try{let r=this.registry.applicationCommands.find(c=>c.command.type==="MESSAGE"&&c.command.name===e.commandName);if(!r)return;let o=this.registry.modules.find(c=>c.applicationCommands.includes(r));if(!o)return;e.data={cts:this.client,command:r};for(let c of r.checks)if(!await c(e))return t(new A(e,r));let s=[];for(let c=0;c<r.params.length;c++){let a=r.params[c],l=this.registry.applicationCommandArgumentConverters.find(d=>d.type===a.type);if(a.type===f.MessageContextMenuInteraction){s.push(e);continue}if(!l)return t(new k(a,e));s.push(await l.execute(o,e))}await r.execute(o,s)}catch(r){return t(r)}}async interaction(e){let t=i(r=>this.client.client.emit("interactionError",r,e),"error");try{if(await this.client.options.applicationCommands.beforeRunCheck(e),e.isCommand()){await this.command(e);return}if(e.isMessageComponent()){await this.messageComponent(e);return}if(e.isMessageContextMenu()){await this.messageContextMenu(e);return}if(e.isUserContextMenu()){await this.userContextMenu(e);return}}catch(r){return t(r)}}},"CommandHandler"),Ke=pe("messageCreate"),De=typeof Reflect!="undefined"&&typeof Reflect.metadata=="function"&&Reflect.metadata("design:type",Function),Pe=typeof Reflect!="undefined"&&typeof Reflect.metadata=="function"&&Reflect.metadata("design:paramtypes",[typeof f.Message=="undefined"?Object:f.Message]),Le(b.prototype,"message",[Ke,De,Pe],Object.getOwnPropertyDescriptor(b.prototype,"message"),b.prototype),Ue=pe("interactionCreate"),Be=typeof Reflect!="undefined"&&typeof Reflect.metadata=="function"&&Reflect.metadata("design:type",Function),Ne=typeof Reflect!="undefined"&&typeof Reflect.metadata=="function"&&Reflect.metadata("design:paramtypes",[typeof f.Interaction=="undefined"?Object:f.Interaction]),Le(b.prototype,"interaction",[Ue,Be,Ne],Object.getOwnPropertyDescriptor(b.prototype,"interaction"),b.prototype),b);var ie=class{execute(e,t){return this.run.apply(e,t)}get checks(){return Reflect.getMetadata(Z,this.module,this.key)||[]}constructor(e,t,r,o,s,c){this.run=e,this.argTypes=t,this.name=r,this.aliases=o,this.module=s,this.key=c}};i(ie,"Command");var ae=class{execute(e,t,r){return this.run.apply(e,[t,r])}constructor(e,t,r){this.type=e,this.run=t,this.withoutParameter=r}};i(ae,"ArgumentConverter");var ce=class{execute(e,t){return this.run.apply(e,[t])}constructor(e,t){this.type=e,this.run=t}};i(ce,"ApplicationCommandArgumentConverter");var M=i((n,e)=>(t,r)=>{if(n){let o=Reflect.getMetadata(Z,t,r);o?o.push(n):(o=[n],Reflect.defineMetadata(Z,o,t,r))}if(e){let o=Reflect.getMetadata(ee,t,r);o?o.push(e):(o=[e],Reflect.defineMetadata(ee,o,t,r))}},"createCheckDecorator");var T=require("discord.js");var wt=i((n={})=>(e,t)=>{var l;y(e);let r=Reflect.getMetadata(q,e),o=(l=n.optionTypes)!=null?l:Reflect.getMetadata("design:paramtypes",e,t),s=Reflect.getMetadata(Re,e,t)||-1,c=Reflect.getMetadata(be,e,t)||-1,a=new ie(Reflect.get(e,t),o.map((d,w)=>({type:d,optional:s===-1?!1:s<=w,rest:c===-1?!1:c===w})),n.name||t,n.aliases||[],e,t);r?r.push(a):(r=[a],Reflect.defineMetadata(q,r,e))},"command"),S=i((n,e=!0)=>(t,r)=>{y(t);let o=Reflect.getMetadata(V,t),s=new ae(n,Reflect.get(t,r),!e);o?o.push(s):(o=[s],Reflect.defineMetadata(V,o,t))},"argumentConverter"),xt=i(n=>(e,t)=>{y(e);let r=Reflect.getMetadata(X,e),o=new ce(n,Reflect.get(e,t));r?r.push(o):(r=[o],Reflect.defineMetadata(X,r,e))},"applicationCommandArgumentConverter"),Ct=i((n,e,t)=>{y(n),Reflect.defineMetadata(Re,t,n,e)},"optional"),Rt=i((n,e,t)=>{y(n);let r=Reflect.getMetadata("design:paramtypes",n,e);if(r.length-1!==t)throw new Error("Rest decorator must be used at last argument.");if(r[t]!==String)throw new Error('Rest argument type must be "String"');Reflect.defineMetadata(be,t,n,e)},"rest"),bt=M(n=>{if(n.data.cts.owners.includes(n.author.id))return!0;throw new B},n=>{if(n.data.cts.owners.includes(n.user.id))return!0;throw new B}),Mt=M(n=>{if(n.guild)return!0;throw new N},n=>{if(n.guildId)return!0;throw new N}),Et=M(n=>{if(!n.guild)return!0;throw new H},n=>{if(!n.guildId)return!0;throw new H}),St=i(n=>M(e=>{if(!e.guild||!e.member)throw new Error("This command must be used in guild.");if(e.member.permissionsIn(e.channel).has(n))return!0;throw new P(e.member,new T.Permissions(n))},e=>{if(!e.guild||!e.member)throw new Error("This command must be used in guild.");if(!(e.member instanceof T.GuildMember)||e.member.permissionsIn(e.channel).has(n))return!0;throw new P(e.member,new T.Permissions(n))}),"requireUserPermissions"),vt=i(n=>M(e=>{if(!e.guild)throw new Error("This command must be used in guild.");if(e.guild.me.permissionsIn(e.channel).has(n))return!0;throw new U(new T.Permissions(n))},e=>{if(!e.guild)throw new Error("This command must be used in guild.");if(e.guild.me.permissionsIn(e.channel).has(n))return!0;throw new U(new T.Permissions(n))}),"requireClientPermissions");var g;(function(n){n[n.USER=0]="USER",n[n.CHANNEL=1]="CHANNEL",n[n.GUILD=2]="GUILD",n[n.ROLE=3]="ROLE",n[n.CATEGORY=4]="CATEGORY",n[n.MEMBER=5]="MEMBER"})(g||(g={}));var Me=require("discord.js");var G=class extends Error{constructor(e){super();this.endsAt=e}};i(G,"CoolDownError");var Ot=i((n,e)=>M(async t=>{let r=t.data.cts.coolDownAdapter,s=i(()=>{var l;switch(n){case g.USER:return t.author.id;case g.GUILD:return(t.guild||t.author).id;case g.CHANNEL:return t.channel.id;case g.MEMBER:return`${(l=t.guild)==null?void 0:l.id}.${t.author.id}`;case g.ROLE:return(t.channel instanceof Me.DMChannel?t.channel:t.member.roles.highest).id;case g.CATEGORY:return(t.channel.parent||t.channel).id}},"getKey")(),c=await r.get(s),a=Date.now();if(!c||!(a-c<e*1e3))return await r.set(s,a),!0;throw new G(new Date(c+e*1e3))},async t=>{let r=t.data.cts.coolDownAdapter,s=i(()=>{var l;switch(n){case g.USER:return t.user.id;case g.GUILD:return(t.guild||t.user).id;case g.CHANNEL:return t.channel.id;case g.MEMBER:return`${(l=t.guild)==null?void 0:l.id}.${t.user.id}`;case g.ROLE:return(t.channel instanceof Me.DMChannel?t.channel:t.member.roles.highest).id;case g.CATEGORY:return(t.channel.parent||t.channel).id}},"getKey")(),c=await r.get(s),a=Date.now();if(!c||!(a-c<e*1e3))return await r.set(s,a),!0;throw new G(new Date(c+e*1e3))}),"coolDown");var Ge=require("discord.js"),le=class{async get(e){return this.map.get(e)}async set(e,t){this.map.set(e,t)}constructor(){this.map=new Ge.Collection}};i(le,"DefaultCoolDownAdapter");var h=require("discord.js");function z(n,e,t,r,o){var s={};Object.keys(r).forEach(function(a){s[a]=r[a]}),s.enumerable=!!s.enumerable,s.configurable=!!s.configurable,("value"in s||s.initializer)&&(s.writable=!0),s=t.slice().reverse().reduce(function(a,l){return l&&l(n,e,a)||a},s),o&&s.initializer!==void 0&&(s.value=s.initializer?s.initializer.call(o):void 0,s.initializer=void 0);var c=Object.getOwnPropertyDescriptor(n,e);return c&&(c.get||c.set)&&(delete s.writable,delete s.initializer),s.initializer===void 0&&(Object.defineProperty(n,e,s),s=null),s}i(z,"_applyDecoratedDescriptor");var p,ze,Fe,$e,We,qe,Ye,Je,Qe,Ve,Xe,Ze,et,tt,rt,nt,ot,st,it,at=(p=i(class extends R{constructor(e){super();this.cts=e,this.client=e.client}message(e){return e}string(e,t){return t}getUserIDByMention(e){if(!!e&&e.startsWith("<@")&&e.endsWith(">"))return e=e.slice(2,-1),e.startsWith("!")&&(e=e.slice(1)),e}user(e,t){let r=this.client.users.cache.get(t);if(r||(r=this.client.users.cache.find(s=>s.tag===t||s.username===t),r))return r;let o=this.getUserIDByMention(t);return o?(r=this.client.users.cache.get(o),r||null):null}member(e,t){var s,c,a;let r=(s=e.guild)==null?void 0:s.members.cache.get(t);if(!r||(r=(c=e.guild)==null?void 0:c.members.cache.find(l=>l.user.tag===t),r))return r;let o=this.getUserIDByMention(t);if(!!o)return r=(a=e.guild)==null?void 0:a.members.cache.get(o),r||void 0}number(e,t){let r=Number(t);return isNaN(r)?void 0:r}getRoleIDByMention(e){if(!!e&&e.startsWith("<@")&&e.endsWith(">"))return e=e.slice(2,-1),e.startsWith("&")&&(e=e.slice(1)),e}role(e,t){var s;let r=this.getRoleIDByMention(t);return r&&((s=e.guild)==null?void 0:s.roles.cache.get(r))||void 0}},"BuiltinCommandConverters"),ze=S(h.Message,!1),Fe=typeof Reflect!="undefined"&&typeof Reflect.metadata=="function"&&Reflect.metadata("design:type",Function),$e=typeof Reflect!="undefined"&&typeof Reflect.metadata=="function"&&Reflect.metadata("design:paramtypes",[typeof h.Message=="undefined"?Object:h.Message]),z(p.prototype,"message",[ze,Fe,$e],Object.getOwnPropertyDescriptor(p.prototype,"message"),p.prototype),We=S(String),qe=typeof Reflect!="undefined"&&typeof Reflect.metadata=="function"&&Reflect.metadata("design:type",Function),Ye=typeof Reflect!="undefined"&&typeof Reflect.metadata=="function"&&Reflect.metadata("design:paramtypes",[typeof h.Message=="undefined"?Object:h.Message,String]),z(p.prototype,"string",[We,qe,Ye],Object.getOwnPropertyDescriptor(p.prototype,"string"),p.prototype),Je=S(h.User),Qe=typeof Reflect!="undefined"&&typeof Reflect.metadata=="function"&&Reflect.metadata("design:type",Function),Ve=typeof Reflect!="undefined"&&typeof Reflect.metadata=="function"&&Reflect.metadata("design:paramtypes",[typeof h.Message=="undefined"?Object:h.Message,String]),z(p.prototype,"user",[Je,Qe,Ve],Object.getOwnPropertyDescriptor(p.prototype,"user"),p.prototype),Xe=S(h.GuildMember),Ze=typeof Reflect!="undefined"&&typeof Reflect.metadata=="function"&&Reflect.metadata("design:type",Function),et=typeof Reflect!="undefined"&&typeof Reflect.metadata=="function"&&Reflect.metadata("design:paramtypes",[typeof h.Message=="undefined"?Object:h.Message,String]),z(p.prototype,"member",[Xe,Ze,et],Object.getOwnPropertyDescriptor(p.prototype,"member"),p.prototype),tt=S(Number),rt=typeof Reflect!="undefined"&&typeof Reflect.metadata=="function"&&Reflect.metadata("design:type",Function),nt=typeof Reflect!="undefined"&&typeof Reflect.metadata=="function"&&Reflect.metadata("design:paramtypes",[typeof h.Message=="undefined"?Object:h.Message,String]),z(p.prototype,"number",[tt,rt,nt],Object.getOwnPropertyDescriptor(p.prototype,"number"),p.prototype),ot=S(h.Role),st=typeof Reflect!="undefined"&&typeof Reflect.metadata=="function"&&Reflect.metadata("design:type",Function),it=typeof Reflect!="undefined"&&typeof Reflect.metadata=="function"&&Reflect.metadata("design:paramtypes",[typeof h.Message=="undefined"?Object:h.Message,String]),z(p.prototype,"role",[ot,st,it],Object.getOwnPropertyDescriptor(p.prototype,"role"),p.prototype),p);var ge=class extends R{constructor(e){super();this.cts=e,this.client=e.client}};i(ge,"BuiltinApplicationCommandConverters");var mt=require("tslog"),Ee=class{async fetchOwners(){var t,r;await((t=this.client.application)==null?void 0:t.fetch());let e=(r=this.client.application)==null?void 0:r.owner;return e?e instanceof lt.User?[e.id]:e.members.map(o=>o.id):[]}async ready(){if(!this._isReady){if(this._isReady=!0,this.options.owners==="auto"){let e=await this.fetchOwners();this.owners.push(...e)}this.options.applicationCommands.autoSync&&await this.registry.syncCommands()}}constructor(s){var c=s,{client:e,coolDownAdapter:t,logger:r}=c,o=Ae(c,["client","coolDownAdapter","logger"]);this.owners=[],this.registry=new oe(this),this._isReady=!1,this.client=e,this.coolDownAdapter=t||new le,this.options=ct.default.merge({command:{prefix:"!",check:()=>!0,globalAliases:()=>[]},owners:"auto",slashCommands:{check:()=>!0},applicationCommands:{autoSync:!1,beforeRunCheck:()=>{}}},o),this.logger=r!=null?r:new mt.Logger({name:"Command.TS"}),this.options.owners!=="auto"&&(this.owners=this.options.owners),this.client.once("ready",()=>this.ready()),this.registry.registerModule(new He(this.registry)),this.registry.registerModule(new at(this)),this.registry.registerModule(new ge(this))}};i(Ee,"CommandClient");var Se=require("discord.js");var me=class{get checks(){return Reflect.getMetadata(ee,this.module,this.key)||[]}execute(e,t){return this.run.apply(e,t)}constructor(e,t,r,o,s,c){this.command=e,this.run=t,this.module=r,this.params=o,this.guild=s,this.key=c}};i(me,"AppCommand");var kt=i(n=>(e,t)=>{var a;y(e);let r=Reflect.getMetadata(Y,e),o=(a=n.optionTypes)!=null?a:Reflect.getMetadata("design:paramtypes",e,t),s=Reflect.getMetadata(ue,e,t)||new Se.Collection,c=new me(n.command,Reflect.get(e,t),e,o.map((l,d)=>({type:l,name:s.get(d)})),n.guild,t);r?r.push(c):(r=[c],Reflect.defineMetadata(Y,r,e))},"applicationCommand"),At=i(n=>(e,t,r)=>{y(e);let o=Reflect.getMetadata(ue,e,t);o||(o=new Se.Collection,Reflect.defineMetadata(ue,o,e,t)),o.set(r,n)},"option");var F=class{constructor(e,t,r){this.componentId=e,this.componentType=t,this.execute=r}run(e,t){return this.execute.apply(e,[t])}};i(F,"MessageComponentHandler");var ye=class extends F{constructor(e,t){super(e,"BUTTON",t)}};i(ye,"ButtonInteractionHandler");var Tt=i(n=>(e,t)=>{y(e);let r=new ye(n,Reflect.get(e,t)),o=Reflect.getMetadata(E,e);o?o.push(r):(o=[r],Reflect.defineMetadata(E,o,e))},"messageButton");var we=class extends F{constructor(e,t){super(e,"SELECT_MENU",t)}};i(we,"SelectMenuInteractionHandler");var _t=i(n=>(e,t)=>{y(e);let r=new we(n,Reflect.get(e,t)),o=Reflect.getMetadata(E,e);o?o.push(r):(o=[r],Reflect.defineMetadata(E,o,e))},"messageSelectMenu");module.exports=yt(jt);0&&(module.exports={AppCommand,ApplicationCommandArgumentConverter,ApplicationCommandArgumentConverterNotFound,ApplicationCommandCheckFailed,ArgumentConverter,ArgumentConverterNotFound,ArgumentNotProvided,BuiltInModule,ButtonInteractionHandler,ClientPermissionRequired,Command,CommandCheckFailed,CommandClient,CoolDownError,CoolDownType,DMOnlyCommandError,DefaultCoolDownAdapter,GuildOnlyCommandError,InvalidModuleError,InvalidTargetError,Listener,Module,ModuleLoadError,OwnerOnlyCommandError,Registry,SelectMenuInteractionHandler,UserPermissionRequired,applicationCommand,applicationCommandArgumentConverter,argumentConverter,command,coolDown,createCheckDecorator,dmOnly,guildOnly,listener,messageButton,messageSelectMenu,option,optional,ownerOnly,requireClientPermissions,requireUserPermissions,rest});
|
|
26
2
|
//# sourceMappingURL=index.js.map
|