feat: add tabs for v3/v4

This commit is contained in:
DuroCodes
2024-05-10 14:42:21 -04:00
parent a2fc1f66c0
commit a441e57439
99 changed files with 4508 additions and 24 deletions

View File

@@ -22,6 +22,7 @@ export default defineConfig({
Head: '~/overrides/Head.astro',
SiteTitle: '~/overrides/SiteTitle.astro',
ThemeSelect: '~/overrides/ThemeSelect.astro',
Sidebar: '~/overrides/Sidebar.astro',
},
logo: {
src: '~/assets/logo/navbar-icon.png',
@@ -31,21 +32,35 @@ export default defineConfig({
'~/styles/global.css',
],
sidebar: [
typeDocSidebarGroup,
{
label: 'CLI',
autogenerate: { directory: 'cli' },
},
{
label: 'Guide',
label: 'v3',
items: [
typeDocSidebarGroup,
{
label: 'Getting Started',
autogenerate: { directory: 'guide/getting-started' },
label: 'CLI',
autogenerate: { directory: 'v3/cli' },
},
{
label: 'Walkthrough',
autogenerate: { directory: 'guide/walkthrough' },
label: 'Guide',
items: [
{
label: 'Getting Started',
autogenerate: { directory: 'v3/guide/getting-started' },
},
{
label: 'Walkthrough',
autogenerate: { directory: 'v3/guide/walkthrough' },
},
],
},
],
},
{
label: 'v4',
items: [
{
label: 'Test',
autogenerate: { directory: 'v4/test' },
},
],
},
@@ -88,7 +103,7 @@ export default defineConfig({
tsconfig: './sern-handler/tsconfig.json',
entryPoints: ['./sern-handler/src/index.ts'],
autogenerate: {
directory: 'api',
directory: 'v3/api',
},
sidebar: { collapsed: true },
}),

View File

@@ -8,7 +8,7 @@ hero:
file: ~/assets/logo/sern-logo.png
actions:
- text: <b>npm create @sern/bot</b>
link: /guide/walkthrough/new-project
link: /v3/guide/walkthrough/new-project
icon: right-arrow
variant: primary
---

View File

@@ -1,11 +0,0 @@
---
title: Example Reference
description: A reference page in my new Starlight docs site.
---
Reference pages are ideal for outlining how things work in terse and clear terms.
Less concerned with telling a story or addressing a specific use case, they should give a comprehensive outline of what you're documenting.
## Further reading
- Read [about reference](https://diataxis.fr/reference/) in the Diátaxis framework

View File

@@ -0,0 +1,96 @@
---
editUrl: false
next: false
prev: false
title: "@sern/handler"
---
## Namespaces
- [Presence](/api/namespaces/presence/readme/)
- [Sern](/api/namespaces/sern/readme/)
## Enumerations
- [CommandType](/api/enumerations/commandtype/)
- [EventType](/api/enumerations/eventtype/)
- [PayloadType](/api/enumerations/payloadtype/)
- [PluginType](/api/enumerations/plugintype/)
## Classes
- [Context](/api/classes/context/)
- [ModuleStore](/api/classes/modulestore/)
## Interfaces
- [BothCommand](/api/interfaces/bothcommand/)
- [ButtonCommand](/api/interfaces/buttoncommand/)
- [ChannelSelectCommand](/api/interfaces/channelselectcommand/)
- [CommandModuleDefs](/api/interfaces/commandmoduledefs/)
- [ContextMenuMsg](/api/interfaces/contextmenumsg/)
- [ContextMenuUser](/api/interfaces/contextmenuuser/)
- [ControlPlugin](/api/interfaces/controlplugin/)
- [Controller](/api/interfaces/controller/)
- [CoreDependencies](/api/interfaces/coredependencies/)
- [CoreModuleStore](/api/interfaces/coremodulestore/)
- [DiscordEventCommand](/api/interfaces/discordeventcommand/)
- [Disposable](/api/interfaces/disposable/)
- [Emitter](/api/interfaces/emitter/)
- [ErrorHandling](/api/interfaces/errorhandling/)
- [EventModuleDefs](/api/interfaces/eventmoduledefs/)
- [ExternalEventCommand](/api/interfaces/externaleventcommand/)
- [Init](/api/interfaces/init/)
- [InitPlugin](/api/interfaces/initplugin/)
- [Logging](/api/interfaces/logging/)
- [MentionableSelectCommand](/api/interfaces/mentionableselectcommand/)
- [ModalSubmitCommand](/api/interfaces/modalsubmitcommand/)
- [Plugin](/api/interfaces/plugin/)
- [RoleSelectCommand](/api/interfaces/roleselectcommand/)
- [SernAutocompleteData](/api/interfaces/sernautocompletedata/)
- [SernEventCommand](/api/interfaces/serneventcommand/)
- [SernEventsMapping](/api/interfaces/serneventsmapping/)
- [SernSubCommandData](/api/interfaces/sernsubcommanddata/)
- [SernSubCommandGroupData](/api/interfaces/sernsubcommandgroupdata/)
- [SlashCommand](/api/interfaces/slashcommand/)
- [StringSelectCommand](/api/interfaces/stringselectcommand/)
- [TextCommand](/api/interfaces/textcommand/)
- [UserSelectCommand](/api/interfaces/userselectcommand/)
- [Wrapper](/api/interfaces/wrapper/)
## Type Aliases
- [AnyCommandPlugin](/api/type-aliases/anycommandplugin/)
- [AnyEventPlugin](/api/type-aliases/anyeventplugin/)
- [Args](/api/type-aliases/args/)
- [CommandModule](/api/type-aliases/commandmodule/)
- [EventModule](/api/type-aliases/eventmodule/)
- [Initializable](/api/type-aliases/initializable/)
- [LogPayload](/api/type-aliases/logpayload/)
- [Payload](/api/type-aliases/payload/)
- [PluginResult](/api/type-aliases/pluginresult/)
- [SernOptionsData](/api/type-aliases/sernoptionsdata/)
- [Singleton](/api/type-aliases/singleton/)
- [SlashOptions](/api/type-aliases/slashoptions/)
- [Transient](/api/type-aliases/transient/)
## Variables
- [controller](/api/variables/controller/)
## Functions
- [CommandControlPlugin](/api/functions/commandcontrolplugin/)
- [CommandInitPlugin](/api/functions/commandinitplugin/)
- [DiscordEventControlPlugin](/api/functions/discordeventcontrolplugin/)
- [EventControlPlugin](/api/functions/eventcontrolplugin/)
- [EventInitPlugin](/api/functions/eventinitplugin/)
- [Service](/api/functions/service/)
- [Services](/api/functions/services/)
- [commandModule](/api/functions/commandmodule/)
- [discordEvent](/api/functions/discordevent/)
- [eventModule](/api/functions/eventmodule/)
- [makeDependencies](/api/functions/makedependencies/)
- [makePlugin](/api/functions/makeplugin/)
- [single](/api/functions/single/)
- [transient](/api/functions/transient/)

View File

@@ -0,0 +1,291 @@
---
editUrl: false
next: false
prev: false
title: "Context"
---
## Since
1.0.0
Provides values shared between
Message and ChatInputCommandInteraction
## Extends
- `CoreContext`\<`Message`, `ChatInputCommandInteraction`\>
## Accessors
### channel
> `get` **channel**(): `null` \| `TextBasedChannel`
#### Returns
`null` \| `TextBasedChannel`
#### Source
[src/core/structures/context.ts:39](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/context.ts#L39)
***
### channelId
> `get` **channelId**(): `string`
#### Returns
`string`
#### Source
[src/core/structures/context.ts:45](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/context.ts#L45)
***
### client
> `get` **client**(): `Client`\<`boolean`\>
#### Returns
`Client`\<`boolean`\>
#### Source
[src/core/structures/context.ts:91](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/context.ts#L91)
***
### createdTimestamp
> `get` **createdTimestamp**(): `number`
#### Returns
`number`
#### Source
[src/core/structures/context.ts:65](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/context.ts#L65)
***
### guild
> `get` **guild**(): `null` \| `Guild`
#### Returns
`null` \| `Guild`
#### Source
[src/core/structures/context.ts:71](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/context.ts#L71)
***
### guildId
> `get` **guildId**(): `null` \| `string`
#### Returns
`null` \| `string`
#### Source
[src/core/structures/context.ts:77](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/context.ts#L77)
***
### id
> `get` **id**(): `string`
#### Returns
`string`
#### Source
[src/core/structures/context.ts:33](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/context.ts#L33)
***
### inGuild
> `get` **inGuild**(): `boolean`
#### Returns
`boolean`
#### Source
[src/core/structures/context.ts:97](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/context.ts#L97)
***
### interaction
> `get` **interaction**(): `I`
#### Returns
`I`
#### Source
[src/core/structures/core-context.ts:15](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/core-context.ts#L15)
***
### member
> `get` **member**(): `null` \| `GuildMember` \| `APIInteractionGuildMember`
#### Returns
`null` \| `GuildMember` \| `APIInteractionGuildMember`
#### Source
[src/core/structures/context.ts:85](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/context.ts#L85)
***
### message
> `get` **message**(): `M`
#### Returns
`M`
#### Source
[src/core/structures/core-context.ts:12](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/core-context.ts#L12)
***
### options
> `get` **options**(): `Omit`\<`CommandInteractionOptionResolver`\<`CacheType`\>, `"getMessage"` \| `"getFocused"`\>
#### Returns
`Omit`\<`CommandInteractionOptionResolver`\<`CacheType`\>, `"getMessage"` \| `"getFocused"`\>
#### Source
[src/core/structures/context.ts:26](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/context.ts#L26)
***
### user
> `get` **user**(): `User`
If context is holding a message, message.author
else, interaction.user
#### Returns
`User`
#### Source
[src/core/structures/context.ts:55](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/context.ts#L55)
***
### userId
> `get` **userId**(): `string`
#### Returns
`string`
#### Source
[src/core/structures/context.ts:61](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/context.ts#L61)
## Methods
### isMessage()
> **isMessage**(): `this is CoreContext<Message<boolean>, never>`
#### Returns
`this is CoreContext<Message<boolean>, never>`
#### Inherited from
`CoreContext.isMessage`
#### Source
[src/core/structures/core-context.ts:19](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/core-context.ts#L19)
***
### isSlash()
> **isSlash**(): `this is CoreContext<never, ChatInputCommandInteraction<CacheType>>`
#### Returns
`this is CoreContext<never, ChatInputCommandInteraction<CacheType>>`
#### Inherited from
`CoreContext.isSlash`
#### Source
[src/core/structures/core-context.ts:23](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/core-context.ts#L23)
***
### reply()
> **reply**(`content`): `Promise`\<`Message`\<`boolean`\>\>
#### Parameters
**content**: `ReplyOptions`
#### Returns
`Promise`\<`Message`\<`boolean`\>\>
#### Source
[src/core/structures/context.ts:103](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/context.ts#L103)
***
### wrap()
> `static` **wrap**(`wrappable`): [`Context`](/api/classes/context/)
#### Parameters
**wrappable**: `Message`\<`boolean`\> \| `BaseInteraction`\<`CacheType`\>
#### Returns
[`Context`](/api/classes/context/)
#### Overrides
`CoreContext.wrap`
#### Source
[src/core/structures/context.ts:113](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/context.ts#L113)

View File

@@ -0,0 +1,36 @@
---
editUrl: false
next: false
prev: false
title: "ModuleStore"
---
## Constructors
### new ModuleStore()
> **new ModuleStore**(): [`ModuleStore`](/api/classes/modulestore/)
#### Returns
[`ModuleStore`](/api/classes/modulestore/)
## Properties
### commands
> **commands**: `Map`\<`string`, `Module`\>
#### Source
[src/core/structures/module-store.ts:10](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/module-store.ts#L10)
***
### metadata
> **metadata**: `WeakMap`\<`Module`, `CommandMeta`\>
#### Source
[src/core/structures/module-store.ts:9](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/module-store.ts#L9)

View File

@@ -0,0 +1,144 @@
---
editUrl: false
next: false
prev: false
title: "CommandType"
---
## Since
1.0.0
A bitfield that discriminates command modules
## Example
```ts
export default commandModule({
// highlight-next-line
type : CommandType.Text,
name : 'a text command'
execute(message) {
console.log(message.content)
}
})
```
## Enumeration Members
### Both
> **Both**: `3`
#### Source
[src/core/structures/enums.ts:20](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/enums.ts#L20)
***
### Button
> **Button**: `16`
#### Source
[src/core/structures/enums.ts:23](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/enums.ts#L23)
***
### ChannelSelect
> **ChannelSelect**: `1024`
#### Source
[src/core/structures/enums.ts:29](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/enums.ts#L29)
***
### CtxMsg
> **CtxMsg**: `8`
#### Source
[src/core/structures/enums.ts:22](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/enums.ts#L22)
***
### CtxUser
> **CtxUser**: `4`
#### Source
[src/core/structures/enums.ts:21](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/enums.ts#L21)
***
### MentionableSelect
> **MentionableSelect**: `512`
#### Source
[src/core/structures/enums.ts:28](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/enums.ts#L28)
***
### Modal
> **Modal**: `64`
#### Source
[src/core/structures/enums.ts:25](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/enums.ts#L25)
***
### RoleSelect
> **RoleSelect**: `256`
#### Source
[src/core/structures/enums.ts:27](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/enums.ts#L27)
***
### Slash
> **Slash**: `2`
#### Source
[src/core/structures/enums.ts:19](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/enums.ts#L19)
***
### StringSelect
> **StringSelect**: `32`
#### Source
[src/core/structures/enums.ts:24](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/enums.ts#L24)
***
### Text
> **Text**: `1`
#### Source
[src/core/structures/enums.ts:18](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/enums.ts#L18)
***
### UserSelect
> **UserSelect**: `128`
#### Source
[src/core/structures/enums.ts:26](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/enums.ts#L26)

View File

@@ -0,0 +1,58 @@
---
editUrl: false
next: false
prev: false
title: "EventType"
---
A bitfield that discriminates event modules
## Example
```ts
export default eventModule({
//highlight-next-line
type : EventType.Discord,
name : 'guildMemberAdd'
execute(member : GuildMember) {
console.log(member)
}
})
```
## Enumeration Members
### Discord
> **Discord**: `1`
The EventType for handling discord events
#### Source
[src/core/structures/enums.ts:51](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/enums.ts#L51)
***
### External
> **External**: `3`
The EventType for handling external events.
Could be for example, `process` events, database events
#### Source
[src/core/structures/enums.ts:60](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/enums.ts#L60)
***
### Sern
> **Sern**: `2`
The EventType for handling sern events
#### Source
[src/core/structures/enums.ts:55](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/enums.ts#L55)

View File

@@ -0,0 +1,42 @@
---
editUrl: false
next: false
prev: false
title: "PayloadType"
---
## Enumeration Members
### Failure
> **Failure**: `"failure"`
The PayloadType for a SernEmitter failure event
#### Source
[src/core/structures/enums.ts:98](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/enums.ts#L98)
***
### Success
> **Success**: `"success"`
The PayloadType for a SernEmitter success event
#### Source
[src/core/structures/enums.ts:94](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/enums.ts#L94)
***
### Warning
> **Warning**: `"warning"`
The PayloadType for a SernEmitter warning event
#### Source
[src/core/structures/enums.ts:102](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/enums.ts#L102)

View File

@@ -0,0 +1,44 @@
---
editUrl: false
next: false
prev: false
title: "PluginType"
---
A bitfield that discriminates plugins
## Example
```ts
export default function myPlugin() : EventPlugin<CommandType.Text> {
//highlight-next-line
type : PluginType.Event,
execute([ctx, args], controller) {
return controller.next();
}
}
```
## Enumeration Members
### Control
> **Control**: `2`
The PluginType for EventPlugins
#### Source
[src/core/structures/enums.ts:85](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/enums.ts#L85)
***
### Init
> **Init**: `1`
The PluginType for InitPlugins
#### Source
[src/core/structures/enums.ts:81](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/structures/enums.ts#L81)

View File

@@ -0,0 +1,29 @@
---
editUrl: false
next: false
prev: false
title: "CommandControlPlugin"
---
> **CommandControlPlugin**\<`I`\>(`execute`): [`Plugin`](/api/interfaces/plugin/)\<`unknown`[]\>
## Type parameters
**I** *extends* [`CommandType`](/api/enumerations/commandtype/)
## Parameters
**execute**
## Returns
[`Plugin`](/api/interfaces/plugin/)\<`unknown`[]\>
## Since
2.5.0
@__PURE__
## Source
[src/core/create-plugins.ts:37](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/create-plugins.ts#L37)

View File

@@ -0,0 +1,29 @@
---
editUrl: false
next: false
prev: false
title: "CommandInitPlugin"
---
> **CommandInitPlugin**\<`I`\>(`execute`): [`Plugin`](/api/interfaces/plugin/)\<`unknown`[]\>
## Type parameters
**I** *extends* [`CommandType`](/api/enumerations/commandtype/)
## Parameters
**execute**
## Returns
[`Plugin`](/api/interfaces/plugin/)\<`unknown`[]\>
## Since
2.5.0
@__PURE__
## Source
[src/core/create-plugins.ts:28](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/create-plugins.ts#L28)

View File

@@ -0,0 +1,35 @@
---
editUrl: false
next: false
prev: false
title: "DiscordEventControlPlugin"
---
> **DiscordEventControlPlugin**\<`T`\>(`name`, `execute`): [`Plugin`](/api/interfaces/plugin/)\<`unknown`[]\>
## Type parameters
**T** *extends* keyof `ClientEvents`
## Parameters
**name**: `T`
**execute**
## Returns
[`Plugin`](/api/interfaces/plugin/)\<`unknown`[]\>
## Since
2.5.0
## Experimental
A specialized function for creating control plugins with discord.js ClientEvents.
Will probably be moved one day!
## Source
[src/core/create-plugins.ts:58](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/create-plugins.ts#L58)

View File

@@ -0,0 +1,29 @@
---
editUrl: false
next: false
prev: false
title: "EventControlPlugin"
---
> **EventControlPlugin**\<`I`\>(`execute`): [`Plugin`](/api/interfaces/plugin/)\<`unknown`[]\>
## Type parameters
**I** *extends* [`EventType`](/api/enumerations/eventtype/)
## Parameters
**execute**
## Returns
[`Plugin`](/api/interfaces/plugin/)\<`unknown`[]\>
## Since
2.5.0
@__PURE__
## Source
[src/core/create-plugins.ts:46](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/create-plugins.ts#L46)

View File

@@ -0,0 +1,29 @@
---
editUrl: false
next: false
prev: false
title: "EventInitPlugin"
---
> **EventInitPlugin**\<`I`\>(`execute`): [`Plugin`](/api/interfaces/plugin/)\<`unknown`[]\>
## Type parameters
**I** *extends* [`EventType`](/api/enumerations/eventtype/)
## Parameters
**execute**
## Returns
[`Plugin`](/api/interfaces/plugin/)\<`unknown`[]\>
## Since
2.5.0
@__PURE__
## Source
[src/core/create-plugins.ts:19](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/create-plugins.ts#L19)

View File

@@ -0,0 +1,41 @@
---
editUrl: false
next: false
prev: false
title: "Service"
---
> **Service**\<`T`\>(`key`): `NonNullable`\<`UnpackFunction`\<`Partial`\<`Dependencies`\>\[`T`\]\>\>
The new Service api, a cleaner alternative to useContainer
To obtain intellisense, ensure a .d.ts file exists in the root of compilation.
Usually our scaffolding tool takes care of this.
Note: this method only works AFTER your container has been initiated
## Type parameters
**T** *extends* keyof `Dependencies`
## Parameters
**key**: `T`
a key that corresponds to a dependency registered.
## Returns
`NonNullable`\<`UnpackFunction`\<`Partial`\<`Dependencies`\>\[`T`\]\>\>
## Since
3.0.0
## Example
```ts
const client = Service('@sern/client');
```
## Source
[src/core/ioc/dependency-injection.ts:37](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/ioc/dependency-injection.ts#L37)

View File

@@ -0,0 +1,31 @@
---
editUrl: false
next: false
prev: false
title: "Services"
---
> **Services**\<`T`\>(...`keys`): `IntoDependencies`\<`T`\>
## Type parameters
**T** *extends* keyof `Dependencies`[]
## Parameters
• ...**keys**: [`...T[]`]
## Returns
`IntoDependencies`\<`T`\>
array of dependencies, in the same order of keys provided
## Since
3.0.0
The plural version of [Service](../../../../../../api/functions/service)
## Source
[src/core/ioc/dependency-injection.ts:47](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/ioc/dependency-injection.ts#L47)

View File

@@ -0,0 +1,24 @@
---
editUrl: false
next: false
prev: false
title: "commandModule"
---
> **commandModule**(`mod`): [`CommandModule`](/api/type-aliases/commandmodule/)
## Parameters
**mod**: `InputCommand`
## Returns
[`CommandModule`](/api/type-aliases/commandmodule/)
## Since
1.0.0 The wrapper function to define command modules for sern
## Source
[src/core/modules.ts:19](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/modules.ts#L19)

View File

@@ -0,0 +1,36 @@
---
editUrl: false
next: false
prev: false
title: "discordEvent"
---
> **discordEvent**\<`T`\>(`mod`): [`EventModule`](/api/type-aliases/eventmodule/)
Create event modules from discord.js client events,
This is an [eventModule](../../../../../../api/functions/eventmodule) for discord events,
where typings can be very bad.
## Type parameters
**T** *extends* keyof `ClientEvents`
## Parameters
**mod**
**mod.execute**
**mod.name**: `T`
**mod.plugins?**: [`AnyEventPlugin`](/api/type-aliases/anyeventplugin/)[]
## Returns
[`EventModule`](/api/type-aliases/eventmodule/)
## Experimental
## Source
[src/core/modules.ts:47](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/modules.ts#L47)

View File

@@ -0,0 +1,25 @@
---
editUrl: false
next: false
prev: false
title: "eventModule"
---
> **eventModule**(`mod`): [`EventModule`](/api/type-aliases/eventmodule/)
## Parameters
**mod**: `InputEvent`
## Returns
[`EventModule`](/api/type-aliases/eventmodule/)
## Since
1.0.0
The wrapper function to define event modules for sern
## Source
[src/core/modules.ts:32](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/modules.ts#L32)

View File

@@ -0,0 +1,24 @@
---
editUrl: false
next: false
prev: false
title: "makeDependencies"
---
> **makeDependencies**\<`T`\>(`conf`): `Promise`\<\<`V`\>(...`keys`) => `IntoDependencies`\<`V`\>\>
## Type parameters
**T** *extends* `Dependencies`
## Parameters
**conf**: `ValidDependencyConfig`
## Returns
`Promise`\<\<`V`\>(...`keys`) => `IntoDependencies`\<`V`\>\>
## Source
[src/core/ioc/base.ts:144](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/ioc/base.ts#L144)

View File

@@ -0,0 +1,26 @@
---
editUrl: false
next: false
prev: false
title: "makePlugin"
---
> **makePlugin**\<`V`\>(`type`, `execute`): [`Plugin`](/api/interfaces/plugin/)\<`V`\>
## Type parameters
**V** *extends* `unknown`[]
## Parameters
**type**: [`PluginType`](/api/enumerations/plugintype/)
**execute**
## Returns
[`Plugin`](/api/interfaces/plugin/)\<`V`\>
## Source
[src/core/create-plugins.ts:6](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/create-plugins.ts#L6)

View File

@@ -0,0 +1,35 @@
---
editUrl: false
next: false
prev: false
title: "single"
---
> **single**\<`T`\>(`cb`): () => `T`
@__PURE__
## Type parameters
**T**
## Parameters
**cb**
## Returns
`Function`
### Returns
`T`
## Since
2.0.0.
Creates a singleton object.
## Source
[src/core/ioc/dependency-injection.ts:11](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/ioc/dependency-injection.ts#L11)

View File

@@ -0,0 +1,39 @@
---
editUrl: false
next: false
prev: false
title: "transient"
---
> **transient**\<`T`\>(`cb`): () => () => `T`
@__PURE__
## Type parameters
**T**
## Parameters
**cb**
## Returns
`Function`
### Returns
`Function`
#### Returns
`T`
## Since
2.0.0
Creates a transient object
## Source
[src/core/ioc/dependency-injection.ts:21](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/ioc/dependency-injection.ts#L21)

View File

@@ -0,0 +1,124 @@
---
editUrl: false
next: false
prev: false
title: "BothCommand"
---
## Extends
- `Module`
## Properties
### alias?
> `optional` **alias**: `string`[]
#### Source
[src/types/core-modules.ts:125](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L125)
***
### description
> **description**: `string`
#### Overrides
`Module.description`
#### Source
[src/types/core-modules.ts:126](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L126)
***
### execute()
> **execute**: (`ctx`, `args`) => `unknown`
#### Parameters
**ctx**: [`Context`](/api/classes/context/)
**args**: [`Args`](/api/type-aliases/args/)
#### Returns
`unknown`
#### Overrides
`Module.execute`
#### Source
[src/types/core-modules.ts:128](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L128)
***
### name?
> `optional` **name**: `string`
#### Inherited from
`Module.name`
#### Source
[src/types/core-modules.ts:33](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L33)
***
### onEvent
> **onEvent**: [`ControlPlugin`](/api/interfaces/controlplugin/)\<`any`[]\>[]
#### Inherited from
`Module.onEvent`
#### Source
[src/types/core-modules.ts:34](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L34)
***
### options?
> `optional` **options**: [`SernOptionsData`](/api/type-aliases/sernoptionsdata/)[]
#### Source
[src/types/core-modules.ts:127](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L127)
***
### plugins
> **plugins**: [`InitPlugin`](/api/interfaces/initplugin/)\<`any`[]\>[]
#### Inherited from
`Module.plugins`
#### Source
[src/types/core-modules.ts:35](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L35)
***
### type
> **type**: [`Both`](/api/enumerations/commandtype/#both)
#### Overrides
`Module.type`
#### Source
[src/types/core-modules.ts:124](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L124)

View File

@@ -0,0 +1,102 @@
---
editUrl: false
next: false
prev: false
title: "ButtonCommand"
---
## Extends
- `Module`
## Properties
### description?
> `optional` **description**: `string`
#### Inherited from
`Module.description`
#### Source
[src/types/core-modules.ts:36](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L36)
***
### execute()
> **execute**: (`ctx`) => `unknown`
#### Parameters
**ctx**: `ButtonInteraction`\<`CacheType`\>
#### Returns
`unknown`
#### Overrides
`Module.execute`
#### Source
[src/types/core-modules.ts:65](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L65)
***
### name?
> `optional` **name**: `string`
#### Inherited from
`Module.name`
#### Source
[src/types/core-modules.ts:33](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L33)
***
### onEvent
> **onEvent**: [`ControlPlugin`](/api/interfaces/controlplugin/)\<`any`[]\>[]
#### Inherited from
`Module.onEvent`
#### Source
[src/types/core-modules.ts:34](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L34)
***
### plugins
> **plugins**: [`InitPlugin`](/api/interfaces/initplugin/)\<`any`[]\>[]
#### Inherited from
`Module.plugins`
#### Source
[src/types/core-modules.ts:35](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L35)
***
### type
> **type**: [`Button`](/api/enumerations/commandtype/#button)
#### Overrides
`Module.type`
#### Source
[src/types/core-modules.ts:64](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L64)

View File

@@ -0,0 +1,102 @@
---
editUrl: false
next: false
prev: false
title: "ChannelSelectCommand"
---
## Extends
- `Module`
## Properties
### description?
> `optional` **description**: `string`
#### Inherited from
`Module.description`
#### Source
[src/types/core-modules.ts:36](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L36)
***
### execute()
> **execute**: (`ctx`) => `unknown`
#### Parameters
**ctx**: `ChannelSelectMenuInteraction`\<`CacheType`\>
#### Returns
`unknown`
#### Overrides
`Module.execute`
#### Source
[src/types/core-modules.ts:75](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L75)
***
### name?
> `optional` **name**: `string`
#### Inherited from
`Module.name`
#### Source
[src/types/core-modules.ts:33](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L33)
***
### onEvent
> **onEvent**: [`ControlPlugin`](/api/interfaces/controlplugin/)\<`any`[]\>[]
#### Inherited from
`Module.onEvent`
#### Source
[src/types/core-modules.ts:34](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L34)
***
### plugins
> **plugins**: [`InitPlugin`](/api/interfaces/initplugin/)\<`any`[]\>[]
#### Inherited from
`Module.plugins`
#### Source
[src/types/core-modules.ts:35](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L35)
***
### type
> **type**: [`ChannelSelect`](/api/enumerations/commandtype/#channelselect)
#### Overrides
`Module.type`
#### Source
[src/types/core-modules.ts:74](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L74)

View File

@@ -0,0 +1,126 @@
---
editUrl: false
next: false
prev: false
title: "CommandModuleDefs"
---
## Properties
### 1
> **1**: [`TextCommand`](/api/interfaces/textcommand/)
#### Source
[src/types/core-modules.ts:150](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L150)
***
### 1024
> **1024**: [`ChannelSelectCommand`](/api/interfaces/channelselectcommand/)
#### Source
[src/types/core-modules.ts:158](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L158)
***
### 128
> **128**: [`UserSelectCommand`](/api/interfaces/userselectcommand/)
#### Source
[src/types/core-modules.ts:160](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L160)
***
### 16
> **16**: [`ButtonCommand`](/api/interfaces/buttoncommand/)
#### Source
[src/types/core-modules.ts:155](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L155)
***
### 2
> **2**: [`SlashCommand`](/api/interfaces/slashcommand/)
#### Source
[src/types/core-modules.ts:151](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L151)
***
### 256
> **256**: [`RoleSelectCommand`](/api/interfaces/roleselectcommand/)
#### Source
[src/types/core-modules.ts:157](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L157)
***
### 3
> **3**: [`BothCommand`](/api/interfaces/bothcommand/)
#### Source
[src/types/core-modules.ts:152](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L152)
***
### 32
> **32**: [`StringSelectCommand`](/api/interfaces/stringselectcommand/)
#### Source
[src/types/core-modules.ts:156](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L156)
***
### 4
> **4**: [`ContextMenuUser`](/api/interfaces/contextmenuuser/)
#### Source
[src/types/core-modules.ts:154](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L154)
***
### 512
> **512**: [`MentionableSelectCommand`](/api/interfaces/mentionableselectcommand/)
#### Source
[src/types/core-modules.ts:159](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L159)
***
### 64
> **64**: [`ModalSubmitCommand`](/api/interfaces/modalsubmitcommand/)
#### Source
[src/types/core-modules.ts:161](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L161)
***
### 8
> **8**: [`ContextMenuMsg`](/api/interfaces/contextmenumsg/)
#### Source
[src/types/core-modules.ts:153](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L153)

View File

@@ -0,0 +1,102 @@
---
editUrl: false
next: false
prev: false
title: "ContextMenuMsg"
---
## Extends
- `Module`
## Properties
### description?
> `optional` **description**: `string`
#### Inherited from
`Module.description`
#### Source
[src/types/core-modules.ts:36](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L36)
***
### execute()
> **execute**: (`ctx`) => `unknown`
#### Parameters
**ctx**: `MessageContextMenuCommandInteraction`\<`CacheType`\>
#### Returns
`unknown`
#### Overrides
`Module.execute`
#### Source
[src/types/core-modules.ts:60](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L60)
***
### name?
> `optional` **name**: `string`
#### Inherited from
`Module.name`
#### Source
[src/types/core-modules.ts:33](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L33)
***
### onEvent
> **onEvent**: [`ControlPlugin`](/api/interfaces/controlplugin/)\<`any`[]\>[]
#### Inherited from
`Module.onEvent`
#### Source
[src/types/core-modules.ts:34](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L34)
***
### plugins
> **plugins**: [`InitPlugin`](/api/interfaces/initplugin/)\<`any`[]\>[]
#### Inherited from
`Module.plugins`
#### Source
[src/types/core-modules.ts:35](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L35)
***
### type
> **type**: [`CtxMsg`](/api/enumerations/commandtype/#ctxmsg)
#### Overrides
`Module.type`
#### Source
[src/types/core-modules.ts:59](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L59)

View File

@@ -0,0 +1,102 @@
---
editUrl: false
next: false
prev: false
title: "ContextMenuUser"
---
## Extends
- `Module`
## Properties
### description?
> `optional` **description**: `string`
#### Inherited from
`Module.description`
#### Source
[src/types/core-modules.ts:36](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L36)
***
### execute()
> **execute**: (`ctx`) => `unknown`
#### Parameters
**ctx**: `UserContextMenuCommandInteraction`\<`CacheType`\>
#### Returns
`unknown`
#### Overrides
`Module.execute`
#### Source
[src/types/core-modules.ts:55](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L55)
***
### name?
> `optional` **name**: `string`
#### Inherited from
`Module.name`
#### Source
[src/types/core-modules.ts:33](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L33)
***
### onEvent
> **onEvent**: [`ControlPlugin`](/api/interfaces/controlplugin/)\<`any`[]\>[]
#### Inherited from
`Module.onEvent`
#### Source
[src/types/core-modules.ts:34](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L34)
***
### plugins
> **plugins**: [`InitPlugin`](/api/interfaces/initplugin/)\<`any`[]\>[]
#### Inherited from
`Module.plugins`
#### Source
[src/types/core-modules.ts:35](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L35)
***
### type
> **type**: [`CtxUser`](/api/enumerations/commandtype/#ctxuser)
#### Overrides
`Module.type`
#### Source
[src/types/core-modules.ts:54](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L54)

View File

@@ -0,0 +1,38 @@
---
editUrl: false
next: false
prev: false
title: "ControlPlugin"
---
## Type parameters
**Args** *extends* `any`[] = `any`[]
## Properties
### execute()
> **execute**: (...`args`) => [`PluginResult`](/api/type-aliases/pluginresult/)
#### Parameters
• ...**args**: `Args`
#### Returns
[`PluginResult`](/api/type-aliases/pluginresult/)
#### Source
[src/types/core-plugin.ts:73](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-plugin.ts#L73)
***
### type
> **type**: [`Control`](/api/enumerations/plugintype/#control)
#### Source
[src/types/core-plugin.ts:72](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-plugin.ts#L72)

View File

@@ -0,0 +1,34 @@
---
editUrl: false
next: false
prev: false
title: "Controller"
---
## Properties
### next()
> **next**: () => `Ok`\<`void`\>
#### Returns
`Ok`\<`void`\>
#### Source
[src/types/core-plugin.ts:59](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-plugin.ts#L59)
***
### stop()
> **stop**: () => `Err`\<`void`\>
#### Returns
`Err`\<`void`\>
#### Source
[src/types/core-plugin.ts:60](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-plugin.ts#L60)

View File

@@ -0,0 +1,94 @@
---
editUrl: false
next: false
prev: false
title: "CoreDependencies"
---
## Properties
### @sern/client()
> **@sern/client**: () => [`Emitter`](/api/interfaces/emitter/)
#### Returns
[`Emitter`](/api/interfaces/emitter/)
#### Source
[src/types/ioc.ts:28](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/ioc.ts#L28)
***
### @sern/emitter()
> **@sern/emitter**: () => [`Emitter`](/api/interfaces/emitter/)
#### Returns
[`Emitter`](/api/interfaces/emitter/)
#### Source
[src/types/ioc.ts:29](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/ioc.ts#L29)
***
### @sern/errors()
> **@sern/errors**: () => [`ErrorHandling`](/api/interfaces/errorhandling/)
#### Returns
[`ErrorHandling`](/api/interfaces/errorhandling/)
#### Source
[src/types/ioc.ts:36](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/ioc.ts#L36)
***
### @sern/logger()?
> `optional` **@sern/logger**: () => [`Logging`](/api/interfaces/logging/)\<`unknown`\>
#### Returns
[`Logging`](/api/interfaces/logging/)\<`unknown`\>
#### Source
[src/types/ioc.ts:37](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/ioc.ts#L37)
***
### @sern/modules()
> **@sern/modules**: () => `ModuleManager`
#### Returns
`ModuleManager`
#### Source
[src/types/ioc.ts:35](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/ioc.ts#L35)
***
### ~~@sern/store()~~
> **@sern/store**: () => [`CoreModuleStore`](/api/interfaces/coremodulestore/)
:::caution[Deprecated]
Will be removed and turned internal
:::
#### Returns
[`CoreModuleStore`](/api/interfaces/coremodulestore/)
#### Source
[src/types/ioc.ts:34](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/ioc.ts#L34)

View File

@@ -0,0 +1,28 @@
---
editUrl: false
next: false
prev: false
title: "CoreModuleStore"
---
Represents a core module store that stores IDs mapped to file paths.
## Properties
### commands
> **commands**: `Map`\<`string`, `Module`\>
#### Source
[src/core/contracts/module-store.ts:7](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/module-store.ts#L7)
***
### metadata
> **metadata**: `WeakMap`\<`Module`, `CommandMeta`\>
#### Source
[src/core/contracts/module-store.ts:8](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/module-store.ts#L8)

View File

@@ -0,0 +1,106 @@
---
editUrl: false
next: false
prev: false
title: "DiscordEventCommand"
---
## Extends
- `Module`
## Type parameters
**T** *extends* keyof `ClientEvents` = keyof `ClientEvents`
## Properties
### description?
> `optional` **description**: `string`
#### Inherited from
`Module.description`
#### Source
[src/types/core-modules.ts:36](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L36)
***
### name?
> `optional` **name**: `T`
#### Overrides
`Module.name`
#### Source
[src/types/core-modules.ts:106](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L106)
***
### onEvent
> **onEvent**: [`ControlPlugin`](/api/interfaces/controlplugin/)\<`any`[]\>[]
#### Inherited from
`Module.onEvent`
#### Source
[src/types/core-modules.ts:34](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L34)
***
### plugins
> **plugins**: [`InitPlugin`](/api/interfaces/initplugin/)\<`any`[]\>[]
#### Inherited from
`Module.plugins`
#### Source
[src/types/core-modules.ts:35](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L35)
***
### type
> **type**: [`Discord`](/api/enumerations/eventtype/#discord)
#### Overrides
`Module.type`
#### Source
[src/types/core-modules.ts:107](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L107)
## Methods
### execute()
> **execute**(...`args`): `unknown`
#### Parameters
• ...**args**: `ClientEvents`\[`T`\]
#### Returns
`unknown`
#### Overrides
`Module.execute`
#### Source
[src/types/core-modules.ts:108](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L108)

View File

@@ -0,0 +1,23 @@
---
editUrl: false
next: false
prev: false
title: "Disposable"
---
Represents a Disposable contract.
Let dependencies implement this to dispose and cleanup.
## Methods
### dispose()
> **dispose**(): `unknown`
#### Returns
`unknown`
#### Source
[src/core/contracts/hooks.ts:15](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/hooks.ts#L15)

View File

@@ -0,0 +1,66 @@
---
editUrl: false
next: false
prev: false
title: "Emitter"
---
## Methods
### addListener()
> **addListener**(`eventName`, `listener`): `this`
#### Parameters
**eventName**: `string` \| `symbol`
**listener**: `AnyFunction`
#### Returns
`this`
#### Source
[src/core/contracts/emitter.ts:6](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/emitter.ts#L6)
***
### emit()
> **emit**(`eventName`, ...`payload`): `boolean`
#### Parameters
**eventName**: `string` \| `symbol`
• ...**payload**: `any`[]
#### Returns
`boolean`
#### Source
[src/core/contracts/emitter.ts:8](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/emitter.ts#L8)
***
### removeListener()
> **removeListener**(`eventName`, `listener`): `this`
#### Parameters
**eventName**: `string` \| `symbol`
**listener**: `AnyFunction`
#### Returns
`this`
#### Source
[src/core/contracts/emitter.ts:7](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/emitter.ts#L7)

View File

@@ -0,0 +1,52 @@
---
editUrl: false
next: false
prev: false
title: "ErrorHandling"
---
## Since
2.0.0
## Methods
### ~~crash()~~
> **crash**(`err`): `never`
:::caution[Deprecated]
Version 4 will remove this method
:::
#### Parameters
**err**: `Error`
#### Returns
`never`
#### Source
[src/core/contracts/error-handling.ts:9](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/error-handling.ts#L9)
***
### updateAlive()
> **updateAlive**(`error`): `void`
A function that is called on every throw.
#### Parameters
**error**: `Error`
#### Returns
`void`
#### Source
[src/core/contracts/error-handling.ts:14](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/error-handling.ts#L14)

View File

@@ -0,0 +1,36 @@
---
editUrl: false
next: false
prev: false
title: "EventModuleDefs"
---
## Properties
### 1
> **1**: [`DiscordEventCommand`](/api/interfaces/discordeventcommand/)\<keyof `ClientEvents`\>
#### Source
[src/types/core-modules.ts:166](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L166)
***
### 2
> **2**: [`SernEventCommand`](/api/interfaces/serneventcommand/)\<keyof [`SernEventsMapping`](/api/interfaces/serneventsmapping/)\>
#### Source
[src/types/core-modules.ts:165](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L165)
***
### 3
> **3**: [`ExternalEventCommand`](/api/interfaces/externaleventcommand/)
#### Source
[src/types/core-modules.ts:167](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L167)

View File

@@ -0,0 +1,112 @@
---
editUrl: false
next: false
prev: false
title: "ExternalEventCommand"
---
## Extends
- `Module`
## Properties
### description?
> `optional` **description**: `string`
#### Inherited from
`Module.description`
#### Source
[src/types/core-modules.ts:36](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L36)
***
### emitter
> **emitter**: keyof `Dependencies`
#### Source
[src/types/core-modules.ts:48](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L48)
***
### name?
> `optional` **name**: `string`
#### Overrides
`Module.name`
#### Source
[src/types/core-modules.ts:47](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L47)
***
### onEvent
> **onEvent**: [`ControlPlugin`](/api/interfaces/controlplugin/)\<`any`[]\>[]
#### Inherited from
`Module.onEvent`
#### Source
[src/types/core-modules.ts:34](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L34)
***
### plugins
> **plugins**: [`InitPlugin`](/api/interfaces/initplugin/)\<`any`[]\>[]
#### Inherited from
`Module.plugins`
#### Source
[src/types/core-modules.ts:35](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L35)
***
### type
> **type**: [`External`](/api/enumerations/eventtype/#external)
#### Overrides
`Module.type`
#### Source
[src/types/core-modules.ts:49](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L49)
## Methods
### execute()
> **execute**(...`args`): `unknown`
#### Parameters
• ...**args**: `unknown`[]
#### Returns
`unknown`
#### Overrides
`Module.execute`
#### Source
[src/types/core-modules.ts:50](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L50)

View File

@@ -0,0 +1,23 @@
---
editUrl: false
next: false
prev: false
title: "Init"
---
Represents an initialization contract.
Let dependencies implement this to initiate some logic.
## Methods
### init()
> **init**(): `unknown`
#### Returns
`unknown`
#### Source
[src/core/contracts/hooks.ts:7](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/hooks.ts#L7)

View File

@@ -0,0 +1,38 @@
---
editUrl: false
next: false
prev: false
title: "InitPlugin"
---
## Type parameters
**Args** *extends* `any`[] = `any`[]
## Properties
### execute()
> **execute**: (...`args`) => [`PluginResult`](/api/type-aliases/pluginresult/)
#### Parameters
• ...**args**: `Args`
#### Returns
[`PluginResult`](/api/type-aliases/pluginresult/)
#### Source
[src/types/core-plugin.ts:69](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-plugin.ts#L69)
***
### type
> **type**: [`Init`](/api/enumerations/plugintype/#init)
#### Source
[src/types/core-plugin.ts:68](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-plugin.ts#L68)

View File

@@ -0,0 +1,86 @@
---
editUrl: false
next: false
prev: false
title: "Logging"
---
## Since
2.0.0
## Type parameters
**T** = `unknown`
## Methods
### debug()
> **debug**(`payload`): `void`
#### Parameters
**payload**: [`LogPayload`](/api/type-aliases/logpayload/)\<`T`\>
#### Returns
`void`
#### Source
[src/core/contracts/logging.ts:8](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/logging.ts#L8)
***
### error()
> **error**(`payload`): `void`
#### Parameters
**payload**: [`LogPayload`](/api/type-aliases/logpayload/)\<`T`\>
#### Returns
`void`
#### Source
[src/core/contracts/logging.ts:5](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/logging.ts#L5)
***
### info()
> **info**(`payload`): `void`
#### Parameters
**payload**: [`LogPayload`](/api/type-aliases/logpayload/)\<`T`\>
#### Returns
`void`
#### Source
[src/core/contracts/logging.ts:7](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/logging.ts#L7)
***
### warning()
> **warning**(`payload`): `void`
#### Parameters
**payload**: [`LogPayload`](/api/type-aliases/logpayload/)\<`T`\>
#### Returns
`void`
#### Source
[src/core/contracts/logging.ts:6](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/logging.ts#L6)

View File

@@ -0,0 +1,102 @@
---
editUrl: false
next: false
prev: false
title: "MentionableSelectCommand"
---
## Extends
- `Module`
## Properties
### description?
> `optional` **description**: `string`
#### Inherited from
`Module.description`
#### Source
[src/types/core-modules.ts:36](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L36)
***
### execute()
> **execute**: (`ctx`) => `unknown`
#### Parameters
**ctx**: `MentionableSelectMenuInteraction`\<`CacheType`\>
#### Returns
`unknown`
#### Overrides
`Module.execute`
#### Source
[src/types/core-modules.ts:85](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L85)
***
### name?
> `optional` **name**: `string`
#### Inherited from
`Module.name`
#### Source
[src/types/core-modules.ts:33](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L33)
***
### onEvent
> **onEvent**: [`ControlPlugin`](/api/interfaces/controlplugin/)\<`any`[]\>[]
#### Inherited from
`Module.onEvent`
#### Source
[src/types/core-modules.ts:34](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L34)
***
### plugins
> **plugins**: [`InitPlugin`](/api/interfaces/initplugin/)\<`any`[]\>[]
#### Inherited from
`Module.plugins`
#### Source
[src/types/core-modules.ts:35](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L35)
***
### type
> **type**: [`MentionableSelect`](/api/enumerations/commandtype/#mentionableselect)
#### Overrides
`Module.type`
#### Source
[src/types/core-modules.ts:84](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L84)

View File

@@ -0,0 +1,102 @@
---
editUrl: false
next: false
prev: false
title: "ModalSubmitCommand"
---
## Extends
- `Module`
## Properties
### description?
> `optional` **description**: `string`
#### Inherited from
`Module.description`
#### Source
[src/types/core-modules.ts:36](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L36)
***
### execute()
> **execute**: (`ctx`) => `unknown`
#### Parameters
**ctx**: `ModalSubmitInteraction`\<`CacheType`\>
#### Returns
`unknown`
#### Overrides
`Module.execute`
#### Source
[src/types/core-modules.ts:95](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L95)
***
### name?
> `optional` **name**: `string`
#### Inherited from
`Module.name`
#### Source
[src/types/core-modules.ts:33](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L33)
***
### onEvent
> **onEvent**: [`ControlPlugin`](/api/interfaces/controlplugin/)\<`any`[]\>[]
#### Inherited from
`Module.onEvent`
#### Source
[src/types/core-modules.ts:34](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L34)
***
### plugins
> **plugins**: [`InitPlugin`](/api/interfaces/initplugin/)\<`any`[]\>[]
#### Inherited from
`Module.plugins`
#### Source
[src/types/core-modules.ts:35](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L35)
***
### type
> **type**: [`Modal`](/api/enumerations/commandtype/#modal)
#### Overrides
`Module.type`
#### Source
[src/types/core-modules.ts:94](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L94)

View File

@@ -0,0 +1,38 @@
---
editUrl: false
next: false
prev: false
title: "Plugin"
---
## Type parameters
**Args** *extends* `any`[] = `any`[]
## Properties
### execute()
> **execute**: (...`args`) => [`PluginResult`](/api/type-aliases/pluginresult/)
#### Parameters
• ...**args**: `Args`
#### Returns
[`PluginResult`](/api/type-aliases/pluginresult/)
#### Source
[src/types/core-plugin.ts:64](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-plugin.ts#L64)
***
### type
> **type**: [`PluginType`](/api/enumerations/plugintype/)
#### Source
[src/types/core-plugin.ts:63](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-plugin.ts#L63)

View File

@@ -0,0 +1,102 @@
---
editUrl: false
next: false
prev: false
title: "RoleSelectCommand"
---
## Extends
- `Module`
## Properties
### description?
> `optional` **description**: `string`
#### Inherited from
`Module.description`
#### Source
[src/types/core-modules.ts:36](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L36)
***
### execute()
> **execute**: (`ctx`) => `unknown`
#### Parameters
**ctx**: `RoleSelectMenuInteraction`\<`CacheType`\>
#### Returns
`unknown`
#### Overrides
`Module.execute`
#### Source
[src/types/core-modules.ts:80](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L80)
***
### name?
> `optional` **name**: `string`
#### Inherited from
`Module.name`
#### Source
[src/types/core-modules.ts:33](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L33)
***
### onEvent
> **onEvent**: [`ControlPlugin`](/api/interfaces/controlplugin/)\<`any`[]\>[]
#### Inherited from
`Module.onEvent`
#### Source
[src/types/core-modules.ts:34](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L34)
***
### plugins
> **plugins**: [`InitPlugin`](/api/interfaces/initplugin/)\<`any`[]\>[]
#### Inherited from
`Module.plugins`
#### Source
[src/types/core-modules.ts:35](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L35)
***
### type
> **type**: [`RoleSelect`](/api/enumerations/commandtype/#roleselect)
#### Overrides
`Module.type`
#### Source
[src/types/core-modules.ts:79](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L79)

View File

@@ -0,0 +1,110 @@
---
editUrl: false
next: false
prev: false
title: "SernAutocompleteData"
---
## Extends
- `Omit`\<`BaseApplicationCommandOptionsData`, `"autocomplete"`\>
## Properties
### autocomplete
> **autocomplete**: `true`
#### Source
[src/types/core-modules.ts:172](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L172)
***
### command
> **command**: `AutocompleteCommand`
#### Source
[src/types/core-modules.ts:177](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L177)
***
### description
> **description**: `string`
#### Inherited from
`Omit.description`
#### Source
node\_modules/discord.js/typings/index.d.ts:4711
***
### descriptionLocalizations?
> `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"` \| `"es-419"` \| `"sv-SE"` \| `"th"` \| `"tr"` \| `"uk"` \| `"vi"`, `null` \| `string`\>\>
#### Inherited from
`Omit.descriptionLocalizations`
#### Source
node\_modules/discord.js/typings/index.d.ts:4712
***
### name
> **name**: `string`
#### Inherited from
`Omit.name`
#### Source
node\_modules/discord.js/typings/index.d.ts:4709
***
### nameLocalizations?
> `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"` \| `"es-419"` \| `"sv-SE"` \| `"th"` \| `"tr"` \| `"uk"` \| `"vi"`, `null` \| `string`\>\>
#### Inherited from
`Omit.nameLocalizations`
#### Source
node\_modules/discord.js/typings/index.d.ts:4710
***
### required?
> `optional` **required**: `boolean`
#### Inherited from
`Omit.required`
#### Source
node\_modules/discord.js/typings/index.d.ts:4713
***
### type
> **type**: `String` \| `Integer` \| `Number`
#### Source
[src/types/core-modules.ts:173](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L173)

View File

@@ -0,0 +1,106 @@
---
editUrl: false
next: false
prev: false
title: "SernEventCommand"
---
## Extends
- `Module`
## Type parameters
**T** *extends* keyof [`SernEventsMapping`](/api/interfaces/serneventsmapping/) = keyof [`SernEventsMapping`](/api/interfaces/serneventsmapping/)
## Properties
### description?
> `optional` **description**: `string`
#### Inherited from
`Module.description`
#### Source
[src/types/core-modules.ts:36](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L36)
***
### name?
> `optional` **name**: `T`
#### Overrides
`Module.name`
#### Source
[src/types/core-modules.ts:42](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L42)
***
### onEvent
> **onEvent**: [`ControlPlugin`](/api/interfaces/controlplugin/)\<`any`[]\>[]
#### Inherited from
`Module.onEvent`
#### Source
[src/types/core-modules.ts:34](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L34)
***
### plugins
> **plugins**: [`InitPlugin`](/api/interfaces/initplugin/)\<`any`[]\>[]
#### Inherited from
`Module.plugins`
#### Source
[src/types/core-modules.ts:35](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L35)
***
### type
> **type**: [`Sern`](/api/enumerations/eventtype/#sern)
#### Overrides
`Module.type`
#### Source
[src/types/core-modules.ts:43](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L43)
## Methods
### execute()
> **execute**(...`args`): `unknown`
#### Parameters
• ...**args**: [`SernEventsMapping`](/api/interfaces/serneventsmapping/)\[`T`\]
#### Returns
`unknown`
#### Overrides
`Module.execute`
#### Source
[src/types/core-modules.ts:44](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L44)

View File

@@ -0,0 +1,56 @@
---
editUrl: false
next: false
prev: false
title: "SernEventsMapping"
---
## Properties
### error
> **error**: [`object`]
#### Source
[src/types/utility.ts:21](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/utility.ts#L21)
***
### module.activate
> **module.activate**: [[`Payload`](/api/type-aliases/payload/)]
#### Source
[src/types/utility.ts:20](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/utility.ts#L20)
***
### module.register
> **module.register**: [[`Payload`](/api/type-aliases/payload/)]
#### Source
[src/types/utility.ts:19](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/utility.ts#L19)
***
### modulesLoaded
> **modulesLoaded**: [`undefined?`]
#### Source
[src/types/utility.ts:23](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/utility.ts#L23)
***
### warning
> **warning**: [[`Payload`](/api/type-aliases/payload/)]
#### Source
[src/types/utility.ts:22](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/utility.ts#L22)

View File

@@ -0,0 +1,104 @@
---
editUrl: false
next: false
prev: false
title: "SernSubCommandData"
---
## Extends
- `APIApplicationCommandOptionBase`\<`ApplicationCommandOptionType.Subcommand`\>
## Properties
### description
> **description**: `string`
#### Inherited from
`APIApplicationCommandOptionBase.description`
#### Source
node\_modules/discord-api-types/payloads/v10/\_interactions/\_applicationCommands/\_chatInput/base.d.ts:7
***
### description\_localizations?
> `optional` **description\_localizations**: `null` \| `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"` \| `"es-419"` \| `"sv-SE"` \| `"th"` \| `"tr"` \| `"uk"` \| `"vi"`, `null` \| `string`\>\>
#### Inherited from
`APIApplicationCommandOptionBase.description_localizations`
#### Source
node\_modules/discord-api-types/payloads/v10/\_interactions/\_applicationCommands/\_chatInput/base.d.ts:8
***
### name
> **name**: `string`
#### Inherited from
`APIApplicationCommandOptionBase.name`
#### Source
node\_modules/discord-api-types/payloads/v10/\_interactions/\_applicationCommands/\_chatInput/base.d.ts:5
***
### name\_localizations?
> `optional` **name\_localizations**: `null` \| `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"` \| `"es-419"` \| `"sv-SE"` \| `"th"` \| `"tr"` \| `"uk"` \| `"vi"`, `null` \| `string`\>\>
#### Inherited from
`APIApplicationCommandOptionBase.name_localizations`
#### Source
node\_modules/discord-api-types/payloads/v10/\_interactions/\_applicationCommands/\_chatInput/base.d.ts:6
***
### options?
> `optional` **options**: [`SernOptionsData`](/api/type-aliases/sernoptionsdata/)[]
#### Source
[src/types/core-modules.ts:209](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L209)
***
### required?
> `optional` **required**: `boolean`
#### Inherited from
`APIApplicationCommandOptionBase.required`
#### Source
node\_modules/discord-api-types/payloads/v10/\_interactions/\_applicationCommands/\_chatInput/base.d.ts:9
***
### type
> **type**: `Subcommand`
#### Overrides
`APIApplicationCommandOptionBase.type`
#### Source
[src/types/core-modules.ts:208](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L208)

View File

@@ -0,0 +1,114 @@
---
editUrl: false
next: false
prev: false
title: "SernSubCommandGroupData"
---
## Extends
- `BaseApplicationCommandOptionsData`
## Properties
### autocomplete?
> `optional` **autocomplete**: `undefined`
#### Inherited from
`BaseApplicationCommandOptionsData.autocomplete`
#### Source
node\_modules/discord.js/typings/index.d.ts:4714
***
### description
> **description**: `string`
#### Inherited from
`BaseApplicationCommandOptionsData.description`
#### Source
node\_modules/discord.js/typings/index.d.ts:4711
***
### descriptionLocalizations?
> `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"` \| `"es-419"` \| `"sv-SE"` \| `"th"` \| `"tr"` \| `"uk"` \| `"vi"`, `null` \| `string`\>\>
#### Inherited from
`BaseApplicationCommandOptionsData.descriptionLocalizations`
#### Source
node\_modules/discord.js/typings/index.d.ts:4712
***
### name
> **name**: `string`
#### Inherited from
`BaseApplicationCommandOptionsData.name`
#### Source
node\_modules/discord.js/typings/index.d.ts:4709
***
### nameLocalizations?
> `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"` \| `"es-419"` \| `"sv-SE"` \| `"th"` \| `"tr"` \| `"uk"` \| `"vi"`, `null` \| `string`\>\>
#### Inherited from
`BaseApplicationCommandOptionsData.nameLocalizations`
#### Source
node\_modules/discord.js/typings/index.d.ts:4710
***
### options?
> `optional` **options**: [`SernSubCommandData`](/api/interfaces/sernsubcommanddata/)[]
#### Source
[src/types/core-modules.ts:214](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L214)
***
### required?
> `optional` **required**: `boolean`
#### Inherited from
`BaseApplicationCommandOptionsData.required`
#### Source
node\_modules/discord.js/typings/index.d.ts:4713
***
### type
> **type**: `SubcommandGroup`
#### Source
[src/types/core-modules.ts:213](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L213)

View File

@@ -0,0 +1,114 @@
---
editUrl: false
next: false
prev: false
title: "SlashCommand"
---
## Extends
- `Module`
## Properties
### description
> **description**: `string`
#### Overrides
`Module.description`
#### Source
[src/types/core-modules.ts:118](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L118)
***
### execute()
> **execute**: (`ctx`, `args`) => `unknown`
#### Parameters
**ctx**: [`Context`](/api/classes/context/)
**args**: [`"slash"`, [`SlashOptions`](/api/type-aliases/slashoptions/)]
#### Returns
`unknown`
#### Overrides
`Module.execute`
#### Source
[src/types/core-modules.ts:120](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L120)
***
### name?
> `optional` **name**: `string`
#### Inherited from
`Module.name`
#### Source
[src/types/core-modules.ts:33](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L33)
***
### onEvent
> **onEvent**: [`ControlPlugin`](/api/interfaces/controlplugin/)\<`any`[]\>[]
#### Inherited from
`Module.onEvent`
#### Source
[src/types/core-modules.ts:34](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L34)
***
### options?
> `optional` **options**: [`SernOptionsData`](/api/type-aliases/sernoptionsdata/)[]
#### Source
[src/types/core-modules.ts:119](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L119)
***
### plugins
> **plugins**: [`InitPlugin`](/api/interfaces/initplugin/)\<`any`[]\>[]
#### Inherited from
`Module.plugins`
#### Source
[src/types/core-modules.ts:35](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L35)
***
### type
> **type**: [`Slash`](/api/enumerations/commandtype/#slash)
#### Overrides
`Module.type`
#### Source
[src/types/core-modules.ts:117](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L117)

View File

@@ -0,0 +1,102 @@
---
editUrl: false
next: false
prev: false
title: "StringSelectCommand"
---
## Extends
- `Module`
## Properties
### description?
> `optional` **description**: `string`
#### Inherited from
`Module.description`
#### Source
[src/types/core-modules.ts:36](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L36)
***
### execute()
> **execute**: (`ctx`) => `unknown`
#### Parameters
**ctx**: `StringSelectMenuInteraction`\<`CacheType`\>
#### Returns
`unknown`
#### Overrides
`Module.execute`
#### Source
[src/types/core-modules.ts:70](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L70)
***
### name?
> `optional` **name**: `string`
#### Inherited from
`Module.name`
#### Source
[src/types/core-modules.ts:33](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L33)
***
### onEvent
> **onEvent**: [`ControlPlugin`](/api/interfaces/controlplugin/)\<`any`[]\>[]
#### Inherited from
`Module.onEvent`
#### Source
[src/types/core-modules.ts:34](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L34)
***
### plugins
> **plugins**: [`InitPlugin`](/api/interfaces/initplugin/)\<`any`[]\>[]
#### Inherited from
`Module.plugins`
#### Source
[src/types/core-modules.ts:35](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L35)
***
### type
> **type**: [`StringSelect`](/api/enumerations/commandtype/#stringselect)
#### Overrides
`Module.type`
#### Source
[src/types/core-modules.ts:69](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L69)

View File

@@ -0,0 +1,114 @@
---
editUrl: false
next: false
prev: false
title: "TextCommand"
---
## Extends
- `Module`
## Properties
### alias?
> `optional` **alias**: `string`[]
#### Source
[src/types/core-modules.ts:112](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L112)
***
### description?
> `optional` **description**: `string`
#### Inherited from
`Module.description`
#### Source
[src/types/core-modules.ts:36](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L36)
***
### execute()
> **execute**: (`ctx`, `args`) => `unknown`
#### Parameters
**ctx**: [`Context`](/api/classes/context/)
**args**: [`"text"`, `string`[]]
#### Returns
`unknown`
#### Overrides
`Module.execute`
#### Source
[src/types/core-modules.ts:113](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L113)
***
### name?
> `optional` **name**: `string`
#### Inherited from
`Module.name`
#### Source
[src/types/core-modules.ts:33](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L33)
***
### onEvent
> **onEvent**: [`ControlPlugin`](/api/interfaces/controlplugin/)\<`any`[]\>[]
#### Inherited from
`Module.onEvent`
#### Source
[src/types/core-modules.ts:34](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L34)
***
### plugins
> **plugins**: [`InitPlugin`](/api/interfaces/initplugin/)\<`any`[]\>[]
#### Inherited from
`Module.plugins`
#### Source
[src/types/core-modules.ts:35](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L35)
***
### type
> **type**: [`Text`](/api/enumerations/commandtype/#text)
#### Overrides
`Module.type`
#### Source
[src/types/core-modules.ts:111](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L111)

View File

@@ -0,0 +1,102 @@
---
editUrl: false
next: false
prev: false
title: "UserSelectCommand"
---
## Extends
- `Module`
## Properties
### description?
> `optional` **description**: `string`
#### Inherited from
`Module.description`
#### Source
[src/types/core-modules.ts:36](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L36)
***
### execute()
> **execute**: (`ctx`) => `unknown`
#### Parameters
**ctx**: `UserSelectMenuInteraction`\<`CacheType`\>
#### Returns
`unknown`
#### Overrides
`Module.execute`
#### Source
[src/types/core-modules.ts:90](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L90)
***
### name?
> `optional` **name**: `string`
#### Inherited from
`Module.name`
#### Source
[src/types/core-modules.ts:33](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L33)
***
### onEvent
> **onEvent**: [`ControlPlugin`](/api/interfaces/controlplugin/)\<`any`[]\>[]
#### Inherited from
`Module.onEvent`
#### Source
[src/types/core-modules.ts:34](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L34)
***
### plugins
> **plugins**: [`InitPlugin`](/api/interfaces/initplugin/)\<`any`[]\>[]
#### Inherited from
`Module.plugins`
#### Source
[src/types/core-modules.ts:35](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L35)
***
### type
> **type**: [`UserSelect`](/api/enumerations/commandtype/#userselect)
#### Overrides
`Module.type`
#### Source
[src/types/core-modules.ts:89](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L89)

View File

@@ -0,0 +1,74 @@
---
editUrl: false
next: false
prev: false
title: "Wrapper"
---
## Properties
### commands
> **commands**: `string`
#### Source
[src/types/core.ts:9](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core.ts#L9)
***
### containerConfig?
> `optional` **containerConfig**: `object`
#### get()
> **get**: (...`keys`) => `unknown`[]
##### Parameters
• ...**keys**: keyof `Dependencies`[]
##### Returns
`unknown`[]
#### Source
[src/types/core.ts:20](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core.ts#L20)
***
### defaultPrefix?
> `optional` **defaultPrefix**: `string`
#### Source
[src/types/core.ts:10](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core.ts#L10)
***
### events?
> `optional` **events**: `string`
#### Source
[src/types/core.ts:11](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core.ts#L11)
***
### ~~mode?~~
> `optional` **mode**: `string`
Overload to enable mode in case developer does not use a .env file.
:::caution[Deprecated]
- https://github.com/sern-handler/handler/pull/325
:::
#### Source
[src/types/core.ts:16](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core.ts#L16)

View File

@@ -0,0 +1,28 @@
---
editUrl: false
next: false
prev: false
title: "module"
---
> **module**\<`T`\>(`conf`): [`Config`](/api/namespaces/presence/type-aliases/config/)\<`T`\>
A small wrapper to provide type inference.
Create a Presence module which **MUST** be put in a file called presence.(language-extension)
adjacent to the file where **Sern.init** is CALLED.
## Type parameters
**T** *extends* keyof `Dependencies`[]
## Parameters
**conf**: [`Config`](/api/namespaces/presence/type-aliases/config/)\<`T`\>
## Returns
[`Config`](/api/namespaces/presence/type-aliases/config/)\<`T`\>
## Source
[src/core/presences.ts:28](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/presences.ts#L28)

View File

@@ -0,0 +1,97 @@
---
editUrl: false
next: false
prev: false
title: "of"
---
> **of**(`root`): `object`
Create a Presence body which can be either:
- once, the presence is activated only once.
- repeated, per cycle or event, the presence can be changed.
## Parameters
**root**: `Omit`\<[`Result`](/api/namespaces/presence/interfaces/result/), `"repeat"` \| `"onRepeat"`\>
## Returns
`object`
### once()
> **once**: () => `Omit`\<[`Result`](/api/namespaces/presence/interfaces/result/), `"repeat"` \| `"onRepeat"`\>
#### Example
```ts
Presence
.of({
activities: [
{ name: "Chilling out" }
]
})
.once() // Sets the presence once, with what's provided in '.of()'
```
#### Returns
`Omit`\<[`Result`](/api/namespaces/presence/interfaces/result/), `"repeat"` \| `"onRepeat"`\>
### repeated()
> **repeated**: (`onRepeat`, `repeat`) => `object`
#### Example
```ts
Presence
.of({
activities: [{ name: "deez nuts" }]
}) //starts the presence with "deez nuts".
.repeated(prev => {
return {
afk: true,
activities: prev.activities?.map(s => ({ ...s, name: s.name+"s" }))
};
}, 10000)) //every 10 s, the callback sets the presence to the returned one.
```
#### Parameters
**onRepeat**: `PresenceReduce`
**repeat**: `number` \| [[`Emitter`](/api/interfaces/emitter/), `string`]
#### Returns
`object`
##### activities?
> `optional` **activities**: `ActivitiesOptions`[]
##### afk?
> `optional` **afk**: `boolean`
##### onRepeat
> **onRepeat**: `PresenceReduce`
##### repeat
> **repeat**: `number` \| [[`Emitter`](/api/interfaces/emitter/), `string`]
##### shardId?
> `optional` **shardId**: `number`[]
##### status?
> `optional` **status**: `Status`
## Source
[src/core/presences.ts:37](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/presences.ts#L37)

View File

@@ -0,0 +1,74 @@
---
editUrl: false
next: false
prev: false
title: "Result"
---
## Properties
### activities?
> `optional` **activities**: `ActivitiesOptions`[]
#### Source
[src/core/presences.ts:11](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/presences.ts#L11)
***
### afk?
> `optional` **afk**: `boolean`
#### Source
[src/core/presences.ts:10](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/presences.ts#L10)
***
### onRepeat()?
> `optional` **onRepeat**: (`previous`) => [`Result`](/api/namespaces/presence/interfaces/result/)
#### Parameters
**previous**: [`Result`](/api/namespaces/presence/interfaces/result/)
#### Returns
[`Result`](/api/namespaces/presence/interfaces/result/)
#### Source
[src/core/presences.ts:14](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/presences.ts#L14)
***
### repeat?
> `optional` **repeat**: `number` \| [[`Emitter`](/api/interfaces/emitter/), `string`]
#### Source
[src/core/presences.ts:13](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/presences.ts#L13)
***
### shardId?
> `optional` **shardId**: `number`[]
#### Source
[src/core/presences.ts:12](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/presences.ts#L12)
***
### status?
> `optional` **status**: `Status`
#### Source
[src/core/presences.ts:9](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/presences.ts#L9)

View File

@@ -0,0 +1,34 @@
---
editUrl: false
next: false
prev: false
title: "Config"
---
> **Config**\<`T`\>: `object`
## Type parameters
**T** *extends* keyof `Dependencies`[]
## Type declaration
### execute()
> **execute**: (...`v`) => [`Result`](/api/namespaces/presence/interfaces/result/)
#### Parameters
• ...**v**: `IntoDependencies`\<`T`\>
#### Returns
[`Result`](/api/namespaces/presence/interfaces/result/)
### inject?
> `optional` **inject**: [`...T`]
## Source
[src/core/presences.ts:17](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/presences.ts#L17)

View File

@@ -0,0 +1,33 @@
---
editUrl: false
next: false
prev: false
title: "init"
---
> **init**(`maybeWrapper`): `void`
## Parameters
**maybeWrapper**: [`Wrapper`](/api/interfaces/wrapper/) \| `"file"`
## Returns
`void`
## Since
1.0.0
## Example
```ts title="src/index.ts"
Sern.init({
commands: 'dist/commands',
events: 'dist/events',
})
```
## Source
[src/sern.ts:26](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/sern.ts#L26)

View File

@@ -0,0 +1,12 @@
---
editUrl: false
next: false
prev: false
title: "AnyCommandPlugin"
---
> **AnyCommandPlugin**: [`ControlPlugin`](/api/interfaces/controlplugin/) \| [`InitPlugin`](/api/interfaces/initplugin/)\<[`InitArgs`\<`Processed`\<[`CommandModule`](/api/type-aliases/commandmodule/)\>\>]\>
## Source
[src/types/core-plugin.ts:76](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-plugin.ts#L76)

View File

@@ -0,0 +1,12 @@
---
editUrl: false
next: false
prev: false
title: "AnyEventPlugin"
---
> **AnyEventPlugin**: [`ControlPlugin`](/api/interfaces/controlplugin/) \| [`InitPlugin`](/api/interfaces/initplugin/)\<[`InitArgs`\<`Processed`\<[`EventModule`](/api/type-aliases/eventmodule/)\>\>]\>
## Source
[src/types/core-plugin.ts:77](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-plugin.ts#L77)

View File

@@ -0,0 +1,22 @@
---
editUrl: false
next: false
prev: false
title: "Args"
---
> **Args**: `ParseType`\<`object`\>
## Type declaration
### slash
> **slash**: [`SlashOptions`](/api/type-aliases/slashoptions/)
### text
> **text**: `string`[]
## Source
[src/types/utility.ts:16](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/utility.ts#L16)

View File

@@ -0,0 +1,12 @@
---
editUrl: false
next: false
prev: false
title: "CommandModule"
---
> **CommandModule**: [`TextCommand`](/api/interfaces/textcommand/) \| [`SlashCommand`](/api/interfaces/slashcommand/) \| [`BothCommand`](/api/interfaces/bothcommand/) \| [`ContextMenuUser`](/api/interfaces/contextmenuuser/) \| [`ContextMenuMsg`](/api/interfaces/contextmenumsg/) \| [`ButtonCommand`](/api/interfaces/buttoncommand/) \| [`StringSelectCommand`](/api/interfaces/stringselectcommand/) \| [`MentionableSelectCommand`](/api/interfaces/mentionableselectcommand/) \| [`UserSelectCommand`](/api/interfaces/userselectcommand/) \| [`ChannelSelectCommand`](/api/interfaces/channelselectcommand/) \| [`RoleSelectCommand`](/api/interfaces/roleselectcommand/) \| [`ModalSubmitCommand`](/api/interfaces/modalsubmitcommand/)
## Source
[src/types/core-modules.ts:132](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L132)

View File

@@ -0,0 +1,12 @@
---
editUrl: false
next: false
prev: false
title: "EventModule"
---
> **EventModule**: [`DiscordEventCommand`](/api/interfaces/discordeventcommand/) \| [`SernEventCommand`](/api/interfaces/serneventcommand/) \| [`ExternalEventCommand`](/api/interfaces/externaleventcommand/)
## Source
[src/types/core-modules.ts:131](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L131)

View File

@@ -0,0 +1,19 @@
---
editUrl: false
next: false
prev: false
title: "Initializable"
---
> **Initializable**\<`T`\>: `T`
Type to annotate that something is initializable.
If T has an init method, this will be called.
## Type parameters
**T** *extends* [`Init`](/api/interfaces/init/)
## Source
[src/types/ioc.ts:17](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/ioc.ts#L17)

View File

@@ -0,0 +1,22 @@
---
editUrl: false
next: false
prev: false
title: "LogPayload"
---
> **LogPayload**\<`T`\>: `object`
## Type parameters
**T** = `unknown`
## Type declaration
### message
> **message**: `T`
## Source
[src/core/contracts/logging.ts:11](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/contracts/logging.ts#L11)

View File

@@ -0,0 +1,12 @@
---
editUrl: false
next: false
prev: false
title: "Payload"
---
> **Payload**: `object` \| `object` \| `object`
## Source
[src/types/utility.ts:26](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/utility.ts#L26)

View File

@@ -0,0 +1,12 @@
---
editUrl: false
next: false
prev: false
title: "PluginResult"
---
> **PluginResult**: `Awaitable`\<`VoidResult`\>
## Source
[src/types/core-plugin.ts:51](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-plugin.ts#L51)

View File

@@ -0,0 +1,14 @@
---
editUrl: false
next: false
prev: false
title: "SernOptionsData"
---
> **SernOptionsData**: [`SernSubCommandData`](/api/interfaces/sernsubcommanddata/) \| [`SernSubCommandGroupData`](/api/interfaces/sernsubcommandgroupdata/) \| `APIApplicationCommandBasicOption` \| [`SernAutocompleteData`](/api/interfaces/sernautocompletedata/)
Type that replaces autocomplete with [SernAutocompleteData](../../../../../../api/interfaces/sernautocompletedata)
## Source
[src/types/core-modules.ts:200](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/core-modules.ts#L200)

View File

@@ -0,0 +1,23 @@
---
editUrl: false
next: false
prev: false
title: "Singleton"
---
> **Singleton**\<`T`\>: () => `T`
Type to annotate that something is a singleton.
T is created once and lazily.
## Type parameters
**T**
## Returns
`T`
## Source
[src/types/ioc.ts:7](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/ioc.ts#L7)

View File

@@ -0,0 +1,12 @@
---
editUrl: false
next: false
prev: false
title: "SlashOptions"
---
> **SlashOptions**: `Omit`\<`CommandInteractionOptionResolver`, `"getMessage"` \| `"getFocused"`\>
## Source
[src/types/utility.ts:14](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/utility.ts#L14)

View File

@@ -0,0 +1,27 @@
---
editUrl: false
next: false
prev: false
title: "Transient"
---
> **Transient**\<`T`\>: () => () => `T`
Type to annotate that something is transient.
Every time this is called, a new object is created
## Type parameters
**T**
## Returns
`Function`
### Returns
`T`
## Source
[src/types/ioc.ts:12](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/types/ioc.ts#L12)

View File

@@ -0,0 +1,35 @@
---
editUrl: false
next: false
prev: false
title: "controller"
---
> `const` **controller**: `object`
## Since
1.0.0
The object passed into every plugin to control a command's behavior
## Type declaration
### next()
> **next**: () => `OkImpl`\<`void`\> = `ok`
#### Returns
`OkImpl`\<`void`\>
### stop()
> **stop**: () => `ErrImpl`\<`void`\> = `err`
#### Returns
`ErrImpl`\<`void`\>
## Source
[src/core/create-plugins.ts:69](https://github.com/sern-handler/handler/blob/91b3768e376cfe22ec37d8ab44f4e4a4dfe8a1e8/src/core/create-plugins.ts#L69)

View File

@@ -0,0 +1,5 @@
---
title: Hello
---
Hello world

View File

@@ -0,0 +1,86 @@
---
// Heavily inspired from https://github.com/lorenzolewis/starlight-multi-sidebar/blob/main/src/components/Sidebar.astro
import type { Props } from "@astrojs/starlight/props";
import StarlightSidebar from "@astrojs/starlight/components/Sidebar.astro";
import { AstroError } from "astro/errors";
const sidebarConfig: [string, boolean, Props][] = Astro.props.sidebar.map(
(s) => {
if (s.type !== "group") {
throw new AstroError(
`\`${s.label}\` cannot be used with multiple Starlight sidebars.
Each top-level \`sidebar\` item in the Starlight config must be either a group or autogenerated.
See https://starlight.astro.build/guides/sidebar/#groups and https://starlight.astro.build/guides/sidebar/#autogenerated-groups`,
);
}
const isCurrent = (s: (typeof Astro.props.sidebar)[number]) =>
s.type === "link" ? s.isCurrent : s.entries.some(isCurrent);
return [s.label, isCurrent(s), { ...Astro.props, sidebar: [...s.entries] }];
},
);
---
<div class="__collapse">
{
sidebarConfig.map(([label, isCurrent, props]) => (
<>
<input
type="radio"
name="sidebar"
role="tab"
aria-label={label}
checked={isCurrent}
/>
<div class="__collapse-content">
<StarlightSidebar {...props}>
<slot />
</StarlightSidebar>
</div>
</>
))
}
</div>
<style>
.__collapse {
display: grid;
}
.__collapse > input {
position: relative;
display: inline-flex;
grid-row-start: 1;
appearance: none;
border-radius: 0.25rem;
padding: 0.2em 0.5rem;
line-height: 1.4;
font-size: var(--sl-text-lg);
font-weight: 600;
cursor: pointer;
user-select: none;
margin-bottom: var(--sl-nav-pad-y);
}
.__collapse > input::after {
content: attr(aria-label);
}
.__collapse > input:checked {
color: var(--sl-color-text-invert);
background-color: var(--sl-color-text-accent);
}
.__collapse > .__collapse-content {
display: none;
grid-column-start: 1;
grid-column-end: span 999;
grid-row-start: 2;
}
.__collapse > input:checked + .__collapse-content {
display: block;
}
</style>

View File

@@ -12,7 +12,7 @@ interface Link {
const links: Link[] = [
{
name: "Docs",
href: "/guide/walkthrough/goal",
href: "/v3/guide/walkthrough/goal",
},
{
name: "Plugins",