本帖最后由 632b781af97903 于 2022-8-14 21:53 编辑 
别发wiki;看过了 还是没理解那个转换方式
可以选择给转换公式或改好下边的
下边的勉强能用,但是有点小问题
如果要改的尽量改成ess插件的这种格式
 
 
复制代码
别发wiki;看过了 还是没理解那个转换方式
可以选择给转换公式或改好下边的
下边的勉强能用,但是有点小问题
如果要改的尽量改成ess插件的这种格式
- double tick = 1000;
 
- String t[] = (((tick + 6000) / 1000) + "").split("\\.");
 
- long a = Long.valueOf(t[0]);
 
- long b = Long.valueOf(t[1]) / 16;
 
- System.out.println(a + ":" + b);
 
首先你得知道mc内20tick等于现实1s,mc一天等于现实1200s
所以mc一天等于24000tick 且0tick为上午6:00
所以(tick+6000)除以1000,余数是小时,商*(60/1000)为分钟
long a=tick/1000+6
long b=tick%1000*60/1000
(不清楚有没有取余符号%)
所以mc一天等于24000tick 且0tick为上午6:00
所以(tick+6000)除以1000,余数是小时,商*(60/1000)为分钟
long a=tick/1000+6
long b=tick%1000*60/1000
(不清楚有没有取余符号%)
 本帖最后由 阿夸阿夸 于 2022-8-14 22:12 编辑 
既然你想要 Essentials 的转换格式,为啥不看看它的源码呢
https://github.com/EssentialsX/E ... ickFormat.java#L221
复制代码其中的 hours, minutes, seconds 就是时:分:秒这样的格式
既然你想要 Essentials 的转换格式,为啥不看看它的源码呢
https://github.com/EssentialsX/E ... ickFormat.java#L221
- // Assume the server time starts at 0. It would start on a day.
 
- // But we will simulate that the server started with 0 at midnight.
 
- ticks = ticks - ticksAtMidnight + ticksPerDay;
 
 
- // How many ingame days have passed since the server start?
 
- final long days = ticks / ticksPerDay;
 
- ticks -= days * ticksPerDay;
 
 
- // How many hours on the last day?
 
- final long hours = ticks / ticksPerHour;
 
- ticks -= hours * ticksPerHour;
 
 
- // How many minutes on the last day?
 
- final long minutes = (long) Math.floor(ticks / ticksPerMinute);
 
- final double dticks = ticks - minutes * ticksPerMinute;
 
 
- // How many seconds on the last day?
 
- final long seconds = (long) Math.floor(dticks / ticksPerSecond);