Don't fetch all members in guild in Member.addToGuild

This commit is contained in:
Madeline 2022-09-27 18:51:43 +10:00
parent ead4a48e2f
commit 5563a92d25
2 changed files with 18 additions and 4 deletions

View File

@ -43,11 +43,11 @@ import { Webhook } from "./Webhook";
export const PublicGuildRelations = [ export const PublicGuildRelations = [
"channels", "channels",
"emojis", "emojis",
"members",
"roles", "roles",
"stickers", "stickers",
"voice_states", "voice_states",
"members.user", // "members", // TODO: These are public, but all members should not be fetched.
// "members.user",
]; ];
@Entity("guilds") @Entity("guilds")

View File

@ -10,6 +10,7 @@ import {
JoinTable, JoinTable,
ManyToMany, ManyToMany,
ManyToOne, ManyToOne,
Not,
PrimaryGeneratedColumn, PrimaryGeneratedColumn,
RelationId, RelationId,
} from "typeorm"; } from "typeorm";
@ -287,6 +288,19 @@ export class Member extends BaseClassWithoutId {
relations: [...PublicGuildRelations, "system_channel"], relations: [...PublicGuildRelations, "system_channel"],
}); });
const memberCount = await Member.count({ where: { guild_id } });
const memberPreview = await Member.find({
where: {
guild_id,
user: {
sessions: {
status: Not("invisible" as "invisible") // lol typescript?
}
}
},
take: 10,
});
if ( if (
await Member.count({ await Member.count({
where: { id: user.id, guild: { id: guild_id } }, where: { id: user.id, guild: { id: guild_id } },
@ -342,8 +356,8 @@ export class Member extends BaseClassWithoutId {
event: "GUILD_CREATE", event: "GUILD_CREATE",
data: { data: {
...guild, ...guild,
members: [...guild.members, { ...member, user }], members: [...memberPreview, { ...member, user }],
member_count: (guild.member_count || 0) + 1, member_count: memberCount + 1,
guild_hashes: {}, guild_hashes: {},
guild_scheduled_events: [], guild_scheduled_events: [],
joined_at: member.joined_at, joined_at: member.joined_at,