diff --git a/packages/bot/src/transformers/attachment.ts b/packages/bot/src/transformers/attachment.ts index 9808f281f..895370bcb 100644 --- a/packages/bot/src/transformers/attachment.ts +++ b/packages/bot/src/transformers/attachment.ts @@ -8,7 +8,7 @@ export function transformAttachment(bot: Bot, payload: DiscordAttachment): Attac if (props.id && payload.id) attachment.id = bot.transformers.snowflake(payload.id) if (props.filename && payload.filename) attachment.filename = payload.filename if (props.contentType && payload.content_type) attachment.contentType = payload.content_type - if (props.size && payload.size) attachment.size = payload.size + if (props.size) attachment.size = payload.size if (props.url && payload.url) attachment.url = payload.url if (props.proxyUrl && payload.proxy_url) attachment.proxyUrl = payload.proxy_url if (props.height && payload.height) attachment.height = payload.height @@ -17,7 +17,7 @@ export function transformAttachment(bot: Bot, payload: DiscordAttachment): Attac if (props.description && payload.description) attachment.description = payload.description if (props.duration_secs && payload.duration_secs) attachment.duration_secs = payload.duration_secs if (props.waveform && payload.waveform) attachment.waveform = payload.waveform - if (props.flags && payload.flags) attachment.flags = payload.flags + if (props.flags) attachment.flags = payload.flags return bot.transformers.customizers.attachment(bot, payload, attachment) } diff --git a/packages/bot/src/transformers/channel.ts b/packages/bot/src/transformers/channel.ts index 4bd696e13..57564d90e 100644 --- a/packages/bot/src/transformers/channel.ts +++ b/packages/bot/src/transformers/channel.ts @@ -63,43 +63,42 @@ export const baseChannel: Partial & BaseChannel = { } export function transformChannel(bot: Bot, payload: { channel: DiscordChannel } & { guildId?: BigString }): Channel { - const channel = Object.create(baseChannel) + const channel = Object.create(baseChannel) as Channel const props = bot.transformers.desiredProperties.channel channel.toggles = new ChannelToggles(payload.channel) - if (payload.channel.id && props.id) channel.id = bot.transformers.snowflake(payload.channel.id) - if ((payload.guildId ?? payload.channel.guild_id) && props.guildId) - channel.guildId = payload.guildId ?? bot.transformers.snowflake(payload.channel.guild_id!) + if (props.id && payload.channel.id) channel.id = bot.transformers.snowflake(payload.channel.id) + if (props.guildId && (payload.guildId ?? payload.channel.guild_id)) + channel.guildId = payload.guildId ? bot.transformers.snowflake(payload.guildId) : bot.transformers.snowflake(payload.channel.guild_id!) if (props.type) channel.type = payload.channel.type if (props.position) channel.position = payload.channel.position - if (payload.channel.name && props.name) channel.name = payload.channel.name - if (payload.channel.topic && props.topic) channel.topic = payload.channel.topic - if (payload.channel.last_message_id && props.lastMessageId) channel.lastMessageId = bot.transformers.snowflake(payload.channel.last_message_id) - if (payload.channel.bitrate && props.bitrate) channel.bitrate = payload.channel.bitrate + if (props.name && payload.channel.name) channel.name = payload.channel.name + if (props.topic && payload.channel.topic) channel.topic = payload.channel.topic + if (props.lastMessageId && payload.channel.last_message_id) channel.lastMessageId = bot.transformers.snowflake(payload.channel.last_message_id) + if (props.bitrate && payload.channel.bitrate) channel.bitrate = payload.channel.bitrate if (props.userLimit) channel.userLimit = payload.channel.user_limit if (props.rateLimitPerUser) channel.rateLimitPerUser = payload.channel.rate_limit_per_user - if (payload.channel.owner_id && props.ownerId) channel.ownerId = bot.transformers.snowflake(payload.channel.owner_id) - if (payload.channel.last_pin_timestamp && props.lastPinTimestamp) channel.lastPinTimestamp = Date.parse(payload.channel.last_pin_timestamp) - if (payload.channel.rtc_region && props.rtcRegion) channel.rtcRegion = payload.channel.rtc_region - if (payload.channel.video_quality_mode && props.videoQualityMode) channel.videoQualityMode = payload.channel.video_quality_mode - if (payload.channel.message_count && props.messageCount) channel.messageCount = payload.channel.message_count - if (payload.channel.member_count && props.memberCount) channel.memberCount = payload.channel.member_count + if (props.ownerId && payload.channel.owner_id) channel.ownerId = bot.transformers.snowflake(payload.channel.owner_id) + if (props.lastPinTimestamp && payload.channel.last_pin_timestamp) channel.lastPinTimestamp = Date.parse(payload.channel.last_pin_timestamp) + if (props.rtcRegion && payload.channel.rtc_region) channel.rtcRegion = payload.channel.rtc_region + if (props.videoQualityMode && payload.channel.video_quality_mode) channel.videoQualityMode = payload.channel.video_quality_mode + if (props.messageCount) channel.messageCount = payload.channel.message_count + if (props.memberCount) channel.memberCount = payload.channel.member_count if (props.archiveTimestamp || props.createTimestamp || props.autoArchiveDuration) { - channel.internalThreadMetadata = {} - if (payload.channel.thread_metadata?.archive_timestamp && props.archiveTimestamp) + channel.internalThreadMetadata = {} as NonNullable + if (props.archiveTimestamp && payload.channel.thread_metadata?.archive_timestamp) channel.internalThreadMetadata.archiveTimestamp = Date.parse(payload.channel.thread_metadata.archive_timestamp) - if (payload.channel.thread_metadata?.create_timestamp && props.createTimestamp) + if (props.createTimestamp && payload.channel.thread_metadata?.create_timestamp) channel.internalThreadMetadata.createTimestamp = Date.parse(payload.channel.thread_metadata.create_timestamp) - if (payload.channel.thread_metadata?.auto_archive_duration && props.autoArchiveDuration) + if (props.autoArchiveDuration && payload.channel.thread_metadata?.auto_archive_duration) channel.internalThreadMetadata.autoArchiveDuration = payload.channel.thread_metadata.auto_archive_duration } - if (payload.channel.default_auto_archive_duration && props.autoArchiveDuration) + if (props.autoArchiveDuration && payload.channel.default_auto_archive_duration) channel.autoArchiveDuration = payload.channel.default_auto_archive_duration - if (payload.channel.permissions && props.permissions) channel.permissions = new Permissions(payload.channel.permissions) - if (payload.channel.flags && props.flags) channel.flags = payload.channel.flags - if (payload.channel.permission_overwrites && props.permissionOverwrites) { + if (props.permissions && payload.channel.permissions) channel.permissions = new Permissions(payload.channel.permissions) + if (props.flags) channel.flags = payload.channel.flags + if (props.permissionOverwrites && payload.channel.permission_overwrites) channel.internalOverwrites = payload.channel.permission_overwrites.map((o) => packOverwrites(o.allow ?? '0', o.deny ?? '0', o.id, o.type)) - } if (props.parentId && payload.channel.parent_id) channel.parentId = bot.transformers.snowflake(payload.channel.parent_id) return bot.transformers.customizers.channel(bot, payload.channel, channel) @@ -163,7 +162,7 @@ export interface Channel extends BaseChannel { /** For guild channels: Id of the parent category for a channel (each parent category can contain up to 50 channels), for threads: id of the text channel this thread was created */ parentId?: bigint /** When the last pinned message was pinned. This may be null in events such as GUILD_CREATE when a message is not pinned. */ - lastPinTimestamp?: string + lastPinTimestamp?: number /** Voice region id for the voice or stage channel, automatic when set to null */ rtcRegion?: string /** The camera video quality mode of the voice channel, 1 when not present */ @@ -188,7 +187,7 @@ export interface Channel extends BaseChannel { /** Thread member object for the current user, if they have joined the thread, only included on certain API endpoints */ member?: DiscordThreadMember /** Default duration for newly created threads, in minutes, to automatically archive the thread after recent activity, can be set to: 60, 1440, 4320, 10080 */ - default_auto_archive_duration?: number + autoArchiveDuration?: number /** computed permissions for the invoking user in the channel, including overwrites, only included when part of the resolved data received on a slash command interaction. This does not include implicit permissions, which may need to be checked separately. */ permissions?: Permissions /** The flags of the channel */ diff --git a/packages/bot/src/transformers/guild.ts b/packages/bot/src/transformers/guild.ts index 9033e8fd9..9049d3eca 100644 --- a/packages/bot/src/transformers/guild.ts +++ b/packages/bot/src/transformers/guild.ts @@ -37,23 +37,22 @@ export function transformGuild(bot: Bot, payload: { guild: DiscordGuild } & { sh if (props.approximateMemberCount && payload.guild.approximate_member_count) guild.approximateMemberCount = payload.guild.approximate_member_count if (props.approximatePresenceCount && payload.guild.approximate_presence_count) guild.approximatePresenceCount = payload.guild.approximate_presence_count - if (props.defaultMessageNotifications && payload.guild.default_message_notifications) - guild.defaultMessageNotifications = payload.guild.default_message_notifications + if (props.defaultMessageNotifications) guild.defaultMessageNotifications = payload.guild.default_message_notifications if (props.description && payload.guild.description) guild.description = payload.guild.description if (props.toggles) guild.toggles = new GuildToggles(payload.guild) - if (props.explicitContentFilter && payload.guild.explicit_content_filter) guild.explicitContentFilter = payload.guild.explicit_content_filter + if (props.explicitContentFilter) guild.explicitContentFilter = payload.guild.explicit_content_filter if (props.maxMembers && payload.guild.max_members) guild.maxMembers = payload.guild.max_members if (props.maxPresences && payload.guild.max_presences) guild.maxPresences = payload.guild.max_presences ?? undefined if (props.maxVideoChannelUsers && payload.guild.max_video_channel_users) guild.maxVideoChannelUsers = payload.guild.max_video_channel_users - if (props.mfaLevel && payload.guild.mfa_level) guild.mfaLevel = payload.guild.mfa_level + if (props.mfaLevel) guild.mfaLevel = payload.guild.mfa_level if (props.name && payload.guild.name) guild.name = payload.guild.name - if (props.nsfwLevel && payload.guild.nsfw_level) guild.nsfwLevel = payload.guild.nsfw_level + if (props.nsfwLevel) guild.nsfwLevel = payload.guild.nsfw_level if (props.preferredLocale && payload.guild.preferred_locale) guild.preferredLocale = payload.guild.preferred_locale - if (props.premiumSubscriptionCount && payload.guild.premium_subscription_count) + if (props.premiumSubscriptionCount && payload.guild.premium_subscription_count !== undefined) guild.premiumSubscriptionCount = payload.guild.premium_subscription_count - if (props.premiumTier && payload.guild.premium_tier) guild.premiumTier = payload.guild.premium_tier + if (props.premiumTier) guild.premiumTier = payload.guild.premium_tier if (props.stageInstances && payload.guild.stage_instances) - guild.stageInstances = payload.guild.stage_instances?.map((si) => ({ + guild.stageInstances = payload.guild.stage_instances.map((si) => ({ /** The id of this Stage instance */ id: bot.transformers.snowflake(si.id), /** The guild id of the associated Stage channel */ @@ -107,7 +106,7 @@ export function transformGuild(bot: Bot, payload: { guild: DiscordGuild } & { sh ) if (props.systemChannelFlags && payload.guild.system_channel_flags) guild.systemChannelFlags = payload.guild.system_channel_flags if (props.vanityUrlCode && payload.guild.vanity_url_code) guild.vanityUrlCode = payload.guild.vanity_url_code - if (props.verificationLevel && payload.guild.verification_level) guild.verificationLevel = payload.guild.verification_level + if (props.verificationLevel) guild.verificationLevel = payload.guild.verification_level if (props.welcomeScreen && payload.guild.welcome_screen) guild.welcomeScreen = { description: payload.guild.welcome_screen.description ?? undefined, @@ -121,7 +120,7 @@ export function transformGuild(bot: Bot, payload: { guild: DiscordGuild } & { sh if (props.discoverySplash && payload.guild.discovery_splash) guild.discoverySplash = iconHashToBigInt(payload.guild.discovery_splash) if (props.joinedAt && payload.guild.joined_at) guild.joinedAt = Date.parse(payload.guild.joined_at) if (props.memberCount && payload.guild.member_count) guild.memberCount = payload.guild.member_count ?? 0 - if (props.shardId && payload.shardId) guild.shardId = payload.shardId + if (props.shardId) guild.shardId = payload.shardId if (props.icon && payload.guild.icon) guild.icon = iconHashToBigInt(payload.guild.icon) if (props.banner && payload.guild.banner) guild.banner = iconHashToBigInt(payload.guild.banner) if (props.splash && payload.guild.splash) guild.splash = iconHashToBigInt(payload.guild.splash) diff --git a/packages/bot/src/transformers/interaction.ts b/packages/bot/src/transformers/interaction.ts index 3485a76d8..ec06a78f6 100644 --- a/packages/bot/src/transformers/interaction.ts +++ b/packages/bot/src/transformers/interaction.ts @@ -158,21 +158,21 @@ export function transformInteraction(bot: Bot, payload: DiscordInteraction): Int interaction.bot = bot interaction.acknowledged = false - if (payload.id && props.id) interaction.id = bot.transformers.snowflake(payload.id) - if (payload.application_id && props.applicationId) interaction.applicationId = bot.transformers.snowflake(payload.application_id) - if (payload.type && props.type) interaction.type = payload.type - if (payload.token && props.token) interaction.token = payload.token - if (payload.version && props.version) interaction.version = payload.version - if (payload.locale && props.locale) interaction.locale = payload.locale - if (payload.guild_locale && props.guildLocale) interaction.guildLocale = payload.guild_locale - if (guildId && props.guildId) interaction.guildId = guildId - if (props.user) interaction.user = user - if (payload.app_permissions && props.appPermissions) interaction.appPermissions = bot.transformers.snowflake(payload.app_permissions) - if (payload.message && props.message) interaction.message = bot.transformers.message(bot, payload.message) - if (payload.channel && props.channel) interaction.channel = bot.transformers.channel(bot, { channel: payload.channel as DiscordChannel, guildId }) - if (payload.channel_id && props.channelId) interaction.channelId = bot.transformers.snowflake(payload.channel_id) - if (payload.member && guildId && props.member) interaction.member = bot.transformers.member(bot, payload.member, guildId, user.id) - if (payload.data && props.data) { + if (props.id && payload.id) interaction.id = bot.transformers.snowflake(payload.id) + if (props.applicationId && payload.application_id) interaction.applicationId = bot.transformers.snowflake(payload.application_id) + if (props.type && payload.type) interaction.type = payload.type + if (props.token && payload.token) interaction.token = payload.token + if (props.version && payload.version) interaction.version = payload.version + if (props.locale && payload.locale) interaction.locale = payload.locale + if (props.guildLocale && payload.guild_locale) interaction.guildLocale = payload.guild_locale + if (props.guildId && guildId) interaction.guildId = guildId + if (props.user && user) interaction.user = user + if (props.appPermissions && payload.app_permissions) interaction.appPermissions = bot.transformers.snowflake(payload.app_permissions) + if (props.message && payload.message) interaction.message = bot.transformers.message(bot, payload.message) + if (props.channel && payload.channel) interaction.channel = bot.transformers.channel(bot, { channel: payload.channel as DiscordChannel, guildId }) + if (props.channelId && payload.channel_id) interaction.channelId = bot.transformers.snowflake(payload.channel_id) + if (props.member && guildId && payload.member) interaction.member = bot.transformers.member(bot, payload.member, guildId, user.id) + if (props.data && payload.data) { interaction.data = { type: payload.data.type, componentType: payload.data.component_type, diff --git a/packages/bot/src/transformers/invite.ts b/packages/bot/src/transformers/invite.ts index 7143f08f9..68040c90a 100644 --- a/packages/bot/src/transformers/invite.ts +++ b/packages/bot/src/transformers/invite.ts @@ -9,8 +9,8 @@ export function transformInvite(bot: Bot, payload: { invite: DiscordInviteCreate if (props.code && payload.invite.code) invite.code = payload.invite.code if (props.createdAt && payload.invite.created_at) invite.createdAt = Date.parse(payload.invite.created_at) if (props.inviter && payload.invite.inviter) invite.inviter = bot.transformers.user(bot, payload.invite.inviter) - if (props.maxAge && payload.invite.max_age) invite.maxAge = payload.invite.max_age - if (props.maxUses && payload.invite.max_uses) invite.maxUses = payload.invite.max_uses + if (props.maxAge) invite.maxAge = payload.invite.max_age + if (props.maxUses) invite.maxUses = payload.invite.max_uses if (props.targetType && payload.invite.target_type) invite.targetType = payload.invite.target_type if (props.targetUser && payload.invite.target_user) invite.targetUser = bot.transformers.user(bot, payload.invite.target_user) if (props.targetApplication && payload.invite.target_application) @@ -26,20 +26,15 @@ export function transformInvite(bot: Bot, payload: { invite: DiscordInviteCreate if (props.guildId && payload.invite.guild?.id) invite.guildId = bot.transformers.snowflake(payload.invite.guild.id) if (props.approximateMemberCount && payload.invite.approximate_member_count) invite.approximateMemberCount = payload.invite.approximate_member_count - if (props.approximatePresenceCount && payload.invite.approximate_presence_count) + if (props.approximatePresenceCount && payload.invite.approximate_presence_count !== undefined) invite.approximatePresenceCount = payload.invite.approximate_presence_count - if (props.guildScheduledEvent && payload.invite.guild_scheduled_event) { - invite.guildScheduledEvent = payload.invite.guild_scheduled_event - ? bot.transformers.scheduledEvent(bot, payload.invite.guild_scheduled_event) - : undefined - } + if (props.guildScheduledEvent && payload.invite.guild_scheduled_event) + invite.guildScheduledEvent = bot.transformers.scheduledEvent(bot, payload.invite.guild_scheduled_event) if (props.stageInstance && invite.guildId && payload.invite.stage_instance) { - invite.stageInstance = payload.invite.stage_instance - ? bot.transformers.inviteStageInstance(bot, { - ...payload.invite.stage_instance, - guildId: invite.guildId, - }) - : undefined + invite.stageInstance = bot.transformers.inviteStageInstance(bot, { + ...payload.invite.stage_instance, + guildId: invite.guildId, + }) } if (props.expiresAt && payload.invite.expires_at) { invite.expiresAt = Date.parse(payload.invite.expires_at) diff --git a/packages/bot/src/transformers/member.ts b/packages/bot/src/transformers/member.ts index eb50a5603..6e7552938 100644 --- a/packages/bot/src/transformers/member.ts +++ b/packages/bot/src/transformers/member.ts @@ -1,8 +1,8 @@ import type { BigString, DiscordMember } from '@discordeno/types' import { iconHashToBigInt } from '@discordeno/utils' import type { Bot } from '../bot.js' -import { Permissions } from './toggles/Permissions.js' import { MemberToggles } from './toggles/member.js' +import { Permissions } from './toggles/Permissions.js' import type { User } from './user.js' const baseMember: Partial & BaseMember = { @@ -21,17 +21,17 @@ export function transformMember(bot: Bot, payload: DiscordMember, guildId: BigSt const member: Member = Object.create(baseMember) const props = bot.transformers.desiredProperties.member - if (userId && props.id) member.id = typeof userId === 'string' ? bot.transformers.snowflake(userId) : userId - if (guildId && props.guildId) member.guildId = typeof guildId === 'string' ? bot.transformers.snowflake(guildId) : guildId - if (payload.user && props.user) member.user = bot.transformers.user(bot, payload.user) - if (payload.nick && props.nick) member.nick = payload.nick - if (payload.roles && props.roles) member.roles = payload.roles.map((id) => bot.transformers.snowflake(id)) - if (payload.joined_at && props.joinedAt) member.joinedAt = Date.parse(payload.joined_at) - if (payload.premium_since && props.premiumSince) member.premiumSince = Date.parse(payload.premium_since) - if (payload.communication_disabled_until && props.communicationDisabledUntil) + if (props.id && userId) member.id = typeof userId === 'string' ? bot.transformers.snowflake(userId) : userId + if (props.guildId && guildId) member.guildId = typeof guildId === 'string' ? bot.transformers.snowflake(guildId) : guildId + if (props.user && payload.user) member.user = bot.transformers.user(bot, payload.user) + if (props.nick && payload.nick) member.nick = payload.nick + if (props.roles && payload.roles) member.roles = payload.roles.map((id) => bot.transformers.snowflake(id)) + if (props.joinedAt && payload.joined_at) member.joinedAt = Date.parse(payload.joined_at) + if (props.premiumSince && payload.premium_since) member.premiumSince = Date.parse(payload.premium_since) + if (props.communicationDisabledUntil && payload.communication_disabled_until) member.communicationDisabledUntil = Date.parse(payload.communication_disabled_until) - if (payload.avatar && props.avatar) member.avatar = iconHashToBigInt(payload.avatar) - if (payload.permissions && props.permissions) member.permissions = new Permissions(payload.permissions) + if (props.avatar && payload.avatar) member.avatar = iconHashToBigInt(payload.avatar) + if (props.permissions && payload.permissions) member.permissions = new Permissions(payload.permissions) if (props.deaf || props.mute || props.pending) { member.toggles = new MemberToggles(payload) } diff --git a/packages/bot/src/transformers/message.ts b/packages/bot/src/transformers/message.ts index 6ab6b34c0..2cd1437c3 100644 --- a/packages/bot/src/transformers/message.ts +++ b/packages/bot/src/transformers/message.ts @@ -271,16 +271,15 @@ export function transformMessage(bot: Bot, payload: DiscordMessage): Message { const props = bot.transformers.desiredProperties.message if (props.author && payload.author) message.author = bot.transformers.user(bot, payload.author) - if (payload.application_id && props.applicationId) message.applicationId = bot.transformers.snowflake(payload.application_id) - if (payload.attachments?.length && props.attachments) { + if (props.applicationId && payload.application_id) message.applicationId = bot.transformers.snowflake(payload.application_id) + if (props.attachments && payload.attachments?.length) message.attachments = payload.attachments.map((attachment) => bot.transformers.attachment(bot, attachment)) - } if (props.channelId && payload.channel_id) message.channelId = bot.transformers.snowflake(payload.channel_id) if (props.components && payload.components?.length) message.components = payload.components.map((comp) => bot.transformers.component(bot, comp)) if (props.content && payload.content) message.content = payload.content ?? EMPTY_STRING - if (payload.edited_timestamp && props.editedTimestamp) message.editedTimestamp = Date.parse(payload.edited_timestamp) - if (payload.embeds?.length && props.embeds) message.embeds = payload.embeds.map((embed) => bot.transformers.embed(bot, embed)) - if (guildId && props.guildId) message.guildId = guildId + if (props.editedTimestamp && payload.edited_timestamp) message.editedTimestamp = Date.parse(payload.edited_timestamp) + if (props.embeds && payload.embeds?.length) message.embeds = payload.embeds.map((embed) => bot.transformers.embed(bot, embed)) + if (props.guildId && guildId) message.guildId = guildId if (props.id && payload.id) message.id = bot.transformers.snowflake(payload.id) if (payload.interaction) { const interaction = {} as NonNullable @@ -309,7 +308,7 @@ export function transformMessage(bot: Bot, payload: DiscordMessage): Message { if (edited) message.interaction = interaction } - if (props.member && payload.member && guildId) message.member = bot.transformers.member(bot, payload.member, guildId, userId) + if (props.member && guildId && payload.member) message.member = bot.transformers.member(bot, payload.member, guildId, userId) if (payload.mention_everyone) message.mentionEveryone = true if (props.mentionedChannelIds && payload.mention_channels?.length) { message.mentionedChannelIds = [ @@ -322,12 +321,9 @@ export function transformMessage(bot: Bot, payload: DiscordMessage): Message { ), ] } - if (props.mentionedRoleIds && payload.mention_roles?.length) { + if (props.mentionedRoleIds && payload.mention_roles?.length) message.mentionedRoleIds = payload.mention_roles.map((id) => bot.transformers.snowflake(id)) - } - if (props.mentions && payload.mentions?.length) { - message.mentions = payload.mentions.map((user) => bot.transformers.user(bot, user)) - } + if (props.mentions && payload.mentions?.length) message.mentions = payload.mentions.map((user) => bot.transformers.user(bot, user)) if (payload.message_reference) { const reference = {} as NonNullable let edited = false @@ -347,9 +343,9 @@ export function transformMessage(bot: Bot, payload: DiscordMessage): Message { if (edited) message.messageReference = reference } - if (payload.nonce && props.nonce) message.nonce = payload.nonce + if (props.nonce && payload.nonce) message.nonce = payload.nonce if (payload.pinned) message.pinned = true - if (payload.reactions?.length && props.reactions) { + if (props.reactions && payload.reactions?.length) { message.reactions = payload.reactions.map((reaction) => ({ me: reaction.me, meBurst: reaction.me_burst, @@ -370,8 +366,8 @@ export function transformMessage(bot: Bot, payload: DiscordMessage): Message { })) if (payload.tts) message.tts = true if (props.thread && payload.thread) message.thread = bot.transformers.channel(bot, { channel: payload.thread, guildId }) - if (props.type && props.type) message.type = payload.type - if (payload.webhook_id && props.webhookId) message.webhookId = bot.transformers.snowflake(payload.webhook_id) + if (props.type) message.type = payload.type + if (props.webhookId && payload.webhook_id) message.webhookId = bot.transformers.snowflake(payload.webhook_id) return bot.transformers.customizers.message(bot, payload, message) } diff --git a/packages/bot/src/transformers/role.ts b/packages/bot/src/transformers/role.ts index e09391b93..bccd06ead 100644 --- a/packages/bot/src/transformers/role.ts +++ b/packages/bot/src/transformers/role.ts @@ -43,21 +43,21 @@ const baseRole: Partial & BaseRole = { export function transformRole(bot: Bot, payload: { role: DiscordRole } & { guildId: BigString }): Role { const role: Role = Object.create(baseRole) const props = bot.transformers.desiredProperties.role - if (payload.role.id && props.id) role.id = bot.transformers.snowflake(payload.role.id) - if (payload.role.name && props.name) role.name = payload.role.name + if (props.id && payload.role.id) role.id = bot.transformers.snowflake(payload.role.id) + if (props.name && payload.role.name) role.name = payload.role.name if (props.position) role.position = payload.role.position if (props.guildId && payload.guildId) role.guildId = bot.transformers.snowflake(payload.guildId) if (props.color && payload.role.color) role.color = payload.role.color - if (payload.role.permissions && props.permissions) role.permissions = new Permissions(payload.role.permissions) - if (payload.role.icon && props.icon) role.icon = iconHashToBigInt(payload.role.icon) - if (payload.role.unicode_emoji && props.unicodeEmoji) role.unicodeEmoji = payload.role.unicode_emoji - if (payload.role.flags && props.flags) role.flags = payload.role.flags - if (payload.role.tags && (props.botId || props.integrationId || props.subscriptionListingId)) { + if (props.permissions && payload.role.permissions) role.permissions = new Permissions(payload.role.permissions) + if (props.icon && payload.role.icon) role.icon = iconHashToBigInt(payload.role.icon) + if (props.unicodeEmoji && payload.role.unicode_emoji) role.unicodeEmoji = payload.role.unicode_emoji + if (props.flags) role.flags = payload.role.flags + if ((props.botId || props.integrationId || props.subscriptionListingId) && payload.role.tags) { role.internalTags = {} - if (payload.role.tags.bot_id && props.botId) role.internalTags.botId = bot.transformers.snowflake(payload.role.tags.bot_id) - if (payload.role.tags.integration_id && props.integrationId) + if (props.botId && payload.role.tags.bot_id) role.internalTags.botId = bot.transformers.snowflake(payload.role.tags.bot_id) + if (props.integrationId && payload.role.tags.integration_id) role.internalTags.integrationId = bot.transformers.snowflake(payload.role.tags.integration_id) - if (payload.role.tags.subscription_listing_id && props.subscriptionListingId) + if (props.subscriptionListingId && payload.role.tags.subscription_listing_id) role.internalTags.subscriptionListingId = bot.transformers.snowflake(payload.role.tags.subscription_listing_id) } if (props.hoist || props.managed || props.mentionable) { diff --git a/packages/bot/src/transformers/scheduledEvent.ts b/packages/bot/src/transformers/scheduledEvent.ts index 3a49db431..c7112b537 100644 --- a/packages/bot/src/transformers/scheduledEvent.ts +++ b/packages/bot/src/transformers/scheduledEvent.ts @@ -24,7 +24,7 @@ export function transformScheduledEvent(bot: Bot, payload: DiscordScheduledEvent if (props.privacyLevel && payload.privacy_level) scheduledEvent.privacyLevel = payload.privacy_level if (props.status && payload.status) scheduledEvent.status = payload.status if (props.entityType && payload.entity_type) scheduledEvent.entityType = payload.entity_type - if (props.userCount && payload.user_count) scheduledEvent.userCount = payload.user_count ?? 0 + if (props.userCount) scheduledEvent.userCount = payload.user_count ?? 0 if (props.location && payload.entity_metadata?.location) scheduledEvent.location = payload.entity_metadata.location if (props.image && payload.image) scheduledEvent.image = iconHashToBigInt(payload.image) diff --git a/packages/bot/src/transformers/stageInviteInstance.ts b/packages/bot/src/transformers/stageInviteInstance.ts index ea6b105f8..8e313b38c 100644 --- a/packages/bot/src/transformers/stageInviteInstance.ts +++ b/packages/bot/src/transformers/stageInviteInstance.ts @@ -15,8 +15,8 @@ export function transformInviteStageInstance(bot: Bot, payload: DiscordInviteSta ), ) } - if (props.participantCount && payload.participant_count) inviteStageInstance.participantCount = payload.participant_count - if (props.speakerCount && payload.speaker_count) inviteStageInstance.participantCount = payload.participant_count + if (props.participantCount) inviteStageInstance.participantCount = payload.participant_count + if (props.speakerCount) inviteStageInstance.participantCount = payload.participant_count if (props.topic && payload.topic) inviteStageInstance.topic = payload.topic return bot.transformers.customizers.inviteStageInstance(bot, payload, inviteStageInstance) diff --git a/packages/bot/src/transformers/sticker.ts b/packages/bot/src/transformers/sticker.ts index 26c498ac7..24e0023f3 100644 --- a/packages/bot/src/transformers/sticker.ts +++ b/packages/bot/src/transformers/sticker.ts @@ -15,7 +15,7 @@ export function transformSticker(bot: Bot, payload: DiscordSticker): Sticker { if (props.available && payload.available) sticker.available = payload.available if (props.guildId && payload.guild_id) sticker.guildId = bot.transformers.snowflake(payload.guild_id) if (props.user && payload.user) sticker.user = bot.transformers.user(bot, payload.user) - if (props.sortValue && payload.sort_value) sticker.sortValue = payload.sort_value + if (props.sortValue && payload.sort_value !== undefined) sticker.sortValue = payload.sort_value return bot.transformers.customizers.sticker(bot, payload, sticker) } diff --git a/packages/bot/src/transformers/user.ts b/packages/bot/src/transformers/user.ts index b00ea2394..ca1fa04b7 100644 --- a/packages/bot/src/transformers/user.ts +++ b/packages/bot/src/transformers/user.ts @@ -30,17 +30,17 @@ export function transformUser(bot: Bot, payload: DiscordUser): User { } if (props.flags) user.flags = new ToggleBitfield(payload.flags) if (props.publicFlags) user.publicFlags = new ToggleBitfield(payload.public_flags) - if (payload.id && props.id) user.id = bot.transformers.snowflake(payload.id) - if (payload.username && props.username) user.username = payload.username - if (payload.global_name && props.globalName) user.globalName = payload.global_name - if (payload.discriminator && props.discriminator) user.discriminator = payload.discriminator - if (payload.locale && props.locale) user.locale = payload.locale - if (payload.email && props.email) user.email = payload.email - if (payload.premium_type && props.premiumType) user.premiumType = payload.premium_type - if (payload.avatar && props.avatar) user.avatar = iconHashToBigInt(payload.avatar) - if (payload.banner && props.banner) user.banner = iconHashToBigInt(payload.banner) - if (payload.avatar_decoration && props.avatarDecoration) user.avatarDecoration = iconHashToBigInt(payload.avatar_decoration) - if (payload.accent_color && props.accentColor) user.accentColor = payload.accent_color + if (props.id && payload.id) user.id = bot.transformers.snowflake(payload.id) + if (props.username && payload.username) user.username = payload.username + if (props.globalName && payload.global_name) user.globalName = payload.global_name + if (props.discriminator && payload.discriminator) user.discriminator = payload.discriminator + if (props.locale && payload.locale) user.locale = payload.locale + if (props.email && payload.email) user.email = payload.email + if (props.premiumType && payload.premium_type) user.premiumType = payload.premium_type + if (props.avatar && payload.avatar) user.avatar = iconHashToBigInt(payload.avatar) + if (props.banner && payload.banner) user.banner = iconHashToBigInt(payload.banner) + if (props.avatarDecoration && payload.avatar_decoration) user.avatarDecoration = iconHashToBigInt(payload.avatar_decoration) + if (props.accentColor && payload.accent_color) user.accentColor = payload.accent_color return bot.transformers.customizers.user(bot, payload, user) }