Fix DC client throwing on GUILD_CREATE

This commit is contained in:
Madeline 2023-04-12 21:03:49 +10:00
parent 5771552408
commit 9a6390b9bd
No known key found for this signature in database
GPG Key ID: 1958E017C36F2E47
2 changed files with 28 additions and 13 deletions

View File

@ -16,7 +16,14 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
import { Channel, Emoji, Guild, Member, Role, Sticker } from "../entities";
import {
Channel,
Emoji,
Guild,
PublicMember,
Role,
Sticker,
} from "../entities";
export interface IReadyGuildDTO {
application_command_counts?: { 1: number; 2: number; 3: number }; // ????????????
@ -28,7 +35,7 @@ export interface IReadyGuildDTO {
large: boolean | undefined;
lazy: boolean;
member_count: number | undefined;
members: Member[];
members: PublicMember[];
premium_subscription_count: number | undefined;
properties: {
name: string;
@ -76,7 +83,7 @@ export class ReadyGuildDTO implements IReadyGuildDTO {
large: boolean | undefined;
lazy: boolean;
member_count: number | undefined;
members: Member[];
members: PublicMember[];
premium_subscription_count: number | undefined;
properties: {
name: string;
@ -127,7 +134,7 @@ export class ReadyGuildDTO implements IReadyGuildDTO {
this.large = guild.large;
this.lazy = true; // ??????????
this.member_count = guild.member_count;
this.members = guild.members;
this.members = guild.members?.map((x) => x.toPublicMember());
this.premium_subscription_count = guild.premium_subscription_count;
this.properties = {
name: guild.name,

View File

@ -330,17 +330,25 @@ export class Member extends BaseClassWithoutId {
});
const memberCount = await Member.count({ where: { guild_id } });
const memberPreview = await Member.find({
where: {
guild_id,
user: {
sessions: {
status: Not("invisible" as const), // lol typescript?
const memberPreview = (
await Member.find({
where: {
guild_id,
user: {
sessions: {
status: Not("invisible" as const), // lol typescript?
},
},
},
},
take: 10,
});
relations: ["user", "roles"],
take: 10,
})
).map((member) => ({
...member.toPublicMember(),
user: member.user.toPublicUser(),
roles: member.roles.map((x) => x.id),
}));
if (
await Member.count({