Skip to content
Classgatewayv0.9.0

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 ServerHost<"gateway">
    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 another Seedcord exists in this process and has not shut down.

Throws:

A SeedcordError when the running Node or Bun is older than the range in engines.

Showing members with Protected visibility and higher.

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

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

[Symbol.asyncDispose]()

Runs the coordinated shutdown without calling process.exit. A new Seedcord can be constructed afterwards. await using calls this when its scope ends.

async [Symbol.asyncDispose](): Promise<void>

Inherited from:ServerHost

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. '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. A node bot starts in start(). An edge bot starts on its first request.

Attaching a plugin whose transport or runtime differs from this host fails to compile. Take CoreBase as your constructor's first parameter. attach() passes it, so you don't. 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.

Parameter: args

Whatever your constructor takes after the host.

Throws:

A SeedcordError when you attach after the bot has started.

Throws:

A SeedcordTypeError when key is taken, reserved, or malformed.

Throws:

A SeedcordTypeError when the plugin extends Plugin from another copy of @seedcord/core.

Throws:

A SeedcordTypeError when the plugin's transport or runtime differs from this host and the types were bypassed.

Inherited from:PluginHost

start()

Starts the bot and runs all initialization tasks

public async start(): Promise<this>