aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bot/cogs/sync/cog.py21
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):