The old method of doing this was:
1. Extremely inconsistently used. Some list modes used <banlist>
and some used their own config tag.
2. Not documented in the slightest. There was a small reference to
<maxbans> for the ban mode but nothing else.
3. In some cases conflicting with other config tags. The chanfilter
module defined a <chanfilter> tag for general config whilst also
using it for the max list settings.
The new <maxlist> tag avoids these issues entirely.
64 is a rather restrictive limit especially considering how fast
channels can accumulate bans. In fact, #InspIRCd hit the ban limit
in just over a year.
Having a low limit might have made sense when memory was expensive
but the average IRC server should be able to handle this fine now.
The function does not need to be virtual because the core can remove any user mode using the default logic
The optional modestack parameter was always NULL, so remove it
- Add constructors to ListItem, ListLimit
- Rename fields in ListItem
- Store time as time_t instead of string
- Store limits in a vector instead of a list
- Don't deallocate the list when it becomes empty