diff options
| author | 2019-04-21 20:02:00 +1000 | |
|---|---|---|
| committer | 2019-04-21 20:02:00 +1000 | |
| commit | 81e36629da6bd664d35f74f2792bb28d45760acd (patch) | |
| tree | 969f7eb4b5dbcd1c8f81858a4866f36961af58a6 /bot/seasons/easter/egg_hunt/cog.py | |
| parent | Merge pull request #195 from python-discord/egg_hunt (diff) | |
Make team assignment deterministic for event distribution.
Diffstat (limited to 'bot/seasons/easter/egg_hunt/cog.py')
| -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)  |