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/>. 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 { export interface IReadyGuildDTO {
application_command_counts?: { 1: number; 2: number; 3: number }; // ???????????? application_command_counts?: { 1: number; 2: number; 3: number }; // ????????????
@ -28,7 +35,7 @@ export interface IReadyGuildDTO {
large: boolean | undefined; large: boolean | undefined;
lazy: boolean; lazy: boolean;
member_count: number | undefined; member_count: number | undefined;
members: Member[]; members: PublicMember[];
premium_subscription_count: number | undefined; premium_subscription_count: number | undefined;
properties: { properties: {
name: string; name: string;
@ -76,7 +83,7 @@ export class ReadyGuildDTO implements IReadyGuildDTO {
large: boolean | undefined; large: boolean | undefined;
lazy: boolean; lazy: boolean;
member_count: number | undefined; member_count: number | undefined;
members: Member[]; members: PublicMember[];
premium_subscription_count: number | undefined; premium_subscription_count: number | undefined;
properties: { properties: {
name: string; name: string;
@ -127,7 +134,7 @@ export class ReadyGuildDTO implements IReadyGuildDTO {
this.large = guild.large; this.large = guild.large;
this.lazy = true; // ?????????? this.lazy = true; // ??????????
this.member_count = guild.member_count; 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.premium_subscription_count = guild.premium_subscription_count;
this.properties = { this.properties = {
name: guild.name, name: guild.name,

View File

@ -330,7 +330,9 @@ export class Member extends BaseClassWithoutId {
}); });
const memberCount = await Member.count({ where: { guild_id } }); const memberCount = await Member.count({ where: { guild_id } });
const memberPreview = await Member.find({
const memberPreview = (
await Member.find({
where: { where: {
guild_id, guild_id,
user: { user: {
@ -339,8 +341,14 @@ export class Member extends BaseClassWithoutId {
}, },
}, },
}, },
relations: ["user", "roles"],
take: 10, take: 10,
}); })
).map((member) => ({
...member.toPublicMember(),
user: member.user.toPublicUser(),
roles: member.roles.map((x) => x.id),
}));
if ( if (
await Member.count({ await Member.count({