Presence API
Użyj Presence API Nowly, aby aktualizować Discord Rich Presence z integracji ze stroną internetową.
Tworzenie obecności
Presence jest obiektem globalnym wstrzykiwanym przez środowisko uruchomieniowe Nowly - nie musisz go importować.
Każda obecność zaczyna się od instancji Presence:
const presence = new Presence()Zdarzenie UpdateData
Użyj UpdateData, aby odświeżyć aktywność:
presence.on("UpdateData", async () => {
await presence.setActivity({
details: "Watching a video",
})
})setActivity
setActivity wysyła bieżącą aktywność Discorda. Typowe pola obejmują:
| Pole | Typ | Opis | Domyślny |
|---|---|---|---|
details | string | Główna linia aktywności wyświetlana w Discordzie. | - |
state | string | Druga linia aktywności wyświetlana pod details. | - |
startTimestamp | number | Znacznik czasu Unix dla upływu postępu aktywności. | - |
endTimestamp | number | Znacznik czasu Unix dla pozostałego postępu aktywności. | - |
largeImageKey | string | Klucz głównego zasobu obrazu, zwykle Assets.Logo lub Assets.Thumbnail (globalne dostarczane przez środowisko uruchomieniowe). | - |
largeImageText | string | Podpowiedź dla dużego obrazu. | - |
smallImageKey | string | Opcjonalny klucz małego zasobu obrazu. | - |
smallImageText | string | Podpowiedź dla małego obrazu. | - |
type | number | Typ aktywności Discorda z PresenceType. | - |
buttons | array | Opcjonalne przyciski aktywności Discorda. | - |
clearActivity
Wywołaj clearActivity, gdy nie ma nic wartego pokazania:
presence.clearActivity()PresenceType
PresenceType to nazwany eksport z @nowly/sdk:
import { PresenceType } from "@nowly/sdk"Mapuje się na typy aktywności Discorda: Playing, Streaming, Listening, Watching i Competing.
getSetting
Odczytaj typowane ustawienie danej obecności po Presence.Settings. Wartość to zapisane ustawienie użytkownika lub wartość domyślna z definicji:
const showButtons = await presence.getSetting<boolean>("showButtons")UpdateData również otrzymuje ctx.settings z tą samą mapą. Oba są aktualizowane, gdy użytkownik zmienia ustawienia w panelu bocznym.
Logowanie
Użyj presence.info i presence.error do komunikatów debugowania podczas developmentu.