summary refs log tree commit diff
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2025-10-04 21:25:39 +0200
committerRory& <root@rory.gay>2025-10-04 21:25:39 +0200
commit021a38767959a996231a3b6fa03c0261fea7bf4a (patch)
treedbaa6723386f42a0a5f10a166bb48f901e6476a2
parentFix missed merge (diff)
downloadserver-ts-021a38767959a996231a3b6fa03c0261fea7bf4a.tar.xz
Add sticker limit
-rw-r--r--src/api/routes/guilds/#guild_id/stickers.ts12
-rw-r--r--src/util/config/types/subconfigurations/limits/GuildLimits.ts1
2 files changed, 13 insertions, 0 deletions
diff --git a/src/api/routes/guilds/#guild_id/stickers.ts b/src/api/routes/guilds/#guild_id/stickers.ts

index b0ac01a2..07fbfd58 100644 --- a/src/api/routes/guilds/#guild_id/stickers.ts +++ b/src/api/routes/guilds/#guild_id/stickers.ts
@@ -27,6 +27,8 @@ import { StickerType, emitEvent, uploadFile, + Config, + DiscordApiErrors, } from "@spacebar/util"; import { Request, Response, Router } from "express"; import { HTTPError } from "lambert-server"; @@ -87,6 +89,16 @@ router.post( const body = req.body as ModifyGuildStickerSchema; const id = Snowflake.generate(); + const sticker_count = await Sticker.count({ + where: { guild_id: guild_id }, + }); + const { maxStickers } = Config.get().limits.guild; + + if (sticker_count >= maxStickers) + throw DiscordApiErrors.MAXIMUM_STICKERS.withParams( + maxStickers, + ); + const [sticker] = await Promise.all([ Sticker.create({ ...body, diff --git a/src/util/config/types/subconfigurations/limits/GuildLimits.ts b/src/util/config/types/subconfigurations/limits/GuildLimits.ts
index e77cf424..48c575b0 100644 --- a/src/util/config/types/subconfigurations/limits/GuildLimits.ts +++ b/src/util/config/types/subconfigurations/limits/GuildLimits.ts
@@ -19,6 +19,7 @@ export class GuildLimits { maxRoles: number = 1000; maxEmojis: number = 2000; + maxStickers: number = 500; maxMembers: number = 25000000; maxChannels: number = 65535; maxBulkBanUsers: number = 200;