Command Palette

Search for a command to run...

Ajustes

Añade ajustes tipados por presencia con controles booleanos, de entrada, selección y deslizantes.

Qué son los ajustes

Los ajustes permiten a los usuarios personalizar el comportamiento de una presencia sin editar código.

Tipos de ajuste compatibles

Nowly admite ajustes booleanos, de entrada, selección y deslizantes.

CampoTipoDescripciónPredeterminado
booleanbooleanInterruptor para opciones activadas/desactivadas.-
inputstringValor de texto libre.-
selectstringUn valor seleccionado de opciones predefinidas.-
slidernumberValor numérico con mínimo, máximo y paso opcionales.-

Definir ajustes

Usa Presence.Settings para definir ajustes tipados:

Desde CLI 1.7.0, se recomienda un settings.ts con exportación por defecto junto a presence.ts. Sustituye por completo las definiciones inline legacy Presence.Settings({ ... }), sin fusionarlas. Un archivo inválido hace fallar la compilación. Sin este archivo, el formato legacy sigue siendo compatible.

import type { PresenceSetting } from "@nowly/sdk"

export default {
  showButtons: {
    type: "boolean",
    default: true,
    label: {
      "en-US": "Mostrar botones"
    }
  }
} satisfies Record<string, PresenceSetting>
const presence = new Presence()

El CLI detecta settings.ts automáticamente, sin importarlo ni llamar a Presence.Settings en presence.ts. Sigue generando settings.json y registra los valores predeterminados. Los valores guardados por el usuario tienen prioridad. Usa definiciones declarativas compatibles con JSON, sin API del navegador ni de Node. Para una lectura tipada, usa getSetting<boolean>("showButtons").

Leer ajustes

Usa getSetting en tiempo de ejecución. Los valores vienen de los ajustes guardados del usuario, con respaldo a los valores por defecto de Presence.Settings. Los cambios desde el panel lateral llegan como SETTINGS_UPDATED y actualizan el mismo mapa.

También puedes leer ctx.settings en UpdateData:

presence.on("UpdateData", async (ctx) => {
  const showButtons = await presence.getSetting<boolean>("showButtons")
  // mismo valor: ctx.settings.showButtons
})

Etiquetas localizadas

Las etiquetas y descripciones de los ajustes usan las mismas claves de idioma que los metadatos.

Valores predeterminados

Elige valores predeterminados seguros. Una presencia debería funcionar justo después de la instalación, sin configuración.