From b90a226e2cae16f81223e2e2f6b4db27547e8d92 Mon Sep 17 00:00:00 2001 From: Johannes Christ Date: Fri, 4 Jan 2019 20:11:34 +0100 Subject: Handle member updates in sync cog. --- bot/cogs/sync/cog.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) 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): -- cgit v1.2.3