-
Notifications
You must be signed in to change notification settings - Fork 0
/
MCTimeUtils.java
44 lines (34 loc) · 1.41 KB
/
MCTimeUtils.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package org.auioc.mcmod.arnicalib.utils.game;
import net.minecraft.world.level.Level;
public interface MCTimeUtils {
int ticksAtMidnight = 18000;
int ticksPerDay = 24000;
int ticksPerHour = 1000;
double ticksPerMinute = 1000d / 60d;
double ticksPerSecond = ticksPerMinute / 60d;
double ticksPerMillisecond = ticksPerSecond / 1000d;
static long[] getTime(Level level) {
return new long[] {level.getDayTime(), level.getGameTime(), System.currentTimeMillis()};
}
static int[] formatDayTime(long rawDayTime) {
// change the server time started with 0 at midnight
int dayTime = ((int) (rawDayTime % 2147483647L)) - ticksAtMidnight + ticksPerDay;
int day = dayTime / ticksPerDay;
/*
* int ticks = dayTime % ticksPerDay;
* int hour = ticks / ticksPerHour;
* ticks -= hour * ticksPerHour;
* int minutes = (int) (ticks / ticksPerMinute);
* ticks -= minutes * ticksPerMinute;
* int seconds = (int) (ticks / ticksPerSecond);
*/
int ticks = dayTime - day * ticksPerDay;
int hour = (ticks / ticksPerHour) % 24;
int min = (int) (ticks / ticksPerMinute) % 60;
int sec = (int) (ticks / ticksPerSecond) % 60;
return new int[] {day, hour, min, sec};
}
static int getDay(long dayTime) {
return ((int) (dayTime % 2147483647L)) / ticksPerDay;
}
}