diff --git a/src/main/java/com/gregtechceu/gtceu/api/GTValues.java b/src/main/java/com/gregtechceu/gtceu/api/GTValues.java index 59ce7f78ecd..8da89a2cd2d 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/GTValues.java +++ b/src/main/java/com/gregtechceu/gtceu/api/GTValues.java @@ -36,6 +36,15 @@ public class GTValues { public static final int L = 144; public static final RandomSource RNG = RandomSource.createThreadSafe(); + // shortcut for various lengths of time in ticks + public static final long SECONDS = 20; + public static final long MINUTES = 60 * SECONDS; + public static final long HOURS = 60 * MINUTES; + public static final long DAYS = 24 * HOURS; + public static final long WEEKS = 7 * DAYS; + public static final long MONTHS = 30 * DAYS; + public static final long YEARS = 365 * DAYS; + /** * The Item WildCard Tag. Even shorter than the "-1" of the past */ diff --git a/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java b/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java index e41eb561f27..b1c16094996 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/kjs/GregTechKubeJSPlugin.java @@ -548,7 +548,12 @@ private static void handleGTRecipe(Map> recipesByNam // get the recipe ID without the leading type path GTRecipeBuilder builder = gtRecipeType.recipeBuilder(gtRecipe.idWithoutType()); if (gtRecipe.getValue(GTRecipeSchema.DURATION) != null) { - builder.duration = gtRecipe.getValue(GTRecipeSchema.DURATION).intValue(); + int duration = gtRecipe.getValue(GTRecipeSchema.DURATION).intValue(); + if (duration <= 0) { + GTCEu.LOGGER.error("Duration must be a positive value, skipping recipe id: {}", gtRecipe.getId()); + return; + } + builder.duration = duration; } if (gtRecipe.getValue(GTRecipeSchema.DATA) != null) { builder.data = gtRecipe.getValue(GTRecipeSchema.DATA);