diff options
| -rw-r--r-- | bot/cogs/sync/cog.py | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/bot/cogs/sync/cog.py b/bot/cogs/sync/cog.py index 70acfaab9..1390eb273 100644 --- a/bot/cogs/sync/cog.py +++ b/bot/cogs/sync/cog.py @@ -1,7 +1,7 @@ import logging from typing import Callable, Iterable -from discord import Guild +from discord import Guild, Member from discord.ext import commands from discord.ext.commands import Bot @@ -39,6 +39,25 @@ class Sync: syncer_name, total_created, total_updated ) + async def on_member_update(self, before: Member, after: Member): + if ( + before.name != after.name + or before.avatar != after.avatar + or before.discriminator != after.discriminator + or before.roles != after.roles + ): + await self.bot.api_client.put( + 'bot/users/' + str(after.id), + json={ + 'avatar_hash': after.avatar, + 'discriminator': int(after.discriminator), + 'id': after.id, + 'in_guild': True, + 'name': after.name, + 'roles': sorted(role.id for role in after.roles) + } + ) + @commands.group(name='sync') @commands.has_permissions(administrator=True) async def sync_group(self, ctx): |