aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Johannes Christ <[email protected]>2019-01-04 20:11:34 +0100
committerGravatar Johannes Christ <[email protected]>2019-01-04 20:11:34 +0100
commitb90a226e2cae16f81223e2e2f6b4db27547e8d92 (patch)
treed4bc6ca960970e11697bb885fd369d3188286feb
parentMove diff logging to cog, add manual sync commands. (diff)
Handle member updates in sync cog.
-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):