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.
| Feld | Typ | Beschreibung | Standard |
|---|---|---|---|
boolean | boolean | Umschalter für aktivierte/deaktivierte Optionen. | - |
input | string | Freier Textwert. | - |
select | string | Ein Wert, ausgewählt aus vordefinierten Optionen. | - |
slider | number | Numerischer 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.