Files
Purpur/patches/api/0018-Add-moon-phase-API.patch
William Blake Galbreath c0c212bf48 Updated Upstream (Paper)
Upstream has released updates that appears to apply and compile correctly

Paper Changes:
b75eeca0 Boost light task priority to ensure it doesnt hold up chunk loads
3d2bc848 Ensure VillagerTrades doesn't load async - fixes #3495
e470f1ef Add more information to Timing Reports
f4a47db6 Improve Thread Pool usage to allow single threads for single cpu servers
a4fe910f Fix sounds when using worldedit regen command
70ad51a8 Updated Upstream (Bukkit/CraftBukkit)
d7cfa4fa Improve legacy format serialization more
2020-06-05 21:42:48 -05:00

78 lines
2.0 KiB
Diff

From fd204c5ff1b25d9c570cfab851c791d546bd966d Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
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 | 10 ++++++
2 files changed, 46 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<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/World.java b/src/main/java/org/bukkit/World.java
index 9518da825..cf0d18283 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -3382,6 +3382,16 @@ public interface World extends PluginMessageRecipient, Metadatable {
@NotNull
public List<Raid> 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.
*
--
2.24.0