Command Palette

Search for a command to run...

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:

FeldTypBeschreibungStandard
detailsstringPrimäre Aktivitätszeile, die in Discord angezeigt wird.-
statestringSekundäre Aktivitätszeile, angezeigt unter details.-
startTimestampnumberUnix-Zeitstempel für den verstrichenen Aktivitätsfortschritt.-
endTimestampnumberUnix-Zeitstempel für den verbleibenden Aktivitätsfortschritt.-
largeImageKeystringHaupt-Bild-Asset-Schlüssel, meist Assets.Logo oder Assets.Thumbnail (Globals der Laufzeitumgebung).-
largeImageTextstringTooltip für das große Bild.-
smallImageKeystringOptionaler Schlüssel für ein kleines Bild-Asset.-
smallImageTextstringTooltip für das kleine Bild.-
typenumberDiscord-Aktivitätstyp aus PresenceType.-
buttonsarrayOptionale 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.