From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 1 Feb 2020 22:22:07 -0600 Subject: [PATCH] MoonPhase API 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 75c9225b..9955d741 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -3450,6 +3450,16 @@ public interface World extends PluginMessageRecipient, Metadatable { @NotNull public List getRaids(); + // Purpur start + /** + * Get the moon phase of the world at the current time + * + * @return Current moon phase + */ + @NotNull + net.pl3x.purpur.MoonPhase getMoonPhase(); + // Purpur end + /** * Get the {@link DragonBattle} associated with this world. *