ModernUO/Projects/Server/Network/NetState
Kamron Batman f3b7c7451c
refactor(bans): drop BanChannel.Configure, which only re-ran a swept Configure
BanConfiguration.Configure() is a static Configure() on a static class, so the
AssemblyHandler sweep already reaches it. BanChannel.Configure() did nothing but
call it -- and was itself swept AND called explicitly from NetState.Configure(),
so the same load was reached three ways.

Nothing reads BanConfiguration.Settings during the Configure phase (only the
accept path does, long after the sweep), so there was no ordering guarantee to
preserve here. Removed the method and the explicit call.

The equivalent-looking calls in BlocklistFilter.Configure() and
CrowdSecReporter.Configure() are NOT the same thing and stay: those are instance
methods the sweep never sees, invoked from Register(), and each reads its
settings immediately -- so calling their configuration loader first is a real
ordering guarantee, made free by the same idempotency guard.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-25 02:04:56 -07:00
..
DumpNetStates.cs fix: Bumps deps. Updates copyrights (#2353) 2026-03-05 19:36:54 -08:00
NetState.ClientVersion.cs fix: Bumps deps. Updates copyrights (#2353) 2026-03-05 19:36:54 -08:00
NetState.cs refactor(bans): drop BanChannel.Configure, which only re-ran a swept Configure 2026-07-25 02:04:56 -07:00
NetState.Movement.cs feat: Adds robust speed hack detection and movement throttling (#2266) 2026-03-07 11:44:37 -08:00
NetState.Network.cs refactor(network): pluggable accept-path filters; move the blocklist to UOContent 2026-07-25 00:55:42 -07:00
ProtocolChanges.cs fix: Bumps deps. Updates copyrights (#2353) 2026-03-05 19:36:54 -08:00