Skip to content

Commit 6a8a2c4

Browse files
committed
Synchronize world time immediately when set by a plugin
1 parent 5614392 commit 6a8a2c4

2 files changed

Lines changed: 5 additions & 0 deletions

File tree

src/accessors/java/org/spongepowered/common/accessor/server/MinecraftServerAccessor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,4 +70,6 @@ public interface MinecraftServerAccessor {
7070
@Invoker("forceDifficulty") void invoker$forceDifficulty();
7171

7272
@Invoker("waitUntilNextTick") void accessor$waitUntilNextTick();
73+
74+
@Invoker("synchronizeTime") void invoker$synchronizeTime(ServerLevel level);
7375
}

src/mixins/java/org/spongepowered/common/mixin/api/minecraft/world/level/storage/ServerLevelDataMixin_API.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
*/
2525
package org.spongepowered.common.mixin.api.minecraft.world.level.storage;
2626

27+
import net.minecraft.server.level.ServerLevel;
2728
import net.minecraft.world.level.storage.ServerLevelData;
2829
import org.checkerframework.checker.nullness.qual.Nullable;
2930
import org.spongepowered.api.ResourceKey;
@@ -37,6 +38,7 @@
3738
import org.spongepowered.api.world.weather.WeatherType;
3839
import org.spongepowered.asm.mixin.Mixin;
3940
import org.spongepowered.asm.mixin.Shadow;
41+
import org.spongepowered.common.accessor.server.MinecraftServerAccessor;
4042
import org.spongepowered.common.bridge.world.level.storage.ServerLevelDataBridge;
4143
import org.spongepowered.common.util.Constants;
4244
import org.spongepowered.common.util.SpongeTicks;
@@ -82,6 +84,7 @@ default UUID uniqueId() {
8284
@Override
8385
default void setDayTime(final MinecraftDayTime dayTime) {
8486
this.shadow$setDayTime(dayTime.asTicks().ticks());
87+
this.world().ifPresent(w -> ((MinecraftServerAccessor) ((ServerLevel) w).getServer()).invoker$synchronizeTime((ServerLevel) w));
8588
}
8689

8790
@Override

0 commit comments

Comments
 (0)