From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Sun, 23 Aug 2020 16:32:03 +0200 Subject: [PATCH] Add moon phase API diff --git a/src/main/java/io/papermc/paper/world/MoonPhase.java b/src/main/java/io/papermc/paper/world/MoonPhase.java new file mode 100644 index 0000000000000000000000000000000000000000..0b24e1a92bba4fed0ca2d4336a3b8351a800f93a --- /dev/null +++ b/src/main/java/io/papermc/paper/world/MoonPhase.java @@ -0,0 +1,35 @@ +package io.papermc.paper.world; + +import java.util.HashMap; +import java.util.Map; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public enum MoonPhase { + FULL_MOON(0L), + WANING_GIBBOUS(1L), + LAST_QUARTER(2L), + WANING_CRESCENT(3L), + NEW_MOON(4L), + WAXING_CRESCENT(5L), + FIRST_QUARTER(6L), + WAXING_GIBBOUS(7L); + + private final long day; + + MoonPhase(final long day) { + this.day = day; + } + + private static final Map BY_DAY = new HashMap<>(); + + static { + for (final MoonPhase phase : values()) { + BY_DAY.put(phase.day, phase); + } + } + + public static MoonPhase getPhase(final long day) { + return BY_DAY.get(day % 8L); + } +} diff --git a/src/main/java/org/bukkit/RegionAccessor.java b/src/main/java/org/bukkit/RegionAccessor.java index 316d04db78c23ec236cc6f8d5c17e328cbd8ec75..27eff0826d5b5b48697fefd9571886e7bbce74b1 100644 --- a/src/main/java/org/bukkit/RegionAccessor.java +++ b/src/main/java/org/bukkit/RegionAccessor.java @@ -445,4 +445,12 @@ public interface RegionAccessor { */ @NotNull public T addEntity(@NotNull T entity); + + // Paper start + /** + * @return the current moon phase at the current time in the world + */ + @NotNull + io.papermc.paper.world.MoonPhase getMoonPhase(); + // Paper end }