diff options
author | Bjarne Koll <[email protected]> | 2024-06-15 23:09:34 +0200 |
---|---|---|
committer | Bjarne Koll <[email protected]> | 2024-06-15 23:17:51 +0200 |
commit | 7df472527f94ee518faa038bdd0168edb6aebada (patch) | |
tree | d25514daa2e7120a8b4821501505c8bc6932e7f9 /patches/server/0993-disable-forced-empty-world-ticks.patch | |
parent | d41636f445de25934198927d2097978cef65b031 (diff) | |
download | Paper-7df472527f94ee518faa038bdd0168edb6aebada.tar.gz Paper-7df472527f94ee518faa038bdd0168edb6aebada.zip |
Configurable damage tick when blocking with shield (#10877)
A long standing bug in spigot and its derivatives was the fact that
players taking damage while blocking with a shield would not receive
invulnerability, while they do in vanilla.
This enabled the pvp technique of disabling a shield and immediately
attacking again to knock a player into the air.
While upstream fixed this and properly aligned itself with vanilla
damage logic (in this specific case) changing such long standing
behaviour has some downsides.
To allow players used to this specific bug to still use it, this patch
introduces a configuration option to re-introduce said bug.
As there is no easy way to *only* re-add this bug, the option is found
in the unsupported section as it may introduce other damage related
disparity from vanilla.
Diffstat (limited to 'patches/server/0993-disable-forced-empty-world-ticks.patch')
-rw-r--r-- | patches/server/0993-disable-forced-empty-world-ticks.patch | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/patches/server/0993-disable-forced-empty-world-ticks.patch b/patches/server/0993-disable-forced-empty-world-ticks.patch new file mode 100644 index 0000000000..e33cae412e --- /dev/null +++ b/patches/server/0993-disable-forced-empty-world-ticks.patch @@ -0,0 +1,19 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Shane Freeder <[email protected]> +Date: Tue, 21 Mar 2023 23:51:46 +0000 +Subject: [PATCH] disable forced empty world ticks + + +diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java +index 37971d9fc59ecf3736fccf7a27f17e37a56efeb9..ec8eec86876221686f152bc5b25304cc59791cac 100644 +--- a/src/main/java/net/minecraft/server/level/ServerLevel.java ++++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +@@ -697,7 +697,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. + + this.handlingTick = false; + gameprofilerfiller.pop(); +- boolean flag1 = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players ++ boolean flag1 = !paperConfig().unsupportedSettings.disableWorldTickingWhenEmpty || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players // Paper - restore this + + if (flag1) { + this.resetEmptyTime(); |