Версия Дата выпуска Скачивания Оценка  
3.0.0 11 0.00 звёзд 0 оценок Скачать
2.9.9 15 0.00 звёзд 0 оценок Скачать
2.9.7 10 0.00 звёзд 0 оценок Скачать
Версия 3.0.0 - Система валидации конфига "Защита от дурака"
НОВОЕ: Валидация конфигурации
Новая команда:
  • sm_validate_config - проверяет конфиг БЕЗ загрузки, показывает все ошибки и предупреждения
Автоматические проверки при загрузке:
Флаги паттернов:
  • CASELESS для символов без регистра (ツ, ♥, 卐) - бесполезен
  • CHARONLY вне whitelist - работает только для whitelist
  • KWORD для whitelist/replacepattern - бесполезен
  • KWORD с regex-метасимволами (.*+?) - неочевидное поведение
  • MULTILINE для чата - сообщения обычно однострочные
  • Короткие паттерны (1-2 символа) без KWORD - много ложных срабатываний
  • Неизвестные флаги (опечатки) - предупреждение
Логика секций:
  • block + replace - замена никогда не выполнится
  • punish без limit - наказание никогда не сработает
  • forgive без limit - прощение бесполезно
  • limit без punish/block - счётчик ни на что не влияет
Логирование ошибок
  • Все ошибки записываются в logs/regexfilter_errors.log
  • Перевод ошибок PCRE на русский язык
  • Указание секции и паттерна где произошла ошибка
Полная русификация
  • Все диагностические сообщения на русском языке
  • Сообщения об ошибках компиляции regex переведены
Примеры валидации:
C-подобный:
// Ошибка: CASELESS бесполезен
"whitelist" "'ツ' 'CASELESS'"
// [ВНИМАНИЕ] CASELESS для паттерна 'ツ' бесполезен - в нём нет букв с регистром!
// Ошибка: block + replace одновременно
"маты"
{
    chatpattern "'лох' 'CASELESS'"
    block "1"
    replace "***"
}
// [ВНИМАНИЕ] block + replace одновременно - замена никогда не выполнится!
// Ошибка: punish без limit
"флуд"
{
    chatpattern "'спам'"
    punish "kick %n"
}
// [ВНИМАНИЕ] punish без limit - наказание никогда не сработает!
Технические изменения:
  • Новые функции: ValidateFlags, ValidateSectionLogic, HasCasedLetters, HasRegexMetachars, CountUTF8Chars
  • Корректный подсчёт UTF-8 символов (кириллица = 1 символ, не 2 байта)
  • Паттерны с критическими ошибками пропускаются, остальные загружаются
Версия 2.9.9
  • Исправлен обход фильтра через символы whitelist внутри слова (например "ПツрツИツмツЕツрツツツ")
  • Синхронизирована логика нормализации между RemoveSpaces и ReplaceTextIgnoringSpaces
  • Исправлена обработка многобайтовых UTF-8 символов в NormalizeWordForKword (KWORD)
Версия 2.9.7

  • Новый флаг CHARONLY для whitelist — защищает символ от удаления, но НЕ пропускает фильтрацию мата
    C-подобный:
    "whitelist" "'ツ' 'CHARONLY'"
  • Исправлен баг: whitelist пропускал ВСЁ сообщение если находил символ (теперь только с CHARONLY)
  • Исправлен баг: символы whitelist удалялись в RemoveSpaces
  • Исправлен баг: say_team выводил отфильтрованное сообщение в общий чат вместо командного
  • Исправлен баг: immunity не работал (неправильный вызов CheckCommandAccess)
  • Исправлен баг: whitelist не проверял нормализованный текст
  • Исправлен баг: crash при ParseAndExecute для client = 0 (консоль)
  • Исправлен баг: неправильное копирование многобайтовых UTF-8 символов в NormalizeLatinToCyrillic
  • Исправлен баг: утечка памяти — Regex из replacepattern не удалялся при очистке
  • Исправлена проверка пустого сообщения после очистки
  • Добавлен учёт символов whitelist при валидации (whitelistChars)

Пример использования CHARONLY:
C-подобный:
// Символ защищён от удаления, но мат рядом фильтруется:
"whitelist" "'ツ' 'CHARONLY'"

// Результат:
// "ツ" → проходит
// "СлОвО ツツツ" → "*** ツツツ"
- Просто доработал флаг KWORD и добавил те же самые проверки как и в REGEX паттернах + очистку от мусора.
- Доработка API.

REGEXFilter v2.9.1 ALPHA​

Новое: Флаг KWORD в конфигурационном файле!​

Реализована проверка границ слова (Word Boundaries) на уровне плагина. Решает проблему неработающего \b с кириллицей в PCRE.
C-подобный:
// Было: 'лох' ловит "плохой"
"chatpattern"    "'лох' 'CASELESS'"
// Стало: 'лох' НЕ ловит "плохой"
"chatpattern"    "'лох' 'CASELESS|KWORD'"
KWORD требует указания всех форм слова (падежи, склонения).

Изменения​

  • Добавлен AutoExecConfig — файл настроек cfg/sourcemod/sm_regexfilter.cfg
  • Исправлен паттерн (съ?)(е|ё)б — не ловит "себя/себе"
  • Документация флагов в конфиге

Файлы​

  • sm_regexfilter.sp
  • regexrestrict.cfg
Версия: 2.9.1 ALPHA
Совместимость: SourceMod 1.10+
- Добавлена переменная regexfilter_skip_console, которая включает или отключает фильтрацию из под консоли, при выполнении команды `say`.
REGEX Word Filter v2.7.1

Новый функционал

Добавлена очистка мусорных символов из сообщений (эмодзи, юникод-арт, спецсимволы).

Логика:
  • Мусора <50% — символы удаляются, сообщение отправляется
  • Мусора >50% — сообщение блокируется
  • Нет букв после очистки — сообщение блокируется

Новый ConVar:
C-подобный:
regexfilter_cleanjunk "1"  // 1 = вкл, 0 = выкл

API

Очистка применяется и к вызовам через API. Добавлена документация на русском.

Код:
// Возвращает: 1 = изменено, 0 = без изменений, -1 = заблокировано
native int REGEXFilter_ProcessMessage(int client, char[] text, int maxlen);

// Добавление паттерна в белый список
native int REGEXFilter_AddWhitelist(const char[] pattern, int maxlen);

Прочее
  • Комментарии в коде переведены на русский

Changelog
C-подобный:
v2.7.1
+ regexfilter_cleanjunk — очистка мусорных символов
+ Блокировка сообщений с >50% мусора
+ Блокировка сообщений без букв
+ Документация API на русском
+ Интеграция очистки в Native_ProcessMessage
* Комментарии переведены на русский
- Исправлено API.
- Добавлен детект латиницы.
- Микро-исправления.
Сверху Снизу