From 1db27a811fd95e66e3e6c1f671c49a5be6ebad3d Mon Sep 17 00:00:00 2001 From: Luna Mendes Date: Fri, 2 Nov 2018 19:20:39 -0300 Subject: [PATCH] litecord.storage: proper fix for missing guild everyone role --- litecord/storage.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/litecord/storage.py b/litecord/storage.py index 61792da..2de2b99 100644 --- a/litecord/storage.py +++ b/litecord/storage.py @@ -170,6 +170,19 @@ class Storage: WHERE guild_id = $1 AND user_id = $2 """, guild_id, member_id) + roles = [r['role_id'] for r in roles] + + try: + roles.remove(str(guild_id)) + except ValueError: + # if the @everyone role isn't in, we add it + # to member_roles automatically (it won't + # be shown on the API, though). + await self.db.execute(""" + INSERT INTO member_roles (user_id, guild_id, role_id) + VALUES ($1, $2, $3) + """, member_id, guild_id, guild_id) + return { 'user': await self.get_user(member_id), 'nick': row['nickname'], @@ -177,7 +190,7 @@ class Storage: # we don't send the @everyone role's id to # the user since it is known that everyone has # that role. - 'roles': [r['role_id'] for r in roles], + 'roles': roles, 'joined_at': row['joined_at'].isoformat(), 'deaf': row['deafened'], 'mute': row['muted'],