diff --git a/redbot/core/bot.py b/redbot/core/bot.py index bad45367e..fdbc4d85e 100644 --- a/redbot/core/bot.py +++ b/redbot/core/bot.py @@ -106,6 +106,7 @@ class RedBase(BotBase, RPCMixin): self.counter = Counter() self.uptime = None + self.checked_time_accuracy = None self.color = discord.Embed.Empty # This is needed or color ends up 0x000000 self.main_dir = bot_dir diff --git a/redbot/core/events.py b/redbot/core/events.py index 84d350b68..1c9b0aa7b 100644 --- a/redbot/core/events.py +++ b/redbot/core/events.py @@ -256,6 +256,20 @@ def init_events(bot, cli_flags): async def on_message(message): bot.counter["messages_read"] += 1 await bot.process_commands(message) + discord_now = message.created_at + if ( + not bot.checked_time_accuracy + or (discord_now - timedelta(minutes=60)) > bot.checked_time_accuracy + ): + system_now = datetime.datetime.utcnow() + diff = abs((discord_now - system_now).total_seconds) + if diff > 60: + log.warn( + "Detected significant difference (%d seconds) in system clock to discord's clock." + " Any time sensitive code may fail.", + diff, + ) + bot.checked_time_accuracy = discord_now @bot.event async def on_resumed():