Presence API
Nowly Presence APIを使って、ウェブサイト連携からDiscord Rich Presenceを更新します。
プレゼンスの作成
Presence はNowlyランタイムによって注入されるグローバルオブジェクトです。インポートする必要はありません。
すべてのプレゼンスは Presence インスタンスから始まります。
const presence = new Presence()UpdateDataイベント
アクティビティを更新するには UpdateData を使用します。
presence.on("UpdateData", async () => {
await presence.setActivity({
details: "Watching a video",
})
})setActivity
setActivity は現在のDiscordアクティビティを送信します。主なフィールドは以下のとおりです。
| フィールド | タイプ | 説明 | デフォルト |
|---|---|---|---|
details | string | Discordに表示される主要なアクティビティ行。 | - |
state | string | detailsの下に表示される補助的なアクティビティ行。 | - |
startTimestamp | number | 経過したアクティビティの進行状況を示すUnixタイムスタンプ。 | - |
endTimestamp | number | 残りのアクティビティの進行状況を示すUnixタイムスタンプ。 | - |
largeImageKey | string | メイン画像アセットのキー。通常はAssets.LogoまたはAssets.Thumbnail(ランタイムが提供するグローバル変数)。 | - |
largeImageText | string | 大きい画像のツールチップ。 | - |
smallImageKey | string | 任意の小さい画像アセットのキー。 | - |
smallImageText | string | 小さい画像のツールチップ。 | - |
type | number | PresenceTypeによるDiscordアクティビティの種類。 | - |
buttons | array | 任意のDiscordアクティビティボタン。 | - |
clearActivity
表示する価値のあるものがない場合は clearActivity を呼び出します。
presence.clearActivity()PresenceType
PresenceType は @nowly/sdk からの名前付きエクスポートです。
import { PresenceType } from "@nowly/sdk"これはDiscordのアクティビティタイプ(Playing、Streaming、Listening、Watching、Competing)に対応します。
getSetting
Presence.Settings に基づいた、型付けされたプレゼンス個別の設定を読み取ります。値はユーザーが保存した設定、または定義のデフォルト値です。
const showButtons = await presence.getSetting<boolean>("showButtons")UpdateData も同じマップを持つ ctx.settings を受け取ります。ユーザーがサイドパネルで設定を変更すると、両方とも更新されます。
ロギング
開発中のデバッグメッセージには presence.info と presence.error を使用してください。