Command Palette

Search for a command to run...

Ustawienia

Dodaj typowane ustawienia dla poszczególnych obecności z kontrolkami boolean, input, select i slider.

Czym są ustawienia

Ustawienia pozwalają użytkownikom dostosować działanie obecności bez edytowania kodu.

Obsługiwane typy ustawień

Nowly obsługuje ustawienia typu boolean, input, select i slider.

PoleTypOpisDomyślny
booleanbooleanPrzełącznik dla opcji włączonych/wyłączonych.-
inputstringDowolna wartość tekstowa.-
selectstringJedna wartość wybrana spośród predefiniowanych opcji.-
slidernumberWartość liczbowa z opcjonalnym min, max i krokiem.-

Definiowanie ustawień

Użyj Presence.Settings, aby zdefiniować typowane ustawienia:

Od CLI 1.7.0 zalecany jest plik settings.ts z eksportem domyślnym obok presence.ts. Całkowicie zastępuje on starsze definicje inline Presence.Settings({ ... }), bez łączenia źródeł. Nieprawidłowy plik przerywa kompilację. Bez niego format legacy nadal jest obsługiwany.

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()

CLI automatycznie wykrywa settings.ts. W presence.ts nie potrzeba importu ani wywołania Presence.Settings. Nadal generuje settings.json i rejestruje wartości domyślne. Wartości zapisane przez użytkownika mają pierwszeństwo. Używaj deklaratywnych definicji zgodnych z JSON, bez API przeglądarki lub Node. Dla jawnego typu użyj getSetting<boolean>("showButtons").

Odczytywanie ustawień

Użyj getSetting w czasie wykonywania. Wartości pochodzą z zapisanych ustawień użytkownika, z powrotem do wartości domyślnych z Presence.Settings. Zmiany na żywo z panelu bocznego docierają jako SETTINGS_UPDATED i aktualizują tę samą mapę.

Możesz też odczytać bieżącą mapę z ctx.settings w UpdateData:

presence.on("UpdateData", async (ctx) => {
  const showButtons = await presence.getSetting<boolean>("showButtons")
  // ta sama wartość: ctx.settings.showButtons
})

Zlokalizowane etykiety

Etykiety i opisy ustawień używają tych samych kluczy locale, co metadane.

Wartości domyślne

Wybieraj bezpieczne wartości domyślne. Obecność powinna działać od razu po instalacji, bez konieczności konfiguracji.