From 0d94760321a3e43c76efab88107f93cd20961e4f Mon Sep 17 00:00:00 2001 From: Gurge44 Date: Fri, 12 Jun 2026 18:21:19 +0200 Subject: [PATCH] fix start spam false positives --- Modules/SpamManager.cs | 54 ++++++++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 23 deletions(-) diff --git a/Modules/SpamManager.cs b/Modules/SpamManager.cs index 3c643edf7..aa4be385d 100644 --- a/Modules/SpamManager.cs +++ b/Modules/SpamManager.cs @@ -147,34 +147,42 @@ public static class SpamManager return true; } - - private static readonly string[] StartWords = - [ - "start", - "started", - "begin", - "commence", - "proceed", - // Russian - "старт", - "начни", - "начинай", - "го", - "гоу", + private static readonly Dictionary StartWords = new() + { + [SupportedLangs.English] = + [ + "start", + "begin", + "commence" + ], - // Chinese - "开", - "开始", - "快开", + [SupportedLangs.Russian] = + [ + // Russian + "старт", + "начни", + "начинай", + "гоу" + ], - // Pinyin - "kai", - "kaishi" - ]; + [SupportedLangs.SChinese] = + [ + "开始", + "快开" + ], + + [SupportedLangs.TChinese] = + [ + "开始", + "快开" + ] + }; private static bool ContainsStart(string text) { + if (!StartWords.TryGetValue(GetUserTrueLang(), out string[] words)) return false; + if (string.IsNullOrWhiteSpace(text)) return false; @@ -183,7 +191,7 @@ public static class SpamManager string normalized = Normalize(text); - foreach (string word in StartWords) + foreach (string word in words) { string target = Normalize(word);