Saltearse al contenido

Escuchar un evento

Los eventos se utilizan para escuchar acciones emitidas por distintas fuentes como el cliente de Discord o el propio framework de Zumito. Esto permite ejecutar código cuando se produce un evento específico.

Para comenzar a escuchar un evento solo necesitas ejecutar el siguiente comando:

Ventana de terminal
npx zumito-cli create event

Te preguntará el nombre del evento y el módulo donde quieres crearlo.

Tras esto se creará un archivo en src/modules/<module>/events con el nombre del evento.

El archivo contendrá el siguiente código:

import { FrameworkEvent, EventParameters } from 'zumito-framework';
export class EventName extends FrameworkEvent {
once = false;
source = 'discord'
async execute({ interaction, client, framework, }: EventParameters): Promise<void> {
// Código del evento
}
}

Para empezar a definir el evento necesitamos establecer la propiedad once. Esta propiedad indica si el evento se ejecutará solo una vez o cada vez que se emita.

Ahora definamos un ejemplo para el evento interactionCreate. Primero estableceremos la propiedad once en false ya que queremos que se ejecute cada vez que se emita el evento:

once = false;

Luego definiremos la propiedad source en discord ya que queremos escuchar un evento de Discord. Para otros casos podemos escuchar otras fuentes como framework:

source = 'discord';

Ahora necesitamos definir la función execute. Esta función se ejecutará cada vez que se emita el evento. La función execute recibe un objeto EventParameters con las siguientes propiedades:

  • message - El mensaje que desencadenó el evento. Solo disponible para messageCreate.
  • interaction - La interacción que desencadenó el evento. Solo disponible para interactionCreate.
  • client - La instancia de Discord.js.
  • framework - La instancia de Zumito Framework.

Por último definamos el código del evento:

async execute({ interaction, client, framework, }: EventParameters): Promise<void> {
interaction.reply('Hello world!');
}