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 { 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 { Errors, FetchMembersOptions, Intents } from "../../types/mod.ts";
|
||||||
import { Collection } from "../../util/collection.ts";
|
import { Collection } from "../../util/collection.ts";
|
||||||
import { requestAllMembers } from "../../ws/shard_manager.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
|
* 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.
|
* 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
|
// You can request 1 member without the intent
|
||||||
if (
|
if (
|
||||||
(!options?.limit || options.limit > 1) &&
|
(!options?.limit || options.limit > 1) &&
|
||||||
@@ -26,6 +30,6 @@ export function fetchMembers(guild: Guild, options?: FetchMembersOptions) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
return requestAllMembers(guild, resolve, options);
|
return requestAllMembers(guildID, shardID, resolve, options);
|
||||||
}) as Promise<Collection<string, Member>>;
|
}) as Promise<Collection<string, Member>>;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,9 @@ export async function getMembersByQuery(
|
|||||||
if (!guild) return;
|
if (!guild) return;
|
||||||
|
|
||||||
return new Promise((resolve) => {
|
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>>;
|
}) 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 { eventHandlers } from "../bot.ts";
|
||||||
|
import { handlers } from "../handlers/mod.ts";
|
||||||
|
import { Member } from "../structures/mod.ts";
|
||||||
import {
|
import {
|
||||||
DiscordBotGatewayData,
|
DiscordBotGatewayData,
|
||||||
DiscordIdentify,
|
DiscordIdentify,
|
||||||
@@ -88,18 +87,19 @@ export async function handleDiscordPayload(
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function requestAllMembers(
|
export async function requestAllMembers(
|
||||||
guild: Guild,
|
guildID: string,
|
||||||
|
shardID: number,
|
||||||
resolve: (
|
resolve: (
|
||||||
value: Collection<string, Member> | PromiseLike<Collection<string, Member>>,
|
value: Collection<string, Member> | PromiseLike<Collection<string, Member>>,
|
||||||
) => void,
|
) => void,
|
||||||
options?: FetchMembersOptions,
|
options?: FetchMembersOptions,
|
||||||
) {
|
) {
|
||||||
const nonce = `${guild.id}-${Date.now()}`;
|
const nonce = `${guildID}-${Date.now()}`;
|
||||||
cache.fetchAllMembersProcessingRequests.set(nonce, resolve);
|
cache.fetchAllMembersProcessingRequests.set(nonce, resolve);
|
||||||
|
|
||||||
await requestGuildMembers(
|
await requestGuildMembers(
|
||||||
guild.id,
|
guildID,
|
||||||
guild.shardID,
|
shardID,
|
||||||
nonce,
|
nonce,
|
||||||
options,
|
options,
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user