Skip to content

Commit 4e8b654

Browse files
committed
✨ Add callback
1 parent 9d66480 commit 4e8b654

File tree

6 files changed

+29
-6
lines changed

6 files changed

+29
-6
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "discord-module-loader",
33
"description": "A package that lets you load events and commands easily and fast.",
4-
"version": "1.1.0",
4+
"version": "1.2.0",
55
"main": "lib/index.js",
66
"repository": "https://github.com/Recodive/Discord-Module-Loader",
77
"author": "Timeraa <[email protected]>",

src/classes/DiscordCommand.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ export default class DiscordCommand extends BaseClass {
2727
| CommandInteraction
2828
| ContextMenuInteraction
2929
| AutocompleteInteraction
30-
) => Awaitable<void>;
30+
) => () => any;
3131

3232
constructor(options: CommandOptions) {
3333
super();
@@ -55,5 +55,5 @@ export interface CommandOptions extends ChatInputApplicationCommandData {
5555
| CommandInteraction
5656
| ContextMenuInteraction
5757
| AutocompleteInteraction
58-
): Awaitable<void>;
58+
): () => any;
5959
}

src/classes/DiscordEvent.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export default class DiscordEvent<
88
guildId?: string;
99
constructor(
1010
public event: K,
11-
public listener: (...args: ClientEvents[K]) => Awaitable<void>
11+
public listener: (...args: ClientEvents[K]) => () => any
1212
) {
1313
super();
1414
}

src/classes/DiscordGuild.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,13 @@ export default class DiscordGuild {
1111
events = new Collection<string, DiscordEvent<any>>();
1212
commands = new Collection<string, DiscordCommand>();
1313
modules = new Collection<string, DiscordModule>();
14-
constructor(public id: Snowflake) {}
14+
constructor(
15+
public id: Snowflake,
16+
public callback?: () => any,
17+
options?: { disabled: boolean }
18+
) {
19+
if (options?.disabled) this.disable();
20+
}
1521

1622
enable() {
1723
this.disabled = false;

src/classes/DiscordModule.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,14 @@ export default class DiscordModule {
88
events = new Collection<string, DiscordEvent<any>>();
99
commands = new Collection<string, DiscordCommand>();
1010
modules = new Collection<string, DiscordModule>();
11-
constructor(public name: string) {}
11+
12+
constructor(
13+
public name: string,
14+
public callback?: () => any,
15+
options?: { disabled: boolean }
16+
) {
17+
if (options?.disabled) this.disable();
18+
}
1219

1320
enable() {
1421
this.disabled = false;

src/classes/ModuleLoader.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@ export default class DiscordModuleLoader {
8787
if (!(guild instanceof DiscordGuild))
8888
throw new Error(`Guild ${folder} is not an Guild.`);
8989

90+
//* Guild disabled, continue
91+
if (guild.disabled) continue;
92+
9093
if (!this.client.guilds.cache.get(guild.id))
9194
throw new Error(`Guild ${guild.id} is not cached.`);
9295

@@ -114,6 +117,8 @@ export default class DiscordModuleLoader {
114117
await this.loadModules(resolve(dir, folder, "modules"), guild.id)
115118
);
116119

120+
if (guild.callback) await guild.callback();
121+
117122
log("Loaded guild module for guild: %s", guild.id);
118123
}
119124
return returnGuilds;
@@ -141,6 +146,9 @@ export default class DiscordModuleLoader {
141146
if (!(module instanceof DiscordModule))
142147
throw new Error(`Module ${folder} is not an Module`);
143148

149+
//* Module disabled, continue
150+
if (module.disabled) continue;
151+
144152
if (this.modules.has(module.name))
145153
throw new Error(`Cannot add ${module.name} more than once.`);
146154

@@ -162,6 +170,8 @@ export default class DiscordModuleLoader {
162170
await this.loadModules(resolve(dir, folder, "modules"))
163171
);
164172

173+
if (module.callback) await module.callback();
174+
165175
this.modules.set(module.name, module);
166176
returnModules.push([module.name, module]);
167177
log("Loaded module %s", module.name);

0 commit comments

Comments
 (0)