diff --git a/packages/discordjs-light/src/index.ts b/packages/discordjs-light/src/index.ts index 2223eaf..a19c66a 100644 --- a/packages/discordjs-light/src/index.ts +++ b/packages/discordjs-light/src/index.ts @@ -1,4 +1,11 @@ -import { AnalyticsBase, ApiEndpoints, ApplicationCommandType, AnalyticsOptions, ErrorCodes } from '@discordanalytics/core'; +import { + AnalyticsBase, + ApiEndpoints, + ApplicationCommandType, + AnalyticsOptions, + ErrorCodes, + LocaleData +} from '@discordanalytics/core'; import npmPackageData from '../package.json'; /** @@ -88,6 +95,13 @@ export default class DiscordAnalytics extends AnalyticsBase { (c: any) => c.guilds.cache.map((guild: any) => guild.memberCount) ))?.flat() ?? []); + let guildLocales: LocaleData[] = [] + this._client.guilds.cache.map((current: any) => guildLocales.find((x) => x.locale === current.preferredLocale) ? + ++guildLocales.find((x) => x.locale === current.preferredLocale)!.number : + guildLocales.push({ locale: current.preferredLocale, number: 1 })); + + this.stats_data.guildsLocales = guildLocales + await this.sendStats(this._client.user.id, guildCount, userCount, userInstallCount, guildMembers); }, fast_mode ? 30000 : 300000); } @@ -103,13 +117,6 @@ export default class DiscordAnalytics extends AnalyticsBase { this.debug(`[DISCORDANALYTICS] trackInteractions(${interaction.type}) triggered`); if (!this._isReady) return this.error(ErrorCodes.INSTANCE_NOT_INITIALIZED); - this.updateOrInsert( - this.stats_data.guildsLocales, - (x) => x.locale === interaction.guild?.preferredLocale, - (x) => x.number++, - () => ({ locale: interaction.guild?.preferredLocale, number: 1 }), - ); - this.updateOrInsert( this.stats_data.locales, (x) => x.locale === interaction.locale, diff --git a/packages/discordjs/src/index.ts b/packages/discordjs/src/index.ts index 47cfe02..b34e84e 100644 --- a/packages/discordjs/src/index.ts +++ b/packages/discordjs/src/index.ts @@ -1,4 +1,12 @@ -import { AnalyticsBase, ApiEndpoints, ApplicationCommandType, AnalyticsOptions, ErrorCodes, InteractionType } from '@discordanalytics/core'; +import { + AnalyticsBase, + ApiEndpoints, + ApplicationCommandType, + AnalyticsOptions, + ErrorCodes, + InteractionType, + Locale, LocaleData +} from '@discordanalytics/core'; import npmPackageData from '../package.json'; /** @@ -89,6 +97,13 @@ export default class DiscordAnalytics extends AnalyticsBase { (c: any) => c.guilds.cache.map((guild: any) => guild.memberCount) ))?.flat() ?? []); + let guildLocales: LocaleData[] = [] + this._client.guilds.cache.map((current: any) => guildLocales.find((x) => x.locale === current.preferredLocale) ? + ++guildLocales.find((x) => x.locale === current.preferredLocale)!.number : + guildLocales.push({ locale: current.preferredLocale, number: 1 })); + + this.stats_data.guildsLocales = guildLocales + await this.sendStats(this._client.user.id, guildCount, userCount, userInstallCount, guildMembers); }, fast_mode ? 30000 : 300000); } @@ -104,13 +119,6 @@ export default class DiscordAnalytics extends AnalyticsBase { this.debug(`[DISCORDANALYTICS] trackInteractions(${interaction.type}) triggered`); if (!this._isReady) return this.error(ErrorCodes.INSTANCE_NOT_INITIALIZED); - this.updateOrInsert( - this.stats_data.guildsLocales, - (x) => x.locale === interaction.guild?.preferredLocale, - (x) => x.number++, - () => ({ locale: interaction.guild?.preferredLocale, number: 1 }) - ); - this.updateOrInsert( this.stats_data.locales, (x) => x.locale === interaction.locale, diff --git a/packages/eris/src/index.ts b/packages/eris/src/index.ts index 576940b..c373483 100644 --- a/packages/eris/src/index.ts +++ b/packages/eris/src/index.ts @@ -1,4 +1,11 @@ -import { AnalyticsBase, ApiEndpoints, AnalyticsOptions, ErrorCodes, InteractionType } from '@discordanalytics/core'; +import { + AnalyticsBase, + ApiEndpoints, + AnalyticsOptions, + ErrorCodes, + InteractionType, + Locale, LocaleData +} from '@discordanalytics/core'; import npmPackageData from '../package.json'; /** @@ -73,6 +80,13 @@ export default class DiscordAnalytics extends AnalyticsBase { const userCount = this._client.guilds.reduce((a: number, g: any) => a + g.memberCount, 0); const guildMembers: number[] = this._client.guilds.map((guild: any) => guild.memberCount); + let guildLocales: LocaleData[] = [] + this._client.guilds.map((current: any) => guildLocales.find((x) => x.locale === current.preferredLocale) ? + ++guildLocales.find((x) => x.locale === current.preferredLocale)!.number : + guildLocales.push({ locale: current.preferredLocale, number: 1 })); + + this.stats_data.guildsLocales = guildLocales; + await this.sendStats(this._client.user.id, guildCount, userCount, 0, guildMembers); }, fast_mode ? 30000 : 300000); } @@ -88,13 +102,6 @@ export default class DiscordAnalytics extends AnalyticsBase { this.debug('[DISCORDANALYTICS] trackInteractions() triggered'); if (!this._isReady) return this.error(ErrorCodes.INSTANCE_NOT_INITIALIZED); - this.updateOrInsert( - this.stats_data.guildsLocales, - (x) => x.locale === interaction.guild?.preferredLocale, - (x) => x.number++, - () => ({ locale: interaction.guild?.preferredLocale, number: 1 }) - ); - if (interaction.type === InteractionType.ApplicationCommand) { const name = interactionNameResolver ? interactionNameResolver(interaction) : interaction.data.name; this.updateOrInsert( diff --git a/packages/oceanic/src/index.ts b/packages/oceanic/src/index.ts index 82b1a89..c05e7f1 100644 --- a/packages/oceanic/src/index.ts +++ b/packages/oceanic/src/index.ts @@ -1,4 +1,11 @@ -import { AnalyticsBase, ApiEndpoints, AnalyticsOptions, ErrorCodes, InteractionType } from '@discordanalytics/core'; +import { + AnalyticsBase, + ApiEndpoints, + AnalyticsOptions, + ErrorCodes, + InteractionType, + LocaleData +} from '@discordanalytics/core'; import npmPackageData from '../package.json'; /** @@ -77,7 +84,14 @@ export default class DiscordAnalytics extends AnalyticsBase { const userInstallCount = this._client.application.approximateUserInstallCount const guildMembers: number[] = this._client.guilds.map((guild: any) => guild.memberCount); - await this.sendStats(this._client.user.id, guildCount, userCount, 0, guildMembers); + let guildLocales: LocaleData[] = [] + this._client.guilds.map((current: any) => guildLocales.find((x) => x.locale === current.preferredLocale) ? + ++guildLocales.find((x) => x.locale === current.preferredLocale)!.number : + guildLocales.push({ locale: current.preferredLocale, number: 1 })); + + this.stats_data.guildsLocales = guildLocales; + + await this.sendStats(this._client.user.id, guildCount, userCount, userInstallCount, guildMembers); }, fast_mode ? 30000 : 300000); }