From 1071d24362bbf1d39d528f73c3233f22aee99778 Mon Sep 17 00:00:00 2001 From: advaith Date: Fri, 28 Jul 2023 02:48:07 -0700 Subject: [PATCH] fix(Presence): cannot receive invisible status (#799) --- deno/payloads/v10/gateway.ts | 13 +++++++++---- deno/payloads/v10/guild.ts | 4 ++-- deno/payloads/v9/gateway.ts | 13 +++++++++---- deno/payloads/v9/guild.ts | 4 ++-- payloads/v10/gateway.ts | 13 +++++++++---- payloads/v10/guild.ts | 4 ++-- payloads/v9/gateway.ts | 13 +++++++++---- payloads/v9/guild.ts | 4 ++-- 8 files changed, 44 insertions(+), 24 deletions(-) diff --git a/deno/payloads/v10/gateway.ts b/deno/payloads/v10/gateway.ts index 303e2fe1..9015831f 100644 --- a/deno/payloads/v10/gateway.ts +++ b/deno/payloads/v10/gateway.ts @@ -79,7 +79,7 @@ export interface GatewayPresenceUpdate { /** * Either "idle", "dnd", "online", or "offline" */ - status?: PresenceUpdateStatus; + status?: PresenceUpdateReceiveStatus; /** * User's current activities * @@ -94,6 +94,9 @@ export interface GatewayPresenceUpdate { client_status?: GatewayPresenceClientStatus; } +/** + * https://discord.com/developers/docs/topics/gateway-events#update-presence-status-types + */ export enum PresenceUpdateStatus { Online = 'online', DoNotDisturb = 'dnd', @@ -105,6 +108,8 @@ export enum PresenceUpdateStatus { Offline = 'offline', } +export type PresenceUpdateReceiveStatus = Exclude; + /** * https://discord.com/developers/docs/topics/gateway-events#client-status-object */ @@ -112,15 +117,15 @@ export interface GatewayPresenceClientStatus { /** * The user's status set for an active desktop (Windows, Linux, Mac) application session */ - desktop?: PresenceUpdateStatus; + desktop?: PresenceUpdateReceiveStatus; /** * The user's status set for an active mobile (iOS, Android) application session */ - mobile?: PresenceUpdateStatus; + mobile?: PresenceUpdateReceiveStatus; /** * The user's status set for an active web (browser, bot account) application session */ - web?: PresenceUpdateStatus; + web?: PresenceUpdateReceiveStatus; } /** diff --git a/deno/payloads/v10/guild.ts b/deno/payloads/v10/guild.ts index c1d68851..59dcd7cb 100644 --- a/deno/payloads/v10/guild.ts +++ b/deno/payloads/v10/guild.ts @@ -4,7 +4,7 @@ import type { Permissions, Snowflake } from '../../globals.ts'; import type { APIEmoji, APIPartialEmoji } from './emoji.ts'; -import type { PresenceUpdateStatus } from './gateway.ts'; +import type { PresenceUpdateReceiveStatus } from './gateway.ts'; import type { OAuth2Scopes } from './oauth2.ts'; import type { APIRole } from './permissions.ts'; import type { APISticker } from './sticker.ts'; @@ -903,7 +903,7 @@ export interface APIGuildWidgetMember { username: string; discriminator: string; avatar: string | null; - status: PresenceUpdateStatus; + status: PresenceUpdateReceiveStatus; activity?: { name: string }; avatar_url: string; } diff --git a/deno/payloads/v9/gateway.ts b/deno/payloads/v9/gateway.ts index a5b0afd3..03cb0ba4 100644 --- a/deno/payloads/v9/gateway.ts +++ b/deno/payloads/v9/gateway.ts @@ -79,7 +79,7 @@ export interface GatewayPresenceUpdate { /** * Either "idle", "dnd", "online", or "offline" */ - status?: PresenceUpdateStatus; + status?: PresenceUpdateReceiveStatus; /** * User's current activities * @@ -94,6 +94,9 @@ export interface GatewayPresenceUpdate { client_status?: GatewayPresenceClientStatus; } +/** + * https://discord.com/developers/docs/topics/gateway-events#update-presence-status-types + */ export enum PresenceUpdateStatus { Online = 'online', DoNotDisturb = 'dnd', @@ -105,6 +108,8 @@ export enum PresenceUpdateStatus { Offline = 'offline', } +export type PresenceUpdateReceiveStatus = Exclude; + /** * https://discord.com/developers/docs/topics/gateway-events#client-status-object */ @@ -112,15 +117,15 @@ export interface GatewayPresenceClientStatus { /** * The user's status set for an active desktop (Windows, Linux, Mac) application session */ - desktop?: PresenceUpdateStatus; + desktop?: PresenceUpdateReceiveStatus; /** * The user's status set for an active mobile (iOS, Android) application session */ - mobile?: PresenceUpdateStatus; + mobile?: PresenceUpdateReceiveStatus; /** * The user's status set for an active web (browser, bot account) application session */ - web?: PresenceUpdateStatus; + web?: PresenceUpdateReceiveStatus; } /** diff --git a/deno/payloads/v9/guild.ts b/deno/payloads/v9/guild.ts index cfdd465b..9fd48e4f 100644 --- a/deno/payloads/v9/guild.ts +++ b/deno/payloads/v9/guild.ts @@ -4,7 +4,7 @@ import type { Permissions, Snowflake } from '../../globals.ts'; import type { APIEmoji, APIPartialEmoji } from './emoji.ts'; -import type { PresenceUpdateStatus } from './gateway.ts'; +import type { PresenceUpdateReceiveStatus } from './gateway.ts'; import type { OAuth2Scopes } from './oauth2.ts'; import type { APIRole } from './permissions.ts'; import type { APISticker } from './sticker.ts'; @@ -895,7 +895,7 @@ export interface APIGuildWidgetMember { username: string; discriminator: string; avatar: string | null; - status: PresenceUpdateStatus; + status: PresenceUpdateReceiveStatus; activity?: { name: string }; avatar_url: string; } diff --git a/payloads/v10/gateway.ts b/payloads/v10/gateway.ts index 20bd317e..1f0d3f6f 100644 --- a/payloads/v10/gateway.ts +++ b/payloads/v10/gateway.ts @@ -79,7 +79,7 @@ export interface GatewayPresenceUpdate { /** * Either "idle", "dnd", "online", or "offline" */ - status?: PresenceUpdateStatus; + status?: PresenceUpdateReceiveStatus; /** * User's current activities * @@ -94,6 +94,9 @@ export interface GatewayPresenceUpdate { client_status?: GatewayPresenceClientStatus; } +/** + * https://discord.com/developers/docs/topics/gateway-events#update-presence-status-types + */ export enum PresenceUpdateStatus { Online = 'online', DoNotDisturb = 'dnd', @@ -105,6 +108,8 @@ export enum PresenceUpdateStatus { Offline = 'offline', } +export type PresenceUpdateReceiveStatus = Exclude; + /** * https://discord.com/developers/docs/topics/gateway-events#client-status-object */ @@ -112,15 +117,15 @@ export interface GatewayPresenceClientStatus { /** * The user's status set for an active desktop (Windows, Linux, Mac) application session */ - desktop?: PresenceUpdateStatus; + desktop?: PresenceUpdateReceiveStatus; /** * The user's status set for an active mobile (iOS, Android) application session */ - mobile?: PresenceUpdateStatus; + mobile?: PresenceUpdateReceiveStatus; /** * The user's status set for an active web (browser, bot account) application session */ - web?: PresenceUpdateStatus; + web?: PresenceUpdateReceiveStatus; } /** diff --git a/payloads/v10/guild.ts b/payloads/v10/guild.ts index 1b0fffc3..643ad025 100644 --- a/payloads/v10/guild.ts +++ b/payloads/v10/guild.ts @@ -4,7 +4,7 @@ import type { Permissions, Snowflake } from '../../globals'; import type { APIEmoji, APIPartialEmoji } from './emoji'; -import type { PresenceUpdateStatus } from './gateway'; +import type { PresenceUpdateReceiveStatus } from './gateway'; import type { OAuth2Scopes } from './oauth2'; import type { APIRole } from './permissions'; import type { APISticker } from './sticker'; @@ -903,7 +903,7 @@ export interface APIGuildWidgetMember { username: string; discriminator: string; avatar: string | null; - status: PresenceUpdateStatus; + status: PresenceUpdateReceiveStatus; activity?: { name: string }; avatar_url: string; } diff --git a/payloads/v9/gateway.ts b/payloads/v9/gateway.ts index bb3ac0a7..07698526 100644 --- a/payloads/v9/gateway.ts +++ b/payloads/v9/gateway.ts @@ -79,7 +79,7 @@ export interface GatewayPresenceUpdate { /** * Either "idle", "dnd", "online", or "offline" */ - status?: PresenceUpdateStatus; + status?: PresenceUpdateReceiveStatus; /** * User's current activities * @@ -94,6 +94,9 @@ export interface GatewayPresenceUpdate { client_status?: GatewayPresenceClientStatus; } +/** + * https://discord.com/developers/docs/topics/gateway-events#update-presence-status-types + */ export enum PresenceUpdateStatus { Online = 'online', DoNotDisturb = 'dnd', @@ -105,6 +108,8 @@ export enum PresenceUpdateStatus { Offline = 'offline', } +export type PresenceUpdateReceiveStatus = Exclude; + /** * https://discord.com/developers/docs/topics/gateway-events#client-status-object */ @@ -112,15 +117,15 @@ export interface GatewayPresenceClientStatus { /** * The user's status set for an active desktop (Windows, Linux, Mac) application session */ - desktop?: PresenceUpdateStatus; + desktop?: PresenceUpdateReceiveStatus; /** * The user's status set for an active mobile (iOS, Android) application session */ - mobile?: PresenceUpdateStatus; + mobile?: PresenceUpdateReceiveStatus; /** * The user's status set for an active web (browser, bot account) application session */ - web?: PresenceUpdateStatus; + web?: PresenceUpdateReceiveStatus; } /** diff --git a/payloads/v9/guild.ts b/payloads/v9/guild.ts index de7fd98e..4f930070 100644 --- a/payloads/v9/guild.ts +++ b/payloads/v9/guild.ts @@ -4,7 +4,7 @@ import type { Permissions, Snowflake } from '../../globals'; import type { APIEmoji, APIPartialEmoji } from './emoji'; -import type { PresenceUpdateStatus } from './gateway'; +import type { PresenceUpdateReceiveStatus } from './gateway'; import type { OAuth2Scopes } from './oauth2'; import type { APIRole } from './permissions'; import type { APISticker } from './sticker'; @@ -895,7 +895,7 @@ export interface APIGuildWidgetMember { username: string; discriminator: string; avatar: string | null; - status: PresenceUpdateStatus; + status: PresenceUpdateReceiveStatus; activity?: { name: string }; avatar_url: string; }