The main goal was improving the readability of the original code however some ugliness remains.
- Swapped from pointer singleton to instance singleton
- Actually make use of the alpha logic that used to be present
- Added a counter to notifications to indicate if something is being spammed
- Notification timeouts reset if they're sent to the queue again
Why? Shorter to write and removes the macro usage
I used the following regex to find all occurrences:
```r
RAGE_JOAAT\("(.*?)"\)
```
then the following to replace it all:
```r
"$1"_J
```
* Added more spam messages to the filter.
* Removed duplicate remote control vehicle button from the player vehicle menu.
* Added heuristical spam detector.
* Fixed clock in spam logger.
* Added date output to the chat logger.
* Added a message to show the user when someone is spamming.
More static text translations.
* Removed redundant mobile global in scr_globals.hpp.
* Added a spam reason to the spam logger.
* Added team/all to the chat logger.
Added a logger call for the user's chats.
1. Allow interloper_reaction to use timeout.
2. Fix crash reaction(except TSE) cannot use announce in chat.
3. Allow all friends to bypass auto kick spammers, modder flag and reactions.
Provides an alternative for users who experience this weird bug https://github.com/YimMenu/YimMenu/issues/2266 . They can just trust their friends until someone provides valuable information for developers to fix.
4. Allow trusting specific players (bypass auto kick spammers, modder flag and reactions).
5. Trust the whole session temporarily (Avoid team members being kicked when in mission).
6. Remove duplicate logs when blocking crash (except for TSE crash)
7. remove unused gamer_instruction_kick in reaction list
8. Allow announce in team only chat
* Refactored Allow All Weapons In Vehicle to force all vehicles to use all GROUPs.
* Refactored project to not depend on src/gta files that already exist in the GTA-V-Classes project.
* feat(cmake): bump GTAV-Classes
* feat(protections): filter invalid sector position from the player game state data node
* feat(chat): bypass chat delay
* fix(world): fix auto disarm
* fix(chat): true instant messaging
* feat(Commands): Prototype command system
* feat(Commands): Chat commands
* refactor(Toxic): convert most options into commands
* feat(Protections): block breakup kicks on other players as host
* refactor(Kicks): convert most options into commands
* refactor(Commands): add labels and descriptions to all commands
* feat(Commands): cleanup on unload
* refactor(Troll): convert most options into commands
* refactor(Misc): convert most options into commands
* refactor(Teleport): convert most options into commands
* feat(Commands): Variadic commands and toggleable bools
* feat(Hotkeys): hotkeys now use commands
* fix(Chat): fix the chat window locking up when a message is sent
* fix(Commands): properly handle spoofed username
* fix(Spam): update filter
Co-authored-by: Yimura <24669514+Yimura@users.noreply.github.com>
* fix(NativeHooks): Fix softlock when loading Cayo Perico
* fear(netTime): Try to modify time remotely
* fix(timeSync): Make it work more consistently
* feat(netTime): net time sync for all!
* Add force session host and update protections
* Remove old popgroup protection
* Harden script patcher
* Replace looped options with script patches
* Missing break
* Use enums
* Forgot to break again...
* Add tooltip for force session host
Co-authored-by: user <email@hostname>