From 6a9a216116942de3e60e0419529c9ef6e4775a3b Mon Sep 17 00:00:00 2001 From: lokspel <208148594+lokspel@users.noreply.github.com> Date: Sat, 5 Sep 2026 21:28:22 +0400 Subject: [PATCH] fix(dialog): respect loginTimeout/registerTimeout=0 as disabled --- .../authme/listener/PaperDialogFlowListener.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/authme-paper-common/src/main/java/fr/xephi/authme/listener/PaperDialogFlowListener.java b/authme-paper-common/src/main/java/fr/xephi/authme/listener/PaperDialogFlowListener.java index e39fda0ea..7836f2572 100644 --- a/authme-paper-common/src/main/java/fr/xephi/authme/listener/PaperDialogFlowListener.java +++ b/authme-paper-common/src/main/java/fr/xephi/authme/listener/PaperDialogFlowListener.java @@ -214,9 +214,11 @@ private void retireSession(PlayerConfigurationConnection connection) { private void handleBlockingLoginDialog(PlayerConfigurationConnection connection, long sessionId, String playerName) { CompletableFuture loginResponse = new CompletableFuture<>(); - long timeoutSeconds = Math.max(commonService.getProperty(RestrictionSettings.LOGIN_TIMEOUT), 1); - loginResponse.completeOnTimeout( - messages.retrieveSingle(playerName, MessageKey.LOGIN_TIMEOUT_ERROR), timeoutSeconds, TimeUnit.SECONDS); + long timeoutSeconds = commonService.getProperty(RestrictionSettings.LOGIN_TIMEOUT); + if (timeoutSeconds > 0) { + loginResponse.completeOnTimeout( + messages.retrieveSingle(playerName, MessageKey.LOGIN_TIMEOUT_ERROR), timeoutSeconds, TimeUnit.SECONDS); + } String normalizedName = playerName.toLowerCase(Locale.ROOT); pendingLoginResponses.put(sessionId, loginResponse); preJoinDialogService.registerPreJoinFuture(sessionId, loginResponse); @@ -284,9 +286,11 @@ private void processPreJoinRecoverySubmit(long sessionId, DialogResponseView dia private void handleBlockingRegisterDialog(PlayerConfigurationConnection connection, long sessionId, String playerName, Dialog dialog) { CompletableFuture registerResponse = new CompletableFuture<>(); - long timeoutSeconds = Math.max(commonService.getProperty(RestrictionSettings.REGISTER_TIMEOUT), 1); - registerResponse.completeOnTimeout( - messages.retrieveSingle(playerName, MessageKey.LOGIN_TIMEOUT_ERROR), timeoutSeconds, TimeUnit.SECONDS); + long timeoutSeconds = commonService.getProperty(RestrictionSettings.REGISTER_TIMEOUT); + if (timeoutSeconds > 0) { + registerResponse.completeOnTimeout( + messages.retrieveSingle(playerName, MessageKey.LOGIN_TIMEOUT_ERROR), timeoutSeconds, TimeUnit.SECONDS); + } pendingRegisterResponses.put(sessionId, registerResponse); connection.getAudience().showDialog(dialog);