設定
boolean、input、select、sliderのコントロールを使って型付けされたプレゼンス個別の設定を追加します。
設定とは
設定を使うと、ユーザーはコードを編集せずにプレゼンスの動作をカスタマイズできます。
サポートされている設定の種類
Nowlyはboolean、input、select、sliderの設定をサポートしています。
| フィールド | タイプ | 説明 | デフォルト |
|---|---|---|---|
boolean | boolean | 有効/無効のオプションを切り替えます。 | - |
input | string | 自由形式のテキスト値。 | - |
select | string | あらかじめ定義された選択肢から選ぶ1つの値。 | - |
slider | number | 任意のmin、max、stepを持つ数値。 | - |
設定の定義
Presence.Settings を使って型付けされた設定を定義します。
CLI 1.7.0 以降では、presence.ts の隣にデフォルトエクスポートを持つ settings.ts を作成する方法を推奨します。このファイルは従来のインライン定義 Presence.Settings({ ... }) を完全に置き換え、両者は統合されません。ファイルが無効な場合はビルドが失敗します。ファイルがなければ、従来の legacy 形式も利用できます。
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 は settings.ts を自動検出します。presence.ts でのインポートや Presence.Settings の呼び出しは不要です。引き続き settings.json を生成し、デフォルト値を登録します。ユーザーが保存した値が優先されます。ブラウザーや Node の API を使わず、JSON 互換の宣言的な定義にしてください。明示的な型が必要な場合は getSetting<boolean>("showButtons") を使います。
設定の読み取り
実行時には getSetting を使用します。値はユーザーが保存した設定から取得され、未設定の場合は Presence.Settings のデフォルト値にフォールバックします。サイドパネルからのライブ変更は SETTINGS_UPDATED として届き、同じマップを更新します。
UpdateData 内の ctx.settings から現在のマップを読み取ることもできます。
presence.on("UpdateData", async (ctx) => {
const showButtons = await presence.getSetting<boolean>("showButtons")
// 同じ値: ctx.settings.showButtons
})多言語対応のラベル
設定のラベルと説明は、メタデータで使用されているのと同じロケールキーを使用します。
デフォルト値
安全なデフォルト値を選んでください。プレゼンスは、設定をしなくてもインストール直後から動作するべきです。