mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-23 00:49:31 +00:00
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@597dcfff Add support for lz4 (#12053) PaperMC/Paper@53ae5c95 Make Sittable interface extend Entity (#12016) PaperMC/Paper@786ddf53 Default piston block entity direction to DOWN (#12039) PaperMC/Paper@cb6c57e0 Fix Squid and Dolphin spawn height (#12045) PaperMC/Paper@51acc802 Prevent duplicate raider in RaidSpawnWaveEvent list (#12040) PaperMC/Paper@61312fdb Switch to jspecify annotations for Player (#12042) PaperMC/Paper@1a04e96a Fix EntityBreedEvent cancellation (#12046) PaperMC/Paper@eff617b8 [ci/skip] Deprecate Server#setSpawnRadius (#12024) PaperMC/Paper@edacfdf4 Do not queue player info packets (#12080) PaperMC/Paper@cafef9ce [ci/skip] Move EntityUtil to correct directory (#12092) Gale Changes: Dreeam-qwq/Gale@1c139da5 Updated Upstream (Paper) Purpur Changes: PurpurMC/Purpur@c038d785 Updated Upstream (Paper) PurpurMC/Purpur@708a2fd9 fix: properly apply breeding-delay-ticks option for turtles PurpurMC/Purpur@e6a1ebd3 Updated Upstream (Paper)
139 lines
4.8 KiB
Diff
139 lines
4.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: violetc <58360096+s-yh-china@users.noreply.github.com>
|
|
Date: Thu, 3 Aug 2023 20:36:38 +0800
|
|
Subject: [PATCH] Leaves: Replay Mod API
|
|
|
|
Co-authored-by: alazeprt <nono135246@126.com>
|
|
|
|
Original license: GPLv3
|
|
Original project: https://github.com/LeavesMC/Leaves
|
|
|
|
This patch is Powered by ReplayMod(https://github.com/ReplayMod)
|
|
|
|
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
|
|
index 7ce5e34bfb3d8db97b32e9f8ec010e4ff088be65..f044efd4426e528dd1a2932dedabc54291b0c336 100644
|
|
--- a/src/main/java/org/bukkit/Bukkit.java
|
|
+++ b/src/main/java/org/bukkit/Bukkit.java
|
|
@@ -3179,4 +3179,10 @@ public final class Bukkit {
|
|
server.clearBlockHighlights();
|
|
}
|
|
// Purpur end - Debug Marker API
|
|
+
|
|
+ // Leaves start - Photographer API
|
|
+ public static @NotNull org.leavesmc.leaves.entity.PhotographerManager getPhotographerManager() {
|
|
+ return server.getPhotographerManager();
|
|
+ }
|
|
+ // Leaves end - Photographer API
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
|
index 13346dfe2a6d848cf63cbba95d8dea8dfdddf905..eddcbd7bdf8d86ee07cb7a95e8c043c4abba8344 100644
|
|
--- a/src/main/java/org/bukkit/Server.java
|
|
+++ b/src/main/java/org/bukkit/Server.java
|
|
@@ -2862,4 +2862,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
|
*/
|
|
void clearBlockHighlights();
|
|
// Purpur end - Debug Marker API
|
|
+
|
|
+ // Leaves start - Photographer API
|
|
+ @NotNull org.leavesmc.leaves.entity.PhotographerManager getPhotographerManager();
|
|
+ // Leaves end - Photographer API
|
|
}
|
|
diff --git a/src/main/java/org/leavesmc/leaves/entity/Photographer.java b/src/main/java/org/leavesmc/leaves/entity/Photographer.java
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..5b564dfd8aa882d0dc8b1833a4b46e1bba699876
|
|
--- /dev/null
|
|
+++ b/src/main/java/org/leavesmc/leaves/entity/Photographer.java
|
|
@@ -0,0 +1,27 @@
|
|
+package org.leavesmc.leaves.entity;
|
|
+
|
|
+import org.bukkit.entity.Player;
|
|
+import org.jetbrains.annotations.NotNull;
|
|
+import org.jetbrains.annotations.Nullable;
|
|
+
|
|
+import java.io.File;
|
|
+
|
|
+public interface Photographer extends Player {
|
|
+
|
|
+ @NotNull
|
|
+ public String getId();
|
|
+
|
|
+ public void setRecordFile(@NotNull File file);
|
|
+
|
|
+ public void stopRecording();
|
|
+
|
|
+ public void stopRecording(boolean async);
|
|
+
|
|
+ public void stopRecording(boolean async, boolean save);
|
|
+
|
|
+ public void pauseRecording();
|
|
+
|
|
+ public void resumeRecording();
|
|
+
|
|
+ public void setFollowPlayer(@Nullable Player player);
|
|
+}
|
|
\ No newline at end of file
|
|
diff --git a/src/main/java/org/leavesmc/leaves/entity/PhotographerManager.java b/src/main/java/org/leavesmc/leaves/entity/PhotographerManager.java
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..ccb19e75748803eb9ad356ffcd0ccfd5145ed776
|
|
--- /dev/null
|
|
+++ b/src/main/java/org/leavesmc/leaves/entity/PhotographerManager.java
|
|
@@ -0,0 +1,32 @@
|
|
+package org.leavesmc.leaves.entity;
|
|
+
|
|
+import org.bukkit.Location;
|
|
+import org.bukkit.util.Consumer;
|
|
+import org.jetbrains.annotations.NotNull;
|
|
+import org.jetbrains.annotations.Nullable;
|
|
+import org.leavesmc.leaves.replay.BukkitRecorderOption;
|
|
+
|
|
+import java.util.Collection;
|
|
+import java.util.UUID;
|
|
+
|
|
+public interface PhotographerManager {
|
|
+ @Nullable
|
|
+ public Photographer getPhotographer(@NotNull UUID uuid);
|
|
+
|
|
+ @Nullable
|
|
+ public Photographer getPhotographer(@NotNull String id);
|
|
+
|
|
+ @Nullable
|
|
+ public Photographer createPhotographer(@NotNull String id, @NotNull Location location);
|
|
+
|
|
+ @Nullable
|
|
+ public Photographer createPhotographer(@NotNull String id, @NotNull Location location, @NotNull BukkitRecorderOption recorderOption);
|
|
+
|
|
+ public void removePhotographer(@NotNull String id);
|
|
+
|
|
+ public void removePhotographer(@NotNull UUID uuid);
|
|
+
|
|
+ public void removeAllPhotographers();
|
|
+
|
|
+ public Collection<Photographer> getPhotographers();
|
|
+}
|
|
\ No newline at end of file
|
|
diff --git a/src/main/java/org/leavesmc/leaves/replay/BukkitRecorderOption.java b/src/main/java/org/leavesmc/leaves/replay/BukkitRecorderOption.java
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..c985721bdf6be0b8a154e7abfd50e0168965a8d1
|
|
--- /dev/null
|
|
+++ b/src/main/java/org/leavesmc/leaves/replay/BukkitRecorderOption.java
|
|
@@ -0,0 +1,18 @@
|
|
+package org.leavesmc.leaves.replay;
|
|
+
|
|
+public class BukkitRecorderOption {
|
|
+
|
|
+ // public int recordDistance = -1;
|
|
+ public String serverName = "Leaf";
|
|
+ public BukkitRecordWeather forceWeather = BukkitRecordWeather.NULL;
|
|
+ public int forceDayTime = -1;
|
|
+ public boolean ignoreChat = false;
|
|
+ // public boolean ignoreItem = false;
|
|
+
|
|
+ public enum BukkitRecordWeather {
|
|
+ CLEAR,
|
|
+ RAIN,
|
|
+ THUNDER,
|
|
+ NULL
|
|
+ }
|
|
+}
|
|
\ No newline at end of file
|