Use the Scrim dataclass to carry a scrim's state through it's lifetime and add a state field. Make a dict with channel_id: lock pairs for ensuring no race conditions while managing scrims. Remove scrimcontext completely in favor of normal context (or responseloggercontext for tests).
This is the most important refactor needed for the future of the bot and will enable:
Far cleaner general architecture
Discord.py upgrade to 2.0 (no longer dependent on ctx) (#41)
Eventual async-ization of db code/whole command flow instead of just the discord layer (proper locks for scrim changes)
Edit: massive scope creep, but due to circumstances, #41 should be done on this issue. Acceptance tests should be changed to use accord.py
Use the Scrim dataclass to carry a scrim's state through it's lifetime and add a state field. Make a dict with channel_id: lock pairs for ensuring no race conditions while managing scrims. Remove scrimcontext completely in favor of normal context (or responseloggercontext for tests).
This is the most important refactor needed for the future of the bot and will enable:
Edit: massive scope creep, but due to circumstances, #41 should be done on this issue. Acceptance tests should be changed to use accord.py