diff --git a/src/helpers/members/fetch_members.ts b/src/helpers/members/fetch_members.ts index 342735c28..8cbd5735a 100644 --- a/src/helpers/members/fetch_members.ts +++ b/src/helpers/members/fetch_members.ts @@ -1,5 +1,5 @@ import { identifyPayload } from "../../bot.ts"; -import { Guild, Member } from "../../structures/mod.ts"; +import { Member } from "../../structures/mod.ts"; import { Errors, FetchMembersOptions, Intents } from "../../types/mod.ts"; import { Collection } from "../../util/collection.ts"; import { requestAllMembers } from "../../ws/shard_manager.ts"; @@ -12,7 +12,11 @@ import { requestAllMembers } from "../../ws/shard_manager.ts"; * REST: 50/s global(across all shards) rate limit with ALL requests this included * GW(this function): 120/m(PER shard) rate limit. Meaning if you have 8 shards your limit is now 960/m. */ -export function fetchMembers(guild: Guild, options?: FetchMembersOptions) { +export function fetchMembers( + guildID: string, + shardID: number, + options?: FetchMembersOptions, +) { // You can request 1 member without the intent if ( (!options?.limit || options.limit > 1) && @@ -26,6 +30,6 @@ export function fetchMembers(guild: Guild, options?: FetchMembersOptions) { } return new Promise((resolve) => { - return requestAllMembers(guild, resolve, options); + return requestAllMembers(guildID, shardID, resolve, options); }) as Promise>; } diff --git a/src/helpers/members/get_members_by_query.ts b/src/helpers/members/get_members_by_query.ts index a991e53b7..d2a296aca 100644 --- a/src/helpers/members/get_members_by_query.ts +++ b/src/helpers/members/get_members_by_query.ts @@ -16,6 +16,9 @@ export async function getMembersByQuery( if (!guild) return; return new Promise((resolve) => { - return requestAllMembers(guild, resolve, { query: name, limit }); + return requestAllMembers(guild.id, guild.shardID, resolve, { + query: name, + limit, + }); }) as Promise>; } diff --git a/src/ws/shard_manager.ts b/src/ws/shard_manager.ts index 15e8dce34..e4e7c8b02 100644 --- a/src/ws/shard_manager.ts +++ b/src/ws/shard_manager.ts @@ -1,7 +1,6 @@ -import { handlers } from "../handlers/mod.ts"; -import { Guild } from "../structures/guild.ts"; -import { Member } from "../structures/mod.ts"; import { eventHandlers } from "../bot.ts"; +import { handlers } from "../handlers/mod.ts"; +import { Member } from "../structures/mod.ts"; import { DiscordBotGatewayData, DiscordIdentify, @@ -88,18 +87,19 @@ export async function handleDiscordPayload( } export async function requestAllMembers( - guild: Guild, + guildID: string, + shardID: number, resolve: ( value: Collection | PromiseLike>, ) => void, options?: FetchMembersOptions, ) { - const nonce = `${guild.id}-${Date.now()}`; + const nonce = `${guildID}-${Date.now()}`; cache.fetchAllMembersProcessingRequests.set(nonce, resolve); await requestGuildMembers( - guild.id, - guild.shardID, + guildID, + shardID, nonce, options, );