Base de bot de discordResponders

Emitir

Emita interações para manipuladores de Responders

O manipulador de Responder que você cria será executado quando um evento de interação for emitido! Mas você pode emitir seu próprio evento de interação de forma simples usando a função emitResponder:

import { emitResponder } from "@constatic/base";

emitResponder("/foo/bar", interaction);

Passe o customId do Responder correspondente no primeiro argumento e uma interação de qualquer tipo no segundo argumento.

Então o manipulador run do Responder será executado:

import { createResponder } from "#base";
import { ResponderType } from "@constatic/base";

createResponder({
    customId: "/foo/bar",
    types: [ResponderType.Button], cache: "cached",
    async run(interaction){
        // fazer coisas
    }
});

Você pode passar parâmetros de customId na função emitResponder e eles chegarão no Responder:


emitResponder(`/remember/${Date.now()}`, interaction)
//                        ^ "1780301472577"

// ...
createResponder({
    customId: "/remember/:date",
    types: [ResponderType.Button], cache: "cached",
    async run(interaction, { date }){ // "1780301472577"
        console.log(new Date(date)) // Date Mon Jun 01 2026
    }
});

Mas tome cuidado para não criar um loop infinito:

createResponder({
    customId: "/foo/bar",
    types: [ResponderType.Button], cache: "cached",
    async run(interaction){
        emitResponder("/foo/bar", interaction);
    }
});