From 9d84c5f81b7d1f0a097e91148b9d7e926257b5a8 Mon Sep 17 00:00:00 2001 From: Hri7566 Date: Tue, 9 Jul 2024 10:34:22 -0400 Subject: [PATCH] Add note quota user flag --- src/util/types.d.ts | 6 ++++++ src/ws/events/user/handlers/n.ts | 19 ++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/util/types.d.ts b/src/util/types.d.ts index bd476ef..6a14b0a 100644 --- a/src/util/types.d.ts +++ b/src/util/types.d.ts @@ -16,6 +16,7 @@ import { Socket } from "../ws/Socket"; declare type Omit = Pick>; declare type UserFlags = Partial<{ + // Brandon flags freeze_name: number; "no chat rate limit": number; chat_curse_1: number; @@ -24,6 +25,11 @@ declare type UserFlags = Partial<{ volume: number; cant_chat: number; cansetcrowns: number; + + // new + "no note rate limit": number; + "no cursor rate limit": number; + "no userset rate limit": number; }>; declare interface Tag { diff --git a/src/ws/events/user/handlers/n.ts b/src/ws/events/user/handlers/n.ts index 67c3622..f4b14e8 100644 --- a/src/ws/events/user/handlers/n.ts +++ b/src/ws/events/user/handlers/n.ts @@ -38,7 +38,24 @@ export const n: ServerEventListener<"n"> = { if ((crownsolo && socket.isOwner()) || !crownsolo) { // Shiny hat exists and we have shiny hat // or there is no shiny hat - if (socket.noteQuota.spend(amount)) { + const flags = socket.getUserFlags(); + let canPlay = false; + let shouldRateLimit = true; + + // why is this so big + + if (flags !== null && flags["no note rate limit"]) { + canPlay = true; + shouldRateLimit = false; + } + + if (shouldRateLimit) { + if (socket.noteQuota.spend(amount)) { + canPlay = true; + } + } + + if (canPlay) { // make noise socket.playNotes(msg); }