From 2f7accdf20d4b36b035dcd6ccefed7f5da2cf33d Mon Sep 17 00:00:00 2001
From: Jean-Baptiste Emmanuel Zorg <zorgjeanbe@proton.me>
Date: Fri, 28 Mar 2025 16:44:42 +0100
Subject: [PATCH] Check that the message is proper before trying to put an id
 inside it

Stops a crash when running BCX, as it uses an object as a dictionary
instead of an array.
---
 BondageClub/Scripts/Server.js | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/BondageClub/Scripts/Server.js b/BondageClub/Scripts/Server.js
index 7024a0daf5..771a11c0ea 100644
--- a/BondageClub/Scripts/Server.js
+++ b/BondageClub/Scripts/Server.js
@@ -323,9 +323,11 @@ function ServerSendQueueProcess() {
 		if (item) {
 			if (item.Message === "ChatRoomChat") {
 				const [data] = item.args;
-				data.Dictionary = data?.Dictionary ?? [];
-				data.Dictionary.push({ Tag: "MsgId", MsgId: CommonGenerateUniqueID() });
-			 }
+				if (["Chat", "Emote", "Whisper"].includes(data?.Type) && (CommonIsArray(data.Dictionary) || data.Dictionary === undefined)) {
+					data.Dictionary = data?.Dictionary ?? [];
+					data.Dictionary.push({ Tag: "MsgId", MsgId: CommonGenerateUniqueID() });
+				}
+			}
 			ServerSocket.emit(item.Message, ...item.args);
 			ServerSendRateLimitTimes.push(Date.now());
 		}