59 lines
No EOL
1.9 KiB
Java
59 lines
No EOL
1.9 KiB
Java
package nl.sbdeveloper.showcontrol.utils;
|
|
|
|
import java.time.LocalTime;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
/**
|
|
* Source from:
|
|
* https://github.com/Mindgamesnl/OpenAudioMc/blob/master/plugin/src/main/java/com/craftmend/openaudiomc/spigot/modules/show/util/TimeParser.java
|
|
*/
|
|
public class TimeUtil {
|
|
|
|
public static Long toMilis(String input) {
|
|
long time = 0L;
|
|
|
|
// ITS A TIMECODE
|
|
if (input.contains(":")) {
|
|
return LocalTime.parse(input, DateTimeFormatter.ofPattern("HH:mm:ss")).toSecondOfDay() * 1000L;
|
|
}
|
|
|
|
input = input.toLowerCase() + "-";
|
|
|
|
String[] milisSplit = input.split("ms");
|
|
if (isValid(milisSplit)) {
|
|
time += Long.parseLong(milisSplit[0]);
|
|
return time;
|
|
}
|
|
|
|
String[] secondsSplit = input.split("s");
|
|
if (isValid(secondsSplit)) {
|
|
time += Math.round(Double.parseDouble(secondsSplit[0]) * 1000);
|
|
return time;
|
|
}
|
|
|
|
String[] minutesSplit = input.split("m");
|
|
if (isValid(minutesSplit)) {
|
|
time += Math.round(Double.parseDouble(minutesSplit[0]) * 60000);
|
|
return time;
|
|
}
|
|
|
|
String[] tickSplit = input.split("t");
|
|
if (isValid(tickSplit)) {
|
|
time += Math.round(Integer.parseInt(tickSplit[0]) * 50);
|
|
return time;
|
|
}
|
|
|
|
return time;
|
|
}
|
|
|
|
private static boolean isValid(String[] array) {
|
|
return array.length > 1 && array[0].length() > 0;
|
|
}
|
|
|
|
public static Object makeReadable(Long time) {
|
|
return String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(time),
|
|
TimeUnit.MILLISECONDS.toMinutes(time) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(time)),
|
|
TimeUnit.MILLISECONDS.toSeconds(time) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(time)));
|
|
}
|
|
} |