mirror of
https://github.com/discordeno/discordeno.git
synced 2026-06-04 18:00:08 +00:00
fix(bot): Check nullable in transformPresence (#4370)
Despite the type not having the optional, it may get called with an partial object
This commit is contained in:
@@ -1,16 +1,16 @@
|
||||
import { type DiscordPresenceUpdate, PresenceStatus } from '@discordeno/types'
|
||||
import type { Bot, PresenceUpdate } from '../index.js'
|
||||
import type { Bot, PresenceUpdate, User } from '../index.js'
|
||||
|
||||
export function transformPresence(bot: Bot, payload: DiscordPresenceUpdate): PresenceUpdate {
|
||||
const presence = {
|
||||
user: bot.transformers.user(bot, payload.user),
|
||||
guildId: bot.transformers.snowflake(payload.guild_id),
|
||||
status: PresenceStatus[payload.status],
|
||||
activities: payload.activities.map((activity) => bot.transformers.activity(bot, activity)),
|
||||
desktop: payload.client_status.desktop,
|
||||
mobile: payload.client_status.mobile,
|
||||
web: payload.client_status.web,
|
||||
} as PresenceUpdate
|
||||
const presence = {} as PresenceUpdate
|
||||
|
||||
if (payload.user) presence.user = bot.transformers.user(bot, payload.user) as User
|
||||
if (payload.guild_id) presence.guildId = bot.transformers.snowflake(payload.guild_id)
|
||||
if (payload.status) presence.status = PresenceStatus[payload.status]
|
||||
if (payload.activities) presence.activities = payload.activities.map((activity) => bot.transformers.activity(bot, activity))
|
||||
if (payload.client_status.desktop) presence.desktop = payload.client_status.desktop
|
||||
if (payload.client_status.mobile) presence.mobile = payload.client_status.mobile
|
||||
if (payload.client_status.web) presence.web = payload.client_status.web
|
||||
|
||||
return bot.transformers.customizers.presence(bot, payload, presence)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user