Command Palette

Search for a command to run...

Einstellungen

Füge typisierte Presence-Einstellungen mit Boolean-, Eingabe-, Auswahl- und Slider-Steuerelementen hinzu.

Was Einstellungen Sind

Mit Einstellungen können Nutzer das Verhalten einer Presence anpassen, ohne Code zu bearbeiten.

Unterstützte Einstellungstypen

Nowly unterstützt Boolean-, Eingabe-, Auswahl- und Slider-Einstellungen.

FeldTypBeschreibungStandard
booleanbooleanUmschalter für aktivierte/deaktivierte Optionen.-
inputstringFreier Textwert.-
selectstringEin Wert, ausgewählt aus vordefinierten Optionen.-
slidernumberNumerischer Wert mit optionalem Min, Max und Schrittweite.-

Einstellungen Definieren

Verwende Presence.Settings, um typisierte Einstellungen zu definieren:

Ab CLI 1.7.0 wird eine settings.ts mit Standardexport neben presence.ts empfohlen. Sie ersetzt ältere Inline-Definitionen mit Presence.Settings({ ... }) vollständig; die Quellen werden nicht zusammengeführt. Eine ungültige Datei bricht den Build ab. Ohne diese Datei bleibt das Legacy-Format unterstützt.

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

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

Die CLI erkennt settings.ts automatisch. In presence.ts sind weder ein Import noch ein Aufruf von Presence.Settings nötig. Sie erzeugt weiterhin settings.json und registriert Standardwerte. Gespeicherte Benutzerwerte haben Vorrang. Verwende deklarative, JSON-kompatible Definitionen ohne Browser- oder Node-APIs. Für einen expliziten Typ nutze getSetting<boolean>("showButtons").

Einstellungen Lesen

Verwende getSetting zur Laufzeit. Die Werte stammen aus den gespeicherten Einstellungen des Nutzers und fallen auf die Standardwerte aus Presence.Settings zurück. Live-Änderungen aus dem Seitenpanel kommen als SETTINGS_UPDATED an und aktualisieren dieselbe Map.

Du kannst die aktuelle Map auch aus ctx.settings in UpdateData lesen:

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

Lokalisierte Bezeichnungen

Einstellungsbezeichnungen und -beschreibungen verwenden dieselben Locale-Schlüssel wie die Metadaten.

Standardwerte

Wähle sichere Standardwerte. Eine Presence sollte direkt nach der Installation funktionieren, ohne dass eine Konfiguration erforderlich ist.