Skip to content
Classgatewayv0.7.5

Seedcord

The gateway bot host. Opens a discord.js gateway session, discovers handlers, and runs coordinated startup and shutdown. Attach plugins with attach().

class Seedcord
    extends Pluggable<"gateway", "server">
    implements SeedcordInstance

Member visibility

Filter class members by access level.

constructor

Constructs a new instance of the Seedcord class

Seedcord(config: GatewayConfig)
Parameter: config

Bot configuration including paths and Discord client options

Throws:

A SeedcordError When attempting to create multiple instances (singleton)

applicationId

The bot's Discord application id. Throws if you read it before login.

public get applicationId(): string

bot

public readonly bot: Bot

See also:Bot

bus

public readonly bus: Bus

See also:Bus

rest

The discord.js client's REST client. Its token is set during the Login phase.

public readonly rest: REST

username

The bot's discord username, populated after login.

public get username(): string | undefined

attach()

Attaches a plugin under key. Read the instance back as core[key]. seedcord codegen writes the Core augmentation that types it there.

Put one dot in the key to nest the plugin under a group, so 'services.users' reads back as core.services.users. Each name holds one plugin or one group.

Startup runs each plugin's init() in attach order within its phase.

Attaching a plugin whose transport or runtime differs from this host fails to compile. Your constructor takes CoreBase as its first parameter (you don't need to pass it though). A narrower one fails to compile here.

attach<Key, Ctor>(
    this: this,
    key: AttachKeyAssert<Key, this>,
    Plugin: AttachableCtor<Ctor, BotT, BotRt>,
    args: PluginArgs<Ctor>
): this & Attached<Key, InstanceType<Ctor>>
Parameter: key

Also the channel the plugin logs on, dots included. Reserved channel names throw.

Parameter: args

Whatever your constructor takes after the host.

Throws:

A SeedcordError if you attach after the bot has started. A taken or reserved key throws too. So does a plugin that extends Plugin from another copy of @seedcord/core.

Inherited from:Pluggable

start()

Starts the bot and runs all initialization tasks

public async start(): Promise<this>