mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-27 10:59:16 +00:00
Upstream has released updates that appear to apply and compile correctly Leaves Changes: LeavesMC/Leaves@08bfa446 Lithium Sleeping Block Entity(#618) (#630) LeavesMC/Leaves@610eee60 fix: fix bot resume CME (#635) LeavesMC/Leaves@04dac366 Fix vanilla display name (#638) LeavesMC/Leaves@e5aba7eb feat: hopper counter unlimited speed(#625) (#639) LeavesMC/Leaves@e44e469a fix: fix SleepingBlockEntity crash when /tick freeze (#640) LeavesMC/Leaves@5d653e31 fix: fix faster chunk serialization patch (#641) LeavesMC/Leaves@cb6cd658 [ci/skip] chore: fix patch header LeavesMC/Leaves@8d9a5b2f [ci/skip]chore: rename hopper counter enable config (#644) LeavesMC/Leaves@cc019e8f [ci/skip] feat: add Bukkit.getFeatureManager api (#645) LeavesMC/Leaves@81da0c5e [ci/skip] Bring back LivingEntity effect CME (#648) LeavesMC/Leaves@ea91106a fix: fix hopper counter config (#646) LeavesMC/Leaves@230e0987 feat: mount action(#619) (#649) LeavesMC/Leaves@d9f7afc4 fix: fix sleeping block entity(#654) (#655) LeavesMC/Leaves@12f665c0 Refactor actions (#650) LeavesMC/Leaves@c29ff9a8 feat: swap action (#657) LeavesMC/Leaves@3c09044e fix: fix grindstone curse book overstacking(#658) (#659) LeavesMC/Leaves@e05f3f7c Update paper, revert #632 (#662) LeavesMC/Leaves@0c866281 Bot Improvements (#661) LeavesMC/Leaves@956f0227 feat: add skipTripwireHookPlacementValidation to mc-technical-mode, and format config (#664) LeavesMC/Leaves@e047327c fix: fix bot use raytrace (#669) LeavesMC/Leaves@29327349 Fix #667 (#668) LeavesMC/Leaves@08f53c97 Fix bot cant get entity tracker (#670) LeavesMC/Leaves@e0d62b4e fix photographer bugs (#666) LeavesMC/Leaves@d094bdad fix: fix raid(#626) (#671) LeavesMC/Leaves@678d4e20 Revert "Fix bot cant get entity tracker (#670)" LeavesMC/Leaves@e298d097 [ci/skip] fix: fix patch name (#672) LeavesMC/Leaves@099be5b8 [ci/skip] fix: fix push to api fail when commit contains double quotation marks (#677) LeavesMC/Leaves@ba8993d3 Fix fakeplayer cant get entity tracker correctly (#676) LeavesMC/Leaves@d93e9766 feat: merge old raid config, fix bugs (#680) LeavesMC/Leaves@bf55b2a4 fix: fix sleeping block entity bug (#682) LeavesMC/Leaves@5366b382 Fix creative no clip with projectile (#683) LeavesMC/Leaves@e55edbf8 Resolves #685 (#687) LeavesMC/Leaves@a591ec57 Do not tick Arrow life regardless (#688) LeavesMC/Leaves@3623aea8 fix: stupid me (#689) LeavesMC/Leaves@73e63912 feat: update leavesclip to 3.0.7 (#681) LeavesMC/Leaves@bb5a1dff [ci/skip] fix: fix comment (#692) LeavesMC/Leaves@d87bc544 Fix #690 (#691) LeavesMC/Leaves@79d9ef74 Update paper (#693) LeavesMC/Leaves@71790286 Fix optimize noise generation LeavesMC/Leaves@3ffbde0b Optimize config transfer and remove LeavesMC/Leaves@62e62242 feat: add logger for internal plugin, and format api code (#696) LeavesMC/Leaves@f37e9d37 Fix fakeplayer break action LeavesMC/Leaves@aeb8e07d Fix fakeplayer break action * 2 LeavesMC/Leaves@40af0399 Fix StackableShulker config validator LeavesMC/Leaves@122c7365 Fix fakeplayer use action LeavesMC/Leaves@0ee80784 fix: fix photographer bugs (#699) LeavesMC/Leaves@a30c9abb Remove, and opt config and config command LeavesMC/Leaves@4b21a968 New shears wrench (#700) LeavesMC/Leaves@0f40159c Enhance update suppression (#701) LeavesMC/Leaves@374605cd Fix bot (#705) LeavesMC/Leaves@ff563baf Fix creative no clip can attract xp-orb (#706) LeavesMC/Leaves@f0de3ecd refactor: use client side judgement instead of special judgement (#708)
114 lines
7.2 KiB
Diff
114 lines
7.2 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 01de5ccfe7e99936ae503f36d9abb02f4f134bc5..e1d81f91f166beec06aaa8739ea6b61703dc04dd 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
@@ -317,6 +317,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();
|
|
@@ -411,7 +412,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();
|
|
@@ -3352,4 +3353,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 2d9725d2e61bb2baa0313542925e620e9bcb4942..3d3d9c795a6e5be65fe0329e82dd018ce21807e0 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
@@ -2235,7 +2235,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
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
|
index 756f08f25924c2128a0c8d4ea21f1bc905c33301..586c13070cf0fbbe339bfc5a7b1023f8d1d16cad 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
|
@@ -338,7 +338,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
|
Bukkit.getLogger().log(Level.SEVERE, "Error saving advancement " + key, ex);
|
|
}
|
|
|
|
- MinecraftServer.getServer().getPlayerList().getPlayers().forEach(player -> {
|
|
+ net.minecraft.server.MinecraftServer.getServer().getPlayerList().realPlayers.forEach(player -> { // Leaves - only real players
|
|
player.getAdvancements().reload(MinecraftServer.getServer().getAdvancements());
|
|
player.getAdvancements().flushDirty(player, false);
|
|
});
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/util/LazyPlayerSet.java b/src/main/java/org/bukkit/craftbukkit/util/LazyPlayerSet.java
|
|
index 25aae550dcdcef2df268d0dd99bdcc9bbd49fcf8..83af50de50a03e164d572f3c3466b6d0b42ed138 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/util/LazyPlayerSet.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/LazyPlayerSet.java
|
|
@@ -23,7 +23,7 @@ public class LazyPlayerSet extends LazyHashSet<Player> {
|
|
}
|
|
|
|
public static Set<Player> makePlayerSet(final MinecraftServer server) {
|
|
- List<ServerPlayer> players = server.getPlayerList().players;
|
|
+ List<ServerPlayer> players = server.getPlayerList().realPlayers; // Leaves - only real players
|
|
Set<Player> reference = new HashSet<>(players.size());
|
|
for (ServerPlayer player : players) {
|
|
reference.add(player.getBukkitEntity());
|