David Macek 3d21c7cbcb Services: Keep per-network state separate
Until now, only `waitingJoins` was stored separately per network, while
`channels`, `sentGhost` and `identified` had one common value per plugin
instance.  Instead of making everything a dictionary indexed by network
name like `waitingJoins`, let's bundle all the state together in a class
and store *its* instances in such a dictionary.

This fixes at least one race condition, for which a test case was added.
Even with `noJoinsUntilIdentified` set, the bot would let joins through
as long as *any* one network has already finished identifying.
2021-04-27 19:52:58 +02:00
..
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00
2021-04-22 00:29:15 +02:00