From e79d68429781f9b1853efa04666efffe4da3937a Mon Sep 17 00:00:00 2001 From: PureLove Date: Sat, 24 Jan 2026 03:13:10 -0500 Subject: [PATCH] Fix day counter reset and update for Paper 1.21.11 - Adjusted time handling so the Minecraft day counter no longer resets to 0 - Updated gamerule usage to match the current Paper-preferred API - Updated to Paper API 1.21.11 - Updated ShadowJar to the latest version - Added contributor attribution --- build.gradle | 6 ++-- .../customDaytime/Tasks/TimeTickTask.java | 29 ++++++++++++++----- .../customDaytime/Utils/TimeUtils.java | 4 +-- src/main/resources/paper-plugin.yml | 6 ++-- 4 files changed, 30 insertions(+), 15 deletions(-) diff --git a/build.gradle b/build.gradle index 15d3ca2..980ef86 100644 --- a/build.gradle +++ b/build.gradle @@ -1,11 +1,11 @@ plugins { id 'java' - id 'com.gradleup.shadow' version '8.3.0' + id 'com.gradleup.shadow' version '9.3.1' id("xyz.jpenilla.run-paper") version "2.3.1" } group = 'xyz.mayahive' -version = '1.1.2' +version = '1.1.3' repositories { mavenCentral() @@ -16,7 +16,7 @@ repositories { } dependencies { - compileOnly("io.papermc.paper:paper-api:1.21.8-R0.1-SNAPSHOT") + compileOnly("io.papermc.paper:paper-api:1.21.11-R0.1-SNAPSHOT") implementation 'org.bstats:bstats-bukkit:3.1.0' } diff --git a/src/main/java/xyz/mayahive/customDaytime/Tasks/TimeTickTask.java b/src/main/java/xyz/mayahive/customDaytime/Tasks/TimeTickTask.java index 18ce009..4f4103f 100644 --- a/src/main/java/xyz/mayahive/customDaytime/Tasks/TimeTickTask.java +++ b/src/main/java/xyz/mayahive/customDaytime/Tasks/TimeTickTask.java @@ -1,7 +1,6 @@ package xyz.mayahive.customDaytime.Tasks; -import org.bukkit.Bukkit; -import org.bukkit.GameRule; +import org.bukkit.GameRules; import xyz.mayahive.customDaytime.CustomDaytime; import xyz.mayahive.customDaytime.Utils.TimeUtils; import org.bukkit.World; @@ -13,6 +12,7 @@ public class TimeTickTask implements Runnable { private double carry = 0.0; private long customTime = 0; private boolean initialized = false; + private long baseDay = -1; @Override public void run() { @@ -22,15 +22,19 @@ public void run() { if (world == null) return; // If world isn't loaded, return // Only proceed if daylight cycle is enabled - Boolean daylightCycle = world.getGameRuleValue(GameRule.DO_DAYLIGHT_CYCLE); - boolean cycleOn = daylightCycle != null && daylightCycle; + boolean cycleOn = Boolean.TRUE.equals( + world.getGameRuleValue(GameRules.ADVANCE_TIME) + ); + if (!initialized) { - // Initialize to current world time - customTime = world.getFullTime() % TICKS_PER_DAY; + long full = world.getFullTime(); + baseDay = (full / TICKS_PER_DAY) * TICKS_PER_DAY; + customTime = full % TICKS_PER_DAY; initialized = true; } + long currentWorldTime = world.getFullTime() % TICKS_PER_DAY; // Detect manual changes and sync time @@ -55,9 +59,18 @@ public void run() { if (carry >= 1.0) { long ticksToAdd = (long) carry; carry -= ticksToAdd; - customTime = (customTime + ticksToAdd) % TICKS_PER_DAY; + + long newTime = customTime + ticksToAdd; + if (newTime >= TICKS_PER_DAY) { + baseDay += TICKS_PER_DAY; + newTime %= TICKS_PER_DAY; + } + + customTime = newTime; } + } - world.setFullTime(customTime); + world.setFullTime(baseDay + customTime); + } } diff --git a/src/main/java/xyz/mayahive/customDaytime/Utils/TimeUtils.java b/src/main/java/xyz/mayahive/customDaytime/Utils/TimeUtils.java index 10a06e1..eabc7ff 100644 --- a/src/main/java/xyz/mayahive/customDaytime/Utils/TimeUtils.java +++ b/src/main/java/xyz/mayahive/customDaytime/Utils/TimeUtils.java @@ -1,9 +1,9 @@ package xyz.mayahive.customDaytime.Utils; +import org.bukkit.GameRules; import xyz.mayahive.customDaytime.CustomDaytime; import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; -import org.bukkit.GameRule; import org.bukkit.World; import org.bukkit.entity.Player; @@ -47,7 +47,7 @@ public static boolean isEnoughPlayersSleeping(World world) { if (!CustomDaytime.getInstance().getConfig().getBoolean("enableNightFastForward", true)) {return false;} // Get player sleeping percentage game rule value - Integer ruleValue = world.getGameRuleValue(GameRule.PLAYERS_SLEEPING_PERCENTAGE); + Integer ruleValue = world.getGameRuleValue(GameRules.PLAYERS_SLEEPING_PERCENTAGE); if (ruleValue == null) ruleValue = 100; // fallback double percentage = ruleValue / 100.0; diff --git a/src/main/resources/paper-plugin.yml b/src/main/resources/paper-plugin.yml index 897a3a7..f250219 100644 --- a/src/main/resources/paper-plugin.yml +++ b/src/main/resources/paper-plugin.yml @@ -1,8 +1,10 @@ name: CustomDaytime -version: '1.1.2' +version: '1.1.3' main: xyz.mayahive.customDaytime.CustomDaytime api-version: '1.21' authors: - Seedim +contributors: + - PureLove description: Customise Minecraft's day-night-cycle -folia-supported: true +folia-supported: true \ No newline at end of file