Merge branch 'feat/welcomeMessages' into slowcord
This commit is contained in:
commit
32a86b26fc
@ -1,4 +1,5 @@
|
|||||||
import { PublicUser, User } from "./User";
|
import { PublicUser, User } from "./User";
|
||||||
|
import { Message } from "./Message";
|
||||||
import { BaseClass } from "./BaseClass";
|
import { BaseClass } from "./BaseClass";
|
||||||
import {
|
import {
|
||||||
Column,
|
Column,
|
||||||
@ -19,6 +20,7 @@ import {
|
|||||||
GuildMemberAddEvent,
|
GuildMemberAddEvent,
|
||||||
GuildMemberRemoveEvent,
|
GuildMemberRemoveEvent,
|
||||||
GuildMemberUpdateEvent,
|
GuildMemberUpdateEvent,
|
||||||
|
MessageCreateEvent,
|
||||||
} from "../interfaces";
|
} from "../interfaces";
|
||||||
import { HTTPError } from "lambert-server";
|
import { HTTPError } from "lambert-server";
|
||||||
import { Role } from "./Role";
|
import { Role } from "./Role";
|
||||||
@ -70,7 +72,7 @@ export class Member extends BaseClassWithoutId {
|
|||||||
|
|
||||||
@Column({ nullable: true })
|
@Column({ nullable: true })
|
||||||
nick?: string;
|
nick?: string;
|
||||||
|
|
||||||
@JoinTable({
|
@JoinTable({
|
||||||
name: "member_roles",
|
name: "member_roles",
|
||||||
joinColumn: { name: "index", referencedColumnName: "index" },
|
joinColumn: { name: "index", referencedColumnName: "index" },
|
||||||
@ -102,14 +104,14 @@ export class Member extends BaseClassWithoutId {
|
|||||||
|
|
||||||
@Column({ nullable: true })
|
@Column({ nullable: true })
|
||||||
last_message_id?: string;
|
last_message_id?: string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@JoinColumn({ name: "id" })
|
@JoinColumn({ name: "id" })
|
||||||
@ManyToOne(() => User, {
|
@ManyToOne(() => User, {
|
||||||
onDelete: "DO NOTHING",
|
onDelete: "DO NOTHING",
|
||||||
// do not auto-kick force-joined members just because their joiners left the server
|
// do not auto-kick force-joined members just because their joiners left the server
|
||||||
}) **/
|
}) **/
|
||||||
@Column({ nullable: true})
|
@Column({ nullable: true })
|
||||||
joined_by?: string;
|
joined_by?: string;
|
||||||
|
|
||||||
// TODO: add this when we have proper read receipts
|
// TODO: add this when we have proper read receipts
|
||||||
@ -242,7 +244,7 @@ export class Member extends BaseClassWithoutId {
|
|||||||
where: {
|
where: {
|
||||||
id: guild_id,
|
id: guild_id,
|
||||||
},
|
},
|
||||||
relations: PublicGuildRelations,
|
relations: [ ...PublicGuildRelations, "system_channel" ],
|
||||||
});
|
});
|
||||||
|
|
||||||
if (await Member.count({ id: user.id, guild: { id: guild_id } }))
|
if (await Member.count({ id: user.id, guild: { id: guild_id } }))
|
||||||
@ -302,6 +304,27 @@ export class Member extends BaseClassWithoutId {
|
|||||||
user_id,
|
user_id,
|
||||||
} as GuildCreateEvent),
|
} as GuildCreateEvent),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
if (guild.system_channel_id) {
|
||||||
|
// send welcome message
|
||||||
|
const message = 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)
|
||||||
|
]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user