From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: violetc <58360096+s-yh-china@users.noreply.github.com> Date: Tue, 4 Feb 2025 19:45:21 +0800 Subject: [PATCH] Replay Mod API 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 af9408c990d5ba2cf34d6c64db86a04c90165e91..34ebc691b3bd35c7f7457703b1b9a5bea6b3c625 100644 --- a/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java +++ b/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java @@ -42,7 +42,7 @@ class PaperEventManager { } // Leaves start - skip bot - if (event instanceof org.bukkit.event.player.PlayerEvent playerEvent && playerEvent.getPlayer() instanceof org.leavesmc.leaves.entity.bot.Bot) { + if (event instanceof org.bukkit.event.player.PlayerEvent playerEvent && (playerEvent.getPlayer() instanceof org.leavesmc.leaves.entity.bot.Bot || playerEvent.getPlayer() instanceof org.leavesmc.leaves.entity.photographer.Photographer)) { // Leaves - and photographer return; } // Leaves end - skip bot diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java index 2a9fc317284a4e0bac4f0b64482b57de78d8bc30..3c130ecb6c2898596d5e4749b04b4aa14c34f289 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 { public final io.papermc.paper.SparksFly spark; private final ServerConfiguration serverConfig = new PaperServerConfiguration(); private final org.leavesmc.leaves.entity.CraftBotManager botManager; // Leaves + private final org.leavesmc.leaves.entity.CraftPhotographerManager photographerManager = new org.leavesmc.leaves.entity.CraftPhotographerManager(); // Leaves // 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() { + this.playerView = Collections.unmodifiableList(Lists.transform(playerList.realPlayers, new Function() { // Leaves - replay api @Override public CraftPlayer apply(ServerPlayer player) { return player.getBukkitEntity(); @@ -3195,4 +3196,11 @@ public final class CraftServer implements Server { return botManager; } // Leaves end - Bot API + + // Leaves start - replay mod api + @Override + public org.leavesmc.leaves.entity.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 656d599060449a4fd53360915378aca177b7e6e7..1e94a2e2f9669c8130a228c440720b424e1bd080 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -122,6 +122,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { } if (entity instanceof org.leavesmc.leaves.bot.ServerBot bot) { return new org.leavesmc.leaves.entity.CraftBot(server, bot); } + if (entity instanceof org.leavesmc.leaves.replay.ServerPhotographer photographer) { return new org.leavesmc.leaves.entity.CraftPhotographer(server, photographer); } // Special case complex part, since there is no extra entity type for them if (entity instanceof EnderDragonPart complexPart) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index 1e2e8d81e6d05b9e94fdb40dcdc4a7e0e4ceb0ac..f2befe2e971386cec71dce7d1592a7a2fffa5afd 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2205,7 +2205,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