diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 4e060aa7b..75f83c769 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,9 +4,56 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -133,6 +180,8 @@
+
+
1660418841831
@@ -295,7 +344,35 @@
1671123452807
-
+
+ 1673582791487
+
+
+
+ 1673582791487
+
+
+ 1673976226325
+
+
+
+ 1673976226325
+
+
+ 1673976805332
+
+
+
+ 1673976805332
+
+
+ 1673976828238
+
+
+
+ 1673976828238
+
+
@@ -324,7 +401,6 @@
-
@@ -335,6 +411,10 @@
-
+
+
+
+
+
\ No newline at end of file
diff --git a/blog/2023-01-12-mdx-blog-post.md b/blog/2023-01-12-mdx-blog-post.md
new file mode 100644
index 000000000..586327a2e
--- /dev/null
+++ b/blog/2023-01-12-mdx-blog-post.md
@@ -0,0 +1,31 @@
+---
+slug: 2.5.0
+title: Release 2.5.0
+authors: [jacoobes]
+tags: [release]
+---
+
+## 2.5 Release
+
+### Join our [discord](https://sern.dev/discord)
+- Thank you for using sern in your projects. It's only going to get better!
+- I apologize for the sudden small breaking change. After this update, there won't be any for a while.
+Wow! We're increasing our semantic versioning by `+0.3.9`
+What does this mean?
+### Breaking changes
+- [controller](../docs/api/modules#controller) parameter for plugins has been removed
+ - You'll need to import it instead
+ - This **breaks** old [CommandPlugin](../docs/api/interfaces/CommandPlugin), but **not** old [EventPlugin](../docs/api/interfaces/EventPlugin)
+### Deprecations
+- [CommandPlugin](../docs/api/interfaces/CommandPlugin) and [EventPlugin](../docs/api/interfaces/EventPlugin) have been renamed [InitPlugin](../docs/api/interfaces/InitPlugin) and [ControlPlugin](../docs/api/interfaces/ControlPlugin)
+
+### Reason
+- The naming of plugins was getting too complex. For example, plugin naming evolved into CommandModuleCommandPlugin, CommandModuleEventPlugin and more.
+- I realize that this affects all plugins. I have updated all [plugins](https://github.com/sern-handler/awesome-plugins/pull/68) to match these changes
+- The old way of declaring plugins has been deprecated in favor of newer functions that facilitate and ease typings
+ - [CommandControlPlugin](../docs/api/modules#commandcontrolplugin)
+ - [CommandInitPlugin](../docs/api/modules#commandinitplugin)
+ - [EventControlPlugin](../docs/api/modules#eventcontrolplugin)
+ - [EventInitPlugin](../docs/api/modules#eventinitplugin)
+ - [DiscordEventControlPlugin](../docs/api/modules#discordeventcontrolplugin)
+ This will probably be the last breaking change in a while. Thanks for using sern!
\ No newline at end of file
diff --git a/docs/api/classes/CommandExecutable.md b/docs/api/classes/CommandExecutable.md
index 6719da024..922ee796d 100644
--- a/docs/api/classes/CommandExecutable.md
+++ b/docs/api/classes/CommandExecutable.md
@@ -6,6 +6,10 @@ sidebar_position: 0
custom_edit_url: null
---
+**`Experimental`**
+
+Will be refactored / changed in future
+
## Type parameters
| Name | Type |
@@ -32,27 +36,27 @@ custom_edit_url: null
#### Defined in
-[src/handler/sern.ts:101](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/sern.ts#L101)
+[src/handler/sern.ts:121](https://github.com/sern-handler/handler/blob/33f1446/src/handler/sern.ts#L121)
___
### onEvent
-• **onEvent**: [`EventPlugin`](../interfaces/EventPlugin.md)<`Type`\>[] = `[]`
+• **onEvent**: [`ControlPlugin`](../interfaces/ControlPlugin.md)<`any`[]\>[] = `[]`
#### Defined in
-[src/handler/sern.ts:100](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/sern.ts#L100)
+[src/handler/sern.ts:120](https://github.com/sern-handler/handler/blob/33f1446/src/handler/sern.ts#L120)
___
### plugins
-• **plugins**: [`CommandPlugin`](../interfaces/CommandPlugin.md)<`Type`\>[] = `[]`
+• **plugins**: [`InitPlugin`](../interfaces/InitPlugin.md)<`any`[]\>[] = `[]`
#### Defined in
-[src/handler/sern.ts:99](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/sern.ts#L99)
+[src/handler/sern.ts:119](https://github.com/sern-handler/handler/blob/33f1446/src/handler/sern.ts#L119)
___
@@ -62,4 +66,4 @@ ___
#### Defined in
-[src/handler/sern.ts:98](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/sern.ts#L98)
+[src/handler/sern.ts:118](https://github.com/sern-handler/handler/blob/33f1446/src/handler/sern.ts#L118)
diff --git a/docs/api/classes/Context.md b/docs/api/classes/Context.md
index 5e6564f8d..c5446830e 100644
--- a/docs/api/classes/Context.md
+++ b/docs/api/classes/Context.md
@@ -23,7 +23,7 @@ Message and ChatInputCommandInteraction
#### Defined in
-[src/handler/structures/context.ts:23](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/context.ts#L23)
+[src/handler/structures/context.ts:22](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/context.ts#L22)
## Accessors
@@ -37,7 +37,7 @@ Message and ChatInputCommandInteraction
#### Defined in
-[src/handler/structures/context.ts:51](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/context.ts#L51)
+[src/handler/structures/context.ts:45](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/context.ts#L45)
___
@@ -51,7 +51,7 @@ ___
#### Defined in
-[src/handler/structures/context.ts:98](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/context.ts#L98)
+[src/handler/structures/context.ts:75](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/context.ts#L75)
___
@@ -65,7 +65,7 @@ ___
#### Defined in
-[src/handler/structures/context.ts:67](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/context.ts#L67)
+[src/handler/structures/context.ts:56](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/context.ts#L56)
___
@@ -79,7 +79,7 @@ ___
#### Defined in
-[src/handler/structures/context.ts:74](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/context.ts#L74)
+[src/handler/structures/context.ts:60](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/context.ts#L60)
___
@@ -93,7 +93,7 @@ ___
#### Defined in
-[src/handler/structures/context.ts:81](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/context.ts#L81)
+[src/handler/structures/context.ts:64](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/context.ts#L64)
___
@@ -107,7 +107,7 @@ ___
#### Defined in
-[src/handler/structures/context.ts:44](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/context.ts#L44)
+[src/handler/structures/context.ts:41](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/context.ts#L41)
___
@@ -121,7 +121,7 @@ ___
#### Defined in
-[src/handler/structures/context.ts:105](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/context.ts#L105)
+[src/handler/structures/context.ts:79](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/context.ts#L79)
___
@@ -139,7 +139,7 @@ Message
#### Defined in
-[src/handler/structures/context.ts:40](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/context.ts#L40)
+[src/handler/structures/context.ts:37](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/context.ts#L37)
___
@@ -153,7 +153,7 @@ ___
#### Defined in
-[src/handler/structures/context.ts:91](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/context.ts#L91)
+[src/handler/structures/context.ts:71](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/context.ts#L71)
___
@@ -171,7 +171,7 @@ ChatInputCommandInteraction
#### Defined in
-[src/handler/structures/context.ts:32](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/context.ts#L32)
+[src/handler/structures/context.ts:29](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/context.ts#L29)
___
@@ -188,7 +188,7 @@ else, interaction.user
#### Defined in
-[src/handler/structures/context.ts:60](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/context.ts#L60)
+[src/handler/structures/context.ts:52](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/context.ts#L52)
## Methods
@@ -202,7 +202,7 @@ else, interaction.user
#### Defined in
-[src/handler/structures/context.ts:111](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/context.ts#L111)
+[src/handler/structures/context.ts:82](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/context.ts#L82)
___
@@ -216,7 +216,7 @@ ___
#### Defined in
-[src/handler/structures/context.ts:115](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/context.ts#L115)
+[src/handler/structures/context.ts:86](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/context.ts#L86)
___
@@ -236,7 +236,7 @@ ___
#### Defined in
-[src/handler/structures/context.ts:126](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/context.ts#L126)
+[src/handler/structures/context.ts:97](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/context.ts#L97)
___
@@ -256,4 +256,4 @@ ___
#### Defined in
-[src/handler/structures/context.ts:119](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/context.ts#L119)
+[src/handler/structures/context.ts:90](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/context.ts#L90)
diff --git a/docs/api/classes/DefaultErrorHandling.md b/docs/api/classes/DefaultErrorHandling.md
index 500804b28..78d9321e3 100644
--- a/docs/api/classes/DefaultErrorHandling.md
+++ b/docs/api/classes/DefaultErrorHandling.md
@@ -30,7 +30,7 @@ Number of times the process should throw an error until crashing and exiting
#### Defined in
-[src/handler/contracts/errorHandling.ts:25](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/contracts/errorHandling.ts#L25)
+[src/handler/contracts/errorHandling.ts:24](https://github.com/sern-handler/handler/blob/33f1446/src/handler/contracts/errorHandling.ts#L24)
## Methods
@@ -56,7 +56,7 @@ Utility function to crash
#### Defined in
-[src/handler/contracts/errorHandling.ts:26](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/contracts/errorHandling.ts#L26)
+[src/handler/contracts/errorHandling.ts:25](https://github.com/sern-handler/handler/blob/33f1446/src/handler/contracts/errorHandling.ts#L25)
___
@@ -82,4 +82,4 @@ A function that is called on every crash. Updates keepAlive
#### Defined in
-[src/handler/contracts/errorHandling.ts:29](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/contracts/errorHandling.ts#L29)
+[src/handler/contracts/errorHandling.ts:28](https://github.com/sern-handler/handler/blob/33f1446/src/handler/contracts/errorHandling.ts#L28)
diff --git a/docs/api/classes/DefaultLogging.md b/docs/api/classes/DefaultLogging.md
index 1e22c2aba..36eea9e7c 100644
--- a/docs/api/classes/DefaultLogging.md
+++ b/docs/api/classes/DefaultLogging.md
@@ -28,7 +28,7 @@ custom_edit_url: null
#### Defined in
-[src/handler/contracts/logging.ts:11](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/contracts/logging.ts#L11)
+[src/handler/contracts/logging.ts:11](https://github.com/sern-handler/handler/blob/33f1446/src/handler/contracts/logging.ts#L11)
___
@@ -52,7 +52,7 @@ ___
#### Defined in
-[src/handler/contracts/logging.ts:12](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/contracts/logging.ts#L12)
+[src/handler/contracts/logging.ts:12](https://github.com/sern-handler/handler/blob/33f1446/src/handler/contracts/logging.ts#L12)
___
@@ -76,7 +76,7 @@ ___
#### Defined in
-[src/handler/contracts/logging.ts:16](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/contracts/logging.ts#L16)
+[src/handler/contracts/logging.ts:16](https://github.com/sern-handler/handler/blob/33f1446/src/handler/contracts/logging.ts#L16)
___
@@ -100,7 +100,7 @@ ___
#### Defined in
-[src/handler/contracts/logging.ts:20](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/contracts/logging.ts#L20)
+[src/handler/contracts/logging.ts:20](https://github.com/sern-handler/handler/blob/33f1446/src/handler/contracts/logging.ts#L20)
___
@@ -124,4 +124,4 @@ ___
#### Defined in
-[src/handler/contracts/logging.ts:24](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/contracts/logging.ts#L24)
+[src/handler/contracts/logging.ts:24](https://github.com/sern-handler/handler/blob/33f1446/src/handler/contracts/logging.ts#L24)
diff --git a/docs/api/classes/DefaultModuleManager.md b/docs/api/classes/DefaultModuleManager.md
index 0e271a32a..ff1abeb0e 100644
--- a/docs/api/classes/DefaultModuleManager.md
+++ b/docs/api/classes/DefaultModuleManager.md
@@ -24,13 +24,13 @@ custom_edit_url: null
#### Defined in
-[src/handler/contracts/moduleManager.ts:12](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/contracts/moduleManager.ts#L12)
+[src/handler/contracts/moduleManager.ts:13](https://github.com/sern-handler/handler/blob/33f1446/src/handler/contracts/moduleManager.ts#L13)
## Methods
### get
-▸ **get**<`T`\>(`strat`): `undefined` \| [`CommandModuleDefs`](../modules.md#commandmoduledefs)[`T`]
+▸ **get**<`T`\>(`strat`): `undefined` \| [`Processed`](../modules.md#processed)<[`CommandModuleDefs`](../modules.md#commandmoduledefs)[`T`]\>
#### Type parameters
@@ -42,11 +42,11 @@ custom_edit_url: null
| Name | Type |
| :------ | :------ |
-| `strat` | (`ms`: [`ModuleStore`](ModuleStore.md)) => `undefined` \| [`CommandModuleDefs`](../modules.md#commandmoduledefs)[`T`] |
+| `strat` | (`ms`: [`ModuleStore`](ModuleStore.md)) => `undefined` \| [`Processed`](../modules.md#processed)<[`CommandModuleDefs`](../modules.md#commandmoduledefs)[`T`]\> |
#### Returns
-`undefined` \| [`CommandModuleDefs`](../modules.md#commandmoduledefs)[`T`]
+`undefined` \| [`Processed`](../modules.md#processed)<[`CommandModuleDefs`](../modules.md#commandmoduledefs)[`T`]\>
#### Implementation of
@@ -54,7 +54,7 @@ custom_edit_url: null
#### Defined in
-[src/handler/contracts/moduleManager.ts:13](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/contracts/moduleManager.ts#L13)
+[src/handler/contracts/moduleManager.ts:14](https://github.com/sern-handler/handler/blob/33f1446/src/handler/contracts/moduleManager.ts#L14)
___
@@ -78,4 +78,4 @@ ___
#### Defined in
-[src/handler/contracts/moduleManager.ts:17](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/contracts/moduleManager.ts#L17)
+[src/handler/contracts/moduleManager.ts:20](https://github.com/sern-handler/handler/blob/33f1446/src/handler/contracts/moduleManager.ts#L20)
diff --git a/docs/api/classes/EventExecutable.md b/docs/api/classes/EventExecutable.md
index d2e726da2..7afeffb24 100644
--- a/docs/api/classes/EventExecutable.md
+++ b/docs/api/classes/EventExecutable.md
@@ -6,6 +6,10 @@ sidebar_position: 0
custom_edit_url: null
---
+**`Experimental`**
+
+Will be refactored in future
+
## Type parameters
| Name | Type |
@@ -32,27 +36,27 @@ custom_edit_url: null
#### Defined in
-[src/handler/sern.ts:108](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/sern.ts#L108)
+[src/handler/sern.ts:130](https://github.com/sern-handler/handler/blob/33f1446/src/handler/sern.ts#L130)
___
### onEvent
-• **onEvent**: [`EventModuleEventPluginDefs`](../modules.md#eventmoduleeventplugindefs)[`Type`][] = `[]`
+• **onEvent**: [`ControlPlugin`](../interfaces/ControlPlugin.md)<`any`[]\>[] = `[]`
#### Defined in
-[src/handler/sern.ts:107](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/sern.ts#L107)
+[src/handler/sern.ts:129](https://github.com/sern-handler/handler/blob/33f1446/src/handler/sern.ts#L129)
___
### plugins
-• **plugins**: [`EventModuleCommandPluginDefs`](../modules.md#eventmodulecommandplugindefs)[`Type`][] = `[]`
+• **plugins**: [`InitPlugin`](../interfaces/InitPlugin.md)<`any`[]\>[] = `[]`
#### Defined in
-[src/handler/sern.ts:106](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/sern.ts#L106)
+[src/handler/sern.ts:128](https://github.com/sern-handler/handler/blob/33f1446/src/handler/sern.ts#L128)
___
@@ -62,4 +66,4 @@ ___
#### Defined in
-[src/handler/sern.ts:105](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/sern.ts#L105)
+[src/handler/sern.ts:127](https://github.com/sern-handler/handler/blob/33f1446/src/handler/sern.ts#L127)
diff --git a/docs/api/classes/ModuleStore.md b/docs/api/classes/ModuleStore.md
index e6ffe0095..ef1f32928 100644
--- a/docs/api/classes/ModuleStore.md
+++ b/docs/api/classes/ModuleStore.md
@@ -25,23 +25,23 @@ This dependency is usually injected into ModuleManager
| Name | Type |
| :------ | :------ |
-| `1` | `Map`<`string`, [`CommandModule`](../modules.md#commandmodule)\> |
-| `2` | `Map`<`string`, [`CommandModule`](../modules.md#commandmodule)\> |
-| `3` | `Map`<`string`, [`CommandModule`](../modules.md#commandmodule)\> |
+| `1` | `Map`<`string`, [`Processed`](../modules.md#processed)<[`CommandModule`](../modules.md#commandmodule)\>\> |
+| `2` | `Map`<`string`, [`Processed`](../modules.md#processed)<[`CommandModule`](../modules.md#commandmodule)\>\> |
+| `3` | `Map`<`string`, [`Processed`](../modules.md#processed)<[`CommandModule`](../modules.md#commandmodule)\>\> |
#### Defined in
-[src/handler/structures/moduleStore.ts:10](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/moduleStore.ts#L10)
+[src/handler/structures/moduleStore.ts:11](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/moduleStore.ts#L11)
___
### BothCommands
-• `Readonly` **BothCommands**: `Map`<`string`, [`CommandModule`](../modules.md#commandmodule)\>
+• `Readonly` **BothCommands**: `Map`<`string`, [`Processed`](../modules.md#processed)<[`CommandModule`](../modules.md#commandmodule)\>\>
#### Defined in
-[src/handler/structures/moduleStore.ts:9](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/moduleStore.ts#L9)
+[src/handler/structures/moduleStore.ts:10](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/moduleStore.ts#L10)
___
@@ -53,33 +53,33 @@ ___
| Name | Type |
| :------ | :------ |
-| `2` | `Map`<`string`, [`CommandModule`](../modules.md#commandmodule)\> |
-| `3` | `Map`<`string`, [`CommandModule`](../modules.md#commandmodule)\> |
-| `5` | `Map`<`string`, [`CommandModule`](../modules.md#commandmodule)\> |
-| `6` | `Map`<`string`, [`CommandModule`](../modules.md#commandmodule)\> |
-| `7` | `Map`<`string`, [`CommandModule`](../modules.md#commandmodule)\> |
-| `8` | `Map`<`string`, [`CommandModule`](../modules.md#commandmodule)\> |
+| `2` | `Map`<`string`, [`Processed`](../modules.md#processed)<[`CommandModule`](../modules.md#commandmodule)\>\> |
+| `3` | `Map`<`string`, [`Processed`](../modules.md#processed)<[`CommandModule`](../modules.md#commandmodule)\>\> |
+| `5` | `Map`<`string`, [`Processed`](../modules.md#processed)<[`CommandModule`](../modules.md#commandmodule)\>\> |
+| `6` | `Map`<`string`, [`Processed`](../modules.md#processed)<[`CommandModule`](../modules.md#commandmodule)\>\> |
+| `7` | `Map`<`string`, [`Processed`](../modules.md#processed)<[`CommandModule`](../modules.md#commandmodule)\>\> |
+| `8` | `Map`<`string`, [`Processed`](../modules.md#processed)<[`CommandModule`](../modules.md#commandmodule)\>\> |
#### Defined in
-[src/handler/structures/moduleStore.ts:17](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/moduleStore.ts#L17)
+[src/handler/structures/moduleStore.ts:18](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/moduleStore.ts#L18)
___
### ModalSubmit
-• `Readonly` **ModalSubmit**: `Map`<`string`, [`CommandModule`](../modules.md#commandmodule)\>
+• `Readonly` **ModalSubmit**: `Map`<`string`, [`Processed`](../modules.md#processed)<[`CommandModule`](../modules.md#commandmodule)\>\>
#### Defined in
-[src/handler/structures/moduleStore.ts:15](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/moduleStore.ts#L15)
+[src/handler/structures/moduleStore.ts:16](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/moduleStore.ts#L16)
___
### TextCommands
-• `Readonly` **TextCommands**: `Map`<`string`, [`CommandModule`](../modules.md#commandmodule)\>
+• `Readonly` **TextCommands**: `Map`<`string`, [`Processed`](../modules.md#processed)<[`CommandModule`](../modules.md#commandmodule)\>\>
#### Defined in
-[src/handler/structures/moduleStore.ts:16](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/moduleStore.ts#L16)
+[src/handler/structures/moduleStore.ts:17](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/moduleStore.ts#L17)
diff --git a/docs/api/classes/SernEmitter.md b/docs/api/classes/SernEmitter.md
index 117b5df59..3de4eec7d 100644
--- a/docs/api/classes/SernEmitter.md
+++ b/docs/api/classes/SernEmitter.md
@@ -30,7 +30,7 @@ EventEmitter.constructor
#### Defined in
-node_modules/@types/node/events.d.ts:74
+node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/ts4.8/events.d.ts:111
## Properties
@@ -44,7 +44,7 @@ EventEmitter.captureRejectionSymbol
#### Defined in
-node_modules/@types/node/events.d.ts:291
+node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/ts4.8/events.d.ts:328
___
@@ -60,7 +60,7 @@ EventEmitter.captureRejections
#### Defined in
-node_modules/@types/node/events.d.ts:296
+node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/ts4.8/events.d.ts:333
___
@@ -74,7 +74,7 @@ EventEmitter.defaultMaxListeners
#### Defined in
-node_modules/@types/node/events.d.ts:297
+node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/ts4.8/events.d.ts:334
___
@@ -96,7 +96,7 @@ EventEmitter.errorMonitor
#### Defined in
-node_modules/@types/node/events.d.ts:290
+node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/ts4.8/events.d.ts:327
## Methods
@@ -127,7 +127,7 @@ EventEmitter.addListener
#### Defined in
-node_modules/@types/node/events.d.ts:317
+node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/ts4.8/events.d.ts:354
___
@@ -160,7 +160,7 @@ EventEmitter.emit
#### Defined in
-[src/handler/sernEmitter.ts:32](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/sernEmitter.ts#L32)
+[src/handler/sernEmitter.ts:34](https://github.com/sern-handler/handler/blob/33f1446/src/handler/sernEmitter.ts#L34)
___
@@ -198,7 +198,7 @@ EventEmitter.eventNames
#### Defined in
-node_modules/@types/node/events.d.ts:632
+node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/ts4.8/events.d.ts:669
___
@@ -223,7 +223,7 @@ EventEmitter.getMaxListeners
#### Defined in
-node_modules/@types/node/events.d.ts:489
+node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/ts4.8/events.d.ts:526
___
@@ -253,7 +253,7 @@ EventEmitter.listenerCount
#### Defined in
-node_modules/@types/node/events.d.ts:579
+node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/ts4.8/events.d.ts:616
___
@@ -291,7 +291,7 @@ EventEmitter.listeners
#### Defined in
-node_modules/@types/node/events.d.ts:502
+node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/ts4.8/events.d.ts:539
___
@@ -322,7 +322,7 @@ EventEmitter.off
#### Defined in
-node_modules/@types/node/events.d.ts:462
+node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/ts4.8/events.d.ts:499
___
@@ -355,7 +355,7 @@ EventEmitter.on
#### Defined in
-[src/handler/sernEmitter.ts:10](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/sernEmitter.ts#L10)
+[src/handler/sernEmitter.ts:12](https://github.com/sern-handler/handler/blob/33f1446/src/handler/sernEmitter.ts#L12)
___
@@ -388,7 +388,7 @@ EventEmitter.once
#### Defined in
-[src/handler/sernEmitter.ts:21](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/sernEmitter.ts#L21)
+[src/handler/sernEmitter.ts:23](https://github.com/sern-handler/handler/blob/33f1446/src/handler/sernEmitter.ts#L23)
___
@@ -430,7 +430,7 @@ EventEmitter.prependListener
#### Defined in
-node_modules/@types/node/events.d.ts:597
+node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/ts4.8/events.d.ts:634
___
@@ -470,7 +470,7 @@ EventEmitter.prependOnceListener
#### Defined in
-node_modules/@types/node/events.d.ts:613
+node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/ts4.8/events.d.ts:650
___
@@ -525,7 +525,7 @@ EventEmitter.rawListeners
#### Defined in
-node_modules/@types/node/events.d.ts:532
+node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/ts4.8/events.d.ts:569
___
@@ -561,7 +561,7 @@ EventEmitter.removeAllListeners
#### Defined in
-node_modules/@types/node/events.d.ts:473
+node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/ts4.8/events.d.ts:510
___
@@ -667,7 +667,7 @@ EventEmitter.removeListener
#### Defined in
-node_modules/@types/node/events.d.ts:457
+node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/ts4.8/events.d.ts:494
___
@@ -702,7 +702,30 @@ EventEmitter.setMaxListeners
#### Defined in
-node_modules/@types/node/events.d.ts:483
+node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/ts4.8/events.d.ts:520
+
+___
+
+### failure
+
+▸ `Static` **failure**(`module?`, `reason?`): `never` & { `module?`: [`AnyModule`](../modules.md#anymodule) ; `reason`: `string` \| `Error` ; `type`: [`Failure`](../enums/PayloadType.md#failure) } & { `type`: [`Failure`](../enums/PayloadType.md#failure) } & `never`
+
+Creates a compliant SernEmitter failure payload
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `module?` | [`Module`](../interfaces/Module.md) |
+| `reason?` | `unknown` |
+
+#### Returns
+
+`never` & { `module?`: [`AnyModule`](../modules.md#anymodule) ; `reason`: `string` \| `Error` ; `type`: [`Failure`](../enums/PayloadType.md#failure) } & { `type`: [`Failure`](../enums/PayloadType.md#failure) } & `never`
+
+#### Defined in
+
+[src/handler/sernEmitter.ts:53](https://github.com/sern-handler/handler/blob/33f1446/src/handler/sernEmitter.ts#L53)
___
@@ -743,7 +766,7 @@ v15.2.0, v14.17.0
| Name | Type |
| :------ | :------ |
-| `emitter` | `EventEmitter` \| `DOMEventTarget` |
+| `emitter` | `EventEmitter` \| `_DOMEventTarget` |
| `name` | `string` \| `symbol` |
#### Returns
@@ -756,7 +779,7 @@ EventEmitter.getEventListeners
#### Defined in
-node_modules/@types/node/events.d.ts:262
+node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/ts4.8/events.d.ts:299
___
@@ -800,7 +823,7 @@ EventEmitter.listenerCount
#### Defined in
-node_modules/@types/node/events.d.ts:234
+node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/ts4.8/events.d.ts:271
___
@@ -886,7 +909,7 @@ EventEmitter.on
#### Defined in
-node_modules/@types/node/events.d.ts:217
+node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/ts4.8/events.d.ts:254
▸ `Static` **on**<`E`, `K`\>(`eventEmitter`, `eventName`): `AsyncIterableIterator`<`E` extends `Client`<`boolean`\> ? `ClientEvents`[`K`] : `any`\>
@@ -914,7 +937,7 @@ EventEmitter.on
#### Defined in
-node_modules/discord.js/typings/index.d.ts:222
+node_modules/.pnpm/discord.js@14.7.1/node_modules/discord.js/typings/index.d.ts:222
___
@@ -1010,7 +1033,7 @@ v11.13.0, v10.16.0
| Name | Type |
| :------ | :------ |
-| `emitter` | `NodeEventTarget` |
+| `emitter` | `_NodeEventTarget` |
| `eventName` | `string` \| `symbol` |
| `options?` | `StaticEventEmitterOptions` |
@@ -1024,7 +1047,7 @@ EventEmitter.once
#### Defined in
-node_modules/@types/node/events.d.ts:157
+node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/ts4.8/events.d.ts:194
▸ `Static` **once**(`emitter`, `eventName`, `options?`): `Promise`<`any`[]\>
@@ -1032,7 +1055,7 @@ node_modules/@types/node/events.d.ts:157
| Name | Type |
| :------ | :------ |
-| `emitter` | `DOMEventTarget` |
+| `emitter` | `_DOMEventTarget` |
| `eventName` | `string` |
| `options?` | `StaticEventEmitterOptions` |
@@ -1046,7 +1069,7 @@ EventEmitter.once
#### Defined in
-node_modules/@types/node/events.d.ts:158
+node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/ts4.8/events.d.ts:195
▸ `Static` **once**<`E`, `K`\>(`eventEmitter`, `eventName`): `Promise`<`E` extends `Client`<`boolean`\> ? `ClientEvents`[`K`] : `any`[]\>
@@ -1074,7 +1097,35 @@ EventEmitter.once
#### Defined in
-node_modules/discord.js/typings/index.d.ts:218
+node_modules/.pnpm/discord.js@14.7.1/node_modules/discord.js/typings/index.d.ts:218
+
+___
+
+### payload
+
+▸ `Static` `Private` **payload**<`T`\>(`type`, `module?`, `reason?`): `T`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | extends [`Payload`](../modules.md#payload) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `type` | [`PayloadType`](../enums/PayloadType.md) |
+| `module?` | [`Module`](../interfaces/Module.md) |
+| `reason?` | `unknown` |
+
+#### Returns
+
+`T`
+
+#### Defined in
+
+[src/handler/sernEmitter.ts:40](https://github.com/sern-handler/handler/blob/33f1446/src/handler/sernEmitter.ts#L40)
___
@@ -1103,7 +1154,7 @@ v15.4.0
| Name | Type | Description |
| :------ | :------ | :------ |
| `n?` | `number` | A non-negative number. The maximum number of listeners per `EventTarget` event. |
-| `...eventTargets` | (`EventEmitter` \| `DOMEventTarget`)[] | - |
+| `...eventTargets` | (`EventEmitter` \| `_DOMEventTarget`)[] | - |
#### Returns
@@ -1115,4 +1166,48 @@ EventEmitter.setMaxListeners
#### Defined in
-node_modules/@types/node/events.d.ts:280
+node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/ts4.8/events.d.ts:317
+
+___
+
+### success
+
+▸ `Static` **success**(`module`): { `module`: [`AnyModule`](../modules.md#anymodule) ; `type`: [`Success`](../enums/PayloadType.md#success) } & { `type`: [`Success`](../enums/PayloadType.md#success) } & `never` & `never`
+
+Creates a compliant SernEmitter module success payload
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `module` | [`Module`](../interfaces/Module.md) |
+
+#### Returns
+
+{ `module`: [`AnyModule`](../modules.md#anymodule) ; `type`: [`Success`](../enums/PayloadType.md#success) } & { `type`: [`Success`](../enums/PayloadType.md#success) } & `never` & `never`
+
+#### Defined in
+
+[src/handler/sernEmitter.ts:66](https://github.com/sern-handler/handler/blob/33f1446/src/handler/sernEmitter.ts#L66)
+
+___
+
+### warning
+
+▸ `Static` **warning**(`reason`): `never` & `never` & { `reason`: `string` ; `type`: [`Warning`](../enums/PayloadType.md#warning) } & { `type`: [`Warning`](../enums/PayloadType.md#warning) }
+
+Creates a compliant SernEmitter module warning payload
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `reason` | `unknown` |
+
+#### Returns
+
+`never` & `never` & { `reason`: `string` ; `type`: [`Warning`](../enums/PayloadType.md#warning) } & { `type`: [`Warning`](../enums/PayloadType.md#warning) }
+
+#### Defined in
+
+[src/handler/sernEmitter.ts:76](https://github.com/sern-handler/handler/blob/33f1446/src/handler/sernEmitter.ts#L76)
diff --git a/docs/api/enums/CommandType.md b/docs/api/enums/CommandType.md
index 7068cb93c..3c11669be 100644
--- a/docs/api/enums/CommandType.md
+++ b/docs/api/enums/CommandType.md
@@ -31,7 +31,7 @@ The CommandType for hybrid commands, text and slash
#### Defined in
-[src/handler/structures/enums.ts:28](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/enums.ts#L28)
+[src/handler/structures/enums.ts:28](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/enums.ts#L28)
___
@@ -43,7 +43,7 @@ The CommandType for ButtonInteraction commands
#### Defined in
-[src/handler/structures/enums.ts:40](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/enums.ts#L40)
+[src/handler/structures/enums.ts:40](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/enums.ts#L40)
___
@@ -55,7 +55,7 @@ The CommandType for the other SelectMenuInteractions
#### Defined in
-[src/handler/structures/enums.ts:52](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/enums.ts#L52)
+[src/handler/structures/enums.ts:52](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/enums.ts#L52)
___
@@ -67,7 +67,7 @@ The CommandType for MessageContextMenuInteraction commands
#### Defined in
-[src/handler/structures/enums.ts:36](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/enums.ts#L36)
+[src/handler/structures/enums.ts:36](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/enums.ts#L36)
___
@@ -79,7 +79,7 @@ The CommandType for UserContextMenuInteraction commands
#### Defined in
-[src/handler/structures/enums.ts:32](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/enums.ts#L32)
+[src/handler/structures/enums.ts:32](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/enums.ts#L32)
___
@@ -89,7 +89,7 @@ ___
#### Defined in
-[src/handler/structures/enums.ts:53](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/enums.ts#L53)
+[src/handler/structures/enums.ts:53](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/enums.ts#L53)
___
@@ -101,7 +101,7 @@ The CommandType for ModalSubmitInteraction commands
#### Defined in
-[src/handler/structures/enums.ts:48](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/enums.ts#L48)
+[src/handler/structures/enums.ts:48](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/enums.ts#L48)
___
@@ -111,7 +111,7 @@ ___
#### Defined in
-[src/handler/structures/enums.ts:54](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/enums.ts#L54)
+[src/handler/structures/enums.ts:54](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/enums.ts#L54)
___
@@ -123,7 +123,7 @@ The CommandType for slash commands
#### Defined in
-[src/handler/structures/enums.ts:24](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/enums.ts#L24)
+[src/handler/structures/enums.ts:24](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/enums.ts#L24)
___
@@ -135,7 +135,7 @@ The CommandType for StringSelectMenuInteraction commands
#### Defined in
-[src/handler/structures/enums.ts:44](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/enums.ts#L44)
+[src/handler/structures/enums.ts:44](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/enums.ts#L44)
___
@@ -147,7 +147,7 @@ The CommandType for text commands
#### Defined in
-[src/handler/structures/enums.ts:20](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/enums.ts#L20)
+[src/handler/structures/enums.ts:20](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/enums.ts#L20)
___
@@ -157,4 +157,4 @@ ___
#### Defined in
-[src/handler/structures/enums.ts:55](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/enums.ts#L55)
+[src/handler/structures/enums.ts:55](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/enums.ts#L55)
diff --git a/docs/api/enums/EventType.md b/docs/api/enums/EventType.md
index ac3491f50..0c0aea171 100644
--- a/docs/api/enums/EventType.md
+++ b/docs/api/enums/EventType.md
@@ -31,7 +31,7 @@ The EventType for handling discord events
#### Defined in
-[src/handler/structures/enums.ts:77](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/enums.ts#L77)
+[src/handler/structures/enums.ts:77](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/enums.ts#L77)
___
@@ -44,7 +44,7 @@ Could be for example, `process` events, database events
#### Defined in
-[src/handler/structures/enums.ts:86](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/enums.ts#L86)
+[src/handler/structures/enums.ts:86](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/enums.ts#L86)
___
@@ -56,4 +56,4 @@ The EventType for handling sern events
#### Defined in
-[src/handler/structures/enums.ts:81](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/enums.ts#L81)
+[src/handler/structures/enums.ts:81](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/enums.ts#L81)
diff --git a/docs/api/enums/PayloadType.md b/docs/api/enums/PayloadType.md
index 47c92f703..219fa7719 100644
--- a/docs/api/enums/PayloadType.md
+++ b/docs/api/enums/PayloadType.md
@@ -16,7 +16,7 @@ The PayloadType for a SernEmitter failure event
#### Defined in
-[src/handler/structures/enums.ts:124](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/enums.ts#L124)
+[src/handler/structures/enums.ts:134](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/enums.ts#L134)
___
@@ -28,7 +28,7 @@ The PayloadType for a SernEmitter success event
#### Defined in
-[src/handler/structures/enums.ts:120](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/enums.ts#L120)
+[src/handler/structures/enums.ts:130](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/enums.ts#L130)
___
@@ -40,4 +40,4 @@ The PayloadType for a SernEmitter warning event
#### Defined in
-[src/handler/structures/enums.ts:128](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/enums.ts#L128)
+[src/handler/structures/enums.ts:138](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/enums.ts#L138)
diff --git a/docs/api/enums/PluginType.md b/docs/api/enums/PluginType.md
index 4226c0f7c..302564974 100644
--- a/docs/api/enums/PluginType.md
+++ b/docs/api/enums/PluginType.md
@@ -26,11 +26,25 @@ export default function myPlugin() : EventPlugin {
• **Command** = ``1``
-The PluginType for CommandPlugins
+**`Deprecated`**
+
+Use PluginType.Init instead
#### Defined in
-[src/handler/structures/enums.ts:107](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/enums.ts#L107)
+[src/handler/structures/enums.ts:112](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/enums.ts#L112)
+
+___
+
+### Control
+
+• **Control** = ``2``
+
+The PluginType for EventPlugins
+
+#### Defined in
+
+[src/handler/structures/enums.ts:121](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/enums.ts#L121)
___
@@ -38,8 +52,22 @@ ___
• **Event** = ``2``
-The PluginType for EventPlugins
+**`Deprecated`**
+
+Use PluginType.Control instead
#### Defined in
-[src/handler/structures/enums.ts:111](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/enums.ts#L111)
+[src/handler/structures/enums.ts:117](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/enums.ts#L117)
+
+___
+
+### Init
+
+• **Init** = ``1``
+
+The PluginType for InitPlugins
+
+#### Defined in
+
+[src/handler/structures/enums.ts:107](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/enums.ts#L107)
diff --git a/docs/api/enums/SernError.md b/docs/api/enums/SernError.md
new file mode 100644
index 000000000..7fe6ab2c9
--- /dev/null
+++ b/docs/api/enums/SernError.md
@@ -0,0 +1,104 @@
+---
+id: "SernError"
+title: "Enumeration: SernError"
+sidebar_label: "SernError"
+sidebar_position: 0
+custom_edit_url: null
+---
+
+## Enumeration Members
+
+### InvalidModuleType
+
+• **InvalidModuleType** = ``"Detected an unknown module type"``
+
+Throws when registering an invalid module.
+This means it is undefined or an invalid command type was provided
+
+#### Defined in
+
+[src/handler/structures/errors.ts:9](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/errors.ts#L9)
+
+___
+
+### MismatchEvent
+
+• **MismatchEvent** = ``"You cannot use message when an interaction fired or vice versa"``
+
+A crash that occurs when accessing an invalid property of Context
+
+#### Defined in
+
+[src/handler/structures/errors.ts:29](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/errors.ts#L29)
+
+___
+
+### MismatchModule
+
+• **MismatchModule** = ``"A module type mismatched with event emitted!"``
+
+Attempted to lookup module in command module store. Nothing was found!
+
+#### Defined in
+
+[src/handler/structures/errors.ts:17](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/errors.ts#L17)
+
+___
+
+### MissingRequired
+
+• **MissingRequired** = ``"@sern/client is required but was not found"``
+
+Required Dependency not found
+
+#### Defined in
+
+[src/handler/structures/errors.ts:37](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/errors.ts#L37)
+
+___
+
+### NotSupportedInteraction
+
+• **NotSupportedInteraction** = ``"This interaction is not supported."``
+
+Unsupported interaction at this moment.
+
+#### Defined in
+
+[src/handler/structures/errors.ts:21](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/errors.ts#L21)
+
+___
+
+### NotSupportedYet
+
+• **NotSupportedYet** = ``"This feature is not supported yet"``
+
+Unsupported feature attempted to access at this time
+
+#### Defined in
+
+[src/handler/structures/errors.ts:33](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/errors.ts#L33)
+
+___
+
+### PluginFailure
+
+• **PluginFailure** = ``"A plugin failed to call controller.next()"``
+
+One plugin called `controller.stop()` (end command execution / loading)
+
+#### Defined in
+
+[src/handler/structures/errors.ts:25](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/errors.ts#L25)
+
+___
+
+### UndefinedModule
+
+• **UndefinedModule** = ``"A module could not be detected"``
+
+Attempted to lookup module in command module store. Nothing was found!
+
+#### Defined in
+
+[src/handler/structures/errors.ts:13](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/errors.ts#L13)
diff --git a/docs/api/index.md b/docs/api/index.md
index 12f3c2d92..f62b2027d 100644
--- a/docs/api/index.md
+++ b/docs/api/index.md
@@ -18,7 +18,7 @@ custom_edit_url: null
-
+
@@ -35,14 +35,20 @@ yarn add @sern/handler
```sh
pnpm add @sern/handler
```
-
+## Why?
+- Most handlers don't support discord.js 14.7+
+- Customizable commands
+- Plug and play or customize to your liking
+- Embraces reactive programming for consistent and reliable backend
+- Customizable logger, error handling, and more
+- Active development and growing [community](https://sern.dev/discord)
## 👀 Quick Look
* Support for discord.js v14 and all interactions
* Hybrid commands
-* lightweight and customizable
+* Lightweight and customizable
* ESM, CommonJS and TypeScript support
-* A powerful cli and awesome community-made plugins
+* A powerful CLI and awesome community-made plugins
## 👶 Basic Usage
@@ -65,11 +71,20 @@ const client = new Client({
GatewayIntentBits.GuildMessages
]
});
+export const useContainer = Sern.makeDependencies({
+ build: root => root
+ .add({ '@sern/client': single(client) })
+ .add({ '@sern/logger': single(new DefaultLogging()) })
+});
+//View docs for all options
Sern.init({
- client,
- defaultPrefix,
- commands : 'src/commands',
+ defaultPrefix: '!', // removing defaultPrefix will shut down text commands
+ commands: 'src/commands',
+ // events: 'src/events' (optional),
+ containerConfig : {
+ get: useContainer
+ }
});
client.login(token);
@@ -90,7 +105,7 @@ exports.default = commandModule({
});
```
-See our [templates](https://github.com/sern-handler/templates) for TypeScript examples and more
+See our [templates](https://github.com/sern-handler/templates) for TypeScript examples and more.
## 💻 CLI
@@ -98,12 +113,12 @@ It is **highly encouraged** to use the [command line interface](https://github.c
## 🔗 Links
-- [Official Documentation and Guide](https://sern-handler.js.org)
-- [Support Server](https://discord.com/invite/mmyCTnYtbF)
+- [Official Documentation and Guide](https://sern.dev)
+- [Support Server](https://sern.dev/discord)
## 👋 Contribute
-- Read our contribution [guidelines](https://github.com/sern-handler/handler) carefully
+- Read our contribution [guidelines](https://github.com/sern-handler/handler/blob/main/.github/CONTRIBUTING.md) carefully
- Pull up on [issues](https://github.com/sern-handler/handler/issues) and report bugs
- All kinds of contributions are welcomed.
diff --git a/docs/api/interfaces/AutocompleteCommand.md b/docs/api/interfaces/AutocompleteCommand.md
index 1bb05aa9f..200b11e66 100644
--- a/docs/api/interfaces/AutocompleteCommand.md
+++ b/docs/api/interfaces/AutocompleteCommand.md
@@ -8,26 +8,12 @@ custom_edit_url: null
## Hierarchy
-- [`Module`](Module.md)
+- `Omit`<[`Module`](Module.md), ``"name"`` \| ``"type"`` \| ``"plugins"`` \| ``"description"``\>
↳ **`AutocompleteCommand`**
## Properties
-### description
-
-• `Optional` **description**: `undefined`
-
-#### Overrides
-
-[Module](Module.md).[description](Module.md#description)
-
-#### Defined in
-
-[src/types/module.ts:132](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L132)
-
-___
-
### execute
• **execute**: (`ctx`: `AutocompleteInteraction`<`CacheType`\>) => `unknown`
@@ -48,46 +34,22 @@ ___
#### Overrides
-[Module](Module.md).[execute](Module.md#execute)
+Omit.execute
#### Defined in
-[src/types/module.ts:135](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L135)
-
-___
-
-### name
-
-• `Optional` **name**: `undefined`
-
-#### Overrides
-
-[Module](Module.md).[name](Module.md#name)
-
-#### Defined in
-
-[src/types/module.ts:131](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L131)
+[src/types/module.ts:111](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L111)
___
### onEvent
-• **onEvent**: [`AutocompletePlugin`](AutocompletePlugin.md)[]
-
-#### Defined in
-
-[src/types/module.ts:134](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L134)
-
-___
-
-### type
-
-• `Optional` **type**: `undefined`
+• **onEvent**: [`ControlPlugin`](ControlPlugin.md)<`any`[]\>[]
#### Overrides
-[Module](Module.md).[type](Module.md#type)
+Omit.onEvent
#### Defined in
-[src/types/module.ts:133](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L133)
+[src/types/module.ts:110](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L110)
diff --git a/docs/api/interfaces/BothCommand.md b/docs/api/interfaces/BothCommand.md
index c41121351..346ba7105 100644
--- a/docs/api/interfaces/BothCommand.md
+++ b/docs/api/interfaces/BothCommand.md
@@ -20,21 +20,21 @@ custom_edit_url: null
#### Defined in
-[src/types/module.ts:62](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L62)
+[src/types/module.ts:57](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L57)
___
### description
-• `Optional` **description**: `string`
+• **description**: `string`
-#### Inherited from
+#### Overrides
[Module](Module.md).[description](Module.md#description)
#### Defined in
-[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L38)
+[src/types/module.ts:58](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L58)
___
@@ -63,7 +63,7 @@ ___
#### Defined in
-[src/types/module.ts:64](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L64)
+[src/types/module.ts:60](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L60)
___
@@ -77,17 +77,21 @@ ___
#### Defined in
-[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L37)
+[src/types/module.ts:35](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L35)
___
### onEvent
-• **onEvent**: [`EventPlugin`](EventPlugin.md)<[`Both`](../enums/CommandType.md#both)\>[]
+• **onEvent**: [`ControlPlugin`](ControlPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[onEvent](Module.md#onevent)
#### Defined in
-[src/types/module.ts:60](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L60)
+[src/types/module.ts:36](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L36)
___
@@ -97,17 +101,21 @@ ___
#### Defined in
-[src/types/module.ts:63](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L63)
+[src/types/module.ts:59](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L59)
___
### plugins
-• **plugins**: [`CommandPlugin`](CommandPlugin.md)[]
+• **plugins**: [`InitPlugin`](InitPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[plugins](Module.md#plugins)
#### Defined in
-[src/types/module.ts:61](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L61)
+[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L37)
___
@@ -121,4 +129,4 @@ ___
#### Defined in
-[src/types/module.ts:59](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L59)
+[src/types/module.ts:56](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L56)
diff --git a/docs/api/interfaces/ButtonCommand.md b/docs/api/interfaces/ButtonCommand.md
index ed6b8babf..bb551facf 100644
--- a/docs/api/interfaces/ButtonCommand.md
+++ b/docs/api/interfaces/ButtonCommand.md
@@ -24,7 +24,7 @@ custom_edit_url: null
#### Defined in
-[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L38)
+[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L38)
___
@@ -52,7 +52,7 @@ ___
#### Defined in
-[src/types/module.ts:85](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L85)
+[src/types/module.ts:75](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L75)
___
@@ -66,27 +66,35 @@ ___
#### Defined in
-[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L37)
+[src/types/module.ts:35](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L35)
___
### onEvent
-• **onEvent**: [`EventPlugin`](EventPlugin.md)<[`Button`](../enums/CommandType.md#button)\>[]
+• **onEvent**: [`ControlPlugin`](ControlPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[onEvent](Module.md#onevent)
#### Defined in
-[src/types/module.ts:83](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L83)
+[src/types/module.ts:36](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L36)
___
### plugins
-• **plugins**: [`CommandPlugin`](CommandPlugin.md)[]
+• **plugins**: [`InitPlugin`](InitPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[plugins](Module.md#plugins)
#### Defined in
-[src/types/module.ts:84](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L84)
+[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L37)
___
@@ -100,4 +108,4 @@ ___
#### Defined in
-[src/types/module.ts:82](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L82)
+[src/types/module.ts:74](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L74)
diff --git a/docs/api/interfaces/ChannelSelectCommand.md b/docs/api/interfaces/ChannelSelectCommand.md
index d3995c080..c7306e9b3 100644
--- a/docs/api/interfaces/ChannelSelectCommand.md
+++ b/docs/api/interfaces/ChannelSelectCommand.md
@@ -24,7 +24,7 @@ custom_edit_url: null
#### Defined in
-[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L38)
+[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L38)
___
@@ -52,7 +52,7 @@ ___
#### Defined in
-[src/types/module.ts:99](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L99)
+[src/types/module.ts:85](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L85)
___
@@ -66,27 +66,35 @@ ___
#### Defined in
-[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L37)
+[src/types/module.ts:35](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L35)
___
### onEvent
-• **onEvent**: [`EventPlugin`](EventPlugin.md)<[`ChannelSelect`](../enums/CommandType.md#channelselect)\>[]
+• **onEvent**: [`ControlPlugin`](ControlPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[onEvent](Module.md#onevent)
#### Defined in
-[src/types/module.ts:97](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L97)
+[src/types/module.ts:36](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L36)
___
### plugins
-• **plugins**: [`CommandPlugin`](CommandPlugin.md)[]
+• **plugins**: [`InitPlugin`](InitPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[plugins](Module.md#plugins)
#### Defined in
-[src/types/module.ts:98](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L98)
+[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L37)
___
@@ -100,4 +108,4 @@ ___
#### Defined in
-[src/types/module.ts:96](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L96)
+[src/types/module.ts:84](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L84)
diff --git a/docs/api/interfaces/CommandPlugin.md b/docs/api/interfaces/CommandPlugin.md
index 24b74f510..109a6964f 100644
--- a/docs/api/interfaces/CommandPlugin.md
+++ b/docs/api/interfaces/CommandPlugin.md
@@ -6,17 +6,15 @@ sidebar_position: 0
custom_edit_url: null
---
+**`Deprecated`**
+
+Use the newer helper functions and import { controller } from '@sern/handler'
+
## Type parameters
| Name | Type |
| :------ | :------ |
-| `T` | extends keyof [`CommandModuleDefs`](../modules.md#commandmoduledefs) = keyof [`CommandModuleDefs`](../modules.md#commandmoduledefs) |
-
-## Hierarchy
-
-- [`Plugin`](Plugin.md)
-
- ↳ **`CommandPlugin`**
+| `T` | extends [`CommandType`](../enums/CommandType.md) = [`CommandType`](../enums/CommandType.md) |
## Properties
@@ -24,44 +22,34 @@ custom_edit_url: null
• `Optional` **description**: `string`
-**`Deprecated`**
-
-will be removed in the next update
-
-#### Inherited from
-
-[Plugin](Plugin.md).[description](Plugin.md#description)
-
#### Defined in
-[src/handler/plugins/plugin.ts:33](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L33)
+[src/types/plugin.ts:51](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L51)
___
### execute
-• **execute**: (`payload`: { `absPath`: `string` ; `mod`: [`CommandModuleDefs`](../modules.md#commandmoduledefs)[`T`] & { `description`: `string` ; `name`: `string` } }, `controller`: [`Controller`](Controller.md)) => `Awaitable`<`Result`<`void`, `void`\>\>
+• **execute**: (`m`: [`InitArgs`](InitArgs.md)<[`Processed`](../modules.md#processed)<[`CommandModule`](../modules.md#commandmodule)\>\>, `controller?`: [`Deprecated`](../modules.md#deprecated)<``"Please import controller instead"``\>) => [`PluginResult`](../modules.md#pluginresult)
#### Type declaration
-▸ (`payload`, `controller`): `Awaitable`<`Result`<`void`, `void`\>\>
+▸ (`m`, `controller?`): [`PluginResult`](../modules.md#pluginresult)
##### Parameters
| Name | Type |
| :------ | :------ |
-| `payload` | `Object` |
-| `payload.absPath` | `string` |
-| `payload.mod` | [`CommandModuleDefs`](../modules.md#commandmoduledefs)[`T`] & { `description`: `string` ; `name`: `string` } |
-| `controller` | [`Controller`](Controller.md) |
+| `m` | [`InitArgs`](InitArgs.md)<[`Processed`](../modules.md#processed)<[`CommandModule`](../modules.md#commandmodule)\>\> |
+| `controller?` | [`Deprecated`](../modules.md#deprecated)<``"Please import controller instead"``\> |
##### Returns
-`Awaitable`<`Result`<`void`, `void`\>\>
+[`PluginResult`](../modules.md#pluginresult)
#### Defined in
-[src/handler/plugins/plugin.ts:39](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L39)
+[src/types/plugin.ts:53](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L53)
___
@@ -69,28 +57,16 @@ ___
• `Optional` **name**: `string`
-**`Deprecated`**
-
-will be removed in the next update
-
-#### Inherited from
-
-[Plugin](Plugin.md).[name](Plugin.md#name)
-
#### Defined in
-[src/handler/plugins/plugin.ts:31](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L31)
+[src/types/plugin.ts:50](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L50)
___
### type
-• **type**: [`Command`](../enums/PluginType.md#command)
-
-#### Overrides
-
-[Plugin](Plugin.md).[type](Plugin.md#type)
+• **type**: [`Init`](../enums/PluginType.md#init)
#### Defined in
-[src/handler/plugins/plugin.ts:38](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L38)
+[src/types/plugin.ts:52](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L52)
diff --git a/docs/api/interfaces/ContextMenuMsg.md b/docs/api/interfaces/ContextMenuMsg.md
index e79b148e2..29702757d 100644
--- a/docs/api/interfaces/ContextMenuMsg.md
+++ b/docs/api/interfaces/ContextMenuMsg.md
@@ -24,7 +24,7 @@ custom_edit_url: null
#### Defined in
-[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L38)
+[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L38)
___
@@ -52,7 +52,7 @@ ___
#### Defined in
-[src/types/module.ts:78](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L78)
+[src/types/module.ts:70](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L70)
___
@@ -66,27 +66,35 @@ ___
#### Defined in
-[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L37)
+[src/types/module.ts:35](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L35)
___
### onEvent
-• **onEvent**: [`EventPlugin`](EventPlugin.md)<[`CtxMsg`](../enums/CommandType.md#ctxmsg)\>[]
+• **onEvent**: [`ControlPlugin`](ControlPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[onEvent](Module.md#onevent)
#### Defined in
-[src/types/module.ts:76](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L76)
+[src/types/module.ts:36](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L36)
___
### plugins
-• **plugins**: [`CommandPlugin`](CommandPlugin.md)[]
+• **plugins**: [`InitPlugin`](InitPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[plugins](Module.md#plugins)
#### Defined in
-[src/types/module.ts:77](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L77)
+[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L37)
___
@@ -100,4 +108,4 @@ ___
#### Defined in
-[src/types/module.ts:75](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L75)
+[src/types/module.ts:69](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L69)
diff --git a/docs/api/interfaces/ContextMenuUser.md b/docs/api/interfaces/ContextMenuUser.md
index c31fea1dd..004d0be28 100644
--- a/docs/api/interfaces/ContextMenuUser.md
+++ b/docs/api/interfaces/ContextMenuUser.md
@@ -24,7 +24,7 @@ custom_edit_url: null
#### Defined in
-[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L38)
+[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L38)
___
@@ -52,7 +52,7 @@ ___
#### Defined in
-[src/types/module.ts:71](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L71)
+[src/types/module.ts:65](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L65)
___
@@ -66,27 +66,35 @@ ___
#### Defined in
-[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L37)
+[src/types/module.ts:35](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L35)
___
### onEvent
-• **onEvent**: [`EventPlugin`](EventPlugin.md)<[`CtxUser`](../enums/CommandType.md#ctxuser)\>[]
+• **onEvent**: [`ControlPlugin`](ControlPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[onEvent](Module.md#onevent)
#### Defined in
-[src/types/module.ts:69](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L69)
+[src/types/module.ts:36](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L36)
___
### plugins
-• **plugins**: [`CommandPlugin`](CommandPlugin.md)[]
+• **plugins**: [`InitPlugin`](InitPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[plugins](Module.md#plugins)
#### Defined in
-[src/types/module.ts:70](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L70)
+[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L37)
___
@@ -100,4 +108,4 @@ ___
#### Defined in
-[src/types/module.ts:68](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L68)
+[src/types/module.ts:64](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L64)
diff --git a/docs/api/interfaces/ControlPlugin.md b/docs/api/interfaces/ControlPlugin.md
new file mode 100644
index 000000000..cec6e915b
--- /dev/null
+++ b/docs/api/interfaces/ControlPlugin.md
@@ -0,0 +1,47 @@
+---
+id: "ControlPlugin"
+title: "Interface: ControlPlugin"
+sidebar_label: "ControlPlugin"
+sidebar_position: 0
+custom_edit_url: null
+---
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `Args` | extends `any`[] = `any`[] |
+
+## Properties
+
+### execute
+
+• **execute**: (...`args`: `Args`) => [`PluginResult`](../modules.md#pluginresult)
+
+#### Type declaration
+
+▸ (...`args`): [`PluginResult`](../modules.md#pluginresult)
+
+##### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `...args` | `Args` |
+
+##### Returns
+
+[`PluginResult`](../modules.md#pluginresult)
+
+#### Defined in
+
+[src/types/plugin.ts:39](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L39)
+
+___
+
+### type
+
+• **type**: [`Event`](../enums/PluginType.md#event)
+
+#### Defined in
+
+[src/types/plugin.ts:38](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L38)
diff --git a/docs/api/interfaces/Controller.md b/docs/api/interfaces/Controller.md
index 6e9f6094e..3706b0d12 100644
--- a/docs/api/interfaces/Controller.md
+++ b/docs/api/interfaces/Controller.md
@@ -22,7 +22,7 @@ custom_edit_url: null
#### Defined in
-[src/handler/plugins/plugin.ts:26](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L26)
+[src/types/plugin.ts:25](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L25)
___
@@ -40,4 +40,4 @@ ___
#### Defined in
-[src/handler/plugins/plugin.ts:27](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L27)
+[src/types/plugin.ts:26](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L26)
diff --git a/docs/api/interfaces/Dependencies.md b/docs/api/interfaces/Dependencies.md
index f02fb4598..4747ed4ad 100644
--- a/docs/api/interfaces/Dependencies.md
+++ b/docs/api/interfaces/Dependencies.md
@@ -14,7 +14,7 @@ custom_edit_url: null
#### Defined in
-[src/types/handler.ts:41](https://github.com/sern-handler/handler/blob/3daacfc/src/types/handler.ts#L41)
+[src/types/handler.ts:40](https://github.com/sern-handler/handler/blob/33f1446/src/types/handler.ts#L40)
___
@@ -24,7 +24,7 @@ ___
#### Defined in
-[src/types/handler.ts:43](https://github.com/sern-handler/handler/blob/3daacfc/src/types/handler.ts#L43)
+[src/types/handler.ts:42](https://github.com/sern-handler/handler/blob/33f1446/src/types/handler.ts#L42)
___
@@ -34,7 +34,7 @@ ___
#### Defined in
-[src/types/handler.ts:46](https://github.com/sern-handler/handler/blob/3daacfc/src/types/handler.ts#L46)
+[src/types/handler.ts:45](https://github.com/sern-handler/handler/blob/33f1446/src/types/handler.ts#L45)
___
@@ -44,7 +44,7 @@ ___
#### Defined in
-[src/types/handler.ts:42](https://github.com/sern-handler/handler/blob/3daacfc/src/types/handler.ts#L42)
+[src/types/handler.ts:41](https://github.com/sern-handler/handler/blob/33f1446/src/types/handler.ts#L41)
___
@@ -54,7 +54,7 @@ ___
#### Defined in
-[src/types/handler.ts:45](https://github.com/sern-handler/handler/blob/3daacfc/src/types/handler.ts#L45)
+[src/types/handler.ts:44](https://github.com/sern-handler/handler/blob/33f1446/src/types/handler.ts#L44)
___
@@ -64,4 +64,4 @@ ___
#### Defined in
-[src/types/handler.ts:44](https://github.com/sern-handler/handler/blob/3daacfc/src/types/handler.ts#L44)
+[src/types/handler.ts:43](https://github.com/sern-handler/handler/blob/33f1446/src/types/handler.ts#L43)
diff --git a/docs/api/interfaces/DependencyConfiguration.md b/docs/api/interfaces/DependencyConfiguration.md
new file mode 100644
index 000000000..6819e1aae
--- /dev/null
+++ b/docs/api/interfaces/DependencyConfiguration.md
@@ -0,0 +1,47 @@
+---
+id: "DependencyConfiguration"
+title: "Interface: DependencyConfiguration"
+sidebar_label: "DependencyConfiguration"
+sidebar_position: 0
+custom_edit_url: null
+---
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | extends [`Dependencies`](Dependencies.md) |
+
+## Properties
+
+### build
+
+• **build**: (`root`: `Container`<`Omit`<[`Dependencies`](Dependencies.md), ``"@sern/client"``\>, {}\>) => `Container`<`T`, {}\>
+
+#### Type declaration
+
+▸ (`root`): `Container`<`T`, {}\>
+
+##### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `root` | `Container`<`Omit`<[`Dependencies`](Dependencies.md), ``"@sern/client"``\>, {}\> |
+
+##### Returns
+
+`Container`<`T`, {}\>
+
+#### Defined in
+
+[src/types/handler.ts:68](https://github.com/sern-handler/handler/blob/33f1446/src/types/handler.ts#L68)
+
+___
+
+### exclude
+
+• `Optional` **exclude**: `Set`<``"@sern/logger"``\>
+
+#### Defined in
+
+[src/types/handler.ts:67](https://github.com/sern-handler/handler/blob/33f1446/src/types/handler.ts#L67)
diff --git a/docs/api/interfaces/DiscordEventCommand.md b/docs/api/interfaces/DiscordEventCommand.md
new file mode 100644
index 000000000..80748c954
--- /dev/null
+++ b/docs/api/interfaces/DiscordEventCommand.md
@@ -0,0 +1,113 @@
+---
+id: "DiscordEventCommand"
+title: "Interface: DiscordEventCommand"
+sidebar_label: "DiscordEventCommand"
+sidebar_position: 0
+custom_edit_url: null
+---
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | extends keyof `ClientEvents` = keyof `ClientEvents` |
+
+## Hierarchy
+
+- [`Module`](Module.md)
+
+ ↳ **`DiscordEventCommand`**
+
+## Properties
+
+### description
+
+• `Optional` **description**: `string`
+
+#### Inherited from
+
+[Module](Module.md).[description](Module.md#description)
+
+#### Defined in
+
+[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L38)
+
+___
+
+### name
+
+• `Optional` **name**: `T`
+
+#### Overrides
+
+[Module](Module.md).[name](Module.md#name)
+
+#### Defined in
+
+[src/types/module.ts:123](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L123)
+
+___
+
+### onEvent
+
+• **onEvent**: [`ControlPlugin`](ControlPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[onEvent](Module.md#onevent)
+
+#### Defined in
+
+[src/types/module.ts:36](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L36)
+
+___
+
+### plugins
+
+• **plugins**: [`InitPlugin`](InitPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[plugins](Module.md#plugins)
+
+#### Defined in
+
+[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L37)
+
+___
+
+### type
+
+• **type**: [`Discord`](../enums/EventType.md#discord)
+
+#### Overrides
+
+[Module](Module.md).[type](Module.md#type)
+
+#### Defined in
+
+[src/types/module.ts:124](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L124)
+
+## Methods
+
+### execute
+
+▸ **execute**(...`args`): `unknown`
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `...args` | `ClientEvents`[`T`] |
+
+#### Returns
+
+`unknown`
+
+#### Overrides
+
+Module.execute
+
+#### Defined in
+
+[src/types/module.ts:125](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L125)
diff --git a/docs/api/interfaces/ErrorHandling.md b/docs/api/interfaces/ErrorHandling.md
index ab0f2044d..9f6091e0c 100644
--- a/docs/api/interfaces/ErrorHandling.md
+++ b/docs/api/interfaces/ErrorHandling.md
@@ -20,7 +20,7 @@ Number of times the process should throw an error until crashing and exiting
#### Defined in
-[src/handler/contracts/errorHandling.ts:9](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/contracts/errorHandling.ts#L9)
+[src/handler/contracts/errorHandling.ts:8](https://github.com/sern-handler/handler/blob/33f1446/src/handler/contracts/errorHandling.ts#L8)
## Methods
@@ -42,7 +42,7 @@ Utility function to crash
#### Defined in
-[src/handler/contracts/errorHandling.ts:15](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/contracts/errorHandling.ts#L15)
+[src/handler/contracts/errorHandling.ts:14](https://github.com/sern-handler/handler/blob/33f1446/src/handler/contracts/errorHandling.ts#L14)
___
@@ -64,4 +64,4 @@ A function that is called on every crash. Updates keepAlive
#### Defined in
-[src/handler/contracts/errorHandling.ts:21](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/contracts/errorHandling.ts#L21)
+[src/handler/contracts/errorHandling.ts:20](https://github.com/sern-handler/handler/blob/33f1446/src/handler/contracts/errorHandling.ts#L20)
diff --git a/docs/api/interfaces/EventPlugin.md b/docs/api/interfaces/EventPlugin.md
index 699c75ed5..f6f174397 100644
--- a/docs/api/interfaces/EventPlugin.md
+++ b/docs/api/interfaces/EventPlugin.md
@@ -1,22 +1,20 @@
---
id: "EventPlugin"
-title: "Interface: EventPlugin"
+title: "Interface: EventPlugin"
sidebar_label: "EventPlugin"
sidebar_position: 0
custom_edit_url: null
---
+**`Deprecated`**
+
+Use the newer helper functions
+
## Type parameters
| Name | Type |
| :------ | :------ |
-| `K` | extends keyof [`CommandModuleDefs`](../modules.md#commandmoduledefs) = keyof [`CommandModuleDefs`](../modules.md#commandmoduledefs) |
-
-## Hierarchy
-
-- [`Plugin`](Plugin.md)
-
- ↳ **`EventPlugin`**
+| `T` | extends [`CommandType`](../enums/CommandType.md) |
## Properties
@@ -24,42 +22,34 @@ custom_edit_url: null
• `Optional` **description**: `string`
-**`Deprecated`**
-
-will be removed in the next update
-
-#### Inherited from
-
-[Plugin](Plugin.md).[description](Plugin.md#description)
-
#### Defined in
-[src/handler/plugins/plugin.ts:33](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L33)
+[src/types/plugin.ts:61](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L61)
___
### execute
-• **execute**: (`event`: `Parameters`<[`CommandModuleDefs`](../modules.md#commandmoduledefs)[`K`][``"execute"``]\>, `controller`: [`Controller`](Controller.md)) => `Awaitable`<`Result`<`void`, `void`\>\>
+• **execute**: (`args`: [`CommandArgs`](../modules.md#commandargs)<`T`, [`Event`](../enums/PluginType.md#event)\>, `controller?`: [`Controller`](Controller.md)) => [`PluginResult`](../modules.md#pluginresult)
#### Type declaration
-▸ (`event`, `controller`): `Awaitable`<`Result`<`void`, `void`\>\>
+▸ (`args`, `controller?`): [`PluginResult`](../modules.md#pluginresult)
##### Parameters
| Name | Type |
| :------ | :------ |
-| `event` | `Parameters`<[`CommandModuleDefs`](../modules.md#commandmoduledefs)[`K`][``"execute"``]\> |
-| `controller` | [`Controller`](Controller.md) |
+| `args` | [`CommandArgs`](../modules.md#commandargs)<`T`, [`Event`](../enums/PluginType.md#event)\> |
+| `controller?` | [`Controller`](Controller.md) |
##### Returns
-`Awaitable`<`Result`<`void`, `void`\>\>
+[`PluginResult`](../modules.md#pluginresult)
#### Defined in
-[src/handler/plugins/plugin.ts:82](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L82)
+[src/types/plugin.ts:63](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L63)
___
@@ -67,17 +57,9 @@ ___
• `Optional` **name**: `string`
-**`Deprecated`**
-
-will be removed in the next update
-
-#### Inherited from
-
-[Plugin](Plugin.md).[name](Plugin.md#name)
-
#### Defined in
-[src/handler/plugins/plugin.ts:31](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L31)
+[src/types/plugin.ts:60](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L60)
___
@@ -85,10 +67,6 @@ ___
• **type**: [`Event`](../enums/PluginType.md#event)
-#### Overrides
-
-[Plugin](Plugin.md).[type](Plugin.md#type)
-
#### Defined in
-[src/handler/plugins/plugin.ts:81](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L81)
+[src/types/plugin.ts:62](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L62)
diff --git a/docs/api/interfaces/ExternalEventCommand.md b/docs/api/interfaces/ExternalEventCommand.md
new file mode 100644
index 000000000..18eaf32da
--- /dev/null
+++ b/docs/api/interfaces/ExternalEventCommand.md
@@ -0,0 +1,117 @@
+---
+id: "ExternalEventCommand"
+title: "Interface: ExternalEventCommand"
+sidebar_label: "ExternalEventCommand"
+sidebar_position: 0
+custom_edit_url: null
+---
+
+## Hierarchy
+
+- [`Module`](Module.md)
+
+ ↳ **`ExternalEventCommand`**
+
+## Properties
+
+### description
+
+• `Optional` **description**: `string`
+
+#### Inherited from
+
+[Module](Module.md).[description](Module.md#description)
+
+#### Defined in
+
+[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L38)
+
+___
+
+### emitter
+
+• **emitter**: `string`
+
+#### Defined in
+
+[src/types/module.ts:130](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L130)
+
+___
+
+### name
+
+• `Optional` **name**: `string`
+
+#### Overrides
+
+[Module](Module.md).[name](Module.md#name)
+
+#### Defined in
+
+[src/types/module.ts:129](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L129)
+
+___
+
+### onEvent
+
+• **onEvent**: [`ControlPlugin`](ControlPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[onEvent](Module.md#onevent)
+
+#### Defined in
+
+[src/types/module.ts:36](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L36)
+
+___
+
+### plugins
+
+• **plugins**: [`InitPlugin`](InitPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[plugins](Module.md#plugins)
+
+#### Defined in
+
+[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L37)
+
+___
+
+### type
+
+• **type**: [`External`](../enums/EventType.md#external)
+
+#### Overrides
+
+[Module](Module.md).[type](Module.md#type)
+
+#### Defined in
+
+[src/types/module.ts:131](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L131)
+
+## Methods
+
+### execute
+
+▸ **execute**(...`args`): `unknown`
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `...args` | `unknown`[] |
+
+#### Returns
+
+`unknown`
+
+#### Overrides
+
+Module.execute
+
+#### Defined in
+
+[src/types/module.ts:132](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L132)
diff --git a/docs/api/interfaces/InitArgs.md b/docs/api/interfaces/InitArgs.md
new file mode 100644
index 000000000..0fc5ee407
--- /dev/null
+++ b/docs/api/interfaces/InitArgs.md
@@ -0,0 +1,33 @@
+---
+id: "InitArgs"
+title: "Interface: InitArgs"
+sidebar_label: "InitArgs"
+sidebar_position: 0
+custom_edit_url: null
+---
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | extends [`Processed`](../modules.md#processed)<[`Module`](Module.md)\> |
+
+## Properties
+
+### absPath
+
+• **absPath**: `string`
+
+#### Defined in
+
+[src/handler/plugins/args.ts:106](https://github.com/sern-handler/handler/blob/33f1446/src/handler/plugins/args.ts#L106)
+
+___
+
+### module
+
+• **module**: `T`
+
+#### Defined in
+
+[src/handler/plugins/args.ts:105](https://github.com/sern-handler/handler/blob/33f1446/src/handler/plugins/args.ts#L105)
diff --git a/docs/api/interfaces/InitPlugin.md b/docs/api/interfaces/InitPlugin.md
new file mode 100644
index 000000000..9d4d15f5c
--- /dev/null
+++ b/docs/api/interfaces/InitPlugin.md
@@ -0,0 +1,47 @@
+---
+id: "InitPlugin"
+title: "Interface: InitPlugin"
+sidebar_label: "InitPlugin"
+sidebar_position: 0
+custom_edit_url: null
+---
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `Args` | extends `any`[] = `any`[] |
+
+## Properties
+
+### execute
+
+• **execute**: (...`args`: `Args`) => [`PluginResult`](../modules.md#pluginresult)
+
+#### Type declaration
+
+▸ (...`args`): [`PluginResult`](../modules.md#pluginresult)
+
+##### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `...args` | `Args` |
+
+##### Returns
+
+[`PluginResult`](../modules.md#pluginresult)
+
+#### Defined in
+
+[src/types/plugin.ts:35](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L35)
+
+___
+
+### type
+
+• **type**: [`Init`](../enums/PluginType.md#init)
+
+#### Defined in
+
+[src/types/plugin.ts:34](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L34)
diff --git a/docs/api/interfaces/Logging.md b/docs/api/interfaces/Logging.md
index fa370a25b..606df130b 100644
--- a/docs/api/interfaces/Logging.md
+++ b/docs/api/interfaces/Logging.md
@@ -34,7 +34,7 @@ custom_edit_url: null
#### Defined in
-[src/handler/contracts/logging.ts:7](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/contracts/logging.ts#L7)
+[src/handler/contracts/logging.ts:7](https://github.com/sern-handler/handler/blob/33f1446/src/handler/contracts/logging.ts#L7)
___
@@ -54,7 +54,7 @@ ___
#### Defined in
-[src/handler/contracts/logging.ts:4](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/contracts/logging.ts#L4)
+[src/handler/contracts/logging.ts:4](https://github.com/sern-handler/handler/blob/33f1446/src/handler/contracts/logging.ts#L4)
___
@@ -74,7 +74,7 @@ ___
#### Defined in
-[src/handler/contracts/logging.ts:6](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/contracts/logging.ts#L6)
+[src/handler/contracts/logging.ts:6](https://github.com/sern-handler/handler/blob/33f1446/src/handler/contracts/logging.ts#L6)
___
@@ -94,4 +94,4 @@ ___
#### Defined in
-[src/handler/contracts/logging.ts:5](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/contracts/logging.ts#L5)
+[src/handler/contracts/logging.ts:5](https://github.com/sern-handler/handler/blob/33f1446/src/handler/contracts/logging.ts#L5)
diff --git a/docs/api/interfaces/MentionableSelectCommand.md b/docs/api/interfaces/MentionableSelectCommand.md
index 49e14ccd0..0745a4708 100644
--- a/docs/api/interfaces/MentionableSelectCommand.md
+++ b/docs/api/interfaces/MentionableSelectCommand.md
@@ -24,7 +24,7 @@ custom_edit_url: null
#### Defined in
-[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L38)
+[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L38)
___
@@ -52,7 +52,7 @@ ___
#### Defined in
-[src/types/module.ts:113](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L113)
+[src/types/module.ts:95](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L95)
___
@@ -66,27 +66,35 @@ ___
#### Defined in
-[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L37)
+[src/types/module.ts:35](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L35)
___
### onEvent
-• **onEvent**: [`EventPlugin`](EventPlugin.md)<[`MentionableSelect`](../enums/CommandType.md#mentionableselect)\>[]
+• **onEvent**: [`ControlPlugin`](ControlPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[onEvent](Module.md#onevent)
#### Defined in
-[src/types/module.ts:111](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L111)
+[src/types/module.ts:36](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L36)
___
### plugins
-• **plugins**: [`CommandPlugin`](CommandPlugin.md)[]
+• **plugins**: [`InitPlugin`](InitPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[plugins](Module.md#plugins)
#### Defined in
-[src/types/module.ts:112](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L112)
+[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L37)
___
@@ -100,4 +108,4 @@ ___
#### Defined in
-[src/types/module.ts:110](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L110)
+[src/types/module.ts:94](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L94)
diff --git a/docs/api/interfaces/ModalSubmitCommand.md b/docs/api/interfaces/ModalSubmitCommand.md
index c020cdfe0..baaa21851 100644
--- a/docs/api/interfaces/ModalSubmitCommand.md
+++ b/docs/api/interfaces/ModalSubmitCommand.md
@@ -24,7 +24,7 @@ custom_edit_url: null
#### Defined in
-[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L38)
+[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L38)
___
@@ -52,7 +52,7 @@ ___
#### Defined in
-[src/types/module.ts:127](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L127)
+[src/types/module.ts:105](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L105)
___
@@ -66,27 +66,35 @@ ___
#### Defined in
-[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L37)
+[src/types/module.ts:35](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L35)
___
### onEvent
-• **onEvent**: [`EventPlugin`](EventPlugin.md)<[`Modal`](../enums/CommandType.md#modal)\>[]
+• **onEvent**: [`ControlPlugin`](ControlPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[onEvent](Module.md#onevent)
#### Defined in
-[src/types/module.ts:125](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L125)
+[src/types/module.ts:36](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L36)
___
### plugins
-• **plugins**: [`CommandPlugin`](CommandPlugin.md)[]
+• **plugins**: [`InitPlugin`](InitPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[plugins](Module.md#plugins)
#### Defined in
-[src/types/module.ts:126](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L126)
+[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L37)
___
@@ -100,4 +108,4 @@ ___
#### Defined in
-[src/types/module.ts:124](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L124)
+[src/types/module.ts:104](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L104)
diff --git a/docs/api/interfaces/Module.md b/docs/api/interfaces/Module.md
index 5b3fcbd3b..c85ace06d 100644
--- a/docs/api/interfaces/Module.md
+++ b/docs/api/interfaces/Module.md
@@ -34,7 +34,11 @@ custom_edit_url: null
↳ [`ModalSubmitCommand`](ModalSubmitCommand.md)
- ↳ [`AutocompleteCommand`](AutocompleteCommand.md)
+ ↳ [`SernEventCommand`](SernEventCommand.md)
+
+ ↳ [`DiscordEventCommand`](DiscordEventCommand.md)
+
+ ↳ [`ExternalEventCommand`](ExternalEventCommand.md)
## Properties
@@ -44,7 +48,7 @@ custom_edit_url: null
#### Defined in
-[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L38)
+[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L38)
___
@@ -68,7 +72,7 @@ ___
#### Defined in
-[src/types/module.ts:39](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L39)
+[src/types/module.ts:39](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L39)
___
@@ -78,14 +82,34 @@ ___
#### Defined in
-[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L37)
+[src/types/module.ts:35](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L35)
+
+___
+
+### onEvent
+
+• **onEvent**: [`ControlPlugin`](ControlPlugin.md)<`any`[]\>[]
+
+#### Defined in
+
+[src/types/module.ts:36](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L36)
+
+___
+
+### plugins
+
+• **plugins**: [`InitPlugin`](InitPlugin.md)<`any`[]\>[]
+
+#### Defined in
+
+[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L37)
___
### type
-• `Optional` **type**: [`CommandType`](../enums/CommandType.md) \| [`EventType`](../enums/EventType.md)
+• **type**: [`CommandType`](../enums/CommandType.md) \| [`EventType`](../enums/EventType.md)
#### Defined in
-[src/types/module.ts:36](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L36)
+[src/types/module.ts:34](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L34)
diff --git a/docs/api/interfaces/ModuleManager.md b/docs/api/interfaces/ModuleManager.md
index 967914de8..af48d5a28 100644
--- a/docs/api/interfaces/ModuleManager.md
+++ b/docs/api/interfaces/ModuleManager.md
@@ -26,7 +26,7 @@ custom_edit_url: null
| Name | Type |
| :------ | :------ |
-| `strat` | (`ms`: [`ModuleStore`](../classes/ModuleStore.md)) => `undefined` \| [`CommandModuleDefs`](../modules.md#commandmoduledefs)[`T`] |
+| `strat` | (`ms`: [`ModuleStore`](../classes/ModuleStore.md)) => `undefined` \| [`Processed`](../modules.md#processed)<[`CommandModuleDefs`](../modules.md#commandmoduledefs)[`T`]\> |
#### Returns
@@ -34,7 +34,7 @@ custom_edit_url: null
#### Defined in
-[src/handler/contracts/moduleManager.ts:7](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/contracts/moduleManager.ts#L7)
+[src/handler/contracts/moduleManager.ts:6](https://github.com/sern-handler/handler/blob/33f1446/src/handler/contracts/moduleManager.ts#L6)
___
@@ -54,4 +54,4 @@ ___
#### Defined in
-[src/handler/contracts/moduleManager.ts:8](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/contracts/moduleManager.ts#L8)
+[src/handler/contracts/moduleManager.ts:9](https://github.com/sern-handler/handler/blob/33f1446/src/handler/contracts/moduleManager.ts#L9)
diff --git a/docs/api/interfaces/Plugin.md b/docs/api/interfaces/Plugin.md
index b6eea96a0..6642045d7 100644
--- a/docs/api/interfaces/Plugin.md
+++ b/docs/api/interfaces/Plugin.md
@@ -1,60 +1,40 @@
---
id: "Plugin"
-title: "Interface: Plugin"
+title: "Interface: Plugin"
sidebar_label: "Plugin"
sidebar_position: 0
custom_edit_url: null
---
-## Hierarchy
+## Type parameters
-- **`Plugin`**
-
- ↳ [`CommandPlugin`](CommandPlugin.md)
-
- ↳ [`DiscordEmitterPlugin`](DiscordEmitterPlugin.md)
-
- ↳ [`ExternalEmitterPlugin`](ExternalEmitterPlugin.md)
-
- ↳ [`SernEmitterPlugin`](SernEmitterPlugin.md)
-
- ↳ [`AutocompletePlugin`](AutocompletePlugin.md)
-
- ↳ [`EventPlugin`](EventPlugin.md)
-
- ↳ [`SernEventPlugin`](SernEventPlugin.md)
-
- ↳ [`ExternalEventPlugin`](ExternalEventPlugin.md)
-
- ↳ [`DiscordEventPlugin`](DiscordEventPlugin.md)
+| Name | Type |
+| :------ | :------ |
+| `Args` | extends `any`[] = `any`[] |
## Properties
-### description
+### execute
-• `Optional` **description**: `string`
+• **execute**: (...`args`: `Args`) => [`PluginResult`](../modules.md#pluginresult)
-**`Deprecated`**
+#### Type declaration
-will be removed in the next update
+▸ (...`args`): [`PluginResult`](../modules.md#pluginresult)
+
+##### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `...args` | `Args` |
+
+##### Returns
+
+[`PluginResult`](../modules.md#pluginresult)
#### Defined in
-[src/handler/plugins/plugin.ts:33](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L33)
-
-___
-
-### name
-
-• `Optional` **name**: `string`
-
-**`Deprecated`**
-
-will be removed in the next update
-
-#### Defined in
-
-[src/handler/plugins/plugin.ts:31](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L31)
+[src/types/plugin.ts:30](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L30)
___
@@ -64,4 +44,4 @@ ___
#### Defined in
-[src/handler/plugins/plugin.ts:34](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L34)
+[src/types/plugin.ts:29](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L29)
diff --git a/docs/api/interfaces/RoleSelectCommand.md b/docs/api/interfaces/RoleSelectCommand.md
index cfa6d806a..375cd7658 100644
--- a/docs/api/interfaces/RoleSelectCommand.md
+++ b/docs/api/interfaces/RoleSelectCommand.md
@@ -24,7 +24,7 @@ custom_edit_url: null
#### Defined in
-[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L38)
+[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L38)
___
@@ -52,7 +52,7 @@ ___
#### Defined in
-[src/types/module.ts:106](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L106)
+[src/types/module.ts:90](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L90)
___
@@ -66,27 +66,35 @@ ___
#### Defined in
-[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L37)
+[src/types/module.ts:35](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L35)
___
### onEvent
-• **onEvent**: [`EventPlugin`](EventPlugin.md)<[`RoleSelect`](../enums/CommandType.md#roleselect)\>[]
+• **onEvent**: [`ControlPlugin`](ControlPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[onEvent](Module.md#onevent)
#### Defined in
-[src/types/module.ts:104](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L104)
+[src/types/module.ts:36](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L36)
___
### plugins
-• **plugins**: [`CommandPlugin`](CommandPlugin.md)[]
+• **plugins**: [`InitPlugin`](InitPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[plugins](Module.md#plugins)
#### Defined in
-[src/types/module.ts:105](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L105)
+[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L37)
___
@@ -100,4 +108,4 @@ ___
#### Defined in
-[src/types/module.ts:103](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L103)
+[src/types/module.ts:89](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L89)
diff --git a/docs/api/interfaces/SernAutocompleteData.md b/docs/api/interfaces/SernAutocompleteData.md
index 02202adfe..600599fe4 100644
--- a/docs/api/interfaces/SernAutocompleteData.md
+++ b/docs/api/interfaces/SernAutocompleteData.md
@@ -20,7 +20,7 @@ custom_edit_url: null
#### Defined in
-[src/types/module.ts:179](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L179)
+[src/types/module.ts:177](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L177)
___
@@ -30,7 +30,7 @@ ___
#### Defined in
-[src/types/module.ts:184](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L184)
+[src/types/module.ts:182](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L182)
___
@@ -44,13 +44,13 @@ Omit.description
#### Defined in
-node_modules/discord.js/typings/index.d.ts:4200
+node_modules/.pnpm/discord.js@14.7.1/node_modules/discord.js/typings/index.d.ts:4200
___
### descriptionLocalizations
-• `Optional` **descriptionLocalizations**: `Partial`<`Record`<``"en-US"`` \| ``"en-GB"`` \| ``"bg"`` \| ``"zh-CN"`` \| ``"zh-TW"`` \| ``"hr"`` \| ``"cs"`` \| ``"da"`` \| ``"nl"`` \| ``"fi"`` \| ``"fr"`` \| ``"de"`` \| ``"el"`` \| ``"hi"`` \| ``"hu"`` \| ``"it"`` \| ``"ja"`` \| ``"ko"`` \| ``"lt"`` \| ``"no"`` \| ``"pl"`` \| ``"pt-BR"`` \| ``"ro"`` \| ``"ru"`` \| ``"es-ES"`` \| ``"sv-SE"`` \| ``"th"`` \| ``"tr"`` \| ``"uk"`` \| ``"vi"``, ``null`` \| `string`\>\>
+• `Optional` **descriptionLocalizations**: `Partial`<`Record`<``"id"`` \| ``"en-US"`` \| ``"en-GB"`` \| ``"bg"`` \| ``"zh-CN"`` \| ``"zh-TW"`` \| ``"hr"`` \| ``"cs"`` \| ``"da"`` \| ``"nl"`` \| ``"fi"`` \| ``"fr"`` \| ``"de"`` \| ``"el"`` \| ``"hi"`` \| ``"hu"`` \| ``"it"`` \| ``"ja"`` \| ``"ko"`` \| ``"lt"`` \| ``"no"`` \| ``"pl"`` \| ``"pt-BR"`` \| ``"ro"`` \| ``"ru"`` \| ``"es-ES"`` \| ``"sv-SE"`` \| ``"th"`` \| ``"tr"`` \| ``"uk"`` \| ``"vi"``, ``null`` \| `string`\>\>
#### Inherited from
@@ -58,7 +58,7 @@ Omit.descriptionLocalizations
#### Defined in
-node_modules/discord.js/typings/index.d.ts:4201
+node_modules/.pnpm/discord.js@14.7.1/node_modules/discord.js/typings/index.d.ts:4201
___
@@ -72,13 +72,13 @@ Omit.name
#### Defined in
-node_modules/discord.js/typings/index.d.ts:4198
+node_modules/.pnpm/discord.js@14.7.1/node_modules/discord.js/typings/index.d.ts:4198
___
### nameLocalizations
-• `Optional` **nameLocalizations**: `Partial`<`Record`<``"en-US"`` \| ``"en-GB"`` \| ``"bg"`` \| ``"zh-CN"`` \| ``"zh-TW"`` \| ``"hr"`` \| ``"cs"`` \| ``"da"`` \| ``"nl"`` \| ``"fi"`` \| ``"fr"`` \| ``"de"`` \| ``"el"`` \| ``"hi"`` \| ``"hu"`` \| ``"it"`` \| ``"ja"`` \| ``"ko"`` \| ``"lt"`` \| ``"no"`` \| ``"pl"`` \| ``"pt-BR"`` \| ``"ro"`` \| ``"ru"`` \| ``"es-ES"`` \| ``"sv-SE"`` \| ``"th"`` \| ``"tr"`` \| ``"uk"`` \| ``"vi"``, ``null`` \| `string`\>\>
+• `Optional` **nameLocalizations**: `Partial`<`Record`<``"id"`` \| ``"en-US"`` \| ``"en-GB"`` \| ``"bg"`` \| ``"zh-CN"`` \| ``"zh-TW"`` \| ``"hr"`` \| ``"cs"`` \| ``"da"`` \| ``"nl"`` \| ``"fi"`` \| ``"fr"`` \| ``"de"`` \| ``"el"`` \| ``"hi"`` \| ``"hu"`` \| ``"it"`` \| ``"ja"`` \| ``"ko"`` \| ``"lt"`` \| ``"no"`` \| ``"pl"`` \| ``"pt-BR"`` \| ``"ro"`` \| ``"ru"`` \| ``"es-ES"`` \| ``"sv-SE"`` \| ``"th"`` \| ``"tr"`` \| ``"uk"`` \| ``"vi"``, ``null`` \| `string`\>\>
#### Inherited from
@@ -86,7 +86,7 @@ Omit.nameLocalizations
#### Defined in
-node_modules/discord.js/typings/index.d.ts:4199
+node_modules/.pnpm/discord.js@14.7.1/node_modules/discord.js/typings/index.d.ts:4199
___
@@ -100,7 +100,7 @@ Omit.required
#### Defined in
-node_modules/discord.js/typings/index.d.ts:4202
+node_modules/.pnpm/discord.js@14.7.1/node_modules/discord.js/typings/index.d.ts:4202
___
@@ -110,4 +110,4 @@ ___
#### Defined in
-[src/types/module.ts:180](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L180)
+[src/types/module.ts:178](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L178)
diff --git a/docs/api/interfaces/SernEventCommand.md b/docs/api/interfaces/SernEventCommand.md
new file mode 100644
index 000000000..f6dd5f820
--- /dev/null
+++ b/docs/api/interfaces/SernEventCommand.md
@@ -0,0 +1,113 @@
+---
+id: "SernEventCommand"
+title: "Interface: SernEventCommand"
+sidebar_label: "SernEventCommand"
+sidebar_position: 0
+custom_edit_url: null
+---
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | extends keyof [`SernEventsMapping`](../modules.md#serneventsmapping) = keyof [`SernEventsMapping`](../modules.md#serneventsmapping) |
+
+## Hierarchy
+
+- [`Module`](Module.md)
+
+ ↳ **`SernEventCommand`**
+
+## Properties
+
+### description
+
+• `Optional` **description**: `string`
+
+#### Inherited from
+
+[Module](Module.md).[description](Module.md#description)
+
+#### Defined in
+
+[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L38)
+
+___
+
+### name
+
+• `Optional` **name**: `T`
+
+#### Overrides
+
+[Module](Module.md).[name](Module.md#name)
+
+#### Defined in
+
+[src/types/module.ts:116](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L116)
+
+___
+
+### onEvent
+
+• **onEvent**: [`ControlPlugin`](ControlPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[onEvent](Module.md#onevent)
+
+#### Defined in
+
+[src/types/module.ts:36](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L36)
+
+___
+
+### plugins
+
+• **plugins**: [`InitPlugin`](InitPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[plugins](Module.md#plugins)
+
+#### Defined in
+
+[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L37)
+
+___
+
+### type
+
+• **type**: [`Sern`](../enums/EventType.md#sern)
+
+#### Overrides
+
+[Module](Module.md).[type](Module.md#type)
+
+#### Defined in
+
+[src/types/module.ts:117](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L117)
+
+## Methods
+
+### execute
+
+▸ **execute**(...`args`): `unknown`
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `...args` | [`SernEventsMapping`](../modules.md#serneventsmapping)[`T`] |
+
+#### Returns
+
+`unknown`
+
+#### Overrides
+
+Module.execute
+
+#### Defined in
+
+[src/types/module.ts:118](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L118)
diff --git a/docs/api/interfaces/SernSubCommandData.md b/docs/api/interfaces/SernSubCommandData.md
index 39a2fcd84..5b9975b31 100644
--- a/docs/api/interfaces/SernSubCommandData.md
+++ b/docs/api/interfaces/SernSubCommandData.md
@@ -24,7 +24,7 @@ BaseApplicationCommandOptionsData.autocomplete
#### Defined in
-node_modules/discord.js/typings/index.d.ts:4203
+node_modules/.pnpm/discord.js@14.7.1/node_modules/discord.js/typings/index.d.ts:4203
___
@@ -38,13 +38,13 @@ BaseApplicationCommandOptionsData.description
#### Defined in
-node_modules/discord.js/typings/index.d.ts:4200
+node_modules/.pnpm/discord.js@14.7.1/node_modules/discord.js/typings/index.d.ts:4200
___
### descriptionLocalizations
-• `Optional` **descriptionLocalizations**: `Partial`<`Record`<``"en-US"`` \| ``"en-GB"`` \| ``"bg"`` \| ``"zh-CN"`` \| ``"zh-TW"`` \| ``"hr"`` \| ``"cs"`` \| ``"da"`` \| ``"nl"`` \| ``"fi"`` \| ``"fr"`` \| ``"de"`` \| ``"el"`` \| ``"hi"`` \| ``"hu"`` \| ``"it"`` \| ``"ja"`` \| ``"ko"`` \| ``"lt"`` \| ``"no"`` \| ``"pl"`` \| ``"pt-BR"`` \| ``"ro"`` \| ``"ru"`` \| ``"es-ES"`` \| ``"sv-SE"`` \| ``"th"`` \| ``"tr"`` \| ``"uk"`` \| ``"vi"``, ``null`` \| `string`\>\>
+• `Optional` **descriptionLocalizations**: `Partial`<`Record`<``"id"`` \| ``"en-US"`` \| ``"en-GB"`` \| ``"bg"`` \| ``"zh-CN"`` \| ``"zh-TW"`` \| ``"hr"`` \| ``"cs"`` \| ``"da"`` \| ``"nl"`` \| ``"fi"`` \| ``"fr"`` \| ``"de"`` \| ``"el"`` \| ``"hi"`` \| ``"hu"`` \| ``"it"`` \| ``"ja"`` \| ``"ko"`` \| ``"lt"`` \| ``"no"`` \| ``"pl"`` \| ``"pt-BR"`` \| ``"ro"`` \| ``"ru"`` \| ``"es-ES"`` \| ``"sv-SE"`` \| ``"th"`` \| ``"tr"`` \| ``"uk"`` \| ``"vi"``, ``null`` \| `string`\>\>
#### Inherited from
@@ -52,7 +52,7 @@ BaseApplicationCommandOptionsData.descriptionLocalizations
#### Defined in
-node_modules/discord.js/typings/index.d.ts:4201
+node_modules/.pnpm/discord.js@14.7.1/node_modules/discord.js/typings/index.d.ts:4201
___
@@ -66,13 +66,13 @@ BaseApplicationCommandOptionsData.name
#### Defined in
-node_modules/discord.js/typings/index.d.ts:4198
+node_modules/.pnpm/discord.js@14.7.1/node_modules/discord.js/typings/index.d.ts:4198
___
### nameLocalizations
-• `Optional` **nameLocalizations**: `Partial`<`Record`<``"en-US"`` \| ``"en-GB"`` \| ``"bg"`` \| ``"zh-CN"`` \| ``"zh-TW"`` \| ``"hr"`` \| ``"cs"`` \| ``"da"`` \| ``"nl"`` \| ``"fi"`` \| ``"fr"`` \| ``"de"`` \| ``"el"`` \| ``"hi"`` \| ``"hu"`` \| ``"it"`` \| ``"ja"`` \| ``"ko"`` \| ``"lt"`` \| ``"no"`` \| ``"pl"`` \| ``"pt-BR"`` \| ``"ro"`` \| ``"ru"`` \| ``"es-ES"`` \| ``"sv-SE"`` \| ``"th"`` \| ``"tr"`` \| ``"uk"`` \| ``"vi"``, ``null`` \| `string`\>\>
+• `Optional` **nameLocalizations**: `Partial`<`Record`<``"id"`` \| ``"en-US"`` \| ``"en-GB"`` \| ``"bg"`` \| ``"zh-CN"`` \| ``"zh-TW"`` \| ``"hr"`` \| ``"cs"`` \| ``"da"`` \| ``"nl"`` \| ``"fi"`` \| ``"fr"`` \| ``"de"`` \| ``"el"`` \| ``"hi"`` \| ``"hu"`` \| ``"it"`` \| ``"ja"`` \| ``"ko"`` \| ``"lt"`` \| ``"no"`` \| ``"pl"`` \| ``"pt-BR"`` \| ``"ro"`` \| ``"ru"`` \| ``"es-ES"`` \| ``"sv-SE"`` \| ``"th"`` \| ``"tr"`` \| ``"uk"`` \| ``"vi"``, ``null`` \| `string`\>\>
#### Inherited from
@@ -80,7 +80,7 @@ BaseApplicationCommandOptionsData.nameLocalizations
#### Defined in
-node_modules/discord.js/typings/index.d.ts:4199
+node_modules/.pnpm/discord.js@14.7.1/node_modules/discord.js/typings/index.d.ts:4199
___
@@ -90,7 +90,7 @@ ___
#### Defined in
-[src/types/module.ts:201](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L201)
+[src/types/module.ts:214](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L214)
___
@@ -104,7 +104,7 @@ BaseApplicationCommandOptionsData.required
#### Defined in
-[src/types/module.ts:200](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L200)
+[src/types/module.ts:213](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L213)
___
@@ -114,4 +114,4 @@ ___
#### Defined in
-[src/types/module.ts:199](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L199)
+[src/types/module.ts:212](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L212)
diff --git a/docs/api/interfaces/SernSubCommandGroupData.md b/docs/api/interfaces/SernSubCommandGroupData.md
index 2c61c2188..5cc5e6e83 100644
--- a/docs/api/interfaces/SernSubCommandGroupData.md
+++ b/docs/api/interfaces/SernSubCommandGroupData.md
@@ -24,7 +24,7 @@ BaseApplicationCommandOptionsData.autocomplete
#### Defined in
-node_modules/discord.js/typings/index.d.ts:4203
+node_modules/.pnpm/discord.js@14.7.1/node_modules/discord.js/typings/index.d.ts:4203
___
@@ -38,13 +38,13 @@ BaseApplicationCommandOptionsData.description
#### Defined in
-node_modules/discord.js/typings/index.d.ts:4200
+node_modules/.pnpm/discord.js@14.7.1/node_modules/discord.js/typings/index.d.ts:4200
___
### descriptionLocalizations
-• `Optional` **descriptionLocalizations**: `Partial`<`Record`<``"en-US"`` \| ``"en-GB"`` \| ``"bg"`` \| ``"zh-CN"`` \| ``"zh-TW"`` \| ``"hr"`` \| ``"cs"`` \| ``"da"`` \| ``"nl"`` \| ``"fi"`` \| ``"fr"`` \| ``"de"`` \| ``"el"`` \| ``"hi"`` \| ``"hu"`` \| ``"it"`` \| ``"ja"`` \| ``"ko"`` \| ``"lt"`` \| ``"no"`` \| ``"pl"`` \| ``"pt-BR"`` \| ``"ro"`` \| ``"ru"`` \| ``"es-ES"`` \| ``"sv-SE"`` \| ``"th"`` \| ``"tr"`` \| ``"uk"`` \| ``"vi"``, ``null`` \| `string`\>\>
+• `Optional` **descriptionLocalizations**: `Partial`<`Record`<``"id"`` \| ``"en-US"`` \| ``"en-GB"`` \| ``"bg"`` \| ``"zh-CN"`` \| ``"zh-TW"`` \| ``"hr"`` \| ``"cs"`` \| ``"da"`` \| ``"nl"`` \| ``"fi"`` \| ``"fr"`` \| ``"de"`` \| ``"el"`` \| ``"hi"`` \| ``"hu"`` \| ``"it"`` \| ``"ja"`` \| ``"ko"`` \| ``"lt"`` \| ``"no"`` \| ``"pl"`` \| ``"pt-BR"`` \| ``"ro"`` \| ``"ru"`` \| ``"es-ES"`` \| ``"sv-SE"`` \| ``"th"`` \| ``"tr"`` \| ``"uk"`` \| ``"vi"``, ``null`` \| `string`\>\>
#### Inherited from
@@ -52,7 +52,7 @@ BaseApplicationCommandOptionsData.descriptionLocalizations
#### Defined in
-node_modules/discord.js/typings/index.d.ts:4201
+node_modules/.pnpm/discord.js@14.7.1/node_modules/discord.js/typings/index.d.ts:4201
___
@@ -66,13 +66,13 @@ BaseApplicationCommandOptionsData.name
#### Defined in
-node_modules/discord.js/typings/index.d.ts:4198
+node_modules/.pnpm/discord.js@14.7.1/node_modules/discord.js/typings/index.d.ts:4198
___
### nameLocalizations
-• `Optional` **nameLocalizations**: `Partial`<`Record`<``"en-US"`` \| ``"en-GB"`` \| ``"bg"`` \| ``"zh-CN"`` \| ``"zh-TW"`` \| ``"hr"`` \| ``"cs"`` \| ``"da"`` \| ``"nl"`` \| ``"fi"`` \| ``"fr"`` \| ``"de"`` \| ``"el"`` \| ``"hi"`` \| ``"hu"`` \| ``"it"`` \| ``"ja"`` \| ``"ko"`` \| ``"lt"`` \| ``"no"`` \| ``"pl"`` \| ``"pt-BR"`` \| ``"ro"`` \| ``"ru"`` \| ``"es-ES"`` \| ``"sv-SE"`` \| ``"th"`` \| ``"tr"`` \| ``"uk"`` \| ``"vi"``, ``null`` \| `string`\>\>
+• `Optional` **nameLocalizations**: `Partial`<`Record`<``"id"`` \| ``"en-US"`` \| ``"en-GB"`` \| ``"bg"`` \| ``"zh-CN"`` \| ``"zh-TW"`` \| ``"hr"`` \| ``"cs"`` \| ``"da"`` \| ``"nl"`` \| ``"fi"`` \| ``"fr"`` \| ``"de"`` \| ``"el"`` \| ``"hi"`` \| ``"hu"`` \| ``"it"`` \| ``"ja"`` \| ``"ko"`` \| ``"lt"`` \| ``"no"`` \| ``"pl"`` \| ``"pt-BR"`` \| ``"ro"`` \| ``"ru"`` \| ``"es-ES"`` \| ``"sv-SE"`` \| ``"th"`` \| ``"tr"`` \| ``"uk"`` \| ``"vi"``, ``null`` \| `string`\>\>
#### Inherited from
@@ -80,7 +80,7 @@ BaseApplicationCommandOptionsData.nameLocalizations
#### Defined in
-node_modules/discord.js/typings/index.d.ts:4199
+node_modules/.pnpm/discord.js@14.7.1/node_modules/discord.js/typings/index.d.ts:4199
___
@@ -90,7 +90,7 @@ ___
#### Defined in
-[src/types/module.ts:207](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L207)
+[src/types/module.ts:220](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L220)
___
@@ -104,7 +104,7 @@ BaseApplicationCommandOptionsData.required
#### Defined in
-[src/types/module.ts:206](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L206)
+[src/types/module.ts:219](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L219)
___
@@ -114,4 +114,4 @@ ___
#### Defined in
-[src/types/module.ts:205](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L205)
+[src/types/module.ts:218](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L218)
diff --git a/docs/api/interfaces/SlashCommand.md b/docs/api/interfaces/SlashCommand.md
index 34988d01a..1b3259096 100644
--- a/docs/api/interfaces/SlashCommand.md
+++ b/docs/api/interfaces/SlashCommand.md
@@ -16,15 +16,15 @@ custom_edit_url: null
### description
-• `Optional` **description**: `string`
+• **description**: `string`
-#### Inherited from
+#### Overrides
[Module](Module.md).[description](Module.md#description)
#### Defined in
-[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L38)
+[src/types/module.ts:50](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L50)
___
@@ -53,7 +53,7 @@ ___
#### Defined in
-[src/types/module.ts:55](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L55)
+[src/types/module.ts:52](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L52)
___
@@ -67,17 +67,21 @@ ___
#### Defined in
-[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L37)
+[src/types/module.ts:35](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L35)
___
### onEvent
-• **onEvent**: [`EventPlugin`](EventPlugin.md)<[`Slash`](../enums/CommandType.md#slash)\>[]
+• **onEvent**: [`ControlPlugin`](ControlPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[onEvent](Module.md#onevent)
#### Defined in
-[src/types/module.ts:52](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L52)
+[src/types/module.ts:36](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L36)
___
@@ -87,17 +91,21 @@ ___
#### Defined in
-[src/types/module.ts:54](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L54)
+[src/types/module.ts:51](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L51)
___
### plugins
-• **plugins**: [`CommandPlugin`](CommandPlugin.md)[]
+• **plugins**: [`InitPlugin`](InitPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[plugins](Module.md#plugins)
#### Defined in
-[src/types/module.ts:53](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L53)
+[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L37)
___
@@ -111,4 +119,4 @@ ___
#### Defined in
-[src/types/module.ts:51](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L51)
+[src/types/module.ts:49](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L49)
diff --git a/docs/api/interfaces/StringSelectCommand.md b/docs/api/interfaces/StringSelectCommand.md
index 4bd911245..1b8dd2113 100644
--- a/docs/api/interfaces/StringSelectCommand.md
+++ b/docs/api/interfaces/StringSelectCommand.md
@@ -24,7 +24,7 @@ custom_edit_url: null
#### Defined in
-[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L38)
+[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L38)
___
@@ -52,7 +52,7 @@ ___
#### Defined in
-[src/types/module.ts:92](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L92)
+[src/types/module.ts:80](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L80)
___
@@ -66,27 +66,35 @@ ___
#### Defined in
-[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L37)
+[src/types/module.ts:35](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L35)
___
### onEvent
-• **onEvent**: [`EventPlugin`](EventPlugin.md)<[`StringSelect`](../enums/CommandType.md#stringselect)\>[]
+• **onEvent**: [`ControlPlugin`](ControlPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[onEvent](Module.md#onevent)
#### Defined in
-[src/types/module.ts:90](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L90)
+[src/types/module.ts:36](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L36)
___
### plugins
-• **plugins**: [`CommandPlugin`](CommandPlugin.md)[]
+• **plugins**: [`InitPlugin`](InitPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[plugins](Module.md#plugins)
#### Defined in
-[src/types/module.ts:91](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L91)
+[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L37)
___
@@ -100,4 +108,4 @@ ___
#### Defined in
-[src/types/module.ts:89](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L89)
+[src/types/module.ts:79](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L79)
diff --git a/docs/api/interfaces/TextCommand.md b/docs/api/interfaces/TextCommand.md
index 1d4c7e72e..9a6e1acb2 100644
--- a/docs/api/interfaces/TextCommand.md
+++ b/docs/api/interfaces/TextCommand.md
@@ -20,7 +20,7 @@ custom_edit_url: null
#### Defined in
-[src/types/module.ts:46](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L46)
+[src/types/module.ts:44](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L44)
___
@@ -34,7 +34,7 @@ ___
#### Defined in
-[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L38)
+[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L38)
___
@@ -63,7 +63,7 @@ ___
#### Defined in
-[src/types/module.ts:47](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L47)
+[src/types/module.ts:45](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L45)
___
@@ -77,27 +77,35 @@ ___
#### Defined in
-[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L37)
+[src/types/module.ts:35](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L35)
___
### onEvent
-• **onEvent**: [`EventPlugin`](EventPlugin.md)<[`Text`](../enums/CommandType.md#text)\>[]
+• **onEvent**: [`ControlPlugin`](ControlPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[onEvent](Module.md#onevent)
#### Defined in
-[src/types/module.ts:44](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L44)
+[src/types/module.ts:36](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L36)
___
### plugins
-• **plugins**: [`CommandPlugin`](CommandPlugin.md)[]
+• **plugins**: [`InitPlugin`](InitPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[plugins](Module.md#plugins)
#### Defined in
-[src/types/module.ts:45](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L45)
+[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L37)
___
@@ -111,4 +119,4 @@ ___
#### Defined in
-[src/types/module.ts:43](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L43)
+[src/types/module.ts:43](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L43)
diff --git a/docs/api/interfaces/UserSelectCommand.md b/docs/api/interfaces/UserSelectCommand.md
index ca7d4a89c..0ed5c89a2 100644
--- a/docs/api/interfaces/UserSelectCommand.md
+++ b/docs/api/interfaces/UserSelectCommand.md
@@ -24,7 +24,7 @@ custom_edit_url: null
#### Defined in
-[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L38)
+[src/types/module.ts:38](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L38)
___
@@ -52,7 +52,7 @@ ___
#### Defined in
-[src/types/module.ts:120](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L120)
+[src/types/module.ts:100](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L100)
___
@@ -66,27 +66,35 @@ ___
#### Defined in
-[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L37)
+[src/types/module.ts:35](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L35)
___
### onEvent
-• **onEvent**: [`EventPlugin`](EventPlugin.md)<[`UserSelect`](../enums/CommandType.md#userselect)\>[]
+• **onEvent**: [`ControlPlugin`](ControlPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[onEvent](Module.md#onevent)
#### Defined in
-[src/types/module.ts:118](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L118)
+[src/types/module.ts:36](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L36)
___
### plugins
-• **plugins**: [`CommandPlugin`](CommandPlugin.md)[]
+• **plugins**: [`InitPlugin`](InitPlugin.md)<`any`[]\>[]
+
+#### Inherited from
+
+[Module](Module.md).[plugins](Module.md#plugins)
#### Defined in
-[src/types/module.ts:119](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L119)
+[src/types/module.ts:37](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L37)
___
@@ -100,4 +108,4 @@ ___
#### Defined in
-[src/types/module.ts:117](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L117)
+[src/types/module.ts:99](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L99)
diff --git a/docs/api/interfaces/Wrapper.md b/docs/api/interfaces/Wrapper.md
index c4a89c3fd..b1139d258 100644
--- a/docs/api/interfaces/Wrapper.md
+++ b/docs/api/interfaces/Wrapper.md
@@ -16,7 +16,7 @@ An object to be passed into Sern#init() function.
#### Defined in
-[src/handler/structures/wrapper.ts:9](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/wrapper.ts#L9)
+[src/handler/structures/wrapper.ts:9](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/wrapper.ts#L9)
___
@@ -32,7 +32,7 @@ ___
#### Defined in
-[src/handler/structures/wrapper.ts:11](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/wrapper.ts#L11)
+[src/handler/structures/wrapper.ts:11](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/wrapper.ts#L11)
___
@@ -42,7 +42,7 @@ ___
#### Defined in
-[src/handler/structures/wrapper.ts:8](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/wrapper.ts#L8)
+[src/handler/structures/wrapper.ts:8](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/wrapper.ts#L8)
___
@@ -52,4 +52,4 @@ ___
#### Defined in
-[src/handler/structures/wrapper.ts:10](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/structures/wrapper.ts#L10)
+[src/handler/structures/wrapper.ts:10](https://github.com/sern-handler/handler/blob/33f1446/src/handler/structures/wrapper.ts#L10)
diff --git a/docs/api/modules.md b/docs/api/modules.md
index 1a77384d4..55a1014c2 100644
--- a/docs/api/modules.md
+++ b/docs/api/modules.md
@@ -16,6 +16,7 @@ custom_edit_url: null
- [EventType](enums/EventType.md)
- [PayloadType](enums/PayloadType.md)
- [PluginType](enums/PluginType.md)
+- [SernError](enums/SernError.md)
## Classes
@@ -31,21 +32,22 @@ custom_edit_url: null
## Interfaces
- [AutocompleteCommand](interfaces/AutocompleteCommand.md)
-- [AutocompletePlugin](interfaces/AutocompletePlugin.md)
- [BothCommand](interfaces/BothCommand.md)
- [ButtonCommand](interfaces/ButtonCommand.md)
- [ChannelSelectCommand](interfaces/ChannelSelectCommand.md)
- [CommandPlugin](interfaces/CommandPlugin.md)
- [ContextMenuMsg](interfaces/ContextMenuMsg.md)
- [ContextMenuUser](interfaces/ContextMenuUser.md)
+- [ControlPlugin](interfaces/ControlPlugin.md)
- [Controller](interfaces/Controller.md)
- [Dependencies](interfaces/Dependencies.md)
-- [DiscordEmitterPlugin](interfaces/DiscordEmitterPlugin.md)
-- [DiscordEventPlugin](interfaces/DiscordEventPlugin.md)
+- [DependencyConfiguration](interfaces/DependencyConfiguration.md)
+- [DiscordEventCommand](interfaces/DiscordEventCommand.md)
- [ErrorHandling](interfaces/ErrorHandling.md)
- [EventPlugin](interfaces/EventPlugin.md)
-- [ExternalEmitterPlugin](interfaces/ExternalEmitterPlugin.md)
-- [ExternalEventPlugin](interfaces/ExternalEventPlugin.md)
+- [ExternalEventCommand](interfaces/ExternalEventCommand.md)
+- [InitArgs](interfaces/InitArgs.md)
+- [InitPlugin](interfaces/InitPlugin.md)
- [Logging](interfaces/Logging.md)
- [MentionableSelectCommand](interfaces/MentionableSelectCommand.md)
- [ModalSubmitCommand](interfaces/ModalSubmitCommand.md)
@@ -54,8 +56,7 @@ custom_edit_url: null
- [Plugin](interfaces/Plugin.md)
- [RoleSelectCommand](interfaces/RoleSelectCommand.md)
- [SernAutocompleteData](interfaces/SernAutocompleteData.md)
-- [SernEmitterPlugin](interfaces/SernEmitterPlugin.md)
-- [SernEventPlugin](interfaces/SernEventPlugin.md)
+- [SernEventCommand](interfaces/SernEventCommand.md)
- [SernSubCommandData](interfaces/SernSubCommandData.md)
- [SernSubCommandGroupData](interfaces/SernSubCommandGroupData.md)
- [SlashCommand](interfaces/SlashCommand.md)
@@ -66,13 +67,36 @@ custom_edit_url: null
## Type Aliases
-### AnyDefinedModule
+### AnyCommandPlugin
-Ƭ **AnyDefinedModule**: [`DefinedCommandModule`](modules.md#definedcommandmodule) \| [`DefinedEventModule`](modules.md#definedeventmodule)
+Ƭ **AnyCommandPlugin**: [`ControlPlugin`](interfaces/ControlPlugin.md) \| [`InitPlugin`](interfaces/InitPlugin.md)<[[`InitArgs`](interfaces/InitArgs.md)<[`Processed`](modules.md#processed)<[`CommandModule`](modules.md#commandmodule)\>\>]\>
#### Defined in
-[src/types/handler.ts:25](https://github.com/sern-handler/handler/blob/3daacfc/src/types/handler.ts#L25)
+[src/types/plugin.ts:42](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L42)
+
+___
+
+### AnyDefinedModule
+
+Ƭ **AnyDefinedModule**: [`Processed`](modules.md#processed)<[`CommandModule`](modules.md#commandmodule) \| [`EventModule`](modules.md#eventmodule)\>
+
+After modules are transformed, name and description are given default values if none
+are provided to Module. This type represents that transformation
+
+#### Defined in
+
+[src/types/handler.ts:24](https://github.com/sern-handler/handler/blob/33f1446/src/types/handler.ts#L24)
+
+___
+
+### AnyEventPlugin
+
+Ƭ **AnyEventPlugin**: [`ControlPlugin`](interfaces/ControlPlugin.md) \| [`InitPlugin`](interfaces/InitPlugin.md)<[[`InitArgs`](interfaces/InitArgs.md)<[`Processed`](modules.md#processed)<[`EventModule`](modules.md#eventmodule)\>\>]\>
+
+#### Defined in
+
+[src/types/plugin.ts:43](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L43)
___
@@ -82,7 +106,7 @@ ___
#### Defined in
-[src/types/module.ts:153](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L153)
+[src/types/module.ts:150](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L150)
___
@@ -92,7 +116,17 @@ ___
#### Defined in
-[src/types/handler.ts:15](https://github.com/sern-handler/handler/blob/3daacfc/src/types/handler.ts#L15)
+[src/types/handler.ts:16](https://github.com/sern-handler/handler/blob/33f1446/src/types/handler.ts#L16)
+
+___
+
+### AutocompletePlugin
+
+Ƭ **AutocompletePlugin**: [`Deprecated`](modules.md#deprecated)<``"Please view alternatives: "``\>
+
+#### Defined in
+
+[src/types/plugin.ts:68](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L68)
___
@@ -104,7 +138,24 @@ Type that replaces autocomplete with [SernAutocompleteData](interfaces/SernAutoc
#### Defined in
-[src/types/module.ts:190](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L190)
+[src/types/module.ts:203](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L203)
+
+___
+
+### CommandArgs
+
+Ƭ **CommandArgs**<`I`, `J`\>: `CommandArgsMatrix`[`I`][`J`]
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `I` | extends [`CommandType`](enums/CommandType.md) = [`CommandType`](enums/CommandType.md) |
+| `J` | extends [`PluginType`](enums/PluginType.md) = [`PluginType`](enums/PluginType.md) |
+
+#### Defined in
+
+[src/handler/plugins/args.ts:109](https://github.com/sern-handler/handler/blob/33f1446/src/handler/plugins/args.ts#L109)
___
@@ -114,7 +165,7 @@ ___
#### Defined in
-[src/types/module.ts:139](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L139)
+[src/types/module.ts:136](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L136)
___
@@ -141,7 +192,7 @@ ___
#### Defined in
-[src/types/module.ts:157](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L157)
+[src/types/module.ts:154](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L154)
___
@@ -151,76 +202,70 @@ ___
#### Defined in
-[src/handler/plugins/plugin.ts:108](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L108)
+[src/types/module.ts:185](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L185)
___
-### CommandModulePlugin
+### Deprecated
-Ƭ **CommandModulePlugin**<`T`\>: [`EventPlugin`](interfaces/EventPlugin.md)<`T`\> \| [`CommandPlugin`](interfaces/CommandPlugin.md)<`T`\>
+Ƭ **Deprecated**<`Message`\>: [`never`, `Message`]
#### Type parameters
| Name | Type |
| :------ | :------ |
-| `T` | extends [`CommandType`](enums/CommandType.md) |
+| `Message` | extends `string` |
#### Defined in
-[src/handler/plugins/plugin.ts:136](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L136)
+[src/types/handler.ts:65](https://github.com/sern-handler/handler/blob/33f1446/src/types/handler.ts#L65)
___
-### DefinedCommandModule
+### DiscordEmitterPlugin
-Ƭ **DefinedCommandModule**: [`CommandModule`](modules.md#commandmodule) & { `description`: `string` ; `name`: `string` }
-
-After modules are transformed, name and description are given default values if none
-are provided to Module. This type represents that transformation
+Ƭ **DiscordEmitterPlugin**: [`Deprecated`](modules.md#deprecated)<``"Please view alternatives: "``\>
#### Defined in
-[src/types/handler.ts:23](https://github.com/sern-handler/handler/blob/3daacfc/src/types/handler.ts#L23)
+[src/types/plugin.ts:65](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L65)
___
-### DefinedEventModule
+### DiscordEventPlugin
-Ƭ **DefinedEventModule**: [`EventModule`](modules.md#eventmodule) & { `name`: `string` }
+Ƭ **DiscordEventPlugin**: [`Deprecated`](modules.md#deprecated)<``"Please view alternatives: "``\>
#### Defined in
-[src/types/handler.ts:24](https://github.com/sern-handler/handler/blob/3daacfc/src/types/handler.ts#L24)
+[src/types/plugin.ts:71](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L71)
+
+___
+
+### EventArgs
+
+Ƭ **EventArgs**<`I`, `J`\>: `EventArgsMatrix`[`I`][`J`]
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `I` | extends [`EventType`](enums/EventType.md) = [`EventType`](enums/EventType.md) |
+| `J` | extends [`PluginType`](enums/PluginType.md) = [`PluginType`](enums/PluginType.md) |
+
+#### Defined in
+
+[src/handler/plugins/args.ts:113](https://github.com/sern-handler/handler/blob/33f1446/src/handler/plugins/args.ts#L113)
___
### EventModule
-Ƭ **EventModule**: `DiscordEventCommand` \| `SernEventCommand` \| `ExternalEventCommand`
+Ƭ **EventModule**: [`DiscordEventCommand`](interfaces/DiscordEventCommand.md) \| [`SernEventCommand`](interfaces/SernEventCommand.md) \| [`ExternalEventCommand`](interfaces/ExternalEventCommand.md)
#### Defined in
-[src/types/module.ts:138](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L138)
-
-___
-
-### EventModuleCommandPluginDefs
-
-Ƭ **EventModuleCommandPluginDefs**: `Object`
-
-Event Module Command Plugins
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `1` | [`DiscordEmitterPlugin`](interfaces/DiscordEmitterPlugin.md) |
-| `2` | [`SernEmitterPlugin`](interfaces/SernEmitterPlugin.md) |
-| `3` | [`ExternalEmitterPlugin`](interfaces/ExternalEmitterPlugin.md) |
-
-#### Defined in
-
-[src/handler/plugins/plugin.ts:126](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L126)
+[src/types/module.ts:135](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L135)
___
@@ -232,49 +277,13 @@ ___
| Name | Type |
| :------ | :------ |
-| `1` | `DiscordEventCommand` |
-| `2` | `SernEventCommand` |
-| `3` | `ExternalEventCommand` |
+| `1` | [`DiscordEventCommand`](interfaces/DiscordEventCommand.md) |
+| `2` | [`SernEventCommand`](interfaces/SernEventCommand.md) |
+| `3` | [`ExternalEventCommand`](interfaces/ExternalEventCommand.md) |
#### Defined in
-[src/types/module.ts:172](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L172)
-
-___
-
-### EventModuleEventPluginDefs
-
-Ƭ **EventModuleEventPluginDefs**: `Object`
-
-Event Module Event Plugins
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `1` | [`DiscordEventPlugin`](interfaces/DiscordEventPlugin.md) |
-| `2` | [`SernEventPlugin`](interfaces/SernEventPlugin.md) |
-| `3` | [`ExternalEventPlugin`](interfaces/ExternalEventPlugin.md) |
-
-#### Defined in
-
-[src/handler/plugins/plugin.ts:117](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L117)
-
-___
-
-### EventModulePlugin
-
-Ƭ **EventModulePlugin**<`T`\>: [`EventModuleEventPluginDefs`](modules.md#eventmoduleeventplugindefs)[`T`] \| [`EventModuleCommandPluginDefs`](modules.md#eventmodulecommandplugindefs)[`T`]
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | extends [`EventType`](enums/EventType.md) |
-
-#### Defined in
-
-[src/handler/plugins/plugin.ts:132](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L132)
+[src/types/module.ts:169](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L169)
___
@@ -284,29 +293,47 @@ ___
#### Defined in
-[src/handler/plugins/plugin.ts:111](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L111)
+[src/types/module.ts:188](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L188)
___
-### InputCommandModule
+### ExternalEmitterPlugin
-Ƭ **InputCommandModule**: { [T in CommandType]: CommandModuleNoPlugins[T] & Object }[[`CommandType`](enums/CommandType.md)]
-
-User inputs this type. Sern processes behind the scenes for better usage
+Ƭ **ExternalEmitterPlugin**: [`Deprecated`](modules.md#deprecated)<``"Please view alternatives: "``\>
#### Defined in
-[src/handler/plugins/plugin.ts:141](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L141)
+[src/types/plugin.ts:66](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L66)
___
-### InputEventModule
+### ExternalEventPlugin
-Ƭ **InputEventModule**: { [T in EventType]: EventModulesNoPlugins[T] & Object }[[`EventType`](enums/EventType.md)]
+Ƭ **ExternalEventPlugin**: [`Deprecated`](modules.md#deprecated)<``"Please view alternatives: "``\>
#### Defined in
-[src/handler/plugins/plugin.ts:145](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/plugins/plugin.ts#L145)
+[src/types/plugin.ts:70](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L70)
+
+___
+
+### InputCommand
+
+Ƭ **InputCommand**: { [T in CommandType]: CommandModuleNoPlugins[T] & Object }[[`CommandType`](enums/CommandType.md)]
+
+#### Defined in
+
+[src/types/module.ts:196](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L196)
+
+___
+
+### InputEvent
+
+Ƭ **InputEvent**: { [T in EventType]: EventModulesNoPlugins[T] & Object }[[`EventType`](enums/EventType.md)]
+
+#### Defined in
+
+[src/types/module.ts:192](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L192)
___
@@ -328,7 +355,7 @@ ___
#### Defined in
-[src/types/handler.ts:36](https://github.com/sern-handler/handler/blob/3daacfc/src/types/handler.ts#L36)
+[src/types/handler.ts:35](https://github.com/sern-handler/handler/blob/33f1446/src/types/handler.ts#L35)
___
@@ -345,7 +372,7 @@ ___
#### Defined in
-[src/types/handler.ts:51](https://github.com/sern-handler/handler/blob/3daacfc/src/types/handler.ts#L51)
+[src/types/handler.ts:53](https://github.com/sern-handler/handler/blob/33f1446/src/types/handler.ts#L53)
___
@@ -355,7 +382,7 @@ ___
#### Defined in
-[src/types/handler.ts:57](https://github.com/sern-handler/handler/blob/3daacfc/src/types/handler.ts#L57)
+[src/types/handler.ts:63](https://github.com/sern-handler/handler/blob/33f1446/src/types/handler.ts#L63)
___
@@ -371,7 +398,7 @@ ___
#### Defined in
-[src/types/handler.ts:11](https://github.com/sern-handler/handler/blob/3daacfc/src/types/handler.ts#L11)
+[src/types/handler.ts:12](https://github.com/sern-handler/handler/blob/33f1446/src/types/handler.ts#L12)
___
@@ -381,7 +408,33 @@ ___
#### Defined in
-[src/types/handler.ts:26](https://github.com/sern-handler/handler/blob/3daacfc/src/types/handler.ts#L26)
+[src/types/handler.ts:25](https://github.com/sern-handler/handler/blob/33f1446/src/types/handler.ts#L25)
+
+___
+
+### PluginResult
+
+Ƭ **PluginResult**: `Awaitable`<[`VoidResult`](modules.md#voidresult)\>
+
+#### Defined in
+
+[src/types/plugin.ts:21](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L21)
+
+___
+
+### Processed
+
+Ƭ **Processed**<`T`\>: `T` & { `description`: `string` ; `name`: `string` }
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Defined in
+
+[src/types/handler.ts:64](https://github.com/sern-handler/handler/blob/33f1446/src/types/handler.ts#L64)
___
@@ -391,7 +444,27 @@ ___
#### Defined in
-[src/types/handler.ts:49](https://github.com/sern-handler/handler/blob/3daacfc/src/types/handler.ts#L49)
+[src/types/handler.ts:48](https://github.com/sern-handler/handler/blob/33f1446/src/types/handler.ts#L48)
+
+___
+
+### SernEmitterPlugin
+
+Ƭ **SernEmitterPlugin**: [`Deprecated`](modules.md#deprecated)<``"Please view alternatives: "``\>
+
+#### Defined in
+
+[src/types/plugin.ts:67](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L67)
+
+___
+
+### SernEventPlugin
+
+Ƭ **SernEventPlugin**: [`Deprecated`](modules.md#deprecated)<``"Please view alternatives: "``\>
+
+#### Defined in
+
+[src/types/plugin.ts:69](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L69)
___
@@ -410,7 +483,7 @@ ___
#### Defined in
-[src/types/handler.ts:30](https://github.com/sern-handler/handler/blob/3daacfc/src/types/handler.ts#L30)
+[src/types/handler.ts:29](https://github.com/sern-handler/handler/blob/33f1446/src/types/handler.ts#L29)
___
@@ -426,7 +499,7 @@ ___
#### Defined in
-[src/types/module.ts:210](https://github.com/sern-handler/handler/blob/3daacfc/src/types/module.ts#L210)
+[src/types/module.ts:223](https://github.com/sern-handler/handler/blob/33f1446/src/types/module.ts#L223)
___
@@ -450,7 +523,7 @@ ___
#### Defined in
-[src/types/handler.ts:37](https://github.com/sern-handler/handler/blob/3daacfc/src/types/handler.ts#L37)
+[src/types/handler.ts:36](https://github.com/sern-handler/handler/blob/33f1446/src/types/handler.ts#L36)
___
@@ -460,7 +533,7 @@ ___
#### Defined in
-[src/types/handler.ts:17](https://github.com/sern-handler/handler/blob/3daacfc/src/types/handler.ts#L17)
+[src/types/handler.ts:18](https://github.com/sern-handler/handler/blob/33f1446/src/types/handler.ts#L18)
___
@@ -490,10 +563,185 @@ ___
#### Defined in
-[src/types/handler.ts:38](https://github.com/sern-handler/handler/blob/3daacfc/src/types/handler.ts#L38)
+[src/types/handler.ts:37](https://github.com/sern-handler/handler/blob/33f1446/src/types/handler.ts#L37)
+
+___
+
+### VoidResult
+
+Ƭ **VoidResult**: `Result`<`void`, `void`\>
+
+#### Defined in
+
+[src/types/plugin.ts:22](https://github.com/sern-handler/handler/blob/33f1446/src/types/plugin.ts#L22)
+
+## Variables
+
+### controller
+
+• `Const` **controller**: `Object`
+
+The object passed into every plugin to control a command's behavior
+
+#### Type declaration
+
+| Name | Type |
+| :------ | :------ |
+| `next` | () => `OkImpl`<`void`\> |
+| `stop` | () => `ErrImpl`<`void`\> |
+
+#### Defined in
+
+[src/handler/sern.ts:55](https://github.com/sern-handler/handler/blob/33f1446/src/handler/sern.ts#L55)
+
+___
+
+### guayin
+
+• `Const` **guayin**: typeof [`guayin`](modules.md#guayin)
+
+#### Defined in
+
+[src/handler/plugins/createPlugin.ts:5](https://github.com/sern-handler/handler/blob/33f1446/src/handler/plugins/createPlugin.ts#L5)
## Functions
+### CommandControlPlugin
+
+▸ **CommandControlPlugin**<`I`\>(`execute`): [`Plugin`](interfaces/Plugin.md)<`unknown`[]\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `I` | extends [`CommandType`](enums/CommandType.md) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `execute` | (...`args`: [`CommandArgs`](modules.md#commandargs)<`I`, [`Event`](enums/PluginType.md#event)\>) => [`PluginResult`](modules.md#pluginresult) |
+
+#### Returns
+
+[`Plugin`](interfaces/Plugin.md)<`unknown`[]\>
+
+#### Defined in
+
+[src/handler/plugins/createPlugin.ts:29](https://github.com/sern-handler/handler/blob/33f1446/src/handler/plugins/createPlugin.ts#L29)
+
+___
+
+### CommandInitPlugin
+
+▸ **CommandInitPlugin**<`I`\>(`execute`): [`Plugin`](interfaces/Plugin.md)<`unknown`[]\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `I` | extends [`CommandType`](enums/CommandType.md) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `execute` | (...`args`: [`CommandArgs`](modules.md#commandargs)<`I`, [`Init`](enums/PluginType.md#init)\>) => [`PluginResult`](modules.md#pluginresult) |
+
+#### Returns
+
+[`Plugin`](interfaces/Plugin.md)<`unknown`[]\>
+
+#### Defined in
+
+[src/handler/plugins/createPlugin.ts:23](https://github.com/sern-handler/handler/blob/33f1446/src/handler/plugins/createPlugin.ts#L23)
+
+___
+
+### DiscordEventControlPlugin
+
+▸ **DiscordEventControlPlugin**<`T`\>(`name`, `execute`): [`Plugin`](interfaces/Plugin.md)<`unknown`[]\>
+
+**`Experimental`**
+
+A specialized function for creating control plugins with discord.js ClientEvents.
+Will probably be moved one day!
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | extends keyof `ClientEvents` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `name` | `T` |
+| `execute` | (...`args`: `ClientEvents`[`T`]) => [`PluginResult`](modules.md#pluginresult) |
+
+#### Returns
+
+[`Plugin`](interfaces/Plugin.md)<`unknown`[]\>
+
+#### Defined in
+
+[src/handler/plugins/createPlugin.ts:46](https://github.com/sern-handler/handler/blob/33f1446/src/handler/plugins/createPlugin.ts#L46)
+
+___
+
+### EventControlPlugin
+
+▸ **EventControlPlugin**<`I`\>(`execute`): [`Plugin`](interfaces/Plugin.md)<`unknown`[]\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `I` | extends [`EventType`](enums/EventType.md) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `execute` | (...`args`: [`EventArgs`](modules.md#eventargs)<`I`, [`Event`](enums/PluginType.md#event)\>) => [`PluginResult`](modules.md#pluginresult) |
+
+#### Returns
+
+[`Plugin`](interfaces/Plugin.md)<`unknown`[]\>
+
+#### Defined in
+
+[src/handler/plugins/createPlugin.ts:35](https://github.com/sern-handler/handler/blob/33f1446/src/handler/plugins/createPlugin.ts#L35)
+
+___
+
+### EventInitPlugin
+
+▸ **EventInitPlugin**<`I`\>(`execute`): [`Plugin`](interfaces/Plugin.md)<`unknown`[]\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `I` | extends [`EventType`](enums/EventType.md) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `execute` | (...`args`: [`EventArgs`](modules.md#eventargs)<`I`, [`Init`](enums/PluginType.md#init)\>) => [`PluginResult`](modules.md#pluginresult) |
+
+#### Returns
+
+[`Plugin`](interfaces/Plugin.md)<`unknown`[]\>
+
+#### Defined in
+
+[src/handler/plugins/createPlugin.ts:17](https://github.com/sern-handler/handler/blob/33f1446/src/handler/plugins/createPlugin.ts#L17)
+
+___
+
### commandModule
▸ **commandModule**(`mod`): [`CommandModule`](modules.md#commandmodule)
@@ -504,7 +752,7 @@ The wrapper function to define command modules for sern
| Name | Type |
| :------ | :------ |
-| `mod` | [`InputCommandModule`](modules.md#inputcommandmodule) |
+| `mod` | [`InputCommand`](modules.md#inputcommand) |
#### Returns
@@ -512,7 +760,40 @@ The wrapper function to define command modules for sern
#### Defined in
-[src/handler/sern.ts:64](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/sern.ts#L64)
+[src/handler/sern.ts:64](https://github.com/sern-handler/handler/blob/33f1446/src/handler/sern.ts#L64)
+
+___
+
+### discordEvent
+
+▸ **discordEvent**<`T`\>(`mod`): [`EventModule`](modules.md#eventmodule)
+
+Create event modules from discord.js client events,
+This is an [eventModule](modules.md#eventmodule-1) for discord events,
+where typings can be very bad.
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | extends keyof `ClientEvents` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `mod` | `Object` |
+| `mod.execute` | (...`args`: `ClientEvents`[`T`]) => `unknown` |
+| `mod.name` | `T` |
+| `mod.plugins?` | [`AnyEventPlugin`](modules.md#anyeventplugin)[] |
+
+#### Returns
+
+[`EventModule`](modules.md#eventmodule)
+
+#### Defined in
+
+[src/handler/sern.ts:97](https://github.com/sern-handler/handler/blob/33f1446/src/handler/sern.ts#L97)
___
@@ -526,7 +807,7 @@ The wrapper function to define event modules for sern
| Name | Type |
| :------ | :------ |
-| `mod` | [`InputEventModule`](modules.md#inputeventmodule) |
+| `mod` | [`InputEvent`](modules.md#inputevent) |
#### Returns
@@ -534,7 +815,34 @@ The wrapper function to define event modules for sern
#### Defined in
-[src/handler/sern.ts:76](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/sern.ts#L76)
+[src/handler/sern.ts:79](https://github.com/sern-handler/handler/blob/33f1446/src/handler/sern.ts#L79)
+
+___
+
+### makePlugin
+
+▸ **makePlugin**<`V`\>(`type`, `execute`): [`Plugin`](interfaces/Plugin.md)<`V`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `V` | extends `unknown`[] |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `type` | [`PluginType`](enums/PluginType.md) |
+| `execute` | (...`args`: `any`[]) => `any` |
+
+#### Returns
+
+[`Plugin`](interfaces/Plugin.md)<`V`\>
+
+#### Defined in
+
+[src/handler/plugins/createPlugin.ts:6](https://github.com/sern-handler/handler/blob/33f1446/src/handler/plugins/createPlugin.ts#L6)
___
@@ -542,8 +850,7 @@ ___
▸ **many**<`T`\>(`value`): () => () => `T`
-A function that returns another function
-Used for transient in iti
+**`Deprecated`**
#### Type parameters
@@ -553,9 +860,9 @@ Used for transient in iti
#### Parameters
-| Name | Type |
-| :------ | :------ |
-| `value` | `T` |
+| Name | Type | Description |
+| :------ | :------ | :------ |
+| `value` | `T` | Please use the transient function instead |
#### Returns
@@ -575,28 +882,27 @@ Used for transient in iti
#### Defined in
-[src/handler/utilities/functions.ts:16](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/utilities/functions.ts#L16)
+[src/handler/dependencies/lifetimeFunctions.ts:50](https://github.com/sern-handler/handler/blob/33f1446/src/handler/dependencies/lifetimeFunctions.ts#L50)
___
### single
-▸ **single**<`T`\>(`value`): () => `T`
+▸ **single**<`T`\>(`cb`): () => `T`
-A function that returns whatever value is provided.
-Used for singleton in iti
+**`Deprecated`**
#### Type parameters
-| Name |
-| :------ |
-| `T` |
+| Name | Type |
+| :------ | :------ |
+| `T` | extends `NotFunction` |
#### Parameters
| Name | Type |
| :------ | :------ |
-| `value` | `T` |
+| `cb` | `T` |
#### Returns
@@ -610,21 +916,117 @@ Used for singleton in iti
#### Defined in
-[src/handler/utilities/functions.ts:10](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/utilities/functions.ts#L10)
+[src/handler/dependencies/lifetimeFunctions.ts:11](https://github.com/sern-handler/handler/blob/33f1446/src/handler/dependencies/lifetimeFunctions.ts#L11)
+
+▸ **single**<`T`\>(`cb`): `T`
+
+New signature
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | extends () => `unknown` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `cb` | `T` |
+
+#### Returns
+
+`T`
+
+#### Defined in
+
+[src/handler/dependencies/lifetimeFunctions.ts:16](https://github.com/sern-handler/handler/blob/33f1446/src/handler/dependencies/lifetimeFunctions.ts#L16)
+
+___
+
+### transient
+
+▸ **transient**<`T`\>(`cb`): () => () => `T`
+
+**`Deprecated`**
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | extends `NotFunction` |
+
+#### Parameters
+
+| Name | Type | Description |
+| :------ | :------ | :------ |
+| `cb` | `T` | Deprecated signature |
+
+#### Returns
+
+`fn`
+
+▸ (): () => `T`
+
+##### Returns
+
+`fn`
+
+▸ (): `T`
+
+##### Returns
+
+`T`
+
+#### Defined in
+
+[src/handler/dependencies/lifetimeFunctions.ts:32](https://github.com/sern-handler/handler/blob/33f1446/src/handler/dependencies/lifetimeFunctions.ts#L32)
+
+▸ **transient**<`T`\>(`cb`): `T`
+
+Following iti's singleton and transient implementation,
+use transient if you want a new dependency every time your container getter is called
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | extends () => () => `unknown` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `cb` | `T` |
+
+#### Returns
+
+`T`
+
+#### Defined in
+
+[src/handler/dependencies/lifetimeFunctions.ts:33](https://github.com/sern-handler/handler/blob/33f1446/src/handler/dependencies/lifetimeFunctions.ts#L33)
___
### useContainerRaw
-▸ **useContainerRaw**(): ``null`` \| `Container`<[`Dependencies`](interfaces/Dependencies.md), `Partial`<[`Dependencies`](interfaces/Dependencies.md)\>\>
+▸ **useContainerRaw**<`T`\>(): `Container`<`T`, {}\>
Returns the underlying data structure holding all dependencies.
+Please be careful as this only gets the client's current state.
Exposes some methods from iti
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | extends [`Dependencies`](interfaces/Dependencies.md) |
+
#### Returns
-``null`` \| `Container`<[`Dependencies`](interfaces/Dependencies.md), `Partial`<[`Dependencies`](interfaces/Dependencies.md)\>\>
+`Container`<`T`, {}\>
#### Defined in
-[src/handler/dependencies/provider.ts:74](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/dependencies/provider.ts#L74)
+[src/handler/dependencies/provider.ts:54](https://github.com/sern-handler/handler/blob/33f1446/src/handler/dependencies/provider.ts#L54)
diff --git a/docs/api/namespaces/Sern.md b/docs/api/namespaces/Sern.md
index 3f39e008f..92ca57576 100644
--- a/docs/api/namespaces/Sern.md
+++ b/docs/api/namespaces/Sern.md
@@ -26,29 +26,22 @@ Re-exports [commandModule](../modules.md#commandmodule-1)
___
+### controller
+
+Re-exports [controller](../modules.md#controller)
+
+___
+
+### discordEvent
+
+Re-exports [discordEvent](../modules.md#discordevent)
+
+___
+
### eventModule
Re-exports [eventModule](../modules.md#eventmodule-1)
-## Variables
-
-### controller
-
-• `Const` **controller**: `Object`
-
-The object passed into every plugin to control a command's behavior
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `next` | () => `OkImpl`<`void`\> |
-| `stop` | () => `ErrImpl`<`void`\> |
-
-#### Defined in
-
-[src/handler/sern.ts:55](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/sern.ts#L55)
-
## Functions
### init
@@ -80,7 +73,7 @@ Sern.init({
#### Defined in
-[src/handler/sern.ts:38](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/sern.ts#L38)
+[src/handler/sern.ts:38](https://github.com/sern-handler/handler/blob/33f1446/src/handler/sern.ts#L38)
___
@@ -98,9 +91,7 @@ ___
| Name | Type | Description |
| :------ | :------ | :------ |
-| `conf` | `Object` | a configuration for creating your project dependencies |
-| `conf.build` | (`root`: `Container`<`Record`<`string`, `unknown`\>, {}\>) => `Container`<`Partial`<`T`\>, {}\> | - |
-| `conf.exclude?` | `Set`<``"@sern/logger"``\> | - |
+| `conf` | [`DependencyConfiguration`](../interfaces/DependencyConfiguration.md)<`T`\> | a configuration for creating your project dependencies |
#### Returns
@@ -126,4 +117,4 @@ ___
#### Defined in
-[src/handler/sern.ts:87](https://github.com/sern-handler/handler/blob/3daacfc/src/handler/sern.ts#L87)
+[src/handler/sern.ts:107](https://github.com/sern-handler/handler/blob/33f1446/src/handler/sern.ts#L107)
diff --git a/docusaurus.config.js b/docusaurus.config.js
index 79ecd6d9e..04a6a75e7 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -9,8 +9,8 @@ const config = {
title: 'sern - Handlers. Redefined.',
tagline: 'With the support of the community made plugins and a powerful CLI, it\'s more than just a handler.',
url: 'https://sern-handler.js.org',
- baseUrl: '/',
- onBrokenLinks: 'throw',
+ baseUrl: '/',
+ onBrokenLinks: 'ignore',
onBrokenMarkdownLinks: 'warn',
favicon: '/img/favicon.ico', // this currently not working