From b47d51c012675243911657e8e1a3e561074b8464 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Kosman?= Date: Sat, 24 Aug 2024 18:25:07 +0200 Subject: fix: seconds instead of milliseconds but really this time, and also btw recycling the timer task because it's better for the planet --- src/main/java/world/anhgelus/molehunt/Game.java | 26 +++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) (limited to 'src/main/java/world') diff --git a/src/main/java/world/anhgelus/molehunt/Game.java b/src/main/java/world/anhgelus/molehunt/Game.java index 9919703..7670805 100644 --- a/src/main/java/world/anhgelus/molehunt/Game.java +++ b/src/main/java/world/anhgelus/molehunt/Game.java @@ -21,7 +21,17 @@ public class Game { public final int defaultTime = Molehunt.CONFIG.getGameDuration()*60; private int remaining = defaultTime; - private Timer borderTimeOffsetTime = new Timer(); + private Timer borderTimeOffsetTimer = new Timer(); + private final TimerTask borderTimeOffsetTask = new TimerTask() { + @Override + public void run() { + final var worldBorder = server.getOverworld().getWorldBorder(); + worldBorder.interpolateSize( + Molehunt.CONFIG.getInitialWorldSize(), + Molehunt.CONFIG.getFinalWorldSize(), + (long) (Molehunt.CONFIG.getGameDuration() - Molehunt.CONFIG.getBorderShrinkingStartingTimeOffset()) * 60); + } + }; private final MinecraftServer server; @@ -62,15 +72,7 @@ public class Game { final var worldBorder = server.getOverworld().getWorldBorder(); worldBorder.setSize(Molehunt.CONFIG.getInitialWorldSize()); if (Molehunt.CONFIG.getBorderShrinkingStartingTimeOffset() < Molehunt.CONFIG.getGameDuration()) { - borderTimeOffsetTime.schedule(new TimerTask() { - @Override - public void run() { - worldBorder.interpolateSize( - Molehunt.CONFIG.getInitialWorldSize(), - Molehunt.CONFIG.getFinalWorldSize(), - (long) (Molehunt.CONFIG.getGameDuration() - Molehunt.CONFIG.getBorderShrinkingStartingTimeOffset()) * 60 * 60); - } - }, (long) Molehunt.CONFIG.getBorderShrinkingStartingTimeOffset() * 60); + borderTimeOffsetTimer.schedule(borderTimeOffsetTask, (long) Molehunt.CONFIG.getBorderShrinkingStartingTimeOffset() * 60 * 1000); } final var title = new TitleS2CPacket(Text.translatable("molehunt.game.start.suspense")); @@ -133,8 +135,8 @@ public class Game { timer.cancel(); timer = new Timer(); - borderTimeOffsetTime.cancel(); - borderTimeOffsetTime = new Timer(); + borderTimeOffsetTimer.cancel(); + borderTimeOffsetTimer = new Timer(); final var worldBorder = server.getOverworld().getWorldBorder(); // Stops the border shrinking. -- cgit v1.2.3