mirror of
https://github.com/discordeno/discordeno.git
synced 2026-06-16 19:28:17 +00:00
refactor: use guildID and shardID as args in requestAllMembers() & fetchMembers() (#671)
* change args of requestAllMembers * change args of fetchMembers * fix getMembersByQuery Co-authored-by: ayntee <ayyantee@gmail.com>
This commit is contained in:
@@ -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<Collection<string, Member>>;
|
||||
}
|
||||
|
||||
@@ -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<Collection<string, Member>>;
|
||||
}
|
||||
|
||||
@@ -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<string, Member> | PromiseLike<Collection<string, Member>>,
|
||||
) => 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,
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user