# Plugin

`class` in `gateway` · v0.1.4

<https://docs.seedcord.org/packages/gateway/0.1.4/classes/plugin>

Base class for a gateway plugin, binding `this.core` to the gateway [`Core`](/packages/gateway/0.1.4/interfaces/core).

A plugin that runs on either transport extends the base from `@seedcord/core/plugin`, whose `this.core` is typed to the shared members only.

```ts
abstract class Plugin<
    Opts extends GatewayPluginOptions = {}
> extends Plugin<Opts, Core>
```
