removed adding multiple roles if missing, adds highest role instead

This commit is contained in:
brandons209 2020-06-24 16:47:25 -04:00
parent f971bb2252
commit 343055c2f4

View file

@ -83,25 +83,18 @@ class UserProfile:
await self._downgrade_level(member) await self._downgrade_level(member)
async def _check_role_member(self, member): async def _check_role_member(self, member):
# only checks and adds the highest level's role obtainable
roles = await self.data.guild(member.guild).roles() roles = await self.data.guild(member.guild).roles()
lvl = await self.data.member(member).level() lvl = await self.data.member(member).level()
to_add = [] to_add = None
for k, v in roles.items(): levels = sorted([int(k) for k in roles.keys()], reverse=True)
if lvl >= int(k): for k in levels:
rl = discord.utils.get(member.guild.roles, id=v) if lvl >= k:
# TODO: remove after purge rl = discord.utils.get(member.guild.roles, id=roles[str(k)])
ids = {r.id for r in member.roles}
if ( if rl not in member.roles:
rl in member.roles to_add = rl
or 508505296797171713 in ids break
or 532720959824592917 in ids
or 508497255838253077 in ids
):
continue
else:
to_add.append(rl)
else:
pass
if to_add: if to_add:
await member.add_roles(rl) await member.add_roles(rl)