diff --git a/gradle.properties b/gradle.properties index b72ad73..19171e2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group=org.galemc.gale version=1.20.4-R0.1-SNAPSHOT mcVersion=1.20.4 -paperRef=b3c81089ae26cc3ad2e7388c7b64457f3f83c98a +paperRef=c5d168cef92148a6799141832fdb5f95732c1a38 org.gradle.caching=true org.gradle.parallel=true diff --git a/patches/server/0008-Gale-configuration.patch b/patches/server/0008-Gale-configuration.patch index 214c66f..5b755f4 100644 --- a/patches/server/0008-Gale-configuration.patch +++ b/patches/server/0008-Gale-configuration.patch @@ -188,7 +188,7 @@ index 8f23276796037d048eb114952891a01a40971b3e..ac9ceb54b894119cb30a22d37e035e2c } } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8ad14057e891213d77c5bbd504e53c37ed045559..a6c1bd3c37720ff692fb72c8648c3d2eb9247346 100644 +index e909e960005c512c42c7b8643e8f9241695bb81b..261bc188a5788988f4ad31ab1640798d619e1da7 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -3,9 +3,6 @@ package net.minecraft.server; @@ -351,21 +351,10 @@ index 6934e9dac0d69c043b73b7c46d59f2d39b37c67f..3267978df4039d7b5096eee486d56345 this.convertable = convertable_conversionsession; this.uuid = WorldUUID.getUUID(convertable_conversionsession.levelDirectory.path().toFile()); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 8f437225d2a4e08ca47873cd42277d9f0f9f5529..ebe0bac2593e72b465f61643054f37f35d678672 100644 +index 19f23a6c8fb5c02843c27fb8a242ec9d0d1b538b..c7abd433e70a6479fc81e5bce94144c9479eb372 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1,10 +1,7 @@ - package net.minecraft.world.level; - --import co.aikar.timings.Timing; --import co.aikar.timings.Timings; - import com.destroystokyo.paper.event.server.ServerExceptionEvent; - import com.destroystokyo.paper.exception.ServerInternalException; --import com.google.common.base.MoreObjects; - import com.google.common.collect.Lists; - import com.mojang.serialization.Codec; - import java.io.IOException; -@@ -17,7 +14,6 @@ import java.util.function.Supplier; +@@ -12,7 +12,6 @@ import java.util.function.Supplier; import javax.annotation.Nullable; import net.minecraft.CrashReport; import net.minecraft.CrashReportCategory; @@ -373,7 +362,7 @@ index 8f437225d2a4e08ca47873cd42277d9f0f9f5529..ebe0bac2593e72b465f61643054f37f3 import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Holder; -@@ -47,8 +43,6 @@ import net.minecraft.world.TickRateManager; +@@ -42,8 +41,6 @@ import net.minecraft.world.TickRateManager; import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.damagesource.DamageSources; import net.minecraft.world.entity.Entity; @@ -382,7 +371,7 @@ index 8f437225d2a4e08ca47873cd42277d9f0f9f5529..ebe0bac2593e72b465f61643054f37f3 import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; -@@ -94,17 +88,15 @@ import net.minecraft.network.protocol.game.ClientboundSetBorderSizePacket; +@@ -89,17 +86,15 @@ import net.minecraft.network.protocol.game.ClientboundSetBorderSizePacket; import net.minecraft.network.protocol.game.ClientboundSetBorderWarningDelayPacket; import net.minecraft.network.protocol.game.ClientboundSetBorderWarningDistancePacket; import org.bukkit.Bukkit; @@ -401,7 +390,7 @@ index 8f437225d2a4e08ca47873cd42277d9f0f9f5529..ebe0bac2593e72b465f61643054f37f3 // CraftBukkit end public abstract class Level implements LevelAccessor, AutoCloseable { -@@ -176,6 +168,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -171,6 +166,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return this.paperConfig; } // Paper end - add paper world config @@ -414,7 +403,7 @@ index 8f437225d2a4e08ca47873cd42277d9f0f9f5529..ebe0bac2593e72b465f61643054f37f3 public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray public final co.aikar.timings.WorldTimingsHandler timings; // Paper -@@ -212,9 +210,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -207,9 +208,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public abstract ResourceKey getTypeKey(); @@ -427,7 +416,7 @@ index 8f437225d2a4e08ca47873cd42277d9f0f9f5529..ebe0bac2593e72b465f61643054f37f3 this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index e99f88383565a5498584a00d583d2a114dd087ed..8116b55cf34a97979d94494055bb67a651c9eeb3 100644 +index f01064ddfc1e96fab1d9e42326eb537911102003..6b2632f5e3f01f3c8c350775595d8b77930bf15e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1037,6 +1037,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0017-Remove-vanilla-profiler.patch b/patches/server/0017-Remove-vanilla-profiler.patch index 5745283..44e5fcf 100644 --- a/patches/server/0017-Remove-vanilla-profiler.patch +++ b/patches/server/0017-Remove-vanilla-profiler.patch @@ -167,7 +167,7 @@ index 821dc4aeaf48460000682604fba51b340b9738e7..4f4540ed9b3e603eec0d46fb5b58de24 } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 216cbb87356fd98ec7015cd31b0fde860ea92672..377cf883f6a78d3d2ccbbcae451d1358295b20c8 100644 +index 4919e1f741e4b1680cb9e3736d8096616adb6def..6f3d488fda697299f604e813b8eaa06ed9de828f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -106,18 +106,9 @@ import net.minecraft.util.RandomSource; @@ -312,7 +312,7 @@ index 216cbb87356fd98ec7015cd31b0fde860ea92672..377cf883f6a78d3d2ccbbcae451d1358 // CraftBukkit start @@ -1702,19 +1658,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper - Add EntityMoveEvent + worldserver.updateLagCompensationTick(); // Paper - lag compensation - this.profiler.push(() -> { - return worldserver + " " + worldserver.dimension().location(); @@ -1096,7 +1096,7 @@ index 7ab57748b2f2aea1003d9b7e70e76c372aa1e432..47e75ec4a01f8a456ec6ebc13031c1f0 } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2c06f3ebf7e1069727387bfc60db30c958c14b5a..df915549b366d25727ac9c6ff4e9521927ad50c8 100644 +index 9ee1e3da1cb16291ff3e37829e25227a6b97a177..e99b48b0a707a008f2074b954bc4c852cf32e305 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -820,7 +820,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1211,10 +1211,10 @@ index 2c06f3ebf7e1069727387bfc60db30c958c14b5a..df915549b366d25727ac9c6ff4e95219 } } else { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 6071451339080bbdd98fb634791a56988984c8bc..0c82be4f9dc6886c19b0f2edca019f7e6ffff6c2 100644 +index 6523795e715e5d472739e9bc6433143115c3de8f..d047eef2748c0e263a708391678b719a7bf4ffce 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -404,7 +404,6 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -403,7 +403,6 @@ public abstract class LivingEntity extends Entity implements Attackable { } super.baseTick(); @@ -1222,7 +1222,7 @@ index 6071451339080bbdd98fb634791a56988984c8bc..0c82be4f9dc6886c19b0f2edca019f7e if (this.fireImmune() || this.level().isClientSide) { this.clearFire(); } -@@ -506,7 +505,6 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -505,7 +504,6 @@ public abstract class LivingEntity extends Entity implements Attackable { this.yHeadRotO = this.yHeadRot; this.yRotO = this.getYRot(); this.xRotO = this.getXRot(); @@ -1230,7 +1230,7 @@ index 6071451339080bbdd98fb634791a56988984c8bc..0c82be4f9dc6886c19b0f2edca019f7e } public boolean canSpawnSoulSpeedParticle() { -@@ -3075,10 +3073,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3076,10 +3074,7 @@ public abstract class LivingEntity extends Entity implements Attackable { } this.run += (f3 - this.run) * 0.3F; @@ -1241,7 +1241,7 @@ index 6071451339080bbdd98fb634791a56988984c8bc..0c82be4f9dc6886c19b0f2edca019f7e // Paper start - stop large pitch and yaw changes from crashing the server this.yRotO += Math.round((this.getYRot() - this.yRotO) / 360.0F) * 360.0F; -@@ -3090,7 +3085,6 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3091,7 +3086,6 @@ public abstract class LivingEntity extends Entity implements Attackable { this.yHeadRotO += Math.round((this.yHeadRot - this.yHeadRotO) / 360.0F) * 360.0F; // Paper end @@ -1249,7 +1249,7 @@ index 6071451339080bbdd98fb634791a56988984c8bc..0c82be4f9dc6886c19b0f2edca019f7e this.animStep += f2; if (this.isFallFlying()) { ++this.fallFlyTicks; -@@ -3385,19 +3379,14 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3386,19 +3380,14 @@ public abstract class LivingEntity extends Entity implements Attackable { } this.setDeltaMovement(d0, d1, d2); @@ -1269,7 +1269,7 @@ index 6071451339080bbdd98fb634791a56988984c8bc..0c82be4f9dc6886c19b0f2edca019f7e if (this.jumping && this.isAffectedByFluids()) { double d3; -@@ -3424,8 +3413,6 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3425,8 +3414,6 @@ public abstract class LivingEntity extends Entity implements Attackable { this.noJumpDelay = 0; } @@ -1278,7 +1278,7 @@ index 6071451339080bbdd98fb634791a56988984c8bc..0c82be4f9dc6886c19b0f2edca019f7e this.xxa *= 0.98F; this.zza *= 0.98F; this.updateFallFlying(); -@@ -3452,8 +3439,6 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3453,8 +3440,6 @@ public abstract class LivingEntity extends Entity implements Attackable { this.travel(vec3d1); } @@ -1287,7 +1287,7 @@ index 6071451339080bbdd98fb634791a56988984c8bc..0c82be4f9dc6886c19b0f2edca019f7e if (!this.level().isClientSide && !this.isDeadOrDying() && !this.freezeLocked) { // Paper - Freeze Tick Lock API int i = this.getTicksFrozen(); -@@ -3470,15 +3455,12 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3471,15 +3456,12 @@ public abstract class LivingEntity extends Entity implements Attackable { this.hurt(this.damageSources().freeze(), 1.0F); } @@ -1737,10 +1737,10 @@ index 28ef910885dbd48965fba6f08cec412697b1b7f0..5097a73ef96724c83e3c0369a5ca6b60 if (this.fire) { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index ebe0bac2593e72b465f61643054f37f35d678672..588dccfa6a3e8e546be2b8b52bb07ceacbf0ab7d 100644 +index c7abd433e70a6479fc81e5bce94144c9479eb372..680cfc6e2e3acd0d5ce364c774772e3c4d072c31 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -132,7 +132,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -130,7 +130,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { private final ResourceKey dimensionTypeId; private final Holder dimensionTypeRegistration; public final WritableLevelData levelData; @@ -1748,7 +1748,7 @@ index ebe0bac2593e72b465f61643054f37f35d678672..588dccfa6a3e8e546be2b8b52bb07cea public final boolean isClientSide; private final WorldBorder worldBorder; private final BiomeManager biomeManager; -@@ -210,7 +209,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -208,7 +207,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public abstract ResourceKey getTypeKey(); @@ -1757,7 +1757,7 @@ index ebe0bac2593e72b465f61643054f37f35d678672..588dccfa6a3e8e546be2b8b52bb07cea this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config this.galeConfig = galeWorldConfigCreator.apply(this.spigotConfig); // Gale - Gale configuration -@@ -225,7 +224,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -223,7 +222,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } // CraftBukkit end @@ -1765,7 +1765,7 @@ index ebe0bac2593e72b465f61643054f37f35d678672..588dccfa6a3e8e546be2b8b52bb07cea this.levelData = worlddatamutable; this.dimensionTypeRegistration = holder; this.dimensionTypeId = (ResourceKey) holder.unwrapKey().orElseThrow(() -> { -@@ -1261,9 +1259,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1259,9 +1257,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } protected void tickBlockEntities() { @@ -1775,7 +1775,7 @@ index ebe0bac2593e72b465f61643054f37f35d678672..588dccfa6a3e8e546be2b8b52bb07cea this.timings.tileEntityPending.startTiming(); // Spigot this.tickingBlockEntities = true; if (!this.pendingBlockEntityTickers.isEmpty()) { -@@ -1304,7 +1299,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1302,7 +1297,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { this.timings.tileEntityTick.stopTiming(); // Spigot this.tickingBlockEntities = false; co.aikar.timings.TimingHistory.tileEntityTicks += this.blockEntityTickers.size(); // Paper @@ -1783,7 +1783,7 @@ index ebe0bac2593e72b465f61643054f37f35d678672..588dccfa6a3e8e546be2b8b52bb07cea this.spigotConfig.currentPrimedTnt = 0; // Spigot } -@@ -1514,7 +1508,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1512,7 +1506,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @Override public List getEntities(@Nullable Entity except, AABB box, Predicate predicate) { @@ -1791,7 +1791,7 @@ index ebe0bac2593e72b465f61643054f37f35d678672..588dccfa6a3e8e546be2b8b52bb07cea List list = Lists.newArrayList(); ((ServerLevel)this).getEntityLookup().getEntities(except, box, list, predicate); // Paper - optimise this call return list; -@@ -1533,7 +1526,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1531,7 +1524,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } public void getEntities(EntityTypeTest filter, AABB box, Predicate predicate, List result, int limit) { @@ -1799,7 +1799,7 @@ index ebe0bac2593e72b465f61643054f37f35d678672..588dccfa6a3e8e546be2b8b52bb07cea // Paper start - optimise this call //TODO use limit if (filter instanceof net.minecraft.world.entity.EntityType entityTypeTest) { -@@ -1792,11 +1784,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1790,11 +1782,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } public ProfilerFiller getProfiler() { @@ -1814,7 +1814,7 @@ index ebe0bac2593e72b465f61643054f37f35d678672..588dccfa6a3e8e546be2b8b52bb07cea @Override diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index 17e9f3a30e287faf210e08dc7eb177a70f049f43..0483ebfbbfe5a2e517bf6d9679f1afca73b14c05 100644 +index da7489986848316fed029b71d1bc4e1248c9c9a8..71581713596594f8f8c39dac4971111e1a2cad3d 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -132,7 +132,6 @@ public final class NaturalSpawner { diff --git a/patches/server/0023-Move-random-tick-random.patch b/patches/server/0023-Move-random-tick-random.patch index 5e28617..0c98791 100644 --- a/patches/server/0023-Move-random-tick-random.patch +++ b/patches/server/0023-Move-random-tick-random.patch @@ -31,10 +31,10 @@ index 2de2c2c09a57f46a7c7ff9603f57c104d5a911d9..62c4576b3e7f50054cca6157019b2b53 public void tickChunk(LevelChunk chunk, int randomTickSpeed) { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 588dccfa6a3e8e546be2b8b52bb07ceacbf0ab7d..25af78bbb07e174f6c57e26743421f2143d73bd7 100644 +index 680cfc6e2e3acd0d5ce364c774772e3c4d072c31..69404b218565db0d73eccb13e56cf27fad443b73 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -183,6 +183,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -181,6 +181,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { 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 diff --git a/patches/server/0031-Cache-on-climbable-check.patch b/patches/server/0031-Cache-on-climbable-check.patch index bd0f302..41eac4b 100644 --- a/patches/server/0031-Cache-on-climbable-check.patch +++ b/patches/server/0031-Cache-on-climbable-check.patch @@ -31,10 +31,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 0c82be4f9dc6886c19b0f2edca019f7e6ffff6c2..8eddc8fb65c0f248d735841561444cb96c214833 100644 +index d047eef2748c0e263a708391678b719a7bf4ffce..a70eb0e8d03ea4eadb82f44dbef30f656f0a2e9d 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -142,7 +142,6 @@ import org.bukkit.event.entity.EntityTeleportEvent; +@@ -141,7 +141,6 @@ import org.bukkit.event.entity.EntityTeleportEvent; import org.bukkit.event.player.PlayerItemConsumeEvent; // CraftBukkit end @@ -42,7 +42,7 @@ index 0c82be4f9dc6886c19b0f2edca019f7e6ffff6c2..8eddc8fb65c0f248d735841561444cb9 public abstract class LivingEntity extends Entity implements Attackable { -@@ -2000,6 +1999,20 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2001,6 +2000,20 @@ public abstract class LivingEntity extends Entity implements Attackable { return this.lastClimbablePos; } diff --git a/patches/server/0036-Inline-level-height.patch b/patches/server/0036-Inline-level-height.patch index 77e13f6..9f989ea 100644 --- a/patches/server/0036-Inline-level-height.patch +++ b/patches/server/0036-Inline-level-height.patch @@ -31,10 +31,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 25af78bbb07e174f6c57e26743421f2143d73bd7..89631d1af894647fe4469f88e39c4506805ab96d 100644 +index 69404b218565db0d73eccb13e56cf27fad443b73..a57038b0c0cd5d7fd2e96101cf07d7350f17a2f5 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -211,6 +211,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -209,6 +209,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public abstract ResourceKey getTypeKey(); @@ -50,7 +50,7 @@ index 25af78bbb07e174f6c57e26743421f2143d73bd7..89631d1af894647fe4469f88e39c4506 protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator, java.util.function.Function galeWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config; Async-Anti-Xray: Pass executor // Gale - Gale configuration // Gale - Purpur - remove vanilla profiler this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config -@@ -233,6 +242,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -231,6 +240,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { }); final DimensionType dimensionmanager = (DimensionType) holder.value(); diff --git a/patches/server/0037-Use-ThreadUnsafeRandom-for-mob-spawning.patch b/patches/server/0037-Use-ThreadUnsafeRandom-for-mob-spawning.patch index b782f1d..3fb68b6 100644 --- a/patches/server/0037-Use-ThreadUnsafeRandom-for-mob-spawning.patch +++ b/patches/server/0037-Use-ThreadUnsafeRandom-for-mob-spawning.patch @@ -31,10 +31,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index d3ea44e41c2e332bf06f7c6e2935adcde5631467..61829217fa49a4671e549a4462c73a3c7cc557ef 100644 +index 71581713596594f8f8c39dac4971111e1a2cad3d..ffa5f8be4aefb451352e1c6db84f36adca3a044d 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -@@ -427,13 +427,14 @@ public final class NaturalSpawner { +@@ -423,13 +423,14 @@ public final class NaturalSpawner { } } diff --git a/patches/server/0041-Remove-lambda-from-ticking-guard.patch b/patches/server/0041-Remove-lambda-from-ticking-guard.patch index ea04367..34f094d 100644 --- a/patches/server/0041-Remove-lambda-from-ticking-guard.patch +++ b/patches/server/0041-Remove-lambda-from-ticking-guard.patch @@ -57,10 +57,10 @@ index 83c001e809c76a5ec0b314967839713e63d67f0d..3fa891050ef7e62668ecdcf939d702db } } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 89631d1af894647fe4469f88e39c4506805ab96d..1a11939a1ffdeca87e18dc5279b11cf96b395407 100644 +index a57038b0c0cd5d7fd2e96101cf07d7350f17a2f5..6ed2a91b01233850b399e33f507353b52f06fd91 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1324,13 +1324,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1322,13 +1322,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { try { tickConsumer.accept(entity); MinecraftServer.getServer().executeMidTickTasks(); // Paper - execute chunk tasks mid tick @@ -70,7 +70,7 @@ index 89631d1af894647fe4469f88e39c4506805ab96d..1a11939a1ffdeca87e18dc5279b11cf9 // Paper start - Prevent block entity and entity crashes final String msg = String.format("Entity threw exception at %s:%s,%s,%s", entity.level().getWorld().getName(), entity.getX(), entity.getY(), entity.getZ()); MinecraftServer.LOGGER.error(msg, throwable); - getCraftServer().getPluginManager().callEvent(new ServerExceptionEvent(new ServerInternalException(msg, throwable))); // Paper - ServerExceptionEvent + getCraftServer().getPluginManager().callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerInternalException(msg, throwable))); // Paper - ServerExceptionEvent - entity.discard(); + entity.discard(); // Gale - Airplane - remove lambda from ticking guard - diff on change ServerLevel#tick // Paper end - Prevent block entity and entity crashes diff --git a/patches/server/0044-Make-book-writing-configurable.patch b/patches/server/0044-Make-book-writing-configurable.patch index 0b832c2..47b357a 100644 --- a/patches/server/0044-Make-book-writing-configurable.patch +++ b/patches/server/0044-Make-book-writing-configurable.patch @@ -22,7 +22,7 @@ you to easily disable books, should you want to preemptively remove this functionality before additional exploits are found. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 8ca5d7c1bfacb1b47aa680eee167af08d0396ae0..521153303fca35df7d4589abda772cc27b565ede 100644 +index 2562ea3b63b055319a775c12ff327d127f8039c3..367392bffd0dc1d433ed44f7696bd5840b268157 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -186,6 +186,8 @@ import net.minecraft.world.phys.Vec3; @@ -34,7 +34,7 @@ index 8ca5d7c1bfacb1b47aa680eee167af08d0396ae0..521153303fca35df7d4589abda772cc2 import org.slf4j.Logger; // CraftBukkit start -@@ -1121,6 +1123,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1120,6 +1122,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @Override public void handleEditBook(ServerboundEditBookPacket packet) { diff --git a/patches/server/0046-Reduce-in-wall-checks.patch b/patches/server/0046-Reduce-in-wall-checks.patch index 6cc725f..15d183f 100644 --- a/patches/server/0046-Reduce-in-wall-checks.patch +++ b/patches/server/0046-Reduce-in-wall-checks.patch @@ -28,10 +28,10 @@ but is so much cheaper than the suffocation check that it's worth keeping it. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 8df80c5cfaee022e5796dcced0185ddcd794fa0d..59071351d60514bf23626dd9d4140be537321e9c 100644 +index a70eb0e8d03ea4eadb82f44dbef30f656f0a2e9d..ef1cbbc1dc879d2fe981d6f45ef63fcdbd015257 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -411,7 +411,10 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -410,7 +410,10 @@ public abstract class LivingEntity extends Entity implements Attackable { boolean flag = this instanceof net.minecraft.world.entity.player.Player; if (!this.level().isClientSide) { diff --git a/patches/server/0054-Do-not-process-chat-commands-before-player-has-joine.patch b/patches/server/0054-Do-not-process-chat-commands-before-player-has-joine.patch index af7363f..773ede9 100644 --- a/patches/server/0054-Do-not-process-chat-commands-before-player-has-joine.patch +++ b/patches/server/0054-Do-not-process-chat-commands-before-player-has-joine.patch @@ -25,10 +25,10 @@ index e8ebc8588642479f22c6971bb2ea8ba557d9596a..932eb924a9d37130b53949d55c8d9e67 public boolean isRealPlayer; // Paper public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 521153303fca35df7d4589abda772cc27b565ede..cb70e6f6b9db9637977eff1eebdf868713fe73c6 100644 +index 367392bffd0dc1d433ed44f7696bd5840b268157..38ea014943ade6e9cdbfd76fdfdbe4d8311d7fd8 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2260,6 +2260,10 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2259,6 +2259,10 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl if (this.player.isRemoved() || this.player.getChatVisibility() == ChatVisiblity.HIDDEN) { // CraftBukkit - dead men tell no tales this.send(new ClientboundSystemChatPacket(Component.translatable("chat.disabled.options").withStyle(ChatFormatting.RED), false)); return Optional.empty(); @@ -40,7 +40,7 @@ index 521153303fca35df7d4589abda772cc27b565ede..cb70e6f6b9db9637977eff1eebdf8687 this.player.resetLastActionTime(); return optional; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index e0ee45036b9bf14a6e2013fe291cde0402b85b1f..a9acf052c61b0592da9cf3ade8c4c8f7ba068dad 100644 +index 91feb12732564c90656da487664dbc12e55397fc..c34fa92849a917e6269390b94360de9f047fb316 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -347,6 +347,8 @@ public abstract class PlayerList { diff --git a/patches/server/0056-Do-not-log-empty-message-warnings.patch b/patches/server/0056-Do-not-log-empty-message-warnings.patch index 975db30..ab0dfb7 100644 --- a/patches/server/0056-Do-not-log-empty-message-warnings.patch +++ b/patches/server/0056-Do-not-log-empty-message-warnings.patch @@ -7,7 +7,7 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index cb70e6f6b9db9637977eff1eebdf868713fe73c6..1cace957572e60ac595b81910b58c2fcdc76298e 100644 +index 38ea014943ade6e9cdbfd76fdfdbe4d8311d7fd8..d79d53ddb5d46e8e44d5de9e904c4b872504baa3 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -187,6 +187,7 @@ import net.minecraft.world.phys.shapes.BooleanOp; @@ -18,7 +18,7 @@ index cb70e6f6b9db9637977eff1eebdf868713fe73c6..1cace957572e60ac595b81910b58c2fc import org.galemc.gale.configuration.GaleGlobalConfiguration; import org.slf4j.Logger; -@@ -2429,7 +2430,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2428,7 +2429,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // CraftBukkit start String s = message.signedContent(); if (s.isEmpty()) { diff --git a/patches/server/0075-Fix-MC-31819.patch b/patches/server/0075-Fix-MC-31819.patch index 03d90e9..52d7947 100644 --- a/patches/server/0075-Fix-MC-31819.patch +++ b/patches/server/0075-Fix-MC-31819.patch @@ -19,10 +19,10 @@ the displayed hunger bar never goes down. Hunger (or any related value, includin should not go down on peaceful. See https://bugs.mojang.com/browse/MC-31819. diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 44a17a8e763455e834dcf488044a0f4907ce346e..c37e0321392c3e65f02a0ac26843b8af06b4826a 100644 +index df8d6f3eb675354ce0d180fc56886ce12788d6ae..83cdbbd460649f8883e122a4518eb28c414de7be 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1864,6 +1864,11 @@ public abstract class Player extends LivingEntity { +@@ -1866,6 +1866,11 @@ public abstract class Player extends LivingEntity { } public void causeFoodExhaustion(float f, EntityExhaustionEvent.ExhaustionReason reason) { diff --git a/patches/server/0080-Reduce-array-allocations.patch b/patches/server/0080-Reduce-array-allocations.patch index 13abb75..5814528 100644 --- a/patches/server/0080-Reduce-array-allocations.patch +++ b/patches/server/0080-Reduce-array-allocations.patch @@ -325,7 +325,7 @@ index a2920b8a9eff77d9c5d1d7f70ad3abdacba8f0fa..43f402d9032e4570a81a80e412215598 protected CipherBase(Cipher cipher) { this.cipher = cipher; diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index b189aeb8646b5385c7cca0c4babfcb071a642220..7dedd112bd220bee86d56afbb401c20baf44b3ec 100644 +index 4716f8bd8a64d4f20f0d5957c1e7fabf63020f43..9e37578ac79a63bb72cc04aae7ba4f6f927a2ce4 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -23,7 +23,6 @@ import io.netty.channel.epoll.EpollSocketChannel; @@ -434,7 +434,7 @@ index 3fa891050ef7e62668ecdcf939d702db92514b23..e18764104c306de17ced824b96e163b2 return ret; } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 1cace957572e60ac595b81910b58c2fcdc76298e..7ca3cddf3a25d01cc02599873f7661e87fe16f93 100644 +index d79d53ddb5d46e8e44d5de9e904c4b872504baa3..27b6cb3672dbe3faf1b6815d22c21a983f95ef27 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -28,6 +28,8 @@ import java.util.function.UnaryOperator; @@ -454,7 +454,7 @@ index 1cace957572e60ac595b81910b58c2fcdc76298e..7ca3cddf3a25d01cc02599873f7661e8 import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.BlockHitResult; -@@ -227,8 +228,6 @@ import org.bukkit.event.inventory.InventoryCreativeEvent; +@@ -226,8 +227,6 @@ import org.bukkit.event.inventory.InventoryCreativeEvent; import org.bukkit.event.inventory.InventoryType.SlotType; import org.bukkit.event.inventory.SmithItemEvent; import org.bukkit.event.player.AsyncPlayerChatEvent; @@ -463,17 +463,8 @@ index 1cace957572e60ac595b81910b58c2fcdc76298e..7ca3cddf3a25d01cc02599873f7661e8 import org.bukkit.event.player.PlayerChatEvent; import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.event.player.PlayerInteractAtEntityEvent; -@@ -3201,7 +3200,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl - // Paper start - auto recipe limit - if (!org.bukkit.Bukkit.isPrimaryThread()) { - if (this.recipeSpamPackets.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamLimit) { -- this.server.scheduleOnMain(() -> this.disconnect(net.minecraft.network.chat.Component.translatable("disconnect.spam", new Object[0]), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - kick event cause -+ this.server.scheduleOnMain(() -> this.disconnect(net.minecraft.network.chat.Component.translatable("disconnect.spam", ArrayConstants.emptyObjectArray), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - kick event cause // Gale - JettPack - reduce array allocations - return; - } - } diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 854aea894b8efeb4cdd591507a2a414d751d7bbb..83d2b25529efec93ec22c3739bf87cc7bb79ac5f 100644 +index 0818657745d48cd3367263e2d7650361ca7a4c02..a87be49d91e0bd95d5d5aa9f140f3f29f1c8b565 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -13,9 +13,10 @@ import java.security.PrivateKey; @@ -520,7 +511,7 @@ index 854aea894b8efeb4cdd591507a2a414d751d7bbb..83d2b25529efec93ec22c3739bf87cc7 ServerConfigurationPacketListenerImpl serverconfigurationpacketlistenerimpl = new ServerConfigurationPacketListenerImpl(this.server, this.connection, commonlistenercookie, this.player); // CraftBukkit diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 3c0d21f964cd0ed4ead16ebd9d662059137ff8b3..0fdbd05af21cb33d54addb59c236263e16a12ebd 100644 +index 259807423a6191ec38802a9e663cbc0371edce26..c17ce75c599874d0db003b787e41b4f2dca8f138 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -25,6 +25,8 @@ import java.util.UUID; @@ -532,15 +523,6 @@ index 3c0d21f964cd0ed4ead16ebd9d662059137ff8b3..0fdbd05af21cb33d54addb59c236263e import net.minecraft.ChatFormatting; import net.minecraft.FileUtil; import net.minecraft.commands.CommandSourceStack; -@@ -722,7 +724,7 @@ public abstract class PlayerList { - while (iterator.hasNext()) { - entityplayer = (ServerPlayer) iterator.next(); - this.save(entityplayer); // CraftBukkit - Force the player's inventory to be saved -- entityplayer.connection.disconnect(Component.translatable("multiplayer.disconnect.duplicate_login", new Object[0]), org.bukkit.event.player.PlayerKickEvent.Cause.DUPLICATE_LOGIN); // Paper - kick event cause -+ entityplayer.connection.disconnect(Component.translatable("multiplayer.disconnect.duplicate_login", ArrayConstants.emptyObjectArray), org.bukkit.event.player.PlayerKickEvent.Cause.DUPLICATE_LOGIN); // Paper - kick event cause // Gale - JettPack - reduce array allocations - } - - // Instead of kicking then returning, we need to store the kick reason diff --git a/src/main/java/net/minecraft/server/players/StoredUserList.java b/src/main/java/net/minecraft/server/players/StoredUserList.java index 35f973cc2c0989256fa21abaf0327c2f36dbe4c9..219e0059418e6d64f5b859ba253c3cf3e91713cf 100644 --- a/src/main/java/net/minecraft/server/players/StoredUserList.java @@ -622,10 +604,10 @@ index 2e324276ea4cd9e528c6a3f9a9ba394b378fe075..8e91714e3167ab0ad16df681bc080772 private EquipmentSlot(EquipmentSlot.Type type, int entityId, int armorStandId, String name) { this.type = type; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a3e74ee433814da7670fb3dc472a67a8fff7ff6d..e0a6b34323fb6eaf552d794cfd72bdb95e4f0095 100644 +index ef1cbbc1dc879d2fe981d6f45ef63fcdbd015257..49ed6ee2e64cf1a3b6914951a74a3a925c19dc85 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3139,7 +3139,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3140,7 +3140,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @Nullable private Map collectEquipmentChanges() { Map map = null; @@ -740,10 +722,10 @@ index 6c2e8049c2197ddc912c1a0fc99c87beae81e25b..a13822a22ab524a0fb9fd998c4ada06b private static Enchantment register(String name, Enchantment enchantment) { return Registry.register(BuiltInRegistries.ENCHANTMENT, name, enchantment); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 1a11939a1ffdeca87e18dc5279b11cf96b395407..7e0cc7e9cbcfcdfa9c0ed2aab4c0e4d6813d1040 100644 +index 6ed2a91b01233850b399e33f507353b52f06fd91..c5ee421f127ccd089c085f5fe7d314a8376d9882 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -12,6 +12,8 @@ import java.util.function.Consumer; +@@ -10,6 +10,8 @@ import java.util.function.Consumer; import java.util.function.Predicate; import java.util.function.Supplier; import javax.annotation.Nullable; @@ -752,7 +734,7 @@ index 1a11939a1ffdeca87e18dc5279b11cf96b395407..7e0cc7e9cbcfcdfa9c0ed2aab4c0e4d6 import net.minecraft.CrashReport; import net.minecraft.CrashReportCategory; import net.minecraft.core.BlockPos; -@@ -1866,7 +1868,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1864,7 +1866,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public org.bukkit.entity.Entity[] getChunkEntities(int chunkX, int chunkZ) { io.papermc.paper.world.ChunkEntitySlices slices = ((ServerLevel)this).getEntityLookup().getChunk(chunkX, chunkZ); if (slices == null) { @@ -762,7 +744,7 @@ index 1a11939a1ffdeca87e18dc5279b11cf96b395407..7e0cc7e9cbcfcdfa9c0ed2aab4c0e4d6 return slices.getChunkEntities(); } diff --git a/src/main/java/net/minecraft/world/level/block/ComposterBlock.java b/src/main/java/net/minecraft/world/level/block/ComposterBlock.java -index d78fe4081bc2938326066e0afddb4a6c833a4bf7..f991a3f0ba55aeb99138038618f80bd33a5f10c2 100644 +index f9084e2605d7403721fe6b714bfad051f932aaef..689ba0cc4d3571efc2664e45fde00af724007934 100644 --- a/src/main/java/net/minecraft/world/level/block/ComposterBlock.java +++ b/src/main/java/net/minecraft/world/level/block/ComposterBlock.java @@ -4,6 +4,8 @@ import com.mojang.serialization.MapCodec; diff --git a/patches/server/0089-Cache-BlockStatePairKey-hash.patch b/patches/server/0089-Cache-BlockStatePairKey-hash.patch index 500ea0f..0119f1d 100644 --- a/patches/server/0089-Cache-BlockStatePairKey-hash.patch +++ b/patches/server/0089-Cache-BlockStatePairKey-hash.patch @@ -13,10 +13,10 @@ As part of: Lithium (https://github.com/CaffeineMC/lithium-fabric) Licensed under: LGPL-3.0 (https://www.gnu.org/licenses/lgpl-3.0.html) 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 e21867d3956078bb0db4ceed45e5811e9acd7377..b424ba1e6e2735d1acb5e77c2cd4ff3fa03f294d 100644 +index 22036ed3ea0629bc12981a8d91a03e55cc2117d6..154b5a8520b13928686c6eb0e2481c3dd1d1de28 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java -@@ -614,11 +614,18 @@ public class Block extends BlockBehaviour implements ItemLike { +@@ -615,11 +615,18 @@ public class Block extends BlockBehaviour implements ItemLike { private final BlockState first; private final BlockState second; private final Direction direction; @@ -35,7 +35,7 @@ index e21867d3956078bb0db4ceed45e5811e9acd7377..b424ba1e6e2735d1acb5e77c2cd4ff3f } public boolean equals(Object object) { -@@ -634,11 +641,7 @@ public class Block extends BlockBehaviour implements ItemLike { +@@ -635,11 +642,7 @@ public class Block extends BlockBehaviour implements ItemLike { } public int hashCode() { diff --git a/patches/server/0093-Check-frozen-ticks-before-landing-block.patch b/patches/server/0093-Check-frozen-ticks-before-landing-block.patch index e394921..38b6938 100644 --- a/patches/server/0093-Check-frozen-ticks-before-landing-block.patch +++ b/patches/server/0093-Check-frozen-ticks-before-landing-block.patch @@ -13,10 +13,10 @@ As part of: Lithium (https://github.com/CaffeineMC/lithium-fabric) Licensed under: LGPL-3.0 (https://www.gnu.org/licenses/lgpl-3.0.html) diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index daabae0c34b4d03b71b19843c4b420128f4dbaf6..e2e1b3e148e32441b2b1adc97157253428f4c2ca 100644 +index 49ed6ee2e64cf1a3b6914951a74a3a925c19dc85..69f2be2c71e1f4329bfe6e7dd04959e974e57b22 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -582,11 +582,10 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -581,11 +581,10 @@ public abstract class LivingEntity extends Entity implements Attackable { } protected void tryAddFrost() { @@ -29,7 +29,7 @@ index daabae0c34b4d03b71b19843c4b420128f4dbaf6..e2e1b3e148e32441b2b1adc971572534 if (attributemodifiable == null) { return; -@@ -596,7 +595,6 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -595,7 +594,6 @@ public abstract class LivingEntity extends Entity implements Attackable { attributemodifiable.addTransientModifier(new AttributeModifier(LivingEntity.SPEED_MODIFIER_POWDER_SNOW_UUID, "Powder snow slow", (double) f, AttributeModifier.Operation.ADDITION)); } diff --git a/patches/server/0112-Send-multiple-keep-alive-packets.patch b/patches/server/0112-Send-multiple-keep-alive-packets.patch index 684e011..d3e2ed9 100644 --- a/patches/server/0112-Send-multiple-keep-alive-packets.patch +++ b/patches/server/0112-Send-multiple-keep-alive-packets.patch @@ -129,7 +129,7 @@ index e7583996cc6d750cbd72f749de39ecded56d7f7c..d791c2f2facfc46d8664225c8b28f95f } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 7ca3cddf3a25d01cc02599873f7661e87fe16f93..15be6d4c333f6e48608becb6ace7f7d201afa81a 100644 +index 27b6cb3672dbe3faf1b6815d22c21a983f95ef27..647365c91d97613d79b08589b77d8a2b08d350b7 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -8,6 +8,8 @@ import com.mojang.brigadier.StringReader; @@ -141,7 +141,7 @@ index 7ca3cddf3a25d01cc02599873f7661e87fe16f93..15be6d4c333f6e48608becb6ace7f7d2 import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import it.unimi.dsi.fastutil.objects.ObjectIterator; import java.net.SocketAddress; -@@ -3393,6 +3395,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3381,6 +3383,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } @Override diff --git a/patches/server/0114-Make-max-interaction-distance-configurable.patch b/patches/server/0114-Make-max-interaction-distance-configurable.patch index b98868c..eb8c431 100644 --- a/patches/server/0114-Make-max-interaction-distance-configurable.patch +++ b/patches/server/0114-Make-max-interaction-distance-configurable.patch @@ -7,7 +7,7 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index cfd4ac06a9af6bf3fac293110482e1df690e075e..751420687c04719373626ce01af18ad7cb4638bf 100644 +index a7b217ddbcbf92513bd38101fdfca2075505e267..840dc3c57dd60d5f16155fc0c6f8c9fea49685c9 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -174,7 +174,7 @@ public class ServerPlayerGameMode { @@ -20,10 +20,10 @@ index cfd4ac06a9af6bf3fac293110482e1df690e075e..751420687c04719373626ce01af18ad7 this.debugLogging(pos, false, sequence, "too far"); } else if (pos.getY() >= worldHeight) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 15be6d4c333f6e48608becb6ace7f7d201afa81a..e1b6583a3bb9269a14b1e9028a87a6877da5ae78 100644 +index 647365c91d97613d79b08589b77d8a2b08d350b7..42b1188e236dd0facf5207ce2f1644a95b26da84 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -251,7 +251,7 @@ import org.bukkit.inventory.SmithingInventory; +@@ -250,7 +250,7 @@ import org.bukkit.inventory.SmithingInventory; public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl implements ServerGamePacketListener, ServerPlayerConnection, TickablePacketListener { static final Logger LOGGER = LogUtils.getLogger(); @@ -32,7 +32,7 @@ index 15be6d4c333f6e48608becb6ace7f7d201afa81a..e1b6583a3bb9269a14b1e9028a87a687 private static final int NO_BLOCK_UPDATES_TO_ACK = -1; private static final int TRACKED_MESSAGE_DISCONNECT_THRESHOLD = 4096; private static final Component CHAT_VALIDATION_FAILED = Component.translatable("multiplayer.disconnect.chat_validation_failed"); -@@ -329,6 +329,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -328,6 +328,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl private boolean justTeleported = false; // CraftBukkit end @@ -46,7 +46,7 @@ index 15be6d4c333f6e48608becb6ace7f7d201afa81a..e1b6583a3bb9269a14b1e9028a87a687 @Override public void tick() { if (this.ackBlockChangesUpTo > -1) { -@@ -1914,7 +1921,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1913,7 +1920,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl BlockPos blockposition = movingobjectpositionblock.getBlockPos(); Vec3 vec3d1 = Vec3.atCenterOf(blockposition); @@ -55,7 +55,7 @@ index 15be6d4c333f6e48608becb6ace7f7d201afa81a..e1b6583a3bb9269a14b1e9028a87a687 Vec3 vec3d2 = vec3d.subtract(vec3d1); double d0 = 1.0000001D; -@@ -2702,7 +2709,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2701,7 +2708,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl AABB axisalignedbb = entity.getBoundingBox(); diff --git a/patches/server/0117-Don-t-load-chunks-to-activate-climbing-entities.patch b/patches/server/0117-Don-t-load-chunks-to-activate-climbing-entities.patch index 64d8cd9..56fdbfe 100644 --- a/patches/server/0117-Don-t-load-chunks-to-activate-climbing-entities.patch +++ b/patches/server/0117-Don-t-load-chunks-to-activate-climbing-entities.patch @@ -7,7 +7,7 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9f3b926e73f5c96b4faf6f73d601a578de20cd32..5335b8e41f34654254f28862f3852dfdbc9c938f 100644 +index ce9e799da779fe658b8a35eca4131fb46e92fc54..24d1163ed81bc28a802c64c95622b2efd3bc16fe 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -4605,6 +4605,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -28,10 +28,10 @@ index 9f3b926e73f5c96b4faf6f73d601a578de20cd32..5335b8e41f34654254f28862f3852dfd return this.chunkPosition; } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 55a30cd5c189213fc46ee26027f5a9f9bb63603e..3a44d9421e539a5d3af372b26af9a4cb347e7716 100644 +index 69f2be2c71e1f4329bfe6e7dd04959e974e57b22..4fdd02d00843b561ee4738fed8e2cd61d98ffc4c 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2016,19 +2016,43 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2017,19 +2017,43 @@ public abstract class LivingEntity extends Entity implements Attackable { public boolean onClimbableCached() { if (!this.blockPosition().equals(this.lastClimbingPosition)) { diff --git a/patches/server/0130-Increase-time-statistics-in-intervals.patch b/patches/server/0130-Increase-time-statistics-in-intervals.patch index a11a84c..f564cb5 100644 --- a/patches/server/0130-Increase-time-statistics-in-intervals.patch +++ b/patches/server/0130-Increase-time-statistics-in-intervals.patch @@ -45,7 +45,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 4d2502d77cc78c1382f108efad9a2a47e712cbd9..654133f8c1991f4949131856a50d14afc4f18630 100644 +index 4ba670c22d3826c64ac49b84b8651dc9ee67c6d7..34490ea2673f376b0ac11b52964eab46995cfb36 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -112,6 +112,7 @@ import net.minecraft.world.phys.AABB; @@ -64,7 +64,7 @@ index 4d2502d77cc78c1382f108efad9a2a47e712cbd9..654133f8c1991f4949131856a50d14af private long timeEntitySatOnShoulder; private final Inventory inventory = new Inventory(this); protected PlayerEnderChestContainer enderChestInventory = new PlayerEnderChestContainer(this); // CraftBukkit - add "this" to constructor -@@ -280,19 +282,23 @@ public abstract class Player extends LivingEntity { +@@ -282,19 +284,23 @@ public abstract class Player extends LivingEntity { this.moveCloak(); if (!this.level().isClientSide) { this.foodData.tick(this);