From 20484be678bd450d6b81eddd89ca713b11d6e8c4 Mon Sep 17 00:00:00 2001 From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> Date: Mon, 17 Jun 2024 16:02:53 +0300 Subject: [PATCH] 33/50 patches --- .../0024-Don-t-save-Fireworks.patch} | 4 +- .../0025-Remove-Spigot-tick-limiter.patch} | 12 +- .../0026-Make-entity-goals-public.patch} | 36 +- .../0027-Optimize-Paper-Event-Manager.patch} | 0 .../0028-Delete-Timings.patch} | 516 ++---------------- .../0029-Fix-sprint-glitch.patch} | 4 +- .../0030-Boat-Settings.patch} | 18 +- ...pawn-shulker-bullets-on-owner-death.patch} | 4 +- .../0032-Reduce-sensor-work.patch} | 4 +- .../0033-Snowball-and-Egg-knockback.patch} | 4 +- 10 files changed, 80 insertions(+), 522 deletions(-) rename patches/{unapplied/server/0007-Don-t-save-Fireworks.patch => server/0024-Don-t-save-Fireworks.patch} (91%) rename patches/{unapplied/server/0015-Remove-Spigot-tick-limiter.patch => server/0025-Remove-Spigot-tick-limiter.patch} (86%) rename patches/{unapplied/server/0020-Make-entity-goals-public.patch => server/0026-Make-entity-goals-public.patch} (81%) rename patches/{unapplied/server/0019-Optimize-Paper-Event-Manager.patch => server/0027-Optimize-Paper-Event-Manager.patch} (100%) rename patches/{unapplied/server/0035-Delete-Timings.patch => server/0028-Delete-Timings.patch} (65%) rename patches/{unapplied/server/0037-Fix-sprint-glitch.patch => server/0029-Fix-sprint-glitch.patch} (83%) rename patches/{unapplied/server/0016-Boat-Settings.patch => server/0030-Boat-Settings.patch} (67%) rename patches/{unapplied/server/0017-Despawn-shulker-bullets-on-owner-death.patch => server/0031-Despawn-shulker-bullets-on-owner-death.patch} (93%) rename patches/{unapplied/server/0018-Reduce-sensor-work.patch => server/0032-Reduce-sensor-work.patch} (93%) rename patches/{unapplied/server/0031-Snowball-and-Egg-knockback.patch => server/0033-Snowball-and-Egg-knockback.patch} (96%) diff --git a/patches/unapplied/server/0007-Don-t-save-Fireworks.patch b/patches/server/0024-Don-t-save-Fireworks.patch similarity index 91% rename from patches/unapplied/server/0007-Don-t-save-Fireworks.patch rename to patches/server/0024-Don-t-save-Fireworks.patch index 1a82585..827ad1f 100644 --- a/patches/unapplied/server/0007-Don-t-save-Fireworks.patch +++ b/patches/server/0024-Don-t-save-Fireworks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't save Fireworks diff --git a/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java b/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java -index 6671796d292fbc922a94271136f5a7a4bbdedaca..768daecf46aa77089ed7e0c4b0f5cfbf479d8d4e 100644 +index 09d465947a5720e05c350d455c86002682104079..846d8d33eb0f5bb98848b9f3a9e8ab4f46bab984 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java +++ b/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java -@@ -345,6 +345,13 @@ public class FireworkRocketEntity extends Projectile implements ItemSupplier { +@@ -347,6 +347,13 @@ public class FireworkRocketEntity extends Projectile implements ItemSupplier { return false; } diff --git a/patches/unapplied/server/0015-Remove-Spigot-tick-limiter.patch b/patches/server/0025-Remove-Spigot-tick-limiter.patch similarity index 86% rename from patches/unapplied/server/0015-Remove-Spigot-tick-limiter.patch rename to patches/server/0025-Remove-Spigot-tick-limiter.patch index 41f3fe5..872d818 100644 --- a/patches/unapplied/server/0015-Remove-Spigot-tick-limiter.patch +++ b/patches/server/0025-Remove-Spigot-tick-limiter.patch @@ -7,10 +7,10 @@ Original code by Titaniumtown, modified by NONPLAYT You can find the original code on https://gitlab.com/Titaniumtown/JettPack diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 63629a36572cd83977886c016084fd5ebefab65c..0d2cc738559e8b241539b49a35195291e78a54f2 100644 +index 721fe9c6c3a6700d5d91d4078bfd79dd01ef32f3..975cd21cfe3199a3cf29439443c85d3f4ac5140e 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -176,8 +176,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -177,8 +177,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl public final DivineWorldConfig divinemcConfig; // DivineMC public final co.aikar.timings.WorldTimingsHandler timings; // Paper public static BlockPos lastPhysicsProblem; // Spigot @@ -19,17 +19,17 @@ index 63629a36572cd83977886c016084fd5ebefab65c..0d2cc738559e8b241539b49a35195291 private int tileTickPosition; public final Map explosionDensityCache = new HashMap<>(); // Paper - Optimize explosions public java.util.ArrayDeque redstoneUpdateInfos; // Paper - Faster redstone torch rapid clock removal; Move from Map in BlockRedstoneTorch to here -@@ -334,8 +332,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -387,8 +385,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl }); // CraftBukkit end this.timings = new co.aikar.timings.WorldTimingsHandler(this); // Paper - code below can generate new world and access timings - this.entityLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.entityMaxTickTime); - this.tileLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.tileMaxTickTime); + this.entityLookup = new ca.spottedleaf.moonrise.patches.chunk_system.level.entity.dfl.DefaultEntityLookup(this); // Paper - rewrite chunk system this.chunkPacketBlockController = this.paperConfig().anticheat.antiXray.enabled ? new com.destroystokyo.paper.antixray.ChunkPacketBlockControllerAntiXray(this, executor) : com.destroystokyo.paper.antixray.ChunkPacketBlockController.NO_OPERATION_INSTANCE; // Paper - Anti-Xray - // Paper start - optimise collisions - this.minSection = io.papermc.paper.util.WorldUtil.getMinSection(this); + } diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java -index f9ba24d32f4170c641e420991e6c358f6bd91be2..8b6de4295172dfa7eb33a20a822923e7a4954812 100644 +index 77beb2258b3e16860f005d6ce1280d7fa4c80961..8c01958a7f1b1250b4e627be867f0f44b5177485 100644 --- a/src/main/java/org/spigotmc/SpigotWorldConfig.java +++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java @@ -452,6 +452,7 @@ public class SpigotWorldConfig diff --git a/patches/unapplied/server/0020-Make-entity-goals-public.patch b/patches/server/0026-Make-entity-goals-public.patch similarity index 81% rename from patches/unapplied/server/0020-Make-entity-goals-public.patch rename to patches/server/0026-Make-entity-goals-public.patch index 5634879..f05fe70 100644 --- a/patches/unapplied/server/0020-Make-entity-goals-public.patch +++ b/patches/server/0026-Make-entity-goals-public.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Make entity goals public diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java -index 539170813921de2dfcd7ef84dd7512d73cd27e68..b5609aae461d7b9353287d99a6ebe517e2b3b82e 100644 +index 0422c4184c4823b8572afd398ef96fc6054e8485..97bb41ada82bd70fefb2d84aacaa33f665a56133 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java -@@ -757,7 +757,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { +@@ -768,7 +768,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { this.hivePos = pos; } @@ -17,7 +17,7 @@ index 539170813921de2dfcd7ef84dd7512d73cd27e68..b5609aae461d7b9353287d99a6ebe517 private static final int MIN_POLLINATION_TICKS = 400; private static final int MIN_FIND_FLOWER_RETRY_COOLDOWN = 20; -@@ -946,7 +946,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { +@@ -957,7 +957,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { } } @@ -26,7 +26,7 @@ index 539170813921de2dfcd7ef84dd7512d73cd27e68..b5609aae461d7b9353287d99a6ebe517 BeeLookControl(final Mob entity) { super(entity); -@@ -982,7 +982,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { +@@ -993,7 +993,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { } } @@ -35,7 +35,7 @@ index 539170813921de2dfcd7ef84dd7512d73cd27e68..b5609aae461d7b9353287d99a6ebe517 BeeEnterHiveGoal() { super(); -@@ -1025,7 +1025,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { +@@ -1036,7 +1036,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { } } @@ -44,7 +44,7 @@ index 539170813921de2dfcd7ef84dd7512d73cd27e68..b5609aae461d7b9353287d99a6ebe517 BeeLocateHiveGoal() { super(); -@@ -1257,7 +1257,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { +@@ -1268,7 +1268,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { } } @@ -53,7 +53,7 @@ index 539170813921de2dfcd7ef84dd7512d73cd27e68..b5609aae461d7b9353287d99a6ebe517 static final int GROW_CHANCE = 30; -@@ -1321,7 +1321,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { +@@ -1332,7 +1332,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { } } @@ -62,7 +62,7 @@ index 539170813921de2dfcd7ef84dd7512d73cd27e68..b5609aae461d7b9353287d99a6ebe517 private static final int WANDER_THRESHOLD = 22; -@@ -1368,7 +1368,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { +@@ -1379,7 +1379,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { } } @@ -71,7 +71,7 @@ index 539170813921de2dfcd7ef84dd7512d73cd27e68..b5609aae461d7b9353287d99a6ebe517 BeeHurtByOtherGoal(final Bee entitybee) { super(entitybee); -@@ -1388,7 +1388,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { +@@ -1399,7 +1399,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { } } @@ -80,7 +80,7 @@ index 539170813921de2dfcd7ef84dd7512d73cd27e68..b5609aae461d7b9353287d99a6ebe517 BeeBecomeAngryTargetGoal(Bee bee) { // Objects.requireNonNull(entitybee); // CraftBukkit - decompile error -@@ -1419,7 +1419,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { +@@ -1430,7 +1430,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { } } @@ -90,10 +90,10 @@ index 539170813921de2dfcd7ef84dd7512d73cd27e68..b5609aae461d7b9353287d99a6ebe517 BaseBeeGoal() {} diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java -index 3e1345f1c534320e07820d573f5c8dba49746425..26ddab27ac1ca1902f849f98d000ffb801610691 100644 +index 80c67e2eb79f47fec6cd9456f691ea03fec361dd..bc5df96aadb5230a99d983933a6cbe39154b0123 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java -@@ -575,7 +575,7 @@ public class Cat extends TamableAnimal implements VariantHolder, String> taskNameCache = new MapMaker().weakKeys().makeMap(); -- -- private MinecraftTimings() {} -- -- public static Timing getInternalTaskName(String taskName) { -- return Timings.ofSafe(taskName); -- } -- -- /** -- * Gets a timer associated with a plugins tasks. -- * @param bukkitTask -- * @param period -- * @return -- */ -- public static Timing getPluginTaskTimings(BukkitTask bukkitTask, long period) { -- if (!bukkitTask.isSync()) { -- return NullTimingHandler.NULL; -- } -- Plugin plugin; -- -- CraftTask craftTask = (CraftTask) bukkitTask; -- -- final Class taskClass = craftTask.getTaskClass(); -- if (bukkitTask.getOwner() != null) { -- plugin = bukkitTask.getOwner(); -- } else { -- plugin = TimingsManager.getPluginByClassloader(taskClass); -- } -- -- final String taskname = taskNameCache.computeIfAbsent(taskClass, clazz -> { -- try { -- String clsName = !clazz.isMemberClass() -- ? clazz.getName() -- : clazz.getCanonicalName(); -- if (clsName != null && clsName.contains("$Lambda$")) { -- clsName = clsName.replaceAll("(Lambda\\$.*?)/.*", "$1"); -- } -- return clsName != null ? clsName : "UnknownTask"; -- } catch (Throwable ex) { -- new Exception("Error occurred detecting class name", ex).printStackTrace(); -- return "MangledClassFile"; -- } -- }); -- -- StringBuilder name = new StringBuilder(64); -- name.append("Task: ").append(taskname); -- if (period > 0) { -- name.append(" (interval:").append(period).append(")"); -- } else { -- name.append(" (Single)"); -- } -- -- if (plugin == null) { -- return Timings.ofSafe(null, name.toString()); -- } -- -- return Timings.ofSafe(plugin, name.toString()); -- } -- -- /** -- * Get a named timer for the specified entity type to track type specific timings. -- * @param entityType -- * @return -- */ -- public static Timing getEntityTimings(String entityType, String type) { -- return Timings.ofSafe("Minecraft", "## tickEntity - " + entityType + " - " + type, tickEntityTimer); -- } -- -- public static Timing getBehaviorTimings(String type) { -- return Timings.ofSafe("## Behavior - " + type); -- } -- -- public static Timing getSensorTimings(String type, int rate) { -- return Timings.ofSafe("## Sensor - " + type + " (Default rate: " + rate + ")"); -- } -- -- /** -- * Get a named timer for the specified tile entity type to track type specific timings. -- * @param entity -- * @return -- */ -- public static Timing getTileEntityTimings(BlockEntity entity) { -- String entityType = entity.getClass().getName(); -- return Timings.ofSafe("Minecraft", "## tickTileEntity - " + entityType, tickTileEntityTimer); -- } -- public static Timing getCancelTasksTimer() { -- return Timings.ofSafe("Cancel Tasks"); -- } -- public static Timing getCancelTasksTimer(Plugin plugin) { -- return Timings.ofSafe(plugin, "Cancel Tasks"); -- } -- -- public static void stopServer() { -- TimingsManager.stopServer(); -- } -- -- public static Timing getBlockTiming(Block block) { -- return Timings.ofSafe("## Scheduled Block: " + block.toString(), scheduledBlocksTimer); -- } --/* -- public static Timing getStructureTiming(StructureGenerator structureGenerator) { -- return Timings.ofSafe("Structure Generator - " + structureGenerator.getName(), structureGenerationTimer); -- }*/ -- -- public static Timing getPacketTiming(Packet packet) { -- return Timings.ofSafe("## Packet - " + packet.getClass().getName(), packetProcessTimer); -- } -- -- public static Timing getCommandFunctionTiming(CommandFunction function) { -- return Timings.ofSafe("Command Function - " + function.id()); -- } -- -- public static void processConfig(GlobalConfiguration.Timings config) { -- TimingsManager.url = config.url; -- if (!TimingsManager.url.endsWith("/")) { -- TimingsManager.url += "/"; -- } -- TimingsManager.privacy = config.serverNamePrivacy; -- if (!config.hiddenConfigEntries.contains("proxies.velocity.secret")) { -- config.hiddenConfigEntries.add("proxies.velocity.secret"); -- } -- TimingsManager.hiddenConfigs.addAll(config.hiddenConfigEntries); -- co.aikar.timings.Timings.setVerboseTimingsEnabled(config.verbose); -- co.aikar.timings.Timings.setTimingsEnabled(config.enabled); -- co.aikar.timings.Timings.setHistoryInterval(config.historyInterval * 20); -- co.aikar.timings.Timings.setHistoryLength(config.historyLength * 20); -- } --} diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java deleted file mode 100644 index 7620c72a4c243cbeea245203ce03a97cbfa7d922..0000000000000000000000000000000000000000 @@ -585,166 +398,6 @@ index 7620c72a4c243cbeea245203ce03a97cbfa7d922..00000000000000000000000000000000 - } - } -} -diff --git a/src/main/java/co/aikar/timings/WorldTimingsHandler.java b/src/main/java/co/aikar/timings/WorldTimingsHandler.java -deleted file mode 100644 -index 22687667ec69a954261e55e59261286ac1b8b8cd..0000000000000000000000000000000000000000 ---- a/src/main/java/co/aikar/timings/WorldTimingsHandler.java -+++ /dev/null -@@ -1,140 +0,0 @@ --package co.aikar.timings; -- --import net.minecraft.server.level.ServerLevel; --import net.minecraft.world.level.Level; --import net.minecraft.world.level.storage.PrimaryLevelData; -- --/** -- * Set of timers per world, to track world specific timings. -- */ --// TODO: Re-implement missing timers --@Deprecated(forRemoval = true) --public class WorldTimingsHandler { -- public final Timing mobSpawn; -- public final Timing doChunkUnload; -- public final Timing doPortalForcer; -- public final Timing scheduledBlocks; -- public final Timing scheduledBlocksCleanup; -- public final Timing scheduledBlocksTicking; -- public final Timing chunkTicks; -- public final Timing lightChunk; -- public final Timing chunkTicksBlocks; -- public final Timing doVillages; -- public final Timing doChunkMap; -- public final Timing doChunkMapUpdate; -- public final Timing doChunkMapToUpdate; -- public final Timing doChunkMapSortMissing; -- public final Timing doChunkMapSortSendToPlayers; -- public final Timing doChunkMapPlayersNeedingChunks; -- public final Timing doChunkMapPendingSendToPlayers; -- public final Timing doChunkMapUnloadChunks; -- public final Timing doChunkGC; -- public final Timing doSounds; -- public final Timing entityRemoval; -- public final Timing entityTick; -- public final Timing tileEntityTick; -- public final Timing tileEntityPending; -- public final Timing tracker1; -- public final Timing tracker2; -- public final Timing doTick; -- public final Timing tickEntities; -- public final Timing chunks; -- public final Timing newEntities; -- public final Timing raids; -- public final Timing chunkProviderTick; -- public final Timing broadcastChunkUpdates; -- public final Timing countNaturalMobs; -- -- public final Timing chunkLoad; -- public final Timing chunkLoadPopulate; -- public final Timing syncChunkLoad; -- public final Timing chunkLoadLevelTimer; -- public final Timing chunkIO; -- public final Timing chunkPostLoad; -- public final Timing worldSave; -- public final Timing worldSaveChunks; -- public final Timing worldSaveLevel; -- public final Timing chunkSaveData; -- -- -- public final Timing miscMobSpawning; -- -- public final Timing poiUnload; -- public final Timing chunkUnload; -- public final Timing poiSaveDataSerialization; -- public final Timing chunkSave; -- public final Timing chunkSaveDataSerialization; -- public final Timing chunkSaveIOWait; -- public final Timing chunkUnloadPrepareSave; -- public final Timing chunkUnloadPOISerialization; -- public final Timing chunkUnloadDataSave; -- -- public WorldTimingsHandler(Level server) { -- String name = ((PrimaryLevelData) server.getLevelData()).getLevelName() + " - "; -- -- mobSpawn = Timings.ofSafe(name + "mobSpawn"); -- doChunkUnload = Timings.ofSafe(name + "doChunkUnload"); -- scheduledBlocks = Timings.ofSafe(name + "Scheduled Blocks"); -- scheduledBlocksCleanup = Timings.ofSafe(name + "Scheduled Blocks - Cleanup"); -- scheduledBlocksTicking = Timings.ofSafe(name + "Scheduled Blocks - Ticking"); -- chunkTicks = Timings.ofSafe(name + "Chunk Ticks"); -- lightChunk = Timings.ofSafe(name + "Light Chunk"); -- chunkTicksBlocks = Timings.ofSafe(name + "Chunk Ticks - Blocks"); -- doVillages = Timings.ofSafe(name + "doVillages"); -- doChunkMap = Timings.ofSafe(name + "doChunkMap"); -- doChunkMapUpdate = Timings.ofSafe(name + "doChunkMap - Update"); -- doChunkMapToUpdate = Timings.ofSafe(name + "doChunkMap - To Update"); -- doChunkMapSortMissing = Timings.ofSafe(name + "doChunkMap - Sort Missing"); -- doChunkMapSortSendToPlayers = Timings.ofSafe(name + "doChunkMap - Sort Send To Players"); -- doChunkMapPlayersNeedingChunks = Timings.ofSafe(name + "doChunkMap - Players Needing Chunks"); -- doChunkMapPendingSendToPlayers = Timings.ofSafe(name + "doChunkMap - Pending Send To Players"); -- doChunkMapUnloadChunks = Timings.ofSafe(name + "doChunkMap - Unload Chunks"); -- doSounds = Timings.ofSafe(name + "doSounds"); -- doChunkGC = Timings.ofSafe(name + "doChunkGC"); -- doPortalForcer = Timings.ofSafe(name + "doPortalForcer"); -- entityTick = Timings.ofSafe(name + "entityTick"); -- entityRemoval = Timings.ofSafe(name + "entityRemoval"); -- tileEntityTick = Timings.ofSafe(name + "tileEntityTick"); -- tileEntityPending = Timings.ofSafe(name + "tileEntityPending"); -- -- chunkLoad = Timings.ofSafe(name + "Chunk Load"); -- chunkLoadPopulate = Timings.ofSafe(name + "Chunk Load - Populate"); -- syncChunkLoad = Timings.ofSafe(name + "Sync Chunk Load"); -- chunkLoadLevelTimer = Timings.ofSafe(name + "Chunk Load - Load Level"); -- chunkIO = Timings.ofSafe(name + "Chunk Load - DiskIO"); -- chunkPostLoad = Timings.ofSafe(name + "Chunk Load - Post Load"); -- worldSave = Timings.ofSafe(name + "World Save"); -- worldSaveLevel = Timings.ofSafe(name + "World Save - Level"); -- worldSaveChunks = Timings.ofSafe(name + "World Save - Chunks"); -- chunkSaveData = Timings.ofSafe(name + "Chunk Save - Data"); -- -- tracker1 = Timings.ofSafe(name + "tracker stage 1"); -- tracker2 = Timings.ofSafe(name + "tracker stage 2"); -- doTick = Timings.ofSafe(name + "doTick"); -- tickEntities = Timings.ofSafe(name + "tickEntities"); -- -- chunks = Timings.ofSafe(name + "Chunks"); -- newEntities = Timings.ofSafe(name + "New entity registration"); -- raids = Timings.ofSafe(name + "Raids"); -- chunkProviderTick = Timings.ofSafe(name + "Chunk provider tick"); -- broadcastChunkUpdates = Timings.ofSafe(name + "Broadcast chunk updates"); -- countNaturalMobs = Timings.ofSafe(name + "Count natural mobs"); -- -- -- miscMobSpawning = Timings.ofSafe(name + "Mob spawning - Misc"); -- -- poiUnload = Timings.ofSafe(name + "Chunk unload - POI"); -- chunkUnload = Timings.ofSafe(name + "Chunk unload - Chunk"); -- poiSaveDataSerialization = Timings.ofSafe(name + "Chunk save - POI Data serialization"); -- chunkSave = Timings.ofSafe(name + "Chunk save - Chunk"); -- chunkSaveDataSerialization = Timings.ofSafe(name + "Chunk save - Chunk Data serialization"); -- chunkSaveIOWait = Timings.ofSafe(name + "Chunk save - Chunk IO Wait"); -- chunkUnloadPrepareSave = Timings.ofSafe(name + "Chunk unload - Async Save Prepare"); -- chunkUnloadPOISerialization = Timings.ofSafe(name + "Chunk unload - POI Data Serialization"); -- chunkUnloadDataSave = Timings.ofSafe(name + "Chunk unload - Data Serialization"); -- } -- -- public static Timing getTickList(ServerLevel worldserver, String timingsType) { -- return Timings.ofSafe(((PrimaryLevelData) worldserver.getLevelData()).getLevelName() + " - Scheduled " + timingsType); -- } --} -diff --git a/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java b/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java -index e1ffd62f4ebceecb9bc5471df3da406cffea0483..5b446e6ac151f99f64f0c442d0b40b5e251bc4c4 100644 ---- a/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java -+++ b/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java -@@ -1316,9 +1316,7 @@ public final class ChunkHolderManager { - } - - public boolean processTicketUpdates() { -- //co.aikar.timings.MinecraftTimings.distanceManagerTick.startTiming(); try { // Paper - add timings for distance manager // Purpur - return this.processTicketUpdates(true, true, null); -- //} finally { co.aikar.timings.MinecraftTimings.distanceManagerTick.stopTiming(); } // Paper - add timings for distance manager // Purpur - } - - private static final ThreadLocal> CURRENT_TICKET_UPDATE_SCHEDULING = new ThreadLocal<>(); diff --git a/src/main/java/io/papermc/paper/command/brigadier/bukkit/BukkitCommandNode.java b/src/main/java/io/papermc/paper/command/brigadier/bukkit/BukkitCommandNode.java index 24121a43aeb5e9bce013f30c92dddd15f99736c6..791cb04a13597eee4dbd28fabe2835ab41eb13f9 100644 --- a/src/main/java/io/papermc/paper/command/brigadier/bukkit/BukkitCommandNode.java @@ -767,7 +420,7 @@ index 24121a43aeb5e9bce013f30c92dddd15f99736c6..791cb04a13597eee4dbd28fabe2835ab String content = context.getRange().get(context.getInput()); String[] args = org.apache.commons.lang3.StringUtils.split(content, ' '); // fix adjacent spaces (from console/plugins) causing empty array elements diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -index 17961dd8fbe306dfcb721db2830f0156db453a62..5dfb0c95642ab2e16501b9f95d96e02354643f34 100644 +index 69fbb3ff023db00fb82a1c0235c05afdacb47abd..9d7f21cbd3ecaf5a4da3dceb43b223ff086b245b 100644 --- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java @@ -1,6 +1,5 @@ @@ -849,11 +502,11 @@ index 097500a59336db1bbfffcd1aa4cff7a8586e46ec..35b00c139864dd7925d46a2d6a317d7e @Override diff --git a/src/main/java/net/minecraft/network/protocol/PacketUtils.java b/src/main/java/net/minecraft/network/protocol/PacketUtils.java -index 8c134a642ccaf3530022f2e675a858d726e1dda4..d6daa27a8d7aca00b181e90d789f4249e8437d29 100644 +index 0c8fe5b2500480c3a9e9ab3285ad22e0e599d953..f7197f1347251a37dd0f6d9ffa2f09bc3a4e1233 100644 --- a/src/main/java/net/minecraft/network/protocol/PacketUtils.java +++ b/src/main/java/net/minecraft/network/protocol/PacketUtils.java -@@ -50,8 +50,7 @@ public class PacketUtils { - try { // Paper - detailed watchdog information +@@ -31,8 +31,7 @@ public class PacketUtils { + engine.executeIfPossible(() -> { if (listener instanceof ServerCommonPacketListenerImpl serverCommonPacketListener && serverCommonPacketListener.processedDisconnect) return; // CraftBukkit - Don't handle sync packets for kicked players if (listener.shouldHandleMessage(packet)) { - co.aikar.timings.Timing timing = co.aikar.timings.MinecraftTimings.getPacketTiming(packet); // Paper - timings @@ -863,7 +516,7 @@ index 8c134a642ccaf3530022f2e675a858d726e1dda4..d6daa27a8d7aca00b181e90d789f4249 } catch (Exception exception) { if (exception instanceof ReportedException) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 105497ecdc207021febc3ba3156d2f9253f906f9..d3ee7a004d17d47b778e85dd655aff931f0f980d 100644 +index 40a4273275822a8b3013807a9dd0716a0c93eaf0..2593d6c62ef8f45d35437cbfdfc938c4fbb4bbaf 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -3,7 +3,6 @@ package net.minecraft.server; @@ -874,16 +527,16 @@ index 105497ecdc207021febc3ba3156d2f9253f906f9..d3ee7a004d17d47b778e85dd655aff93 import com.destroystokyo.paper.event.server.PaperServerListPingEvent; import com.google.common.base.Stopwatch; import com.google.common.collect.Lists; -@@ -190,8 +189,6 @@ import org.bukkit.craftbukkit.CraftRegistry; +@@ -196,8 +195,6 @@ import org.bukkit.craftbukkit.CraftRegistry; import org.bukkit.event.server.ServerLoadEvent; // CraftBukkit end -import co.aikar.timings.MinecraftTimings; // Paper - - public abstract class MinecraftServer extends ReentrantBlockableEventLoop implements ServerInfo, CommandSource, AutoCloseable { + public abstract class MinecraftServer extends ReentrantBlockableEventLoop implements ServerInfo, ChunkIOErrorReporter, CommandSource, AutoCloseable, ca.spottedleaf.moonrise.patches.chunk_system.server.ChunkSystemMinecraftServer { // Paper - rewrite chunk system private static MinecraftServer SERVER; // Paper -@@ -975,7 +972,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop= MAX_CHUNK_EXEC_TIME) { -- if (!moreTasks) { -- lastMidTickExecuteFailure = currTime; -- } -- -- // note: negative values reduce the time -- long overuse = diff - MAX_CHUNK_EXEC_TIME; -- if (overuse >= (10L * 1000L * 1000L)) { // 10ms -- // make sure something like a GC or dumb plugin doesn't screw us over... -- overuse = 10L * 1000L * 1000L; // 10ms -- } -+ for (;;) { -+ boolean moreTasks = this.tickMidTickTasks(); -+ long currTime = System.nanoTime(); -+ long diff = currTime - startTime; - -- double overuseCount = (double)overuse/(double)MAX_CHUNK_EXEC_TIME; -- long extraSleep = (long)Math.round(overuseCount*CHUNK_TASK_QUEUE_BACKOFF_MIN_TIME); -+ if (!moreTasks || diff >= MAX_CHUNK_EXEC_TIME) { -+ if (!moreTasks) { -+ lastMidTickExecuteFailure = currTime; -+ } - -- lastMidTickExecute = currTime + extraSleep; -- return; -+ // note: negative values reduce the time -+ long overuse = diff - MAX_CHUNK_EXEC_TIME; -+ if (overuse >= (10L * 1000L * 1000L)) { // 10ms -+ // make sure something like a GC or dumb plugin doesn't screw us over... -+ overuse = 10L * 1000L * 1000L; // 10ms - } -+ -+ double overuseCount = (double)overuse/(double)MAX_CHUNK_EXEC_TIME; -+ long extraSleep = (long)Math.round(overuseCount*CHUNK_TASK_QUEUE_BACKOFF_MIN_TIME); -+ -+ lastMidTickExecute = currTime + extraSleep; -+ return; - } -- } finally { -- // co.aikar.timings.MinecraftTimings.midTickChunkTasks.stopTiming(); // Purpur - } - } - // Paper end - execute chunk tasks mid tick -@@ -1589,15 +1580,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { // Paper - Ensure main -- //MinecraftTimings.savePlayers.startTiming(); // Paper // Purpur - int numSaved = 0; - long now = MinecraftServer.currentTick; - for (int i = 0; i < this.players.size(); ++i) { -@@ -1284,7 +1282,6 @@ public abstract class PlayerList { - } - // Paper end - Incremental chunk and player saving - } -- //MinecraftTimings.savePlayers.stopTiming(); // Paper // Purpur - return null; }); // Paper - ensure main - } - diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index 8120f39a9689dae1233b243b74825e9ff110eac3..4203dae9628b0576cc0b9a9160dca985b5fb0ef2 100644 +index b4f4addfd35a1961a237fc0ab83e6285a0faeaee..bdb70ffc77e763d449f4f550701900b06bd28f39 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java @@ -354,10 +354,6 @@ public class EntityType implements FeatureElement, EntityTypeT @@ -1115,10 +699,10 @@ index 8120f39a9689dae1233b243b74825e9ff110eac3..4203dae9628b0576cc0b9a9160dca985 return this != EntityType.PLAYER && this != EntityType.LLAMA_SPIT && this != EntityType.WITHER && this != EntityType.BAT && this != EntityType.ITEM_FRAME && this != EntityType.GLOW_ITEM_FRAME && this != EntityType.LEASH_KNOT && this != EntityType.PAINTING && this != EntityType.END_CRYSTAL && this != EntityType.EVOKER_FANGS; } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index def38ac6896ccdd7bab344cec13c76d74817e001..e79bab8808b113c36b3e89c977d067877b2bdd4f 100644 +index 6aaee520213e576f131db430bd4d6df1b34ba197..a16ebe81ade583ff45c605e07a11d820557c3e77 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -150,8 +150,6 @@ import org.bukkit.event.entity.EntityTeleportEvent; +@@ -157,8 +157,6 @@ import org.bukkit.event.entity.EntityTeleportEvent; import org.bukkit.event.player.PlayerItemConsumeEvent; // CraftBukkit end @@ -1168,10 +752,10 @@ index 09a7b418ddf564c0be13297f7c216db2e7ae1578..1e26b1099139d76e49fce14ee72061e1 this.scanRate = senseInterval; this.timeToTick = (long)RANDOM.nextInt(senseInterval); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 0d2cc738559e8b241539b49a35195291e78a54f2..d58e039f11670a0c1e6e999c1738020e752f434a 100644 +index 975cd21cfe3199a3cf29439443c85d3f4ac5140e..6cd892728effd3454df6799c34fb8820c980934d 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -174,7 +174,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -175,7 +175,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray public final org.purpurmc.purpur.PurpurWorldConfig purpurConfig; // Purpur public final DivineWorldConfig divinemcConfig; // DivineMC @@ -1179,15 +763,15 @@ index 0d2cc738559e8b241539b49a35195291e78a54f2..d58e039f11670a0c1e6e999c1738020e public static BlockPos lastPhysicsProblem; // Spigot private int tileTickPosition; public final Map explosionDensityCache = new HashMap<>(); // Paper - Optimize explosions -@@ -331,7 +330,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -384,7 +383,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl public void onBorderSetDamageSafeZOne(WorldBorder border, double safeZoneRadius) {} }); // CraftBukkit end - this.timings = new co.aikar.timings.WorldTimingsHandler(this); // Paper - code below can generate new world and access timings + this.entityLookup = new ca.spottedleaf.moonrise.patches.chunk_system.level.entity.dfl.DefaultEntityLookup(this); // Paper - rewrite chunk system this.chunkPacketBlockController = this.paperConfig().anticheat.antiXray.enabled ? new com.destroystokyo.paper.antixray.ChunkPacketBlockControllerAntiXray(this, executor) : com.destroystokyo.paper.antixray.ChunkPacketBlockController.NO_OPERATION_INSTANCE; // Paper - Anti-Xray - // Paper start - optimise collisions - this.minSection = io.papermc.paper.util.WorldUtil.getMinSection(this); -@@ -1334,9 +1332,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { + } +@@ -1018,9 +1016,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl } this.blockEntityTickers.removeAll(toRemove); // Paper - Fix MC-117075 @@ -1198,10 +782,10 @@ index 0d2cc738559e8b241539b49a35195291e78a54f2..d58e039f11670a0c1e6e999c1738020e this.spigotConfig.currentPrimedTnt = 0; // Spigot } diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index 5ae3decf100d21f7d4a471c155eaf5e00e996580..22d38bd7a8434685f2af084f1c608f48e9e6c0c2 100644 +index daad0d67428bb49d7f0b37bec430ceb0d30564cf..df17fcc62049c2527ab31afbb14e582009f486c8 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java -@@ -107,13 +107,6 @@ public class Block extends BlockBehaviour implements ItemLike { +@@ -106,13 +106,6 @@ public class Block extends BlockBehaviour implements ItemLike { this != Blocks.STRUCTURE_BLOCK && this != Blocks.JIGSAW; } @@ -1234,32 +818,6 @@ index cd0e43f4c53a746dd6183a8406269f9b11ad3571..54657ac895fb2fa9c58910d5421f0082 // CraftBukkit start - data containers private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry(); public CraftPersistentDataContainer persistentDataContainer; -diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 6aff380ee0224a438b36fa83cfbede4b57996d06..e8fa33e0c8a8d9847218a45e9aceba3b88aee4f1 100644 ---- a/src/main/java/org/bukkit/craftbukkit/Main.java -+++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -362,8 +362,10 @@ public class Main { - tryPreloadClass("org.jline.terminal.impl.MouseSupport"); - tryPreloadClass("org.jline.terminal.impl.MouseSupport$1"); - tryPreloadClass("org.jline.terminal.Terminal$MouseTracking"); -- tryPreloadClass("co.aikar.timings.TimingHistory"); -- tryPreloadClass("co.aikar.timings.TimingHistory$MinuteReport"); -+ // DivineMC start - Delete Timings -+ // tryPreloadClass("co.aikar.timings.TimingHistory"); -+ // tryPreloadClass("co.aikar.timings.TimingHistory$MinuteReport"); -+ // DivineMC end - tryPreloadClass("io.netty.channel.AbstractChannelHandlerContext"); - tryPreloadClass("io.netty.channel.AbstractChannelHandlerContext$11"); - tryPreloadClass("io.netty.channel.AbstractChannelHandlerContext$12"); -@@ -376,7 +378,7 @@ public class Main { - tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$1"); - tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$2"); - tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$3"); -- tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$4"); -+ // tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$4"); // DivineMC - Delete Timings - tryPreloadClass("org.slf4j.helpers.MessageFormatter"); - tryPreloadClass("org.slf4j.helpers.FormattingTuple"); - tryPreloadClass("org.slf4j.helpers.BasicMarker"); diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java index e68e13ac375a6418ad0785bc1c0f20af72bf6cf5..e51a9ec41054750c38f95b06881980842c2c57f3 100644 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java @@ -1355,7 +913,7 @@ index d3ec817e95628f1fc8be4a29c9a0f13c7d5fd552..e9798517b9211c50a20ea5c69603aab3 } } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index e29826bdfcdde938c1e1ea4092efccda13f52218..a59e3de2e82ac6feecb34babb60c4192596e7ef7 100644 +index dcf90f04aec8e703d34357db569141aa3ccae35a..ff5cf90fe4ff572aa4ee3b4abc97d93828737fe4 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -220,7 +220,7 @@ public final class CraftMagicNumbers implements UnsafeValues { @@ -1377,7 +935,7 @@ index e29826bdfcdde938c1e1ea4092efccda13f52218..a59e3de2e82ac6feecb34babb60c4192 @Override diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index f7644c5045b1accae4c0aaf44df26286c6cc5125..57d424d69c4fa761e673b649ce7777b6f86634e5 100644 +index 1e8100be8d443d43e99e0c5f777e20872f6e1a7f..fd8e534a790b622d83aeac8e198d06a374a6a1c2 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -34,7 +34,6 @@ import net.minecraft.world.entity.projectile.FireworkRocketEntity; diff --git a/patches/unapplied/server/0037-Fix-sprint-glitch.patch b/patches/server/0029-Fix-sprint-glitch.patch similarity index 83% rename from patches/unapplied/server/0037-Fix-sprint-glitch.patch rename to patches/server/0029-Fix-sprint-glitch.patch index acb99b8..475419a 100644 --- a/patches/unapplied/server/0037-Fix-sprint-glitch.patch +++ b/patches/server/0029-Fix-sprint-glitch.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix sprint glitch diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 4a224af1a9063e1617bc6753e063e8e395271ec7..6541fbb1ba6bfb9c2ea207e81049d5062d7d5848 100644 +index a16ebe81ade583ff45c605e07a11d820557c3e77..48cc6ab18ffd5174d5d82a2aad468887abe2ebda 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1452,7 +1452,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1430,7 +1430,7 @@ public abstract class LivingEntity extends Entity implements Attackable { player.setRealHealth(health); } diff --git a/patches/unapplied/server/0016-Boat-Settings.patch b/patches/server/0030-Boat-Settings.patch similarity index 67% rename from patches/unapplied/server/0016-Boat-Settings.patch rename to patches/server/0030-Boat-Settings.patch index 75c3832..f8924cb 100644 --- a/patches/unapplied/server/0016-Boat-Settings.patch +++ b/patches/server/0030-Boat-Settings.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Boat Settings diff --git a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java -index 13e1c7594bf304b35ce8dcab2951329c527d7dea..efb2fac41a546ba312f4925f206f0975a0336406 100644 +index 294b337ebbefa964975988be3a5476b21adced9e..45e803c67339abf9fe0dfc23173263b216ee4cf0 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java -@@ -331,7 +331,18 @@ public class Boat extends VehicleEntity implements VariantHolder { +@@ -335,7 +335,18 @@ public class Boat extends VehicleEntity implements Leashable, VariantHolder= 60.0F) { @@ -28,22 +28,22 @@ index 13e1c7594bf304b35ce8dcab2951329c527d7dea..efb2fac41a546ba312f4925f206f0975 } if (this.getHurtTime() > 0) { -@@ -850,7 +861,13 @@ public class Boat extends VehicleEntity implements VariantHolder { - - @Override +@@ -888,7 +899,13 @@ public class Boat extends VehicleEntity implements Leashable, VariantHolder { +@@ -976,7 +993,13 @@ public class Boat extends VehicleEntity implements Leashable, VariantHolder