aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0217-Add-moon-phase-API.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/api/0217-Add-moon-phase-API.patch')
-rw-r--r--patches/api/0217-Add-moon-phase-API.patch65
1 files changed, 65 insertions, 0 deletions
diff --git a/patches/api/0217-Add-moon-phase-API.patch b/patches/api/0217-Add-moon-phase-API.patch
new file mode 100644
index 0000000000..1a307b0721
--- /dev/null
+++ b/patches/api/0217-Add-moon-phase-API.patch
@@ -0,0 +1,65 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: BillyGalbreath <[email protected]>
+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..df05153397b42930cd53d37b30824c7e5f008f7e
+--- /dev/null
++++ b/src/main/java/io/papermc/paper/world/MoonPhase.java
+@@ -0,0 +1,36 @@
++package io.papermc.paper.world;
++
++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<Long, MoonPhase> 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/RegionAccessor.java b/src/main/java/org/bukkit/RegionAccessor.java
+index e55f6e2baf35dbd91c433ab9e62713eaac85435b..2fa3de66107162ccaa158b369e2c4a926ecaff92 100644
+--- a/src/main/java/org/bukkit/RegionAccessor.java
++++ b/src/main/java/org/bukkit/RegionAccessor.java
+@@ -376,4 +376,12 @@ public interface RegionAccessor {
+ */
+ @NotNull
+ public <T extends Entity> T spawn(@NotNull Location location, @NotNull Class<T> clazz, boolean randomizeData, @Nullable Consumer<T> function) throws IllegalArgumentException;
++
++ // Paper start
++ /**
++ * @return the current moon phase at the current time in the world
++ */
++ @NotNull
++ io.papermc.paper.world.MoonPhase getMoonPhase();
++ // Paper end
+ }