Presence API
웹사이트 연동에서 Discord Rich Presence를 업데이트하려면 Nowly Presence API를 사용하세요.
프레즌스 생성하기
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"이는 Playing, Streaming, Listening, Watching, Competing과 같은 Discord 활동 유형에 매핑됩니다.
getSetting
Presence.Settings 이후 타입이 지정된 프레즌스별 설정을 읽습니다. 값은 사용자가 저장한 설정이거나 정의의 기본값입니다.
const showButtons = await presence.getSetting<boolean>("showButtons")UpdateData도 동일한 맵을 가진 ctx.settings를 받습니다. 사용자가 사이드 패널에서 설정을 변경하면 둘 다 업데이트됩니다.
로깅
개발 중 디버그 메시지에는 presence.info와 presence.error를 사용하세요.