diff --git a/patches/server/0004-Leaves-Server-Config-And-Command.patch b/patches/server/0004-Leaves-Server-Config-And-Command.patch index cfcb04fc..f19c89b0 100644 --- a/patches/server/0004-Leaves-Server-Config-And-Command.patch +++ b/patches/server/0004-Leaves-Server-Config-And-Command.patch @@ -129,10 +129,10 @@ index e1c99d941c7bb954bf3ac83d5002dbf58fd833b0..4760b943da08771a42fcb22eba4d586d .withRequiredArg() diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java new file mode 100644 -index 0000000000000000000000000000000000000000..da736450a6abc10d800f7d2ef97bfc33b2b9b814 +index 0000000000000000000000000000000000000000..c02c51f824be1173d24b20394b5855fc857fc0a4 --- /dev/null +++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java -@@ -0,0 +1,1003 @@ +@@ -0,0 +1,1005 @@ +package top.leavesmc.leaves; + +import com.destroystokyo.paper.util.SneakyThrow; @@ -324,6 +324,7 @@ index 0000000000000000000000000000000000000000..da736450a6abc10d800f7d2ef97bfc33 + public static boolean fakeplayerResident = false; + public static boolean openFakeplayerInventory = false; + public static boolean fakeplayerSkipSleep = false; ++ public static boolean fakeplayerSpawnPhantom = false; + private static void fakeplayer() { + fakeplayerSupport = getBoolean("settings.modify.fakeplayer.enable", fakeplayerSupport); + unableFakeplayerNames = getList("settings.modify.fakeplayer.unable-fakeplayer-names", unableFakeplayerNames); @@ -334,6 +335,7 @@ index 0000000000000000000000000000000000000000..da736450a6abc10d800f7d2ef97bfc33 + fakeplayerResident = getBoolean("settings.modify.fakeplayer.resident-fakeplayer", fakeplayerResident); + openFakeplayerInventory = getBoolean("settings.modify.fakeplayer.open-fakeplayer-inventory", openFakeplayerInventory); + fakeplayerSkipSleep = getBoolean("settings.modify.fakeplayer.skip-sleep-check", fakeplayerSkipSleep); ++ fakeplayerSpawnPhantom = getBoolean("settings.modify.fakeplayer.spawn-phantom", fakeplayerSpawnPhantom); + } + + public static boolean shearsInDispenserCanZeroAmount = false; diff --git a/patches/server/0008-Fakeplayer-support.patch b/patches/server/0008-Fakeplayer-support.patch index 8008d00b..e262ec88 100644 --- a/patches/server/0008-Fakeplayer-support.patch +++ b/patches/server/0008-Fakeplayer-support.patch @@ -285,6 +285,22 @@ index 706b354ac9a1a6a4a1e61b2a109180d1dd22bbbd..f13f21dbd50f63a71276837abbcf82e0 private boolean tryItemClickBehaviourOverride(Player player, ClickAction clickType, Slot slot, ItemStack stack, ItemStack cursorStack) { FeatureFlagSet featureflagset = player.level().enabledFeatures(); +diff --git a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java +index dfeb3e336e06ef01f5401a362755030db942bb07..c51413bf02b3572a05f09d2f0d02493db29a0df7 100644 +--- a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java ++++ b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java +@@ -68,6 +68,11 @@ public class PhantomSpawner implements CustomSpawner { + ServerStatsCounter serverstatisticmanager = entityplayer.getStats(); + int j = Mth.clamp(serverstatisticmanager.getValue(Stats.CUSTOM.get(Stats.TIME_SINCE_REST)), 1, Integer.MAX_VALUE); + boolean flag2 = true; ++ // Leaves start - fakeplayer spawn ++ if (top.leavesmc.leaves.LeavesConfig.fakeplayerSpawnPhantom && entityplayer instanceof top.leavesmc.leaves.bot.ServerBot) { ++ j = world.paperConfig().entities.behavior.playerInsomniaStartTicks + 1; ++ } ++ // Leaves end - fakeplayer spawn + + if (randomsource.nextInt(j) >= world.paperConfig().entities.behavior.playerInsomniaStartTicks) { // Paper + BlockPos blockposition1 = blockposition.above(20 + randomsource.nextInt(15)).east(-10 + randomsource.nextInt(21)).south(-10 + randomsource.nextInt(21)); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java index 92361a187454a7e62a35cff657dcf748b6d34613..82194109e10772eafb905c6d3b6c3cc2032331b9 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -345,7 +361,7 @@ index 2dbe8b870fd39b4d22e9725912f443757ae70761..8388c2a56cbe531cf5f60a18866c85fa } // Water Animals diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java -index da736450a6abc10d800f7d2ef97bfc33b2b9b814..25c1ffac09406a21b80c56b4ef0c750f1e81679e 100644 +index c02c51f824be1173d24b20394b5855fc857fc0a4..8b19b4c7d3d14d57a2eb3674b63ff352b0fe83bd 100644 --- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java +++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java @@ -8,6 +8,9 @@ import org.bukkit.command.Command; @@ -839,10 +855,10 @@ index 0000000000000000000000000000000000000000..9fce8c91bf0c211c2d87993cc0e2d4e8 +} diff --git a/src/main/java/top/leavesmc/leaves/bot/BotStatsCounter.java b/src/main/java/top/leavesmc/leaves/bot/BotStatsCounter.java new file mode 100644 -index 0000000000000000000000000000000000000000..07b688d376a4af88305e57519a5ae983ed7d91d3 +index 0000000000000000000000000000000000000000..c3f114fba0759221b5fea0ccc4862f0579260cef --- /dev/null +++ b/src/main/java/top/leavesmc/leaves/bot/BotStatsCounter.java -@@ -0,0 +1,33 @@ +@@ -0,0 +1,38 @@ +package top.leavesmc.leaves.bot; + +import com.mojang.datafixers.DataFixer; @@ -875,6 +891,11 @@ index 0000000000000000000000000000000000000000..07b688d376a4af88305e57519a5ae983 + public void parseLocal(DataFixer dataFixer, String json) { + + } ++ ++ @Override ++ public int getValue(Stat stat) { ++ return 0; ++ } +} diff --git a/src/main/java/top/leavesmc/leaves/bot/BotUtil.java b/src/main/java/top/leavesmc/leaves/bot/BotUtil.java new file mode 100644 diff --git a/patches/server/0019-Multithreaded-Tracker.patch b/patches/server/0019-Multithreaded-Tracker.patch index 290d162e..993ede68 100644 --- a/patches/server/0019-Multithreaded-Tracker.patch +++ b/patches/server/0019-Multithreaded-Tracker.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Multithreaded Tracker This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java -index cfe51379e2006bb74f7ec40572e04e07ef003ced..0ad51311b41c2a002ae6d3c5b263cd9a6c304944 100644 +index 8b19b4c7d3d14d57a2eb3674b63ff352b0fe83bd..1db1d2ac599c561d86716de0ce58712a63658fe3 100644 --- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java +++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java -@@ -257,7 +257,7 @@ public final class LeavesConfig { +@@ -259,7 +259,7 @@ public final class LeavesConfig { dontSendUselessEntityPackets = getBoolean("settings.performance.dont-send-useless-entity-packets", dontSendUselessEntityPackets); } diff --git a/patches/server/0037-Async-Pathfinding.patch b/patches/server/0037-Async-Pathfinding.patch index 02f4f8b2..8fbe697f 100644 --- a/patches/server/0037-Async-Pathfinding.patch +++ b/patches/server/0037-Async-Pathfinding.patch @@ -7,10 +7,10 @@ This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) But Pufferfish patch was ported downstream from the Petal fork diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java -index 0ad51311b41c2a002ae6d3c5b263cd9a6c304944..c29cd78a80182fabd8ef43abf97962857736abb7 100644 +index 1db1d2ac599c561d86716de0ce58712a63658fe3..4a7ac6933e98528db90763426d87682c76b9f50c 100644 --- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java +++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java -@@ -358,7 +358,7 @@ public final class LeavesConfig { +@@ -360,7 +360,7 @@ public final class LeavesConfig { // only config now public static boolean asyncPathfinding = false; private static boolean asyncPathfindingLock = false; diff --git a/patches/server/0052-MC-Technical-Survival-Mode.patch b/patches/server/0052-MC-Technical-Survival-Mode.patch index 66ba41d4..a88eacb0 100644 --- a/patches/server/0052-MC-Technical-Survival-Mode.patch +++ b/patches/server/0052-MC-Technical-Survival-Mode.patch @@ -109,7 +109,7 @@ index 9af07ebff3a510a4e3fc71ab4d08897db02b7299..81eaa7ead4821929f20e4c5fcb822504 entity.spawnReason == org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.CHUNK_GEN)) { continue; diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java -index c707341fd8f878f77c132a5993ae94a18c259711..8545cfdc5a08e3f6f7c9a050867a3b45fd97bf39 100644 +index 4a7ac6933e98528db90763426d87682c76b9f50c..abd00fd34486e9c347773c7d0122cbdd5170c87a 100644 --- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java +++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java @@ -2,6 +2,7 @@ package top.leavesmc.leaves; @@ -120,7 +120,7 @@ index c707341fd8f878f77c132a5993ae94a18c259711..8545cfdc5a08e3f6f7c9a050867a3b45 import net.minecraft.server.MinecraftServer; import org.bukkit.Bukkit; import org.bukkit.command.Command; -@@ -478,6 +479,14 @@ public final class LeavesConfig { +@@ -480,6 +481,14 @@ public final class LeavesConfig { public static void doMcTechnicalMode() { if (mcTechnicalMode) { diff --git a/patches/server/0056-Leaves-Extra-Yggdrasil-Service.patch b/patches/server/0056-Leaves-Extra-Yggdrasil-Service.patch index 273ce37b..3b41ca07 100644 --- a/patches/server/0056-Leaves-Extra-Yggdrasil-Service.patch +++ b/patches/server/0056-Leaves-Extra-Yggdrasil-Service.patch @@ -31,7 +31,7 @@ index dae36c6452ccd57a436dd918547b64d59957ab0a..973ecf723e4239307600b42f2d12c264 String s = (String) Optional.ofNullable((String) optionset.valueOf("world")).orElse(dedicatedserversettings.getProperties().levelName); LevelStorageSource convertable = LevelStorageSource.createDefault(file.toPath()); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 532611ad19401717bf28f6aac7c88f5769ed563a..bd12bc1aabc9fa079b0f46350386a53475ef75be 100644 +index c748b29bf2d4382215bffd41854f70fd15f9411e..43638595413bbcc5dcaf04daa8c1df05c42c9f4f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -264,7 +264,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop