From afac0359f02085127ab36121d871e8685a39de85 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 1 Feb 2020 22:22:07 -0600 Subject: [PATCH] Add moon phase API --- src/main/java/net/pl3x/purpur/MoonPhase.java | 36 ++++++++++++++++++++ src/main/java/org/bukkit/World.java | 8 +++++ 2 files changed, 44 insertions(+) create mode 100644 src/main/java/net/pl3x/purpur/MoonPhase.java diff --git a/src/main/java/net/pl3x/purpur/MoonPhase.java b/src/main/java/net/pl3x/purpur/MoonPhase.java new file mode 100644 index 000000000..f5ad98c62 --- /dev/null +++ b/src/main/java/net/pl3x/purpur/MoonPhase.java @@ -0,0 +1,36 @@ +package net.pl3x.purpur; + +import org.jetbrains.annotations.NotNull; + +import java.util.HashMap; +import java.util.Map; + +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(long day) { + this.day = day; + } + + private static final Map BY_DAY = new HashMap<>(); + + static { + for (MoonPhase phase : values()) { + BY_DAY.put(phase.day, phase); + } + } + + @NotNull + public static MoonPhase getPhase(long day) { + return BY_DAY.get(day % 8L); + } +} diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java index 5a28b8bed..887598ff7 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -3096,6 +3096,14 @@ public interface World extends PluginMessageRecipient, Metadatable { */ @NotNull BlockData getPlacementBlockData(@NotNull BlockData blockData, @NotNull Location location); + + /** + * Get the moon phase of the world at the current time + * + * @return Current moon phase + */ + @NotNull + net.pl3x.purpur.MoonPhase getMoonPhase(); // Purpur end /** -- 2.24.0