diff options
author | 2019-04-21 20:02:00 +1000 | |
---|---|---|
committer | 2019-04-21 20:02:00 +1000 | |
commit | 81e36629da6bd664d35f74f2792bb28d45760acd (patch) | |
tree | 969f7eb4b5dbcd1c8f81858a4866f36961af58a6 | |
parent | Merge pull request #195 from python-discord/egg_hunt (diff) |
Make team assignment deterministic for event distribution.
-rw-r--r-- | bot/seasons/easter/egg_hunt/cog.py | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/bot/seasons/easter/egg_hunt/cog.py b/bot/seasons/easter/egg_hunt/cog.py index 7c6214d2..7d592bba 100644 --- a/bot/seasons/easter/egg_hunt/cog.py +++ b/bot/seasons/easter/egg_hunt/cog.py @@ -44,14 +44,18 @@ async def assign_team(user: discord.Member) -> discord.Member: c.execute(f"SELECT team FROM user_scores WHERE user_id = {user.id}") result = c.fetchone() if not result: - new_team = random.choice([Roles.white, Roles.blurple]) - log.debug(f"Assigned role {new_team} to {user}.") + c.execute( + "SELECT team, COUNT(*) AS count FROM user_scores " + "GROUP BY team ORDER BY count ASC LIMIT 1;" + ) + result = c.fetchone()[0] + + if result[0] == "WHITE": + new_team = Roles.white else: - if result[0] == "WHITE": - new_team = Roles.white - else: - new_team = Roles.blurple - log.debug(f"Restored role {new_team} to {user}.") + new_team = Roles.blurple + + log.debug(f"Assigned role {new_team} to {user}.") await user.add_roles(new_team) return GUILD.get_member(user.id) |