Ir al contenido

WidgetAlerts y AlertRuntime

Las alertas sin código (la plantilla Alertas) se diseñan en el lienzo del editor y se guardan en alerts del manifest.json. Dos objetos globales las llevan a pantalla, y los dos te dejan meter tu código.

El intérprete que pinta el diseño de manifest.alerts usando Widget.queue. Solo existe si el manifest trae alerts.

  • WidgetAlerts.start(hooks?): arranca las alertas del diseño. Los ganchos son opcionales.
  • WidgetAlerts.clear(): vacía la cola de alertas, quita la que se ve y corta su sonido, igual que «Vaciar alertas» desde Streamer.bot.

Los ganchos de start:

  • before(alert): antes de poner una alerta en la cola. Devuelve false para saltarla.
  • after(alert): cuando la alerta se quita de la pantalla.
  • layer(layer, element, alert): cada capa ya construida, para cambiarla a tu manera. Las capas ocultas (hidden) no se construyen.
WidgetAlerts.start({
before(alert) {
return alert.data.user !== "bot_molesto";
},
});

El motor de las alertas del editor visual. Va dentro de la parte generada de script.js (la marcada con ⟦estudio⟧), así que tu código va fuera de esa marca, en tu parte del archivo.

  • AlertRuntime.features: lo que lleva este motor según el diseño (sonido, vídeo, plegado de follows…).
  • AlertRuntime.alerts: las alertas del diseño (manifest.alerts); se pueden cambiar en caliente.
  • AlertRuntime.show(event, data?): pone en la cola la alerta que escucha ese evento con estos datos, como si llegara de Streamer.bot. Devuelve false si no sale.
  • AlertRuntime.render(alertId, variantId, sample?): pinta quieta una variante con datos de muestra y devuelve su elemento.
  • AlertRuntime.clear(): vacía la cola, quita la alerta que se ve y corta su sonido.

Se asignan desde tu parte de script.js:

  • AlertRuntime.hooks.before(alert): antes de poner una alerta en la cola; false la salta.
  • AlertRuntime.hooks.after(alert): cuando la alerta se quita de la pantalla.
  • AlertRuntime.hooks.layer(name, element, alert): cada capa y cada grupo ya construidos, por su nombre en el código.
AlertRuntime.hooks.layer = (name, element, alert) => {
if (name === "titulo") element.style.letterSpacing = "0.05em";
};

Es lo que usa el editor para reproducir una alerta fuera de la cola y sin sonido.

  • AlertRuntime.timeline.state: status ("idle", "playing" o "paused"), phase ("enter", "active", "exit" o null), alertId, variantId y nodes.
  • AlertRuntime.timeline.play(alertId, variantId, options?): entrada, fase activa y salida. Con nodes solo se animan esos nodos. Devuelve true si acaba y false si se para antes.
  • AlertRuntime.timeline.pause(): para en el instante en que va, también el reloj de la fase activa; false si no estaba sonando.
  • AlertRuntime.timeline.resume(): sigue desde donde se paró; false si no estaba en pausa.
  • AlertRuntime.timeline.restart(): vuelve a empezar la última, con las mismas opciones.
  • AlertRuntime.timeline.stop(): para y quita la que se reproduce.
  • AlertRuntime.timeline.watch(callback): avisa de cada cambio de estado; devuelve cómo dejar de escuchar.