From 1606ba9ceaf26956053773fec1f4cae6a1829f64 Mon Sep 17 00:00:00 2001 From: Saad Nadeem Date: Tue, 30 Jun 2026 18:15:54 -0400 Subject: [PATCH 1/6] chore: cleanup & update deps --- build.gradle.kts | 22 ++++++++++--------- gradle.properties | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- .../mixin/Mixin_ClientClockManager.java | 3 ++- .../polytime/mixin/Mixin_ClientLevelData.java | 3 ++- .../polytime/mixin/Mixin_FixMoonPhases.java | 9 ++++---- .../mixin/Mixin_ModifyCelestialGradient.java | 11 ++++++---- .../polytime/client/PolyTimeConfig.kt | 1 - 8 files changed, 30 insertions(+), 23 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 8e1a947..6a227f1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -18,6 +18,7 @@ val modversion = property("mod.version") as String val mcversion = property("minecraft_version") as String val versionrange = property("minecraft_version_range") val loaderversion = property("loader_version") +val oneconfigVersion = "1.0.0-beta.5" base { archivesName.set("$modid-$modversion+$mcversion") @@ -27,14 +28,15 @@ repositories { maven("https://maven.parchmentmc.org") maven("https://repo.polyfrost.org/releases") maven("https://repo.polyfrost.org/snapshots") + maven("https://central.sonatype.com/repository/maven-snapshots") maven("https://maven.gegy.dev/releases") - maven("https://maven.logix.dev/snapshots") maven("https://nexus.prsm.wtf/repository/maven-public/maven-repo/releases/") maven("https://repo.hypixel.net/repository/Hypixel/") maven("https://maven.deftu.dev/releases") maven("https://maven.fabricmc.net/releases") maven("https://jitpack.io") { content { includeGroupAndSubgroups("com.github") } } maven("https://maven.bawnorton.com/releases") { content { includeGroup("com.github.bawnorton.mixinsquared") } } + maven("https://maven.teamresourceful.com/repository/maven-public/") { content { includeGroupAndSubgroups("me.owdding"); includeGroup("com.terraformersmc") } } maven("https://maven.azureaaron.net/releases") { content { includeGroup("net.azureaaron") } } maven("https://redirector.kotlinlang.org/maven/compose-dev") mavenCentral() @@ -73,15 +75,15 @@ dependencies { } } modImplementation("net.fabricmc:fabric-loader:${property("loader_version")}") - modImplementation("org.polyfrost.oneconfig:${property("minecraft_version")}-fabric:1.0.0-alpha.193") - implementation("org.polyfrost.oneconfig:commands:1.0.0-alpha.193") - implementation("org.polyfrost.oneconfig:config:1.0.0-alpha.193") - implementation("org.polyfrost.oneconfig:config-impl:1.0.0-alpha.193") - implementation("org.polyfrost.oneconfig:events:1.0.0-alpha.193") - implementation("org.polyfrost.oneconfig:internal:1.0.0-alpha.193") - implementation("org.polyfrost.oneconfig:ui:1.0.0-alpha.193") - implementation("org.polyfrost.oneconfig:utils:1.0.0-alpha.193") - implementation("org.polyfrost.oneconfig:hud:1.0.0-alpha.193") + modImplementation("org.polyfrost.oneconfig:${property("minecraft_version")}-fabric:$oneconfigVersion") + implementation("org.polyfrost.oneconfig:commands:$oneconfigVersion") + implementation("org.polyfrost.oneconfig:config:$oneconfigVersion") + implementation("org.polyfrost.oneconfig:config-impl:$oneconfigVersion") + implementation("org.polyfrost.oneconfig:events:$oneconfigVersion") + implementation("org.polyfrost.oneconfig:internal:$oneconfigVersion") + implementation("org.polyfrost.oneconfig:ui:$oneconfigVersion") + implementation("org.polyfrost.oneconfig:utils:$oneconfigVersion") + implementation("org.polyfrost.oneconfig:hud:$oneconfigVersion") bundleOnly("dev.deftu:commons-suncalc:0.1.0")!! } diff --git a/gradle.properties b/gradle.properties index 8b81f11..36c76e3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,7 +5,7 @@ mod.group=org.polyfrost publish.modrinth=m3kNp1iP -loomx.loom_version=1.16-SNAPSHOT +loomx.loom_version=1.17-SNAPSHOT loader_version=0.19.2 org.gradle.daemon=true diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index dbc3ce4..7e7d24f 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/src/main/java/org/polyfrost/polytime/mixin/Mixin_ClientClockManager.java b/src/main/java/org/polyfrost/polytime/mixin/Mixin_ClientClockManager.java index 5766475..a29a8fc 100644 --- a/src/main/java/org/polyfrost/polytime/mixin/Mixin_ClientClockManager.java +++ b/src/main/java/org/polyfrost/polytime/mixin/Mixin_ClientClockManager.java @@ -23,4 +23,5 @@ public class Mixin_ClientClockManager { } } } -*///?} \ No newline at end of file +*///?} else +public class Mixin_ClientClockManager {} diff --git a/src/main/java/org/polyfrost/polytime/mixin/Mixin_ClientLevelData.java b/src/main/java/org/polyfrost/polytime/mixin/Mixin_ClientLevelData.java index 29a5710..9c9ac83 100644 --- a/src/main/java/org/polyfrost/polytime/mixin/Mixin_ClientLevelData.java +++ b/src/main/java/org/polyfrost/polytime/mixin/Mixin_ClientLevelData.java @@ -18,4 +18,5 @@ public class Mixin_ClientLevelData { } } } -*///?} \ No newline at end of file +*///?} else +public class Mixin_ClientLevelData {} diff --git a/src/main/java/org/polyfrost/polytime/mixin/Mixin_FixMoonPhases.java b/src/main/java/org/polyfrost/polytime/mixin/Mixin_FixMoonPhases.java index 0266c67..ec8dc4b 100644 --- a/src/main/java/org/polyfrost/polytime/mixin/Mixin_FixMoonPhases.java +++ b/src/main/java/org/polyfrost/polytime/mixin/Mixin_FixMoonPhases.java @@ -3,9 +3,10 @@ import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.client.renderer.LevelRenderer; -//? if >= 1.21.10 +//? if >= 1.21.10 { import net.minecraft.client.renderer.SkyRenderer; +//?} else +//import net.minecraft.client.renderer.LevelRenderer; import org.polyfrost.polytime.client.PolyTimeConfig; import org.polyfrost.polytime.client.realtime.RealTimeHandler; import org.spongepowered.asm.mixin.Mixin; @@ -17,7 +18,7 @@ /*@Mixin(LevelRenderer.class) *///?} public class Mixin_FixMoonPhases { - @WrapOperation(method = /*? if >= 1.21.10 {*/ "extractRenderState" /*?} else if >= 1.21.4 {*/ /*"method_62215" *//*?} else {*/ /*"renderSky" *//*?}*/ , at = @At(value = "INVOKE", target = "Lnet/minecraft/client/multiplayer/ClientLevel;getMoonPhase()I")) + @WrapOperation(method = /*? if >= 1.21.10 {*/ "extractRenderState" /*?} elif >= 1.21.4 {*/ /*"method_62215" *//*?} else {*/ /*"renderSky" *//*?}*/ , at = @At(value = "INVOKE", target = "Lnet/minecraft/client/multiplayer/ClientLevel;getMoonPhase()I")) private int polyweather$fixMoonPhase(ClientLevel instance, Operation original) { if (PolyTimeConfig.isEnabled() && PolyTimeConfig.isIrlTime()) { // TODO: use irlLunarPhases instead? return RealTimeHandler.getCurrentLunarPhase(); @@ -25,4 +26,4 @@ public class Mixin_FixMoonPhases { return original.call(instance); } -} \ No newline at end of file +} diff --git a/src/main/java/org/polyfrost/polytime/mixin/Mixin_ModifyCelestialGradient.java b/src/main/java/org/polyfrost/polytime/mixin/Mixin_ModifyCelestialGradient.java index a051dbb..b997c70 100644 --- a/src/main/java/org/polyfrost/polytime/mixin/Mixin_ModifyCelestialGradient.java +++ b/src/main/java/org/polyfrost/polytime/mixin/Mixin_ModifyCelestialGradient.java @@ -1,10 +1,12 @@ package org.polyfrost.polytime.mixin; +//? if < 1.21.11 { import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.core.Holder; import net.minecraft.core.RegistryAccess; import net.minecraft.resources.ResourceKey; -import net.minecraft.util.profiling.ProfilerFiller; +//? if 1.21.1 +//import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.level.Level; import net.minecraft.world.level.dimension.DimensionType; import net.minecraft.world.level.storage.WritableLevelData; @@ -13,7 +15,8 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; -import java.util.function.Supplier; +//? if 1.21.1 +//import java.util.function.Supplier; @Mixin(ClientLevel.class) public abstract class Mixin_ModifyCelestialGradient extends Level { @@ -21,7 +24,6 @@ protected Mixin_ModifyCelestialGradient(WritableLevelData levelData, ResourceKey super(levelData, dimension, registryAccess, dimensionTypeRegistration, /*? if 1.21.1 {*/ /*profiler, *//*?}*/ isClientSide, isDebug, biomeZoomSeed, maxChainedNeighborUpdates); } - /*? if <1.21.11 {*/ @Override public float getTimeOfDay(float tickDelta) { if (PolyTimeConfig.isEnabled()) { @@ -38,5 +40,6 @@ public float getTimeOfDay(float tickDelta) { if (f > 1f) f -= 1f; return 1f - (float) ((Math.cos(f * Math.PI) + 1.0) / 2.0); } - /*?}*/ } +//?} else +//public class Mixin_ModifyCelestialGradient {} diff --git a/src/main/kotlin/org/polyfrost/polytime/client/PolyTimeConfig.kt b/src/main/kotlin/org/polyfrost/polytime/client/PolyTimeConfig.kt index 7f0040a..eaec150 100644 --- a/src/main/kotlin/org/polyfrost/polytime/client/PolyTimeConfig.kt +++ b/src/main/kotlin/org/polyfrost/polytime/client/PolyTimeConfig.kt @@ -8,7 +8,6 @@ import org.polyfrost.oneconfig.api.config.v1.annotations.Keybind import org.polyfrost.oneconfig.api.config.v1.annotations.Slider import org.polyfrost.oneconfig.api.config.v1.annotations.Switch import org.polyfrost.oneconfig.api.ui.v1.keybind.KeybindHelper -import org.polyfrost.oneconfig.api.ui.v1.keybind.KeybindManager import org.polyfrost.polytime.PolyTimeConstants object PolyTimeConfig : Config("${PolyTimeConstants.ID}.json", "/assets/polytime/polytime_dark.svg", PolyTimeConstants.NAME, Category.QOL) { From 024a9a70cfc2475e82cdafbf270d918370af8f00 Mon Sep 17 00:00:00 2001 From: Saad Nadeem Date: Tue, 30 Jun 2026 23:00:51 -0400 Subject: [PATCH 2/6] fix: IRL lunar phase toggle and initialization --- .../polytime/mixin/Mixin_FixMoonPhases.java | 2 +- .../polytime/client/PolyTimeConfig.kt | 2 +- .../client/realtime/RealTimeHandler.kt | 83 ++++++++++++------- 3 files changed, 53 insertions(+), 34 deletions(-) diff --git a/src/main/java/org/polyfrost/polytime/mixin/Mixin_FixMoonPhases.java b/src/main/java/org/polyfrost/polytime/mixin/Mixin_FixMoonPhases.java index ec8dc4b..f21ed1e 100644 --- a/src/main/java/org/polyfrost/polytime/mixin/Mixin_FixMoonPhases.java +++ b/src/main/java/org/polyfrost/polytime/mixin/Mixin_FixMoonPhases.java @@ -20,7 +20,7 @@ public class Mixin_FixMoonPhases { @WrapOperation(method = /*? if >= 1.21.10 {*/ "extractRenderState" /*?} elif >= 1.21.4 {*/ /*"method_62215" *//*?} else {*/ /*"renderSky" *//*?}*/ , at = @At(value = "INVOKE", target = "Lnet/minecraft/client/multiplayer/ClientLevel;getMoonPhase()I")) private int polyweather$fixMoonPhase(ClientLevel instance, Operation original) { - if (PolyTimeConfig.isEnabled() && PolyTimeConfig.isIrlTime()) { // TODO: use irlLunarPhases instead? + if (PolyTimeConfig.isEnabled() && PolyTimeConfig.getIrlLunarPhases()) { return RealTimeHandler.getCurrentLunarPhase(); } diff --git a/src/main/kotlin/org/polyfrost/polytime/client/PolyTimeConfig.kt b/src/main/kotlin/org/polyfrost/polytime/client/PolyTimeConfig.kt index eaec150..6fe241b 100644 --- a/src/main/kotlin/org/polyfrost/polytime/client/PolyTimeConfig.kt +++ b/src/main/kotlin/org/polyfrost/polytime/client/PolyTimeConfig.kt @@ -31,7 +31,7 @@ object PolyTimeConfig : Config("${PolyTimeConstants.ID}.json", "/assets/polytime @Checkbox( title = "Use IRL lunar phase", - ) + ) @JvmStatic var irlLunarPhases = false @Slider( diff --git a/src/main/kotlin/org/polyfrost/polytime/client/realtime/RealTimeHandler.kt b/src/main/kotlin/org/polyfrost/polytime/client/realtime/RealTimeHandler.kt index 47e2d5d..67d0d35 100644 --- a/src/main/kotlin/org/polyfrost/polytime/client/realtime/RealTimeHandler.kt +++ b/src/main/kotlin/org/polyfrost/polytime/client/realtime/RealTimeHandler.kt @@ -14,27 +14,43 @@ import java.util.Calendar object RealTimeHandler { private val logger = LogManager.getLogger(RealTimeHandler::class.java) - private var currentlyUpdating = false + private var currentlyUpdatingTime = false + private lateinit var sunData: RealTimeData - private lateinit var data: RealTimeData + private var cachedLunarPhase = 0 + private var lastLunarPhaseUpdate = 0L + private const val LUNAR_PHASE_UPDATE_INTERVAL_MS = 60L * 60L * 1000L @JvmStatic - var currentLunarPhase: Int = 0 - private set + val currentLunarPhase: Int + get() { + val now = System.currentTimeMillis() + + if (now - lastLunarPhaseUpdate >= LUNAR_PHASE_UPDATE_INTERVAL_MS) { + populateCurrentLunarPhase() + lastLunarPhaseUpdate = now + } + + return cachedLunarPhase + } val currentTime: Float get() { - if (currentlyUpdating) { - return 0f + if (currentlyUpdatingTime) { + return 12f + } + + if (!::sunData.isInitialized) { + populateTime() // Hopefully this blocks the thread until the data is initialized } - if (!::data.isInitialized) { - populate() // Hopefully this blocks the thread until the data is initialized + if (!::sunData.isInitialized) { + return 12f } when { - data.isAlwaysUp -> return 6f - data.isAlwaysDown -> return 18f + sunData.isAlwaysUp -> return 6f + sunData.isAlwaysDown -> return 18f else -> { fun Float.calculateMappedTime(periodStart: Float, periodEnd: Float, gameStart: Float, gameEnd: Float): Float { @@ -52,10 +68,10 @@ object RealTimeHandler { val irlTime = irlTime // Caches the value return when { - irlTime.isWithinPeriod(data.sunrise, data.noon) -> irlTime.calculateMappedTime(data.sunrise, data.noon, 5f, 12f) - irlTime.isWithinPeriod(data.noon, data.sunset) -> irlTime.calculateMappedTime(data.noon, data.sunset, 12f, 19f) - irlTime.isWithinPeriod(data.sunset, data.nadir) -> irlTime.calculateMappedTime(data.sunset, data.nadir, 19f, 0f) - else -> irlTime.calculateMappedTime(data.nadir, data.sunrise, 0f, 5f) + irlTime.isWithinPeriod(sunData.sunrise, sunData.noon) -> irlTime.calculateMappedTime(sunData.sunrise, sunData.noon, 5f, 12f) + irlTime.isWithinPeriod(sunData.noon, sunData.sunset) -> irlTime.calculateMappedTime(sunData.noon, sunData.sunset, 12f, 19f) + irlTime.isWithinPeriod(sunData.sunset, sunData.nadir) -> irlTime.calculateMappedTime(sunData.sunset, sunData.nadir, 19f, 0f) + else -> irlTime.calculateMappedTime(sunData.nadir, sunData.sunrise, 0f, 5f) } } } @@ -66,32 +82,37 @@ object RealTimeHandler { return } - populate() + populateTime() } - private fun populate() { - if (currentlyUpdating) { + private fun populateTime() { + if (currentlyUpdatingTime) { return } - currentlyUpdating = true + currentlyUpdatingTime = true - val (longitude, latitude) = obtainLongitudeLatitude() ?: return - val times = SunTimes.compute() - .at(latitude, longitude) - .today() - .oneDay() - .timezone(Calendar.getInstance().timeZone) - .execute() - data = RealTimeData.from(times) ?: return logger.error("Failed to obtain real-time data") - logger.info("Obtained real-time data: $data") + try { + val (longitude, latitude) = obtainLongitudeLatitude() ?: return + val times = SunTimes.compute() + .at(latitude, longitude) + .today() + .oneDay() + .timezone(Calendar.getInstance().timeZone) + .execute() + sunData = RealTimeData.from(times) ?: return logger.error("Failed to obtain real-time data") + logger.info("Obtained real-time data: $sunData") + } finally { + currentlyUpdatingTime = false + } + } + private fun populateCurrentLunarPhase() { val illumination = MoonIllumination.compute() - .at(latitude, longitude) .today() .timezone(Calendar.getInstance().timeZone) .execute() - currentLunarPhase = when (illumination.closestPhase) { + cachedLunarPhase = when (illumination.closestPhase) { MoonPhase.Phase.FULL_MOON -> 0 MoonPhase.Phase.WANING_GIBBOUS -> 1 MoonPhase.Phase.LAST_QUARTER -> 2 @@ -103,9 +124,7 @@ object RealTimeHandler { else -> 0 } - logger.info("Obtained lunar phase: $currentLunarPhase") - - currentlyUpdating = false + logger.info("Obtained lunar phase: $cachedLunarPhase") } private fun obtainLongitudeLatitude(): Pair? { From cc985795a0a0e8c7da7477ec89c488960dc6739b Mon Sep 17 00:00:00 2001 From: Saad Nadeem Date: Wed, 1 Jul 2026 06:45:22 -0400 Subject: [PATCH 3/6] fix: >=1.21.11 lunar phase --- .../polytime/mixin/Mixin_FixMoonPhases.java | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/polyfrost/polytime/mixin/Mixin_FixMoonPhases.java b/src/main/java/org/polyfrost/polytime/mixin/Mixin_FixMoonPhases.java index f21ed1e..9189865 100644 --- a/src/main/java/org/polyfrost/polytime/mixin/Mixin_FixMoonPhases.java +++ b/src/main/java/org/polyfrost/polytime/mixin/Mixin_FixMoonPhases.java @@ -1,7 +1,18 @@ package org.polyfrost.polytime.mixin; +//? if >= 1.21.11 { +/*import org.spongepowered.asm.mixin.injection.Inject; +*///?} else { import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; +//?} +//? if >= 1.21.11 { +/*import net.minecraft.client.Camera; +//~ if >= 26.1 'state.SkyRenderState' -> 'state.level.SkyRenderState' +import net.minecraft.client.renderer.state.SkyRenderState; +import net.minecraft.world.level.MoonPhase; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +*///?} import net.minecraft.client.multiplayer.ClientLevel; //? if >= 1.21.10 { import net.minecraft.client.renderer.SkyRenderer; @@ -18,7 +29,15 @@ /*@Mixin(LevelRenderer.class) *///?} public class Mixin_FixMoonPhases { - @WrapOperation(method = /*? if >= 1.21.10 {*/ "extractRenderState" /*?} elif >= 1.21.4 {*/ /*"method_62215" *//*?} else {*/ /*"renderSky" *//*?}*/ , at = @At(value = "INVOKE", target = "Lnet/minecraft/client/multiplayer/ClientLevel;getMoonPhase()I")) + //? if >= 1.21.11 { + /*@Inject(method = "extractRenderState", at = @At("TAIL")) + private void polytime$fixMoonPhase(ClientLevel level, float partialTicks, Camera camera, SkyRenderState state, CallbackInfo ci) { + if (PolyTimeConfig.isEnabled() && PolyTimeConfig.getIrlLunarPhases()) { + state.moonPhase = MoonPhase.values()[RealTimeHandler.getCurrentLunarPhase()]; + } + } + *///?} elif >= 1.21 { + @WrapOperation(method = /*? if 1.21.10 {*/ "extractRenderState" /*?} elif >= 1.21.4 {*/ /*"method_62215" *//*?} else {*/ /*"renderSky" *//*?}*/ , at = @At(value = "INVOKE", target = "Lnet/minecraft/client/multiplayer/ClientLevel;getMoonPhase()I")) private int polyweather$fixMoonPhase(ClientLevel instance, Operation original) { if (PolyTimeConfig.isEnabled() && PolyTimeConfig.getIrlLunarPhases()) { return RealTimeHandler.getCurrentLunarPhase(); @@ -26,4 +45,5 @@ public class Mixin_FixMoonPhases { return original.call(instance); } + //?} } From e5879a74bb60ef8b5be2ebdeffa7b37bb2147ac0 Mon Sep 17 00:00:00 2001 From: Saad Nadeem Date: Wed, 1 Jul 2026 07:04:33 -0400 Subject: [PATCH 4/6] fix: preserve day count when overriding time --- .../mixin/Mixin_ClientClockManager.java | 5 +++-- .../polytime/mixin/Mixin_ClientLevelData.java | 5 +++-- .../polytime/mixin/Mixin_DimensionType.java | 21 ------------------- 3 files changed, 6 insertions(+), 25 deletions(-) delete mode 100644 src/main/java/org/polyfrost/polytime/mixin/Mixin_DimensionType.java diff --git a/src/main/java/org/polyfrost/polytime/mixin/Mixin_ClientClockManager.java b/src/main/java/org/polyfrost/polytime/mixin/Mixin_ClientClockManager.java index a29a8fc..ef62e9c 100644 --- a/src/main/java/org/polyfrost/polytime/mixin/Mixin_ClientClockManager.java +++ b/src/main/java/org/polyfrost/polytime/mixin/Mixin_ClientClockManager.java @@ -16,10 +16,11 @@ @Mixin(ClientClockManager.class) public class Mixin_ClientClockManager { - @Inject(method = "getTotalTicks", at = @At("HEAD"), cancellable = true) + @Inject(method = "getTotalTicks", at = @At("RETURN"), cancellable = true) private void polytime$overrideTicks(Holder definition, CallbackInfoReturnable cir) { if (PolyTimeConfig.isEnabled()) { - cir.setReturnValue(PolyTimeClient.getCurrentTime()); + long originalTicks = cir.getReturnValue(); + cir.setReturnValue(originalTicks - Math.floorMod(originalTicks, 24000L) + PolyTimeClient.getCurrentTime()); } } } diff --git a/src/main/java/org/polyfrost/polytime/mixin/Mixin_ClientLevelData.java b/src/main/java/org/polyfrost/polytime/mixin/Mixin_ClientLevelData.java index 9c9ac83..6859990 100644 --- a/src/main/java/org/polyfrost/polytime/mixin/Mixin_ClientLevelData.java +++ b/src/main/java/org/polyfrost/polytime/mixin/Mixin_ClientLevelData.java @@ -11,10 +11,11 @@ @Mixin(ClientLevel.ClientLevelData.class) public class Mixin_ClientLevelData { - @Inject(method = "getDayTime", at = @At("HEAD"), cancellable = true) + @Inject(method = "getDayTime", at = @At("RETURN"), cancellable = true) private void polytime$overrideDayTime(CallbackInfoReturnable cir) { if (PolyTimeConfig.isEnabled()) { - cir.setReturnValue(PolyTimeClient.getCurrentTime()); + long originalDayTime = cir.getReturnValue(); + cir.setReturnValue(originalDayTime - Math.floorMod(originalDayTime, 24000L) + PolyTimeClient.getCurrentTime()); } } } diff --git a/src/main/java/org/polyfrost/polytime/mixin/Mixin_DimensionType.java b/src/main/java/org/polyfrost/polytime/mixin/Mixin_DimensionType.java deleted file mode 100644 index 634820f..0000000 --- a/src/main/java/org/polyfrost/polytime/mixin/Mixin_DimensionType.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.polyfrost.polytime.mixin; - -//? if 1.21.11 { -/*import net.minecraft.world.level.dimension.DimensionType; -import org.polyfrost.polytime.client.PolyTimeClient; -import org.polyfrost.polytime.client.PolyTimeConfig; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.ModifyVariable; - -@Mixin(DimensionType.class) -public class Mixin_DimensionType { - @ModifyVariable(method = "timeOfDay(J)F", at = @At("HEAD"), argsOnly = true) - private long polytime$overrideTimeOfDay(long dayTime) { - if (PolyTimeConfig.isEnabled()) { - return PolyTimeClient.getCurrentTime(); - } - return dayTime; - } -} -*///?} From 0611bfcea584655973b115bc0b14c716726479c3 Mon Sep 17 00:00:00 2001 From: Saad Nadeem Date: Wed, 1 Jul 2026 08:01:34 -0400 Subject: [PATCH 5/6] feat: port to 26.2 --- settings.gradle.kts | 2 +- versions/26.2/gradle.properties | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 versions/26.2/gradle.properties diff --git a/settings.gradle.kts b/settings.gradle.kts index d5cbbe4..933a347 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -22,7 +22,7 @@ plugins { stonecutter { create(rootProject) { - versions("1.21.1", "1.21.4", "1.21.5", "1.21.8", "1.21.10", "1.21.11", "26.1") + versions("1.21.1", "1.21.4", "1.21.5", "1.21.8", "1.21.10", "1.21.11", "26.1", "26.2") vcsVersion = "1.21.10" } diff --git a/versions/26.2/gradle.properties b/versions/26.2/gradle.properties new file mode 100644 index 0000000..67d11a0 --- /dev/null +++ b/versions/26.2/gradle.properties @@ -0,0 +1,5 @@ +yalmm_version=3 +minecraft_version=26.2 +has_official_mappings=false +java_version=25 +minecraft_version_range=~26.2 From c478382ef12086ba8a78550cee9f5dcbd7a515d9 Mon Sep 17 00:00:00 2001 From: Saad Nadeem Date: Wed, 1 Jul 2026 08:09:20 -0400 Subject: [PATCH 6/6] chore: bump version to 1.1.1-beta.2 --- CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c399503..3231fb6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,2 +1,6 @@ +## 1.1.1-beta.2 +- Added support for 26.2 +- Fixed IRL lunar phases not working + ## 1.1.1-beta.1 -- Full support for 1.21.1-26.1.2 \ No newline at end of file +- Full support for 1.21.1-26.1.2