Command Palette

Search for a command to run...

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アクティビティを送信します。主なフィールドは以下のとおりです。

フィールドタイプ説明デフォルト
detailsstringDiscordに表示される主要なアクティビティ行。-
statestringdetailsの下に表示される補助的なアクティビティ行。-
startTimestampnumber経過したアクティビティの進行状況を示すUnixタイムスタンプ。-
endTimestampnumber残りのアクティビティの進行状況を示すUnixタイムスタンプ。-
largeImageKeystringメイン画像アセットのキー。通常はAssets.LogoまたはAssets.Thumbnail(ランタイムが提供するグローバル変数)。-
largeImageTextstring大きい画像のツールチップ。-
smallImageKeystring任意の小さい画像アセットのキー。-
smallImageTextstring小さい画像のツールチップ。-
typenumberPresenceTypeによるDiscordアクティビティの種類。-
buttonsarray任意のDiscordアクティビティボタン。-

clearActivity

表示する価値のあるものがない場合は clearActivity を呼び出します。

presence.clearActivity()

PresenceType

PresenceType@nowly/sdk からの名前付きエクスポートです。

import { PresenceType } from "@nowly/sdk"

これはDiscordのアクティビティタイプ(PlayingStreamingListeningWatchingCompeting)に対応します。

getSetting

Presence.Settings に基づいた、型付けされたプレゼンス個別の設定を読み取ります。値はユーザーが保存した設定、または定義のデフォルト値です。

const showButtons = await presence.getSetting<boolean>("showButtons")

UpdateData も同じマップを持つ ctx.settings を受け取ります。ユーザーがサイドパネルで設定を変更すると、両方とも更新されます。

ロギング

開発中のデバッグメッセージには presence.infopresence.error を使用してください。