From 1c5f34f69964678fc72187434ee0dc7f7bf6d37d Mon Sep 17 00:00:00 2001 From: stijnb1234 Date: Fri, 22 Jan 2021 20:46:24 +0100 Subject: [PATCH] Moved to ticks --- .../nl/sbdeveloper/showapi/api/ShowCue.java | 20 ++++++++-------- .../sbdeveloper/showapi/commands/ShowCMD.java | 4 ++-- .../sbdeveloper/showapi/data/DataSaving.java | 14 ++++++++++- .../nl/sbdeveloper/showapi/data/Shows.java | 4 ++-- .../sbdeveloper/showapi/utils/MainUtil.java | 2 +- .../sbdeveloper/showapi/utils/TimeUtil.java | 23 +++++++++++-------- 6 files changed, 42 insertions(+), 25 deletions(-) diff --git a/src/main/java/nl/sbdeveloper/showapi/api/ShowCue.java b/src/main/java/nl/sbdeveloper/showapi/api/ShowCue.java index 49bfbb4..70c50f6 100644 --- a/src/main/java/nl/sbdeveloper/showapi/api/ShowCue.java +++ b/src/main/java/nl/sbdeveloper/showapi/api/ShowCue.java @@ -10,30 +10,30 @@ import java.util.UUID; */ public class ShowCue { private final UUID cueID; - private final int timeSeconds; + private final int ticks; private final TriggerData data; private int taskID; /** * Create a new cue point * - * @param timeSeconds The starttime in seconds + * @param ticks The starttime in ticks * @param data The data */ - public ShowCue(int timeSeconds, TriggerData data) { - this(UUID.randomUUID(), timeSeconds, data); + public ShowCue(int ticks, TriggerData data) { + this(UUID.randomUUID(), ticks, data); } /** * Load an exisiting cue point * * @param uuid The UUID - * @param timeSeconds The starttime in seconds + * @param ticks The starttime in ticks * @param data The data */ - public ShowCue(UUID uuid, int timeSeconds, TriggerData data) { + public ShowCue(UUID uuid, int ticks, TriggerData data) { this.cueID = uuid; - this.timeSeconds = timeSeconds; + this.ticks = ticks; this.data = data; } @@ -51,8 +51,8 @@ public class ShowCue { * * @return The time in seconds */ - public int getTimeSeconds() { - return timeSeconds; + public int getTicks() { + return ticks; } /** @@ -68,7 +68,7 @@ public class ShowCue { * Start this cue point */ public void runAtTime() { - this.taskID = Bukkit.getScheduler().runTaskLater(ShowAPIPlugin.getInstance(), data::trigger, 20 * timeSeconds).getTaskId(); + this.taskID = Bukkit.getScheduler().runTaskLater(ShowAPIPlugin.getInstance(), data::trigger, ticks).getTaskId(); } /** diff --git a/src/main/java/nl/sbdeveloper/showapi/commands/ShowCMD.java b/src/main/java/nl/sbdeveloper/showapi/commands/ShowCMD.java index 12b7e36..640ea7d 100644 --- a/src/main/java/nl/sbdeveloper/showapi/commands/ShowCMD.java +++ b/src/main/java/nl/sbdeveloper/showapi/commands/ShowCMD.java @@ -59,7 +59,7 @@ public class ShowCMD implements CommandExecutor { return false; } - int seconds = TimeUtil.parseSeconds(args[2]); + int ticks = TimeUtil.parseTicks(args[2]); StringBuilder builder = new StringBuilder(); for (int i = 3; i < args.length; i++) { @@ -72,7 +72,7 @@ public class ShowCMD implements CommandExecutor { return false; } - Shows.addPoint(name, seconds, data); + Shows.addPoint(name, ticks, data); sender.sendMessage(ChatColor.GREEN + "De show " + ChatColor.WHITE + name + ChatColor.GREEN + " bevat nu een extra punt!"); return true; diff --git a/src/main/java/nl/sbdeveloper/showapi/data/DataSaving.java b/src/main/java/nl/sbdeveloper/showapi/data/DataSaving.java index 8003dda..4ecf12f 100644 --- a/src/main/java/nl/sbdeveloper/showapi/data/DataSaving.java +++ b/src/main/java/nl/sbdeveloper/showapi/data/DataSaving.java @@ -12,6 +12,8 @@ import java.util.UUID; public class DataSaving { public static void load() { + boolean newSystem = ShowAPIPlugin.getData().getFile().contains("NewSystem"); + for (String name : ShowAPIPlugin.getData().getFile().getConfigurationSection("Shows").getKeys(false)) { List cues = new ArrayList<>(); @@ -20,6 +22,16 @@ public class DataSaving { TriggerData data = MainUtil.parseData(ShowAPIPlugin.getData().getFile().getString("Shows." + name + "." + id + ".Type") + " " + ShowAPIPlugin.getData().getFile().getString("Shows." + name + "." + id + ".Data")); + int ticks; + if (!newSystem) ticks = ShowAPIPlugin.getData().getFile().getInt("Shows." + name + "." + id + ".Time") * 20; + else ticks = ShowAPIPlugin.getData().getFile().getInt("Shows." + name + "." + id + ".Time"); + + if (!newSystem) { + ShowAPIPlugin.getData().getFile().set("Shows." + name + "." + id + ".Time", ticks); + ShowAPIPlugin.getData().getFile().set("NewSystem", true); + ShowAPIPlugin.getData().saveFile(); + } + cues.add(new ShowCue(cueID, ShowAPIPlugin.getData().getFile().getInt("Shows." + name + "." + id + ".Time"), data)); } @@ -30,7 +42,7 @@ public class DataSaving { public static void save() { for (Map.Entry> entry : Shows.getShowsMap().entrySet()) { for (ShowCue cue : entry.getValue()) { - ShowAPIPlugin.getData().getFile().set("Shows." + entry.getKey() + "." + cue.getCueID().toString() + ".Time", cue.getTimeSeconds()); + ShowAPIPlugin.getData().getFile().set("Shows." + entry.getKey() + "." + cue.getCueID().toString() + ".Time", cue.getTicks()); ShowAPIPlugin.getData().getFile().set("Shows." + entry.getKey() + "." + cue.getCueID().toString() + ".Type", cue.getData().getType().name()); ShowAPIPlugin.getData().getFile().set("Shows." + entry.getKey() + "." + cue.getCueID().toString() + ".Data", cue.getData().getDataString()); } diff --git a/src/main/java/nl/sbdeveloper/showapi/data/Shows.java b/src/main/java/nl/sbdeveloper/showapi/data/Shows.java index ab9efaa..fa13cf8 100644 --- a/src/main/java/nl/sbdeveloper/showapi/data/Shows.java +++ b/src/main/java/nl/sbdeveloper/showapi/data/Shows.java @@ -33,9 +33,9 @@ public class Shows { return showsMap.get(name); } - public static void addPoint(String name, int sec, TriggerData data) { + public static void addPoint(String name, int ticks, TriggerData data) { if (!exists(name)) return; - getPoints(name).add(new ShowCue(sec, data)); + getPoints(name).add(new ShowCue(ticks, data)); Bukkit.getScheduler().runTaskAsynchronously(ShowAPIPlugin.getInstance(), DataSaving::save); } diff --git a/src/main/java/nl/sbdeveloper/showapi/utils/MainUtil.java b/src/main/java/nl/sbdeveloper/showapi/utils/MainUtil.java index 87c8c82..0ab1d49 100644 --- a/src/main/java/nl/sbdeveloper/showapi/utils/MainUtil.java +++ b/src/main/java/nl/sbdeveloper/showapi/utils/MainUtil.java @@ -19,7 +19,7 @@ import java.util.List; public class MainUtil { public static ItemStack pointToItem(ShowCue point) { ItemBuilder builder = new ItemBuilder(Material.NOTE_BLOCK); - builder.name(ChatColor.ITALIC + "TimeCode: " + TimeUtil.showTime(point.getTimeSeconds())); + builder.name(ChatColor.ITALIC + "TimeCode: " + TimeUtil.showTime(point.getTicks())); List lores = new ArrayList<>(); lores.add(ChatColor.GREEN + "Type: " + ChatColor.AQUA + StringUtils.capitalize(point.getData().getType().name())); diff --git a/src/main/java/nl/sbdeveloper/showapi/utils/TimeUtil.java b/src/main/java/nl/sbdeveloper/showapi/utils/TimeUtil.java index ebcc156..c8468f0 100644 --- a/src/main/java/nl/sbdeveloper/showapi/utils/TimeUtil.java +++ b/src/main/java/nl/sbdeveloper/showapi/utils/TimeUtil.java @@ -14,16 +14,16 @@ public class TimeUtil { private static final int y = (int)(d * 365.25); public static String showTime(int seconds) { - LocalTime timeOfDay = LocalTime.ofSecondOfDay(seconds); + LocalTime timeOfDay = LocalTime.ofSecondOfDay(seconds / 20); return timeOfDay.toString(); } - public static int parseSeconds(String str) { + public static int parseTicks(String str) { try { LocalTime localTime = LocalTime.parse(str); return localTime.toSecondOfDay(); } catch (DateTimeParseException ex) { - Pattern pattern = Pattern.compile("^(-?(?:\\d+)?\\.?\\d+) *(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$"); + Pattern pattern = Pattern.compile("^(-?(?:\\d+)?\\.?\\d+) *(ticks?|tick?|t|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$"); Matcher matcher = pattern.matcher(str); if (!matcher.find()) return 0; @@ -35,33 +35,38 @@ public class TimeUtil { case "yrs": case "yr": case "y": - return (int)(n * y) / 1000; + return (int)(n * y) / 20000; case "weeks": case "week": case "w": - return (int)(n * w) / 1000; + return (int)(n * w) / 20000; case "days": case "day": case "d": - return (int)(n * d) / 1000; + return (int)(n * d) / 20000; case "hours": case "hour": case "hrs": case "hr": case "h": - return (int)(n * h) / 1000; + return (int)(n * h) / 20000; case "minutes": case "minute": case "mins": case "min": case "m": - return (int)(n * m) / 1000; + return (int)(n * m) / 20000; case "seconds": case "second": case "secs": case "sec": case "s": - return (int)(n * s) / 1000; + return (int)(n * s) / 20000; + case "ticks": + case "tick": + case "ts": + case "t": + return (int) n / 20000; default: return 0; }