From 08f61132cb4349e6e64d37f4bd67fb233ede48f7 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 00000000..f5ad98c6 --- /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 07e0f604..7566d701 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -3155,6 +3155,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