summary refs log tree commit diff
path: root/src/util/entities/Member.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/entities/Member.ts')
-rw-r--r--src/util/entities/Member.ts48
1 files changed, 43 insertions, 5 deletions
diff --git a/src/util/entities/Member.ts b/src/util/entities/Member.ts

index 42a014d4..9e9131fe 100644 --- a/src/util/entities/Member.ts +++ b/src/util/entities/Member.ts
@@ -1,6 +1,6 @@ import { Column, Entity, Index, JoinColumn, JoinTable, ManyToMany, ManyToOne, PrimaryGeneratedColumn, RelationId } from "typeorm"; -import { Ban, PublicGuildRelations } from "."; -import { GuildCreateEvent, GuildDeleteEvent, GuildMemberAddEvent, GuildMemberRemoveEvent, GuildMemberUpdateEvent } from "../interfaces"; +import { Ban, PublicGuildRelations, Message } from "."; +import { GuildCreateEvent, GuildDeleteEvent, GuildMemberAddEvent, GuildMemberRemoveEvent, GuildMemberUpdateEvent, MessageCreateEvent } from "../interfaces"; import { Config, emitEvent } from "../util"; import { DiscordApiErrors } from "../util/Constants"; import { HTTPError } from "../util/imports/HTTPError"; @@ -94,7 +94,19 @@ export class Member extends BaseClassWithoutId { // do not auto-kick force-joined members just because their joiners left the server }) **/ @Column({ nullable: true }) - joined_by?: string; + joined_by: string; + + @Column({ nullable: true }) + avatar: string; + + @Column({ nullable: true }) + banner: string; + + @Column() + bio: string; + + @Column({ nullable: true }) + communication_disabled_until: Date; // TODO: add this when we have proper read receipts // @Column({ type: "simple-json" }) @@ -243,7 +255,11 @@ export class Member extends BaseClassWithoutId { premium_since: null, deaf: false, mute: false, - pending: false + pending: false, + avatar: null, + banner: null, + bio: "", + communication_disabled_until: null }; //TODO: check for bugs if (guild.member_count) guild.member_count++; @@ -284,11 +300,33 @@ export class Member extends BaseClassWithoutId { joined_at: member.joined_at, presences: [], stage_instances: [], - threads: [] + threads: [], + embedded_activities: [], }, user_id } as GuildCreateEvent) ]); + + if (guild.system_channel_id) { + // send welcome message + const message = OrmUtils.mergeDeep(new Message(), { + type: 7, + guild_id: guild.id, + channel_id: guild.system_channel_id, + author: user, + timestamp: new Date(), + + reactions: [], + attachments: [], + embeds: [], + sticker_items: [], + edited_timestamp: undefined, + }); + await Promise.all([ + message.save(), + emitEvent({ event: "MESSAGE_CREATE", channel_id: message.channel_id, data: message } as MessageCreateEvent) + ]); + } } }