Add banlist integration


Since the banlist will now support paging, I'll now be implementing banlist features. This will be implemented before MapCollection changes because the changes coming to the RCON protocol are backwards-compatible.


Timiz0r wrote Jan 27, 2012 at 3:08 PM

In order to not have to parse every ban before doing something with them, the IEnumerator of BanCollection will only go for the next packet if necessary. However, I'm not sure what to do if a request times out because some requests before it may not time out. I can either have it just stop and only work with the existing banlist or throw an exception.

If I don't throw an exception, the user will be unaware of whether or not the entire banlist has been parsed. If I do throw an exception, it would be inconvenient if the user has a poor connection to the server and could inhibit the user's ability to work with the banlist. Either way, timeouts are generally rare unless the server goes down.

For now, I'm going to not throw an exception, but I'm open to opinion, except for having it togglable.

On another note, BanCollection won't be implementing IList<Ban> this time. Many of those operations require time-expensive enumeration over thousands of entries. Instead, only IEnumerable<Ban> will be implemented. In the future, if a feature request I made goes through (probably won't), I'll have it implement ICollection<Ban>.

Timiz0r wrote Jan 27, 2012 at 11:03 PM

As of changeset 10303, banlist integration has been implemented. More work will still be done on making banning/unbanning more accessible, and the banning methods for Players will be updated.

Timiz0r wrote Jan 29, 2012 at 9:08 PM

This is now fully implemented. I'll keep the issue up for a little bit just in case there are bugs.

wrote Feb 13, 2013 at 5:23 PM

wrote May 15, 2013 at 4:09 AM

wrote May 15, 2013 at 4:09 AM

wrote Jun 12, 2013 at 1:02 AM