Merge branch 'master' into pingFix
This commit is contained in:
commit
1e354b2b0c
3
.gitignore
vendored
3
.gitignore
vendored
@ -20,4 +20,5 @@ build
|
||||
tmp/
|
||||
dump/
|
||||
result
|
||||
jwt.key*
|
||||
jwt.key*
|
||||
bun.lock
|
||||
|
||||
@ -20,7 +20,7 @@ import { route } from "@spacebar/api";
|
||||
import { Channel, emitEvent, Message, MessageCreateEvent, Permissions, Sticker } from "@spacebar/util";
|
||||
import { Request, Response, Router } from "express";
|
||||
import { In } from "typeorm";
|
||||
import { GreetRequestSchema, MessageType } from "@spacebar/schemas"
|
||||
import { GreetRequestSchema, MessageType } from "@spacebar/schemas";
|
||||
|
||||
const router: Router = Router({ mergeParams: true });
|
||||
|
||||
@ -88,6 +88,8 @@ router.post(
|
||||
sticker_items: randomSticker ? [{ id: randomSticker.id, name: randomSticker.name, format_type: randomSticker.format_type }] : [],
|
||||
});
|
||||
|
||||
channel.last_message_id = message.id;
|
||||
|
||||
await Promise.all([
|
||||
message.save(),
|
||||
emitEvent({
|
||||
@ -95,6 +97,7 @@ router.post(
|
||||
data: message,
|
||||
channel_id,
|
||||
} as MessageCreateEvent),
|
||||
channel.save(),
|
||||
]);
|
||||
|
||||
res.send(channel);
|
||||
|
||||
@ -25,9 +25,11 @@ export interface RoleModifySchema {
|
||||
position?: number;
|
||||
icon?: string;
|
||||
unicode_emoji?: string;
|
||||
colors?: {
|
||||
primary_color: number;
|
||||
secondary_color: number | null | undefined; // only used for "holographic" and "gradient" styles
|
||||
tertiary_color?: number | null | undefined; // only used for "holographic" style
|
||||
} | undefined;
|
||||
colors?:
|
||||
| {
|
||||
primary_color: number;
|
||||
secondary_color?: number | null | undefined; // only used for "holographic" and "gradient" styles
|
||||
tertiary_color?: number | null | undefined; // only used for "holographic" style
|
||||
}
|
||||
| undefined;
|
||||
}
|
||||
|
||||
@ -20,4 +20,5 @@ export class AutoJoinConfiguration {
|
||||
enabled: boolean = true;
|
||||
guilds: string[] = [];
|
||||
canLeave: boolean = true;
|
||||
bots: boolean = false;
|
||||
}
|
||||
|
||||
@ -358,7 +358,7 @@ export class Member extends BaseClassWithoutId {
|
||||
hide_muted_channels: false,
|
||||
notify_highlights: 0,
|
||||
channel_overrides: {},
|
||||
message_notifications: 0,
|
||||
message_notifications: guild.default_message_notifications,
|
||||
mobile_push: true,
|
||||
muted: false,
|
||||
suppress_everyone: false,
|
||||
@ -397,6 +397,9 @@ export class Member extends BaseClassWithoutId {
|
||||
]);
|
||||
|
||||
if (guild.system_channel_id) {
|
||||
const channel = await Channel.findOneOrFail({
|
||||
where: { id: guild.system_channel_id },
|
||||
});
|
||||
// Send a welcome message
|
||||
const message = Message.create({
|
||||
type: 7,
|
||||
@ -414,6 +417,9 @@ export class Member extends BaseClassWithoutId {
|
||||
mention_roles: [],
|
||||
mention_everyone: false,
|
||||
});
|
||||
|
||||
channel.last_message_id = message.id;
|
||||
|
||||
await Promise.all([
|
||||
message.save(),
|
||||
emitEvent({
|
||||
@ -421,6 +427,7 @@ export class Member extends BaseClassWithoutId {
|
||||
channel_id: message.channel_id,
|
||||
data: message,
|
||||
} as MessageCreateEvent),
|
||||
channel.save(),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -7,6 +7,7 @@ export async function createAppBotUser(app: Application, req: Request) {
|
||||
password: undefined,
|
||||
id: app.id,
|
||||
req,
|
||||
bot: true,
|
||||
});
|
||||
|
||||
user.id = app.id;
|
||||
|
||||
Reference in New Issue
Block a user