@interforo
Once you have "banned" someone, then surely that can't, by definition, accrue any further points, since they can't actually do anything.
webbouk's suggestion to restrict them with a secondary usergroup (rather than an outright ban) has a great deal of merit. But I'd suggest that the restricted UserGroup you create does NOT use the term "Banned" so as to distinguish these from true bans. Use another term to indicate restrictions (we use "Suspended" but anything similar would do).
I'd suggest that your scheme goes like this. It's not exactly what you say you want, but it comes fairly close, I think:
- Warnings are all issued to expire in 6 months (say, 5 points)
- A Warning action occurs to the user to add them into a restricted usergroup (let's call it "Restricted") for a fixed term of your choosing - say a year (or choose another period) - and that action occurs when they reach a threshold (say, 20 points).
This would be the effect
1 Warning 5 points. Total 5
2 Warning 5 points issued inside 6 months from 1. Total 10.
3 Ditto. Total 15
4 Ditto. Total 20. Restricted for 12 months.
or (for example)
1 Warning 5 points. Total 5
2 Warning 5 points issued inside 6 months from 1. Total 10.
3 Ditto. Total 15
4 Six months after 1 was issued, it expires. Total 10.
4 Warning 5 points issued inside 6 months from
2. Total 15.
5 Warning 5 points issued inside 6 months from
2. Total 20. Restricted for 12 months.
etc.
12 months later; restriction lifted and all warnings have expired. Total 0. Rinse and repeat.
In the interim, if the same user manages to further misbehave (eg by registering a duplicate account) then you can simply fully ban and that's the end of them.
You can, if you care to, add to the deterrent effect here by having an incremental approach to the restriction terms. Like, say, a month "off" at 10 points. And 3 months at 15 points. etc.