From aecc55d15067f23f5a9d6e403e3ecedf12eec35e Mon Sep 17 00:00:00 2001 From: Fleny Date: Sun, 7 Jul 2024 17:39:04 +0200 Subject: [PATCH] fix(bot)!: Add `guild.features` to guild transformer (#3705) * Add guild.features to guild transformer * Use a getter on the toggles for features --- packages/bot/src/transformers/guild.ts | 10 ++++++---- packages/bot/src/transformers/toggles/guild.ts | 8 +++++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/packages/bot/src/transformers/guild.ts b/packages/bot/src/transformers/guild.ts index 9049d3eca..ec48b7f08 100644 --- a/packages/bot/src/transformers/guild.ts +++ b/packages/bot/src/transformers/guild.ts @@ -4,7 +4,6 @@ import { type DiscordGuild, type DiscordPresenceUpdate, type ExplicitContentFilterLevels, - type GuildFeatures, type GuildNsfwLevel, type MfaLevels, type PremiumTiers, @@ -12,13 +11,13 @@ import { type VerificationLevels, } from '@discordeno/types' import { Collection, iconHashToBigInt } from '@discordeno/utils' -import type { Bot, Channel, Member, PresenceUpdate, Role, StageInstance, Sticker, VoiceState, WelcomeScreen } from '../index.js' +import type { Bot, Channel, GuildFeatureKeys, Member, PresenceUpdate, Role, StageInstance, Sticker, VoiceState, WelcomeScreen } from '../index.js' import type { Emoji } from '../transformers/emoji.js' import { GuildToggles } from './toggles/guild.js' const baseGuild = { get threads() { - if (!this.channels) return + if (!this.channels) return new Collection() const threads = this.channels .array() @@ -26,6 +25,9 @@ const baseGuild = { return new Collection(threads.map((x) => [x.id, x])) }, + get features() { + return this.toggles.features + }, } as Guild export function transformGuild(bot: Bot, payload: { guild: DiscordGuild } & { shardId: number }): Guild { @@ -165,7 +167,7 @@ export interface Guild { /** Explicit content filter level */ explicitContentFilter: ExplicitContentFilterLevels /** Enabled guild features */ - features: GuildFeatures[] + features: GuildFeatureKeys[] /** Required MFA level for the guild */ mfaLevel: MfaLevels /** System channel flags */ diff --git a/packages/bot/src/transformers/toggles/guild.ts b/packages/bot/src/transformers/toggles/guild.ts index dc2078674..a73a0618c 100644 --- a/packages/bot/src/transformers/toggles/guild.ts +++ b/packages/bot/src/transformers/toggles/guild.ts @@ -140,13 +140,13 @@ export class GuildToggles extends ToggleBitfieldBigint { } } - get features(): GuildToggleKeys[] { - const features: GuildToggleKeys[] = [] + get features(): GuildFeatureKeys[] { + const features: GuildFeatureKeys[] = [] for (const key of Object.keys(GuildToggle)) { if (!featureNames.includes(key)) continue if (!super.contains(GuildToggle[key as GuildToggleKeys])) continue - features.push(key as GuildToggleKeys) + features.push(key as GuildFeatureKeys) } return features @@ -306,3 +306,5 @@ export class GuildToggles extends ToggleBitfieldBigint { } export type GuildToggleKeys = keyof typeof GuildToggle + +export type GuildFeatureKeys = keyof typeof featureNames