From 904d26a66a8f262c7f46015b05b50ec895e026ea Mon Sep 17 00:00:00 2001 From: Tim203 Date: Thu, 27 May 2021 00:56:38 +0200 Subject: [PATCH] Fixed an issue with time sync and added a log message for it --- .../floodgate/player/FloodgateHandshakeHandler.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/org/geysermc/floodgate/player/FloodgateHandshakeHandler.java b/common/src/main/java/org/geysermc/floodgate/player/FloodgateHandshakeHandler.java index 4ba8310a..bf587082 100644 --- a/common/src/main/java/org/geysermc/floodgate/player/FloodgateHandshakeHandler.java +++ b/common/src/main/java/org/geysermc/floodgate/player/FloodgateHandshakeHandler.java @@ -51,9 +51,11 @@ import org.geysermc.floodgate.api.player.PropertyKey; import org.geysermc.floodgate.config.FloodgateConfigHolder; import org.geysermc.floodgate.crypto.FloodgateCipher; import org.geysermc.floodgate.skin.SkinUploadManager; +import org.geysermc.floodgate.time.TimeSyncer; import org.geysermc.floodgate.util.BedrockData; import org.geysermc.floodgate.util.InvalidFormatException; import org.geysermc.floodgate.util.LinkedPlayer; +import org.geysermc.floodgate.util.TimeSyncerHolder; import org.geysermc.floodgate.util.Utils; @RequiredArgsConstructor @@ -108,7 +110,14 @@ public final class FloodgateHandshakeHandler { // timestamp checks - long timeDifference = System.currentTimeMillis() - bedrockData.getTimestamp(); + TimeSyncer timeSyncer = TimeSyncerHolder.get(); + + if (!timeSyncer.hasUsefulOffset()) { + logger.warn("We couldn't make sure that your system clock is accurate. " + + "This can cause issues with logging in."); + } + + long timeDifference = timeSyncer.getRealMillis() - bedrockData.getTimestamp(); if (timeDifference > 6000 || timeDifference < 0) { return callHandlerAndReturnResult( ResultType.TIMESTAMP_DENIED,