Presence API
Verwende die Nowly-Presence-API, um Discord Rich Presence aus einer Website-Integration zu aktualisieren.
Eine Presence erstellen
Presence ist ein globales Objekt, das von der Nowly-Laufzeitumgebung bereitgestellt wird - du musst es nicht importieren.
Jede Presence beginnt mit einer Presence-Instanz:
const presence = new Presence()UpdateData-Ereignis
Verwende UpdateData, um die Aktivität zu aktualisieren:
presence.on("UpdateData", async () => {
await presence.setActivity({
details: "Watching a video",
})
})setActivity
setActivity sendet die aktuelle Discord-Aktivität. Häufig verwendete Felder sind:
| Feld | Typ | Beschreibung | Standard |
|---|---|---|---|
details | string | Primäre Aktivitätszeile, die in Discord angezeigt wird. | - |
state | string | Sekundäre Aktivitätszeile, angezeigt unter details. | - |
startTimestamp | number | Unix-Zeitstempel für den verstrichenen Aktivitätsfortschritt. | - |
endTimestamp | number | Unix-Zeitstempel für den verbleibenden Aktivitätsfortschritt. | - |
largeImageKey | string | Haupt-Bild-Asset-Schlüssel, meist Assets.Logo oder Assets.Thumbnail (Globals der Laufzeitumgebung). | - |
largeImageText | string | Tooltip für das große Bild. | - |
smallImageKey | string | Optionaler Schlüssel für ein kleines Bild-Asset. | - |
smallImageText | string | Tooltip für das kleine Bild. | - |
type | number | Discord-Aktivitätstyp aus PresenceType. | - |
buttons | array | Optionale Discord-Activity-Buttons. | - |
clearActivity
Rufe clearActivity auf, wenn es nichts Sehenswertes gibt:
presence.clearActivity()PresenceType
PresenceType ist ein benannter Export aus @nowly/sdk:
import { PresenceType } from "@nowly/sdk"Er bildet Discord-Aktivitätstypen ab: Playing, Streaming, Listening, Watching und Competing.
getSetting
Lese eine typisierte Presence-Einstellung nach Presence.Settings. Der Wert ist die gespeicherte Einstellung des Nutzers oder der Standardwert aus der Definition:
const showButtons = await presence.getSetting<boolean>("showButtons")UpdateData erhält ebenfalls ctx.settings mit derselben Map. Beide aktualisieren sich, wenn der Nutzer Einstellungen im Seitenpanel ändert.
Logging
Verwende presence.info und presence.error für Debug-Meldungen während der Entwicklung.