# InteractionMiddleware

`class` in `seedcord` · v0.15.0

<https://docs.seedcord.org/packages/seedcord/0.15.0/classes/interaction-middleware>

Base class for interaction middleware

Middleware runs before interaction handlers and can modify behavior or block execution. Unlike handlers, middleware should not send responses directly.

```ts
abstract class InteractionMiddleware<Repliable extends Repliables>
    extends BaseHandler<Repliable>
    implements Handler
```

## Constructors

### constructor

```ts
InteractionMiddleware(event: Repliable, core: Core)
```

Constructs a new instance of the `InteractionMiddleware` class

## Properties

### core

```ts
readonly core: Core
```

### event

```ts
protected readonly event: ValidEvent
```

### logger

```ts
protected readonly logger: Logger
```

## Methods

### execute

```ts
abstract async execute(): Promise<void>
```

Holds the main logic of your handler. The dispatcher calls it after the handler's gates pass, so a gate that refuses stops `execute()` from running.
