diff --git a/.gitignore b/.gitignore index 902ed77c..dc33551a 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,5 @@ build tmp/ dump/ result -jwt.key* \ No newline at end of file +jwt.key* +bun.lock diff --git a/src/util/config/types/subconfigurations/guild/AutoJoin.ts b/src/util/config/types/subconfigurations/guild/AutoJoin.ts index be1c0d0d..5acdd74e 100644 --- a/src/util/config/types/subconfigurations/guild/AutoJoin.ts +++ b/src/util/config/types/subconfigurations/guild/AutoJoin.ts @@ -20,4 +20,5 @@ export class AutoJoinConfiguration { enabled: boolean = true; guilds: string[] = []; canLeave: boolean = true; + bots: boolean = false; } diff --git a/src/util/entities/User.ts b/src/util/entities/User.ts index eb42d9f2..5ee63352 100644 --- a/src/util/entities/User.ts +++ b/src/util/entities/User.ts @@ -157,7 +157,7 @@ export class User extends BaseClass { @OneToOne(() => UserSettings, { cascade: true, orphanedRowAction: "delete", - nullable: true + nullable: true, }) @JoinColumn() settings?: UserSettings; @@ -257,6 +257,7 @@ export class User extends BaseClass { password, id, req, + bot, }: { username: string; password?: string; @@ -264,6 +265,7 @@ export class User extends BaseClass { date_of_birth?: Date; // "2000-04-03" id?: string; req?: Request; + bot?: boolean; }) { // trim special uf8 control characters -> Backspace, Newline, ... username = trimSpecial(username); @@ -306,6 +308,7 @@ export class User extends BaseClass { premium_type: Config.get().defaults.user.premiumType ?? 0, verified: Config.get().defaults.user.verified ?? true, created_at: new Date(), + bot: !!bot, }); user.validate(); @@ -319,6 +322,12 @@ export class User extends BaseClass { } setImmediate(async () => { + if (bot) { + const { guild } = Config.get(); + if (!guild.autoJoin.bots) { + return; + } + } if (Config.get().guild.autoJoin.enabled) { for (const guild of Config.get().guild.autoJoin.guilds || []) { await Member.addToGuild(user.id, guild).catch((e) => console.error("[Autojoin]", e)); diff --git a/src/util/util/Application.ts b/src/util/util/Application.ts index 23019a7f..35cf6a37 100644 --- a/src/util/util/Application.ts +++ b/src/util/util/Application.ts @@ -7,6 +7,7 @@ export async function createAppBotUser(app: Application, req: Request) { password: undefined, id: app.id, req, + bot: true, }); user.id = app.id;