diff --git a/Spigot/SteamWar-Patches/TickFreeze.patch b/Spigot/SteamWar-Patches/TickFreeze.patch index 16bed43..da2c82f 100644 --- a/Spigot/SteamWar-Patches/TickFreeze.patch +++ b/Spigot/SteamWar-Patches/TickFreeze.patch @@ -5,7 +5,7 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP =================================================================== diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java --- a/src/main/java/net/minecraft/server/WorldServer.java (revision 571772e5fd38f66c11220ce29cd15d70e8da46f6) -+++ b/src/main/java/net/minecraft/server/WorldServer.java (date 1639424761201) ++++ b/src/main/java/net/minecraft/server/WorldServer.java (date 1639429464511) @@ -14,38 +14,28 @@ import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; import it.unimi.dsi.fastutil.objects.ObjectIterator; @@ -66,7 +66,15 @@ diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java this.ticking = true; gameprofilerfiller.enter("world border"); -@@ -308,7 +299,7 @@ +@@ -303,12 +294,14 @@ + } + + this.N(); +- this.a(); ++ if (!currentlyFrozen) { ++ this.a(); ++ } + gameprofilerfiller.exitEnter("chunkSource"); this.getChunkProvider().tick(booleansupplier); gameprofilerfiller.exitEnter("tickPending"); timings.doTickPending.startTiming(); // Spigot @@ -75,7 +83,7 @@ diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java this.nextTickListBlock.b(); this.nextTickListFluid.b(); } -@@ -322,7 +313,9 @@ +@@ -322,7 +315,9 @@ gameprofilerfiller.exitEnter("blockEvents"); timings.doSounds.startTiming(); // Spigot @@ -86,15 +94,14 @@ diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java timings.doSounds.stopTiming(); // Spigot this.ticking = false; gameprofilerfiller.exitEnter("entities"); -@@ -332,18 +325,28 @@ +@@ -332,19 +327,28 @@ this.resetEmptyTime(); } + lastFreezed = false; + if (!currentlyFrozen && !physicsTick.isEmpty()) { -+ Map physicsTickList = new LinkedHashMap<>(physicsTick); ++ physicsTick.forEach((blockPosition, runnable) -> runnable.run()); + physicsTick.clear(); -+ physicsTickList.forEach((blockPosition, runnable) -> runnable.run()); + lastFreezed = true; + } + @@ -110,13 +117,14 @@ diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java // CraftBukkit start - Fixed an NPE if (entity == null) { continue; -+ } + } + if (currentlyFrozen && !(entity instanceof EntityPlayer)) { + continue; - } ++ } // CraftBukkit end this.a((entity1) -> { -@@ -415,7 +418,9 @@ + ++entity1.ticksLived; +@@ -415,7 +419,9 @@ gameprofilerfiller.exit(); timings.tickEntities.stopTiming(); // Spigot @@ -127,7 +135,7 @@ diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java } gameprofilerfiller.exit(); -@@ -428,6 +433,7 @@ +@@ -428,6 +434,7 @@ } public void a(Chunk chunk, int i) { @@ -135,7 +143,7 @@ diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java ChunkCoordIntPair chunkcoordintpair = chunk.getPos(); boolean flag = this.isRaining(); int j = chunkcoordintpair.d(); -@@ -584,6 +590,7 @@ +@@ -584,6 +591,7 @@ } private void a(NextTickListEntry nextticklistentry) { @@ -143,7 +151,7 @@ diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java Fluid fluid = this.getFluid(nextticklistentry.a); if (fluid.getType() == nextticklistentry.b()) { -@@ -593,6 +600,7 @@ +@@ -593,6 +601,7 @@ } private void b(NextTickListEntry nextticklistentry) { @@ -151,7 +159,7 @@ diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java IBlockData iblockdata = this.getType(nextticklistentry.a); if (iblockdata.getBlock() == nextticklistentry.b()) { -@@ -602,6 +610,36 @@ +@@ -602,6 +611,36 @@ } public void entityJoinedWorld(Entity entity) { @@ -188,19 +196,6 @@ diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java if (entity instanceof EntityHuman || this.getChunkProvider().a(entity)) { // Spigot start if (!org.spigotmc.ActivationRange.checkIfActive(entity)) { -@@ -1315,6 +1353,12 @@ - - @Override - public void playBlockAction(BlockPosition blockposition, Block block, int i, int j) { -+ if (!currentlyFrozen) { -+ physicsTick.put(blockposition, () -> { -+ this.I.add(new BlockActionData(blockposition, block, i, j)); -+ }); -+ return; -+ } - this.I.add(new BlockActionData(blockposition, block, i, j)); - } - Index: src/main/java/net/minecraft/server/World.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP @@ -208,7 +203,7 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP =================================================================== diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java --- a/src/main/java/net/minecraft/server/World.java (revision 571772e5fd38f66c11220ce29cd15d70e8da46f6) -+++ b/src/main/java/net/minecraft/server/World.java (date 1639417061068) ++++ b/src/main/java/net/minecraft/server/World.java (date 1639428902021) @@ -1,29 +1,23 @@ package net.minecraft.server; @@ -292,22 +287,10 @@ diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/m if (!this.isClientSide) { IBlockData iblockdata = this.getType(blockposition); -@@ -1193,7 +1207,9 @@ - } - - protected void a() { -- this.a(this.worldData.getTime() + 1L); -+ if (!currentlyFrozen) { -+ this.a(this.worldData.getTime() + 1L); -+ } - if (this.worldData.v().getBoolean(GameRules.DO_DAYLIGHT_CYCLE)) { - this.setDayTime(this.worldData.getDayTime() + 1L); - } -@@ -1226,7 +1242,16 @@ +@@ -1226,6 +1240,14 @@ } public void playBlockAction(BlockPosition blockposition, Block block, int i, int j) { -- this.getType(blockposition).a(this, blockposition, i, j); + /* + if (!currentlyFrozen) { + physicsTick.put(blockposition, () -> { @@ -316,8 +299,6 @@ diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/m + return; + } + */ -+ IBlockData iblockdata = this.getType(blockposition); // Block of Position -+ iblockdata.a(this, blockposition, i, j); + this.getType(blockposition).a(this, blockposition, i, j); } - @Override