From 972834152997ee8e9e08d53a4b84f8d9bf85ac06 Mon Sep 17 00:00:00 2001 From: yoyosource Date: Sun, 2 Oct 2022 14:21:31 +0200 Subject: [PATCH] Fix ETA message Signed-off-by: yoyosource --- .../features/slaves/laufbau/states/LaufbauState.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/states/LaufbauState.java b/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/states/LaufbauState.java index e65bff6b..346332fe 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/states/LaufbauState.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/states/LaufbauState.java @@ -22,9 +22,8 @@ package de.steamwar.bausystem.features.slaves.laufbau.states; import de.steamwar.bausystem.BauSystem; import org.bukkit.entity.Player; -import java.text.SimpleDateFormat; -import java.time.Instant; -import java.util.Date; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; public interface LaufbauState { @@ -35,7 +34,8 @@ public interface LaufbauState { void next(); default String eta(Player p, long start, int done, int total) { - if (done == 0) return ""; - return new SimpleDateFormat(BauSystem.MESSAGE.parse("TIME", p)).format(Date.from(Instant.ofEpochMilli((System.currentTimeMillis() - start) / done * total))); + if (total == 0) return ""; + long elapsed = System.currentTimeMillis() - start; + return LocalTime.ofNanoOfDay((long) (elapsed / (done / (double) total) - elapsed) * 1000000).format(DateTimeFormatter.ofPattern(BauSystem.MESSAGE.parse("TIME", p))); } }