Class ServerClockManager
java.lang.Object
net.minecraft.world.level.saveddata.SavedData
net.minecraft.world.clock.ServerClockManager
- All Implemented Interfaces:
ClockManager
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumstatic class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Map<Holder<WorldClock>, ServerClockManager.ServerClockInstance> private final PackedClockStatesprivate MinecraftServerstatic final SavedDataType<ServerClockManager> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddTicks(Holder<WorldClock> clock, int ticks) private longgetInstance(Holder<WorldClock> definition) voidinit(MinecraftServer server) booleanisAtTimeMarker(Holder<WorldClock> clock, ResourceKey<ClockTimeMarker> timeMarkerId) private voidmodifyClock(Holder<WorldClock> clock, Consumer<? super ServerClockManager.ServerClockInstance> action) moveToTimeMarker(Holder<WorldClock> clock, ResourceKey<ClockTimeMarker> timeMarkerId) private voidregisterTimeMarker(ResourceKey<ClockTimeMarker> timeMarkerId, ClockTimeMarker timeMarker) voidsetPaused(Holder<WorldClock> clock, boolean paused) voidsetRate(Holder<WorldClock> clock, float rate) This allows mods to set the rate at which a specific clock advances relative to game time.voidsetTotalTicks(Holder<WorldClock> clock, long totalTicks) voidtick()
-
Field Details
-
TYPE
-
packedClockStates
-
server
-
clocks
-
-
Constructor Details
-
ServerClockManager
-
-
Method Details
-
init
-
registerTimeMarker
private void registerTimeMarker(ResourceKey<ClockTimeMarker> timeMarkerId, ClockTimeMarker timeMarker) -
packState
-
tick
public void tick() -
getInstance
- Specified by:
getInstancein interfaceClockManager
-
setTotalTicks
-
moveToTimeMarker
public ServerClockManager.MoveResult moveToTimeMarker(Holder<WorldClock> clock, ResourceKey<ClockTimeMarker> timeMarkerId) -
addTicks
-
setPaused
-
setRate
This allows mods to set the rate at which a specific clock advances relative to game time.This can be sped up for shorter days by giving a higher number, or slowed down for longer days with a smaller number. A negative value will reset it back to vanilla logic.
This value can also be changed with the command
/neoforge day, where you can set either the speed or a day length in minutes.This has no effect when time progression is stopped.
While this still technically works when vanilla clients are connected, those will desync and experience a time jump once per second.
- Specified by:
setRatein interfaceClockManager
-
modifyClock
private void modifyClock(Holder<WorldClock> clock, Consumer<? super ServerClockManager.ServerClockInstance> action) -
createFullSyncPacket
-
getGameTime
private long getGameTime() -
isAtTimeMarker
-
commandTimeMarkersForClock
-