Skip to content

Commit cc3d13f

Browse files
committed
feat: 1.20.4
1 parent bb1b32a commit cc3d13f

File tree

4 files changed

+22
-30
lines changed

4 files changed

+22
-30
lines changed

gradle.properties

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ org.gradle.jvmargs=-Xmx1G
33

44
# Fabric Properties
55
# check these on https://modmuss50.me/fabric.html
6-
minecraft_version=1.20.1
7-
yarn_mappings=23w32a+build.6
8-
loader_version=0.14.21
6+
minecraft_version=1.20.4
7+
yarn_mappings=1.20.4+build.3
8+
loader_version=0.15.6
99

1010
# Mod Properties
1111
mod_version = 1.0.3

src/main/java/dev/hugeblank/asahi/client/TimeSmoother.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
import net.minecraft.network.packet.s2c.play.WorldTimeUpdateS2CPacket;
44

55
public interface TimeSmoother {
6-
void updateTimes(WorldTimeUpdateS2CPacket packet);
6+
void asahi$updateTimes(WorldTimeUpdateS2CPacket packet);
77
}
Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,33 @@
11
package dev.hugeblank.asahi.client.mixin;
22

33
import dev.hugeblank.asahi.client.TimeSmoother;
4+
import net.minecraft.client.MinecraftClient;
5+
import net.minecraft.client.network.ClientCommonNetworkHandler;
6+
import net.minecraft.client.network.ClientConnectionState;
47
import net.minecraft.client.network.ClientPlayNetworkHandler;
5-
import net.minecraft.client.util.telemetry.WorldSession;
68
import net.minecraft.client.world.ClientWorld;
9+
import net.minecraft.network.ClientConnection;
710
import net.minecraft.network.packet.s2c.play.WorldTimeUpdateS2CPacket;
8-
import org.spongepowered.asm.mixin.Final;
911
import org.spongepowered.asm.mixin.Mixin;
1012
import org.spongepowered.asm.mixin.Shadow;
1113
import org.spongepowered.asm.mixin.injection.At;
1214
import org.spongepowered.asm.mixin.injection.Inject;
1315
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
1416

1517
@Mixin(ClientPlayNetworkHandler.class)
16-
public class ClientPlayNetworkHandlerMixin {
17-
@Shadow
18-
private ClientWorld world;
18+
public abstract class ClientPlayNetworkHandlerMixin extends ClientCommonNetworkHandler {
1919

20-
@Final
21-
@Shadow
22-
private WorldSession field_34963;
20+
21+
@Shadow public abstract ClientWorld getWorld();
22+
23+
protected ClientPlayNetworkHandlerMixin(MinecraftClient client, ClientConnection connection, ClientConnectionState connectionState) {
24+
super(client, connection, connectionState);
25+
}
2326

2427
@Inject(at=@At(value="INVOKE", target = "Lnet/minecraft/client/world/ClientWorld;setTime(J)V"), method="onWorldTimeUpdate(Lnet/minecraft/network/packet/s2c/play/WorldTimeUpdateS2CPacket;)V", cancellable = true)
2528
private void clearTickable(WorldTimeUpdateS2CPacket packet, CallbackInfo ci) {
26-
((TimeSmoother) world).updateTimes(packet);
27-
field_34963.setTick(packet.getTime());
29+
((TimeSmoother) getWorld()).asahi$updateTimes(packet);
30+
worldSession.setTick(packet.getTime());
2831
ci.cancel();
2932
}
3033
}

src/main/java/dev/hugeblank/asahi/client/mixin/ClientWorldMixin.java

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -44,17 +44,6 @@ protected ClientWorldMixin(
4444
super(properties, registryRef, registryManager, dimensionEntry, profiler, isClient, debugWorld, biomeAccess, maxChainedNeighborUpdates);
4545
}
4646

47-
@Unique
48-
private void setTime(long time) {
49-
this.clientWorldProperties.setTime(time);
50-
}
51-
52-
@Unique
53-
private void setTimeOfDay(long timeOfDay) {
54-
this.clientWorldProperties.setTimeOfDay(timeOfDay);
55-
}
56-
57-
5847
/**
5948
* @author hugeblank
6049
* @reason Smooth out daylight cycle & remove client de-sync jitter.
@@ -63,22 +52,22 @@ private void setTimeOfDay(long timeOfDay) {
6352
private void tickTime() {
6453
remainder += factor;
6554
long increment = (long) remainder;
66-
setTime(properties.getTime() + increment);
55+
clientWorldProperties.setTime(properties.getTime() + increment);
6756
if (properties.getGameRules().getBoolean(GameRules.DO_DAYLIGHT_CYCLE)) {
68-
setTimeOfDay(properties.getTimeOfDay() + increment);
57+
clientWorldProperties.setTimeOfDay(properties.getTimeOfDay() + increment);
6958
}
7059
remainder = remainder - increment;
7160
}
7261

7362
@Override
74-
public void updateTimes(WorldTimeUpdateS2CPacket packet) {
63+
public void asahi$updateTimes(WorldTimeUpdateS2CPacket packet) {
7564
long currentPacketTime = packet.getTimeOfDay();
7665
long localDiff = currentPacketTime - properties.getTimeOfDay();
7766
// System.out.println("packetDiff: " + packetDiff);
7867
// System.out.println("localDiff: " + localDiff); // TODO: Debug logging that doesn't show up in prod
7968
if (Math.abs(localDiff) >= Constants.SKIP_DURATION) {
80-
setTime(packet.getTime());
81-
setTimeOfDay(packet.getTimeOfDay());
69+
clientWorldProperties.setTime(packet.getTime());
70+
clientWorldProperties.setTimeOfDay(packet.getTimeOfDay());
8271
factor = 1;
8372
} else {
8473
long packetDiff = currentPacketTime - lastPacketTime;

0 commit comments

Comments
 (0)