Carbon
Carbon copied to clipboard
[Feature] Better Chat Filter Support
Feature Request: Better Chat Filter Support
1. Cyrillic Support Out of the Box
Current Issue:
Word boundaries \b don't work with Cyrillic characters because regex \w only matches [a-zA-Z0-9_].
Solution:
Replace \b with Unicode-aware boundaries:
- Use
(?<![а-яА-ЯёЁ])and(?![а-яА-ЯёЁ])for Cyrillic - Or add regex flag for Unicode word boundaries (if your regex engine supports it)
- Consider adding a config option to choose boundary type (ASCII/Unicode/Custom)
Example:
# Instead of this (doesn't work):
"\b(плохое_слово)\b" = "замена"
# Use this:
"(?<![а-яА-ЯёЁ])(плохое_слово)(?![а-яА-ЯёЁ])" = "замена"
2. Commands to Manage Filters
Add commands for dynamic filter management:
/chatfilter add <pattern> <replacement> [--optional]
/chatfilter remove <pattern>
/chatfilter list [--optional]
/chatfilter reload
Examples:
/chatfilter add "bad_word" "good_word"
/chatfilter add "(?<![а-яА-ЯёЁ])(мат)(?![а-яА-ЯёЁ])" "цензура" --optional
/chatfilter remove "bad_word"
/chatfilter list
3. Separate Filter Files
Current Issue: Large filter lists (2000+ lines) bloat the main config file.
Solution: Move filters to separate files:
config/
├── carbonchat.conf # Main config
├── filters/
│ ├── chat-filter.conf # Required filters
│ └── optional-filter.conf # Optional filters
Main config reference:
chat-filter = "filters/chat-filter.conf"
optional-chat-filter = "filters/optional-filter.conf"
Benefits:
- ✅ Cleaner main config
- ✅ Easier to manage large filter lists
- ✅ Can share/distribute filter packs separately
- ✅ Better organization
Summary
These improvements would make CarbonChat much more flexible for non-English servers and users with large filter lists. Current workaround requires manually writing regex patterns, which is error-prone.