diff --git a/src/channel/Channel.ts b/src/channel/Channel.ts index 53b6f1a..1aa5290 100644 --- a/src/channel/Channel.ts +++ b/src/channel/Channel.ts @@ -146,8 +146,13 @@ export class Channel extends EventEmitter { } }); - this.on("message", async (msg: ServerEvents["a"], socket: Socket) => { - if (!msg.message) return; + const BANNED_WORDS = [ + "AMIGHTYWIND", + "CHECKLYHQ" + ]; + + this.on("a", async (msg: ServerEvents["a"], socket: Socket) => { + if (typeof msg.message !== "string") return; const userFlags = socket.getUserFlags(); @@ -155,9 +160,18 @@ export class Channel extends EventEmitter { if (userFlags.cant_chat) return; } + if (!this.settings.chat) return; + if (msg.message.length > 512) return; - // Sanitize + for (const word of BANNED_WORDS) { + if (msg.message.toLowerCase().split(" ").join("").includes(word.toLowerCase())) { + return; + } + } + + // Sanitize chat message + // Regex originally written by chacha msg.message = msg.message .replace(/\p{C}+/gu, "") .replace(/(\p{Mc}{5})\p{Mc}+/gu, "$1") diff --git a/src/ws/events/user/handlers/a.ts b/src/ws/events/user/handlers/a.ts index de146a9..ae77ecf 100644 --- a/src/ws/events/user/handlers/a.ts +++ b/src/ws/events/user/handlers/a.ts @@ -16,6 +16,6 @@ export const a: ServerEventListener<"a"> = { // msg.m // Permission denied: msg.m // sudo msg.m - ch.emit("message", msg, socket); + ch.emit("a", msg, socket); } };