mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-27 02:49:19 +00:00
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@a5f2f614 Fix offhand item desync on cancelling interact events (#12828) PaperMC/Paper@10318775 [ci/skip] Update mache for codebook 1.0.15 (#12887) Purpur Changes: PurpurMC/Purpur@c4e5604c Updated Upstream (Paper) PurpurMC/Purpur@c130b18e Updated Upstream (Paper) PurpurMC/Purpur@60bdf1c7 Final Paper Upstream PurpurMC/Purpur@a39c4cb0 Updated Upstream (Paper) PurpurMC/Purpur@ea7b18ab Updated Upstream (Paper) PurpurMC/Purpur@0f82c210 Updated Upstream (Paper) PurpurMC/Purpur@8de15d66 this is important for the build to not fail.. PurpurMC/Purpur@5053eb0c use a different method for dropping lapis, closes #1692 Leaves Changes: LeavesMC/Leaves@df8397c7 Fix bot invulnerable LeavesMC/Leaves@e1c21d3f Movable Budding Amethyst bind carpet rule (#561) LeavesMC/Leaves@550dba49 Configurable item damage check and good shear behavior (#559) LeavesMC/Leaves@cb64df44 Old Throwable Projectile tick order (#520) LeavesMC/Leaves@b5793e80 Fix bot infinity desync (#584) LeavesMC/Leaves@c5ecbe85 1.21.7/8 (#587) LeavesMC/Leaves@5497dfb4 Fix CI LeavesMC/Leaves@2f8255bd Fix LitematicaEasyPlaceProtocol LeavesMC/Leaves@a416f476 Fix bot use actions (#606) (#605) LeavesMC/Leaves@bfde470a fix: revert Configurable-collision-behavior patch (#607) LeavesMC/Leaves@aaa2323d Fix Syncmatica file name
88 lines
5.3 KiB
Diff
88 lines
5.3 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/io/papermc/paper/plugin/manager/PaperEventManager.java b/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java
|
|
index 4c003acccdd2dd17918b15316001e52e7670123e..99662395fef09017ff0843da6c482815dd4456d3 100644
|
|
--- a/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java
|
|
+++ b/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java
|
|
@@ -40,6 +40,11 @@ class PaperEventManager {
|
|
} else if (!event.isAsynchronous() && !this.server.isPrimaryThread() && !this.server.isStopping()) {
|
|
throw new IllegalStateException(event.getEventName() + " may only be triggered synchronously.");
|
|
}
|
|
+ // Leaves start - skip photographer
|
|
+ if (event instanceof org.bukkit.event.player.PlayerEvent playerEvent && playerEvent.getPlayer() instanceof org.leavesmc.leaves.entity.photographer.Photographer) {
|
|
+ return;
|
|
+ }
|
|
+ // Leaves end - skip photographer
|
|
|
|
HandlerList handlers = event.getHandlers();
|
|
RegisteredListener[] listeners = handlers.getRegisteredListeners();
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
index 4ea1ceac80bd4676bb2c59bc4219903850cc7213..b7d2d8395e820076dbf5bf2a68a058b999819b7d 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
@@ -316,6 +316,7 @@ public final class CraftServer implements Server {
|
|
private final io.papermc.paper.potion.PaperPotionBrewer potionBrewer;
|
|
public final io.papermc.paper.SparksFly spark;
|
|
private final ServerConfiguration serverConfig = new PaperServerConfiguration();
|
|
+ private final org.leavesmc.leaves.entity.photographer.CraftPhotographerManager photographerManager = new org.leavesmc.leaves.entity.photographer.CraftPhotographerManager(); // Leaves - replay api
|
|
|
|
// Paper start - Folia region threading API
|
|
private final io.papermc.paper.threadedregions.scheduler.FallbackRegionScheduler regionizedScheduler = new io.papermc.paper.threadedregions.scheduler.FallbackRegionScheduler();
|
|
@@ -410,7 +411,7 @@ public final class CraftServer implements Server {
|
|
public CraftServer(DedicatedServer console, PlayerList playerList) {
|
|
this.console = console;
|
|
this.playerList = (DedicatedPlayerList) playerList;
|
|
- this.playerView = Collections.unmodifiableList(Lists.transform(playerList.players, new Function<ServerPlayer, CraftPlayer>() {
|
|
+ this.playerView = Collections.unmodifiableList(Lists.transform(playerList.realPlayers, new Function<ServerPlayer, CraftPlayer>() { // Leaves - replay api
|
|
@Override
|
|
public CraftPlayer apply(ServerPlayer player) {
|
|
return player.getBukkitEntity();
|
|
@@ -3349,4 +3350,11 @@ public final class CraftServer implements Server {
|
|
return MinecraftServer.lastTickOversleepTime;
|
|
}
|
|
// Gale end - YAPFA - last tick time - API
|
|
+
|
|
+ // Leaves start - replay mod api
|
|
+ @Override
|
|
+ public org.leavesmc.leaves.entity.photographer.CraftPhotographerManager getPhotographerManager() {
|
|
+ return photographerManager;
|
|
+ }
|
|
+ // Leaves end - replay mod api
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
|
index 476eefebace887064b728f08af40c746b6f70787..cf1a1eb731083ba56cdb9ad857255b1a55e31717 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
|
@@ -140,6 +140,8 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
|
return new CraftHumanEntity(server, (net.minecraft.world.entity.player.Player) entity);
|
|
}
|
|
|
|
+ if (entity instanceof org.leavesmc.leaves.replay.ServerPhotographer photographer) { return new org.leavesmc.leaves.entity.photographer.CraftPhotographer(server, photographer); } // Leaves - replay mod api
|
|
+
|
|
// Special case complex part, since there is no extra entity type for them
|
|
if (entity instanceof EnderDragonPart complexPart) {
|
|
if (complexPart.parentMob instanceof EnderDragon) {
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
index 7fb60f68ffb5e8d880d3c8395f64585461d7f5c9..9fd4ee415c4e5ea6f818ff6956c41f59f171d82e 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
@@ -2356,7 +2356,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
|
|
|
|
@Override
|
|
public boolean canSee(Player player) {
|
|
- return this.canSee((org.bukkit.entity.Entity) player);
|
|
+ return !(player instanceof org.leavesmc.leaves.entity.photographer.Photographer) && this.canSee((org.bukkit.entity.Entity) player); // Leaves - skip photographer
|
|
}
|
|
|
|
@Override
|