Skip to content
Interfacegatewayv0.7.5

InteractionGateContext

The interaction arm. It extends GuildPermissionsContext with the live interaction and the djs objects resolved from the gateway cache. Repliable is the interaction type the gate supports, inferred from the ctx annotation, so a gate reading button-specific fields is rejected on a slash handler. interaction is the reply target, so user is always present. Use NonModalInteraction to exclude ModalSubmit when the gate needs a reliable caller member or channel.

interface InteractionGateContext<
    Repliable extends Repliables = Repliables
> extends GuildPermissionsContext

Repliable

The interaction type the gate reads, narrowing which handlers accept it.

Repliable extends Repliables = Repliables

appGuildPermissions

The bot's base permission set from the transport's cache. Null when the cached member is unavailable.

readonly appGuildPermissions: bigint | null

Inherited from:GuildPermissionsContext

appPermissions

The bot's permissions in the invoked channel, the wire app_permissions value. Null on gateway events.

readonly appPermissions: bigint | null

Inherited from:GateContextBase

channelId

The channel id, or null when the source carries none.

readonly channelId: string | null

Inherited from:GateContextBase

core

The running framework, with the gateway's bot and bus.

readonly core: Core

declaredRoute

The handler's own route, as kind:route (slash:daily, button:confirm). A handler registered on several reports the one this dispatch matched. Null when the handler declares none, which covers a plain event handler, the unhandled default, and a gate run outside a handler.

readonly declaredRoute: string | null

Inherited from:GateContextBase

dispatch

The bag for this dispatch, the same instance the handler and its middleware hold. Every middleware runs before the first gate. A gate therefore reads what a middleware wrote.

readonly dispatch: DispatchContext

Inherited from:GateContextBase

guild

The guild the interaction happened in, or null in a DM.

readonly guild: Guild | null

interaction

The interaction being handled, which is the reply target.

readonly interaction: Repliable

kind

The literal 'interaction'. Narrow on it before reading interaction.

readonly kind: 'interaction'

member

The invoking member from the cache, or null outside a guild or when uncached.

readonly member: GuildMember | null

memberGuildPermissions

The member's base permission set, roles only, matching djs GuildMember.permissions. Null when the member is unavailable.

readonly memberGuildPermissions: bigint | null

Inherited from:GuildPermissionsContext

memberPermissions

The member's permission bits, or null outside a guild. On an interaction these are the channel-scoped permissions the payload contains, and on a gateway event they're the member's guild-level ones.

readonly memberPermissions: bigint | null

Inherited from:GateContextBase

memberRoleIds

The member's role ids without the everyone role, the shape a raw interaction payload contains. Empty outside a guild or when the source contains none.

readonly memberRoleIds: readonly string[]

Inherited from:GateContextBase

user

The invoking user, always present on an interaction.

readonly user: User

userId

The acting user's id, or null on an event that carries none.

readonly userId: string | null

Inherited from:GateContextBase