Feature: Player "reputation" chat restrictions
Currently we do not have much leverage against chat trolls on servers, as even if a server admin bans them by IP and player ID, they can just come back from a new pair of them (especially as open proxies are readily available).
So the idea is to attach a stronger penalty to abusive behavior on game servers.
It can work as follows:
- Xonstat already collects how many hours a player has played on stats enabled servers.
- Stats enabled servers could retrieve this information from xonstat when a player connects, and network it to the clients.
- Clients could add chat and/or nickname filtering based on this and a client-side setting; chat filtering would be controlled by a slider for minimum required play hours to enable chat, and the scoreboard would indicate the inability to chat (messages would not be propagated) by greying out/replacing their nickname and/or showing an icon.
- Chat restriction would always be two-way - if you can't hear them, they can't hear you. In mathematics, if two players have pA and pB play hours, and restrictions set to rA and rB, respectively, then they can chat with each other if and only if pA >= rB and pB >= rA. The icon or scoreboard display would not indicate which of the two conditions is missing.
- Of course, none of this would work when on a non Xonstat enabled server - we could then have a client side setting whether to disable chat entirely on such servers or not.
When a server admin then bans a player, and they come back with a new profile, they will not be allowed to chat with players having this enabled (as in, not be seen) until they have racked up a user defined amount of play hours again.
Prior art in Xonotic: cl_gentle mode which removes blood and references to death.
Suggesting to NOT enable this by default, just like the other cl_gentle type features.
Depends on #2543 being implemented first as this would otherwise break teamplay.