Merge pull request #1233 from dank074/patch/fixOp8

fix opcode 8 handler: onRequestGuildMembers
This commit is contained in:
Madeline 2024-11-14 13:13:12 +11:00 committed by GitHub
commit 762287e57b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 14 additions and 12 deletions

View File

@ -27,7 +27,7 @@ import {
} from "@spacebar/util"; } from "@spacebar/util";
import { WebSocket, Payload, OPCODES, Send } from "@spacebar/gateway"; import { WebSocket, Payload, OPCODES, Send } from "@spacebar/gateway";
import { check } from "./instanceOf"; import { check } from "./instanceOf";
import { FindManyOptions, In, Like } from "typeorm"; import { FindManyOptions, ILike, In } from "typeorm";
export async function onRequestGuildMembers(this: WebSocket, { d }: Payload) { export async function onRequestGuildMembers(this: WebSocket, { d }: Payload) {
// Schema validation can only accept either string or array, so transforming it here to support both // Schema validation can only accept either string or array, so transforming it here to support both
@ -114,7 +114,7 @@ export async function onRequestGuildMembers(this: WebSocket, { d }: Payload) {
if (query) { if (query) {
// @ts-expect-error memberFind.where is very much defined // @ts-expect-error memberFind.where is very much defined
memberFind.where.user = { memberFind.where.user = {
username: Like(query + "%"), username: ILike(query + "%"),
}; };
} else if (user_ids && user_ids.length > 0) { } else if (user_ids && user_ids.length > 0) {
// @ts-expect-error memberFind.where is still very much defined // @ts-expect-error memberFind.where is still very much defined
@ -166,15 +166,17 @@ export async function onRequestGuildMembers(this: WebSocket, { d }: Payload) {
}); });
} }
if (chunks.length == 0) {
chunks.push({
...baseData,
members: [],
presences: presences ? [] : undefined,
chunk_index: 0,
chunk_count: 1,
});
}
if (notFound.length > 0) { if (notFound.length > 0) {
if (chunks.length == 0)
chunks.push({
...baseData,
members: [],
presences: presences ? [] : undefined,
chunk_index: 0,
chunk_count: 1,
});
chunks[0].not_found = notFound; chunks[0].not_found = notFound;
} }

View File

@ -466,8 +466,8 @@ export class Member extends BaseClassWithoutId {
member[x] = this[x]; member[x] = this[x];
}); });
if (member.roles) member.roles = member.roles.map((x: Role) => x.id); if (this.roles) member.roles = this.roles.map((x: Role) => x.id);
if (member.user) member.user = member.user.toPublicUser(); if (this.user) member.user = this.user.toPublicUser();
return member as PublicMember; return member as PublicMember;
} }