diff --git a/gradle.properties b/gradle.properties index 0f44e63..e12d145 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group=org.galemc.gale version=1.21-R0.1-SNAPSHOT mcVersion=1.21 -paperRef=a7f66333625febf891e5126bbd432707d38d1b1c +paperRef=8b1d26df0b082ab830b00870894c8d5849c96a31 updatingMinecraft=true diff --git a/patches/server/0005-Gale-branding-changes.patch b/patches/server/0005-Gale-branding-changes.patch index bbb4845..0de76b2 100644 --- a/patches/server/0005-Gale-branding-changes.patch +++ b/patches/server/0005-Gale-branding-changes.patch @@ -463,6 +463,25 @@ index 790bad0494454ca12ee152e3de6da3da634d9b20..2596e0ee4df5b96f181e28a742ef3459 } @Override +diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java +index 68f60e77e0bfd42b6419491c1d59b6432974216b..1591b251f082eeeef6c86e3164570206ef82f6a8 100644 +--- a/src/main/java/net/minecraft/server/MinecraftServer.java ++++ b/src/main/java/net/minecraft/server/MinecraftServer.java +@@ -966,7 +966,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop public @@ -20,10 +20,10 @@ index f52e104b3e07825caf0d6d1bda2e45c8437d6e20..df73ba5fad91eada64cdb2425c0f788d static int newChunkSystemGenPopulationParallelism; static int newChunkSystemLoadParallelism; diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java -index 6aaed8e8bf8c721fc834da5c76ac72a4c3e92458..2d5688979f269fa887448fe910ea87a87d93d1dd 100644 +index 4b002e8b75d117b726b0de274a76d3596fce015b..7e1405d5e2b847b28b07cb94fcbf5dec78706e34 100644 --- a/src/main/java/com/destroystokyo/paper/Metrics.java +++ b/src/main/java/com/destroystokyo/paper/Metrics.java -@@ -588,7 +588,7 @@ public class Metrics { +@@ -593,7 +593,7 @@ public class Metrics { boolean logFailedRequests = config.getBoolean("logFailedRequests", false); // Only start Metrics, if it's enabled in the config if (config.getBoolean("enabled", true)) { @@ -32,7 +32,7 @@ index 6aaed8e8bf8c721fc834da5c76ac72a4c3e92458..2d5688979f269fa887448fe910ea87a8 metrics.addCustomChart(new Metrics.SimplePie("minecraft_version", () -> { String minecraftVersion = Bukkit.getVersion(); -@@ -598,20 +598,20 @@ public class Metrics { +@@ -603,20 +603,20 @@ public class Metrics { metrics.addCustomChart(new Metrics.SingleLineChart("players", () -> Bukkit.getOnlinePlayers().size())); metrics.addCustomChart(new Metrics.SimplePie("online_mode", () -> Bukkit.getOnlineMode() ? "online" : "offline")); @@ -59,7 +59,7 @@ index 6aaed8e8bf8c721fc834da5c76ac72a4c3e92458..2d5688979f269fa887448fe910ea87a8 entry.put(javaVersion, 1); // http://openjdk.java.net/jeps/223 -@@ -640,7 +640,7 @@ public class Metrics { +@@ -645,7 +645,7 @@ public class Metrics { })); metrics.addCustomChart(new Metrics.DrilldownPie("legacy_plugins", () -> { @@ -68,7 +68,7 @@ index 6aaed8e8bf8c721fc834da5c76ac72a4c3e92458..2d5688979f269fa887448fe910ea87a8 // count legacy plugins int legacy = 0; -@@ -651,7 +651,7 @@ public class Metrics { +@@ -656,7 +656,7 @@ public class Metrics { } // insert real value as lower dimension @@ -77,7 +77,7 @@ index 6aaed8e8bf8c721fc834da5c76ac72a4c3e92458..2d5688979f269fa887448fe910ea87a8 entry.put(String.valueOf(legacy), 1); // create buckets as higher dimension -@@ -671,6 +671,253 @@ public class Metrics { +@@ -676,6 +676,253 @@ public class Metrics { return map; })); diff --git a/patches/server/0007-Gale-semantic-version.patch b/patches/server/0007-Gale-semantic-version.patch index 9767be5..7007f46 100644 --- a/patches/server/0007-Gale-semantic-version.patch +++ b/patches/server/0007-Gale-semantic-version.patch @@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java -index 2d5688979f269fa887448fe910ea87a87d93d1dd..16ecdf3c56809100032ca627a1769e4e8c452f08 100644 +index 7e1405d5e2b847b28b07cb94fcbf5dec78706e34..66477f772ffb9271cf647dfb7567d75c3d5145fb 100644 --- a/src/main/java/com/destroystokyo/paper/Metrics.java +++ b/src/main/java/com/destroystokyo/paper/Metrics.java -@@ -918,6 +918,16 @@ public class Metrics { +@@ -923,6 +923,16 @@ public class Metrics { })); // Gale end - metrics - runtime max memory diff --git a/patches/server/0008-Gale-configuration.patch b/patches/server/0008-Gale-configuration.patch index 8cbedbc..a5876d0 100644 --- a/patches/server/0008-Gale-configuration.patch +++ b/patches/server/0008-Gale-configuration.patch @@ -189,7 +189,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 7e32eecacf6f5e832dbfd0455e4bab1302a33d46..c7bb2416529a96614cdaf8e86e0c37690e69102e 100644 +index 1591b251f082eeeef6c86e3164570206ef82f6a8..d62cb22bbc061f37a5d798c8e3a48e747971a6dd 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; @@ -220,7 +220,7 @@ index 7e32eecacf6f5e832dbfd0455e4bab1302a33d46..c7bb2416529a96614cdaf8e86e0c3769 public static long currentTickLong = 0L; // Paper - track current tick as a long public boolean isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked -@@ -430,6 +431,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { return false; } : this::haveTime); -@@ -1215,7 +1181,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper - Add EntityMoveEvent net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers @@ -328,7 +328,7 @@ index fccf9d434f541ce07da19afed527e2fb6fa97c4d..d91e6fc1949778ddda073afeee9d1850 try { worldserver.timings.doTick.startTiming(); // Spigot worldserver.tick(shouldKeepTicking); -@@ -1694,17 +1641,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop list = Lists.newArrayListWithCapacity(this.chunkMap.size()); Iterator iterator = this.chunkMap.getChunks().iterator(); if (this.level.getServer().tickRateManager().runsNormally()) this.level.timings.chunkTicks.startTiming(); // Paper -@@ -514,7 +502,6 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon +@@ -435,7 +423,6 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon } if (this.level.tickRateManager().runsNormally()) { @@ -712,7 +712,7 @@ index 681fdab250d924a29ca160acffbcbf7f8a3ca78a..b5c302abb343a34f8f160454eacd8c98 this.level.timings.countNaturalMobs.startTiming(); // Paper - timings int k = this.distanceManager.getNaturalSpawnChunkCount(); // Paper start - Optional per player mob spawns -@@ -543,7 +530,6 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon +@@ -464,7 +451,6 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings this.lastSpawnState = spawnercreature_d; @@ -720,7 +720,7 @@ index 681fdab250d924a29ca160acffbcbf7f8a3ca78a..b5c302abb343a34f8f160454eacd8c98 boolean flag = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit Util.shuffle(list, this.level.random); -@@ -578,7 +564,6 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon +@@ -499,7 +485,6 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon } this.level.timings.chunkTicks.stopTiming(); // Paper @@ -728,7 +728,7 @@ index 681fdab250d924a29ca160acffbcbf7f8a3ca78a..b5c302abb343a34f8f160454eacd8c98 if (flag) { try (co.aikar.timings.Timing ignored = this.level.timings.miscMobSpawning.startTiming()) { // Paper - timings this.level.tickCustomSpawners(this.spawnEnemies, this.spawnFriendlies); -@@ -586,14 +571,11 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon +@@ -507,14 +492,11 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon } } @@ -743,7 +743,7 @@ index 681fdab250d924a29ca160acffbcbf7f8a3ca78a..b5c302abb343a34f8f160454eacd8c98 } } -@@ -774,7 +756,6 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon +@@ -695,7 +677,6 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon @Override protected void doRunTask(Runnable task) { @@ -752,7 +752,7 @@ index 681fdab250d924a29ca160acffbcbf7f8a3ca78a..b5c302abb343a34f8f160454eacd8c98 } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index ba1cecad79de47c29f42cb786647668bae189f22..5b29319f59f07c422f9df09af347e57d65c3fba0 100644 +index 11f0017a8557f7528e379285bbb55e37c533463f..186c5eb85bb0807d49f8ad35a4a08c869fc0fa90 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -80,7 +80,6 @@ import net.minecraft.util.ProgressListener; @@ -1128,7 +1128,7 @@ index 298e3eddd600f0b2e48ce2d4080cf68adff59a3a..6b3c57fc1231cd37e17a58137bb78411 protected abstract T prepare(ResourceManager manager, ProfilerFiller profiler); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 437956b18d5bffd93c46e0be34cf413e9c704e5a..ae2dac2ba1732164b4e1f41c5b60f42a1b13de3e 100644 +index 437956b18d5bffd93c46e0be34cf413e9c704e5a..314935f9021e1471726728b31039a60b2369c051 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -837,7 +837,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -1156,7 +1156,15 @@ index 437956b18d5bffd93c46e0be34cf413e9c704e5a..ae2dac2ba1732164b4e1f41c5b60f42a if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7D) { movement = movement.multiply(this.stuckSpeedMultiplier); this.stuckSpeedMultiplier = Vec3.ZERO; -@@ -1110,8 +1106,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1089,7 +1085,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess + // Paper start - ignore movement changes while inactive. + if (isTemporarilyActive && !(this instanceof ItemEntity) && movement == getDeltaMovement() && movementType == MoverType.SELF) { + setDeltaMovement(Vec3.ZERO); +- this.level.getProfiler().pop(); + return; + } + // Paper end +@@ -1110,8 +1105,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess this.setPos(this.getX() + vec3d1.x, this.getY() + vec3d1.y, this.getZ() + vec3d1.z); } @@ -1165,7 +1173,7 @@ index 437956b18d5bffd93c46e0be34cf413e9c704e5a..ae2dac2ba1732164b4e1f41c5b60f42a boolean flag = !Mth.equal(movement.x, vec3d1.x); boolean flag1 = !Mth.equal(movement.z, vec3d1.z); -@@ -1129,9 +1123,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1129,9 +1122,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess BlockState iblockdata = this.level().getBlockState(blockposition); this.checkFallDamage(vec3d1.y, this.onGround(), iblockdata, blockposition); @@ -1176,7 +1184,7 @@ index 437956b18d5bffd93c46e0be34cf413e9c704e5a..ae2dac2ba1732164b4e1f41c5b60f42a if (this.horizontalCollision) { Vec3 vec3d2 = this.getDeltaMovement(); -@@ -1232,8 +1224,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1232,8 +1223,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess if (this.isOnFire() && (this.isInPowderSnow || this.isInWaterRainOrBubble())) { this.setRemainingFireTicks(-this.getFireImmuneTicks()); } @@ -1185,6 +1193,38 @@ index 437956b18d5bffd93c46e0be34cf413e9c704e5a..ae2dac2ba1732164b4e1f41c5b60f42a } } } +@@ -3102,7 +3091,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess + this.processPortalCooldown(); + if (this.portalProcess != null) { + if (this.portalProcess.processPortalTeleportation(worldserver, this, this.canUsePortal(false))) { +- worldserver.getProfiler().push("portal"); + this.setPortalCooldown(); + DimensionTransition dimensiontransition = this.portalProcess.getPortalDestination(worldserver, this); + +@@ -3114,7 +3102,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess + } + } + +- worldserver.getProfiler().pop(); + } else if (this.portalProcess.hasExpired()) { + this.portalProcess = null; + } +@@ -3615,7 +3602,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess + } + } + +- worldserver.getProfiler().push("changeDimension"); + Entity entity2 = worldserver1.dimension() == worldserver.dimension() ? this : this.getType().create(worldserver1); + + if (entity2 != null) { +@@ -3651,7 +3637,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess + teleportTarget.postDimensionTransition().onTransition(entity2); + } + +- worldserver.getProfiler().pop(); + return entity2; + } + } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java index e980c8c356b30d25e2fc5a73b91ad2c6edd4fe05..9ea779dbe9e6056b436f107453666ef6d0379662 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1737,7 +1777,7 @@ index bff83fe413c7baef4ba56a3270ea4463a58c792f..807964a19ac15717715c9a92aeefadbe 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 7d53bcbb62ed87d39dd1e47136343541cca2d547..d7a638680fa349caba43f07ab9e6e4fa7303fb48 100644 +index 676969f0a0fe21dae1c30d63a8bb4b0e9b33d057..607388409c0ac63d8e4f05d2be39e157a4cc8cbf 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, ca.spottedl @@ -1781,7 +1821,7 @@ index 7d53bcbb62ed87d39dd1e47136343541cca2d547..d7a638680fa349caba43f07ab9e6e4fa this.levelData = worlddatamutable; this.dimensionTypeRegistration = holder; final DimensionType dimensionmanager = (DimensionType) holder.value(); -@@ -943,9 +939,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl +@@ -941,9 +937,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl } protected void tickBlockEntities() { @@ -1791,7 +1831,7 @@ index 7d53bcbb62ed87d39dd1e47136343541cca2d547..d7a638680fa349caba43f07ab9e6e4fa this.timings.tileEntityPending.startTiming(); // Spigot this.tickingBlockEntities = true; if (!this.pendingBlockEntityTickers.isEmpty()) { -@@ -981,7 +974,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl +@@ -979,7 +972,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl this.timings.tileEntityTick.stopTiming(); // Spigot this.tickingBlockEntities = false; co.aikar.timings.TimingHistory.tileEntityTicks += this.blockEntityTickers.size(); // Paper @@ -1799,7 +1839,7 @@ index 7d53bcbb62ed87d39dd1e47136343541cca2d547..d7a638680fa349caba43f07ab9e6e4fa this.spigotConfig.currentPrimedTnt = 0; // Spigot } -@@ -1184,7 +1176,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl +@@ -1183,7 +1175,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl @Override public List getEntities(@Nullable Entity except, AABB box, Predicate predicate) { @@ -1807,7 +1847,7 @@ index 7d53bcbb62ed87d39dd1e47136343541cca2d547..d7a638680fa349caba43f07ab9e6e4fa // Paper start - rewrite chunk system final List ret = new java.util.ArrayList<>(); -@@ -1210,8 +1201,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl +@@ -1209,8 +1200,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl public void getEntities(final EntityTypeTest entityTypeTest, final AABB boundingBox, final Predicate predicate, final List into, final int maxCount) { @@ -1816,7 +1856,7 @@ index 7d53bcbb62ed87d39dd1e47136343541cca2d547..d7a638680fa349caba43f07ab9e6e4fa if (entityTypeTest instanceof net.minecraft.world.entity.EntityType byType) { if (maxCount != Integer.MAX_VALUE) { ((ca.spottedleaf.moonrise.patches.chunk_system.level.ChunkSystemLevel)this).moonrise$getEntityLookup().getEntities(byType, boundingBox, into, predicate, maxCount); -@@ -1505,11 +1494,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl +@@ -1504,11 +1493,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl } public ProfilerFiller getProfiler() { @@ -1872,7 +1912,7 @@ index c5454b92ca2565461c799d7340160f9fb72c1b0f..a1a4b99167919bedb8a45c3b81889f58 - } } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index d869607853ad27032df072c1f1d74a74e4911baf..715a39cf1d075e0ef7f32c9066714a21b46f64b0 100644 +index d388fbcbff63928f0e9140c02400a63ba8f19d9c..5752576087e5ff411ff8c89fde7a761083945c23 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -25,7 +25,6 @@ import net.minecraft.network.FriendlyByteBuf; @@ -1883,7 +1923,7 @@ index d869607853ad27032df072c1f1d74a74e4911baf..715a39cf1d075e0ef7f32c9066714a21 import net.minecraft.world.entity.Entity; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.Level; -@@ -447,13 +446,8 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p +@@ -348,13 +347,8 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p } if (LightEngine.hasDifferentLightProperties(this, blockposition, iblockdata1, iblockdata)) { @@ -1897,7 +1937,7 @@ index d869607853ad27032df072c1f1d74a74e4911baf..715a39cf1d075e0ef7f32c9066714a21 } boolean flag3 = iblockdata1.hasBlockEntity(); -@@ -1106,9 +1100,6 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p +@@ -985,9 +979,6 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p if (LevelChunk.this.isTicking(blockposition)) { try { @@ -1907,15 +1947,15 @@ index d869607853ad27032df072c1f1d74a74e4911baf..715a39cf1d075e0ef7f32c9066714a21 this.blockEntity.tickTimer.startTiming(); // Spigot BlockState iblockdata = LevelChunk.this.getBlockState(blockposition); -@@ -1124,8 +1115,6 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p +@@ -1003,8 +994,6 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p } // Paper end - Remove the Block Entity if it's invalid } - - gameprofilerfiller.pop(); } catch (Throwable throwable) { + if (throwable instanceof ThreadDeath) throw throwable; // Paper // Paper start - Prevent block entity and entity crashes - final String msg = String.format("BlockEntity threw exception at %s:%s,%s,%s", LevelChunk.this.getLevel().getWorld().getName(), this.getPos().getX(), this.getPos().getY(), this.getPos().getZ()); diff --git a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java b/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java index 18bbb3f8f99849333ff4bc020c8ce758a69312a5..f890c27c960b6511b7961f380b23e9ca8f86ba0e 100644 --- a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java diff --git a/patches/server/0034-Remove-streams-and-iterators-from-range-check.patch b/patches/server/0034-Remove-streams-and-iterators-from-range-check.patch index 907afe0..e65bd57 100644 --- a/patches/server/0034-Remove-streams-and-iterators-from-range-check.patch +++ b/patches/server/0034-Remove-streams-and-iterators-from-range-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/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index a7142d9c7a1b739ada45f4d393fb970b1e21214f..aa6927ad7ea10b64693a069202366a051183e878 100644 +index 57d46c0a1e85d82361e4694f50dfc02e6e687166..5906faeaf30dddaeb96b8f71662d3e0f6c49194b 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1221,8 +1221,30 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1194,8 +1194,30 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return ChunkMap.this.level.getServer().getScaledTrackingDistance(initialDistance); } @@ -65,7 +65,7 @@ index a7142d9c7a1b739ada45f4d393fb970b1e21214f..aa6927ad7ea10b64693a069202366a05 Iterator iterator = this.entity.getIndirectPassengers().iterator(); while (iterator.hasNext()) { -@@ -1234,6 +1256,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1207,6 +1229,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider i = j; } } diff --git a/patches/server/0037-Reduce-entity-fluid-lookups-if-no-fluids.patch b/patches/server/0037-Reduce-entity-fluid-lookups-if-no-fluids.patch index 48b88bd..7c9d5e7 100644 --- a/patches/server/0037-Reduce-entity-fluid-lookups-if-no-fluids.patch +++ b/patches/server/0037-Reduce-entity-fluid-lookups-if-no-fluids.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/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 07a3f5bc00fdb932831b579f4a189eddefe328f8..6fd31b9566d6583ed30a73a6a36bf19b7fa64a60 100644 +index a69ee192c5cc3fa8b6cea567a956f919007dbd98..6b26fee2ad64bb9d500df8f53ab3d53037a7f779 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4275,16 +4275,18 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4270,16 +4270,18 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } public boolean updateFluidHeightAndDoFluidPushing(TagKey tag, double speed) { @@ -60,7 +60,7 @@ index 07a3f5bc00fdb932831b579f4a189eddefe328f8..6fd31b9566d6583ed30a73a6a36bf19b double d1 = 0.0D; boolean flag = this.isPushedByFluid(); boolean flag1 = false; -@@ -4292,14 +4294,61 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4287,14 +4289,61 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess int k1 = 0; BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos(); @@ -128,7 +128,7 @@ index 07a3f5bc00fdb932831b579f4a189eddefe328f8..6fd31b9566d6583ed30a73a6a36bf19b if (d2 >= axisalignedbb.minY) { flag1 = true; -@@ -4321,9 +4370,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4316,9 +4365,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess // CraftBukkit end } } diff --git a/patches/server/0038-SIMD-support.patch b/patches/server/0038-SIMD-support.patch index 5103368..7834851 100644 --- a/patches/server/0038-SIMD-support.patch +++ b/patches/server/0038-SIMD-support.patch @@ -33,10 +33,10 @@ index 8f97350aac2f19a0d19e35630261dacc7b46ce52..13d1908b378e5311d8bb7f9317b4b1c2 doFirst { workingDir.mkdirs() diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java -index 16ecdf3c56809100032ca627a1769e4e8c452f08..f921771c0aeba72f3f208703dbf300e8748ded17 100644 +index 66477f772ffb9271cf647dfb7567d75c3d5145fb..13a51c939b8bd17584a474217823150688af809f 100644 --- a/src/main/java/com/destroystokyo/paper/Metrics.java +++ b/src/main/java/com/destroystokyo/paper/Metrics.java -@@ -928,6 +928,46 @@ public class Metrics { +@@ -933,6 +933,46 @@ public class Metrics { metrics.addCustomChart(new Metrics.DrilldownPie("gale_semantic_version", () -> semanticVersionMap)); // Gale end - semantic version - include in metrics @@ -84,7 +84,7 @@ index 16ecdf3c56809100032ca627a1769e4e8c452f08..f921771c0aeba72f3f208703dbf300e8 } diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index d42d6237831d500d0686b58abc4750896a1985c8..4fbdd8b1ead384762164c2d13180bfa230c40262 100644 +index e510366a69f44ea1772f5bbd1cf799d335b7b0da..91105ac1d3cbc8c0169540996edebd5e6e72bc82 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -20,6 +20,8 @@ import java.util.Locale; diff --git a/patches/server/0068-Fix-MC-31819.patch b/patches/server/0068-Fix-MC-31819.patch index 2df439f..b35d27f 100644 --- a/patches/server/0068-Fix-MC-31819.patch +++ b/patches/server/0068-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 0526f4c701b4d945f26c5f382e9efac86cc568fa..e513e17f460927fcffd029bb3b3357ca85aa514d 100644 +index 3f397423f023deaf4d8545201088b23ee3cc1cdd..839f0b57db88ab7a6d6882f1fbedc1007bc95a63 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1908,6 +1908,11 @@ public abstract class Player extends LivingEntity { +@@ -1907,6 +1907,11 @@ public abstract class Player extends LivingEntity { } public void causeFoodExhaustion(float f, EntityExhaustionEvent.ExhaustionReason reason) { diff --git a/patches/server/0072-Optimize-sun-burn-tick.patch b/patches/server/0072-Optimize-sun-burn-tick.patch index d7be266..9284b37 100644 --- a/patches/server/0072-Optimize-sun-burn-tick.patch +++ b/patches/server/0072-Optimize-sun-burn-tick.patch @@ -13,7 +13,7 @@ As part of: JettPack (https://gitlab.com/Titaniumtown/JettPack) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 251ff6f9a347cba08f06f37e2680551d420bb08d..ba0e7bc1dd98ea632ab80091acb900b862186dad 100644 +index c49e50a2ba51159c0f4651b0368c52200d144e47..a82b5ad8031becc63316288b840caf857201c554 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -314,7 +314,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -25,7 +25,7 @@ index 251ff6f9a347cba08f06f37e2680551d420bb08d..ba0e7bc1dd98ea632ab80091acb900b8 public BlockPos blockPosition; // Gale - Pufferfish - optimize entity coordinate key - private -> public private ChunkPos chunkPosition; private Vec3 deltaMovement; -@@ -1958,9 +1958,19 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1957,9 +1957,19 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess /** @deprecated */ @Deprecated public float getLightLevelDependentMagicValue() { diff --git a/patches/server/0086-Skip-entity-move-if-movement-is-zero.patch b/patches/server/0086-Skip-entity-move-if-movement-is-zero.patch index 2c902f1..7f9a4c8 100644 --- a/patches/server/0086-Skip-entity-move-if-movement-is-zero.patch +++ b/patches/server/0086-Skip-entity-move-if-movement-is-zero.patch @@ -13,7 +13,7 @@ As part of: VMP (https://github.com/RelativityMC/VMP-fabric) Licensed under: MIT (https://opensource.org/licenses/MIT) diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 215a193baf6a54b307c94c9ffa912430db6a2cf5..95e06a768d264701e5522d389a8c8fa20c68fa63 100644 +index a82b5ad8031becc63316288b840caf857201c554..243d52e75cb4f1bd5a11382f8c79db29b145dfbf 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -323,6 +323,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -36,7 +36,7 @@ index 215a193baf6a54b307c94c9ffa912430db6a2cf5..95e06a768d264701e5522d389a8c8fa2 final Vec3 originalMovement = movement; // Paper - Expose pre-collision velocity if (this.noPhysics) { this.setPos(this.getX() + movement.x, this.getY() + movement.y, this.getZ() + movement.z); -@@ -3974,6 +3980,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3969,6 +3975,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } public final void setBoundingBox(AABB boundingBox) { diff --git a/patches/server/0088-Use-linked-map-for-entity-trackers.patch b/patches/server/0088-Use-linked-map-for-entity-trackers.patch index 52d095e..ff964d9 100644 --- a/patches/server/0088-Use-linked-map-for-entity-trackers.patch +++ b/patches/server/0088-Use-linked-map-for-entity-trackers.patch @@ -13,10 +13,10 @@ As part of: VMP (https://github.com/RelativityMC/VMP-fabric) Licensed under: MIT (https://opensource.org/licenses/MIT) diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index aa6927ad7ea10b64693a069202366a051183e878..b8bcba9380cbcc08ac7ebed170c58b091691777e 100644 +index 5906faeaf30dddaeb96b8f71662d3e0f6c49194b..79057c2db0e6163f2d5466f50716a4ce230bfdf2 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -228,7 +228,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -203,7 +203,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.toDrop = new LongOpenHashSet(); this.tickingGenerated = new AtomicInteger(); this.playerMap = new PlayerMap(); diff --git a/patches/server/0096-Skip-PlayerCommandSendEvent-if-there-are-no-listener.patch b/patches/server/0096-Skip-PlayerCommandSendEvent-if-there-are-no-listener.patch index 0ccb7bf..3167097 100644 --- a/patches/server/0096-Skip-PlayerCommandSendEvent-if-there-are-no-listener.patch +++ b/patches/server/0096-Skip-PlayerCommandSendEvent-if-there-are-no-listener.patch @@ -37,13 +37,13 @@ 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/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index d0327f3e230c6e79f74e51c926f089e55a01bf59..7b9ee0e0316279a74ef15317450446550e0a50a4 100644 +index 05745c9d55cb36fb09eb06f9412bf935f59fc3d0..fd621d311c5ac438e63a6f1d58073a53f9710e11 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -511,6 +511,7 @@ public class Commands { private void runSync(ServerPlayer player, Collection bukkit, RootCommandNode rootcommandnode) { // Paper end - Perf: Async command map building - new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent(player.getBukkitEntity(), (RootCommandNode) rootcommandnode, false).callEvent(); // Paper - Brigadier API + new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent(player.getBukkitEntity(), (RootCommandNode) rootcommandnode, true).callEvent(); // Paper - Brigadier API + if (PlayerCommandSendEvent.getHandlerList().getRegisteredListeners().length > 0) { // Gale - Purpur - skip PlayerCommandSendEvent if there are no listeners PlayerCommandSendEvent event = new PlayerCommandSendEvent(player.getBukkitEntity(), new LinkedHashSet<>(bukkit)); event.getPlayer().getServer().getPluginManager().callEvent(event); diff --git a/patches/server/0099-Load-portal-destination-chunk-before-entity-teleport.patch b/patches/server/0099-Load-portal-destination-chunk-before-entity-teleport.patch index a38f867..4f321bf 100644 --- a/patches/server/0099-Load-portal-destination-chunk-before-entity-teleport.patch +++ b/patches/server/0099-Load-portal-destination-chunk-before-entity-teleport.patch @@ -13,10 +13,10 @@ As part of: MultiPaper (https://github.com/MultiPaper/MultiPaper) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a315310adcb46dd9daa7dfbeefb766099ad50d74..1c28613061146757f07f84f7df37e4cdf3583f4e 100644 +index 37f4f80003e2355226231265b6b7b82f7ce4d27e..ae75ebbfaede1c6022c9abe2887706501b22b6f8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3849,7 +3849,15 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3844,7 +3844,15 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess if (entity == null) { return false; diff --git a/patches/server/0101-Don-t-load-chunks-to-activate-climbing-entities.patch b/patches/server/0101-Don-t-load-chunks-to-activate-climbing-entities.patch index b274658..aaa8320 100644 --- a/patches/server/0101-Don-t-load-chunks-to-activate-climbing-entities.patch +++ b/patches/server/0101-Don-t-load-chunks-to-activate-climbing-entities.patch @@ -7,10 +7,10 @@ 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 1c28613061146757f07f84f7df37e4cdf3583f4e..2f11a6e09fa42470d2b4c995b5282bb306a3ba87 100644 +index ae75ebbfaede1c6022c9abe2887706501b22b6f8..ec4ff1b6fe1f73cf3fe2c19aba7500c6b6a2e97c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4497,6 +4497,16 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4492,6 +4492,16 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return this.inBlockState; } diff --git a/patches/server/0104-Skip-unnecessary-mob-spawning-computations.patch b/patches/server/0104-Skip-unnecessary-mob-spawning-computations.patch index 6c3177b..5c62f1b 100644 --- a/patches/server/0104-Skip-unnecessary-mob-spawning-computations.patch +++ b/patches/server/0104-Skip-unnecessary-mob-spawning-computations.patch @@ -13,10 +13,10 @@ As part of: MultiPaper (https://github.com/MultiPaper/MultiPaper) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index b5c302abb343a34f8f160454eacd8c98d007df70..d619e2230ec6334eaf86e55cb4bf630961369e13 100644 +index de485dd53a200bb53f3ba697c4eca3a164452bfd..8367edebdfa2f022bcda1ec2b0e7881285d8bb9c 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -@@ -502,11 +502,16 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon +@@ -423,11 +423,16 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon } if (this.level.tickRateManager().runsNormally()) { @@ -34,7 +34,7 @@ index b5c302abb343a34f8f160454eacd8c98d007df70..d619e2230ec6334eaf86e55cb4bf6309 if ((this.spawnFriendlies || this.spawnEnemies) && this.level.paperConfig().entities.spawning.perPlayerMobSpawns) { // don't count mobs when animals and monsters are disabled // re-set mob counts for (ServerPlayer player : this.level.players) { -@@ -530,7 +535,11 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon +@@ -451,7 +456,11 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings this.lastSpawnState = spawnercreature_d; @@ -47,7 +47,7 @@ index b5c302abb343a34f8f160454eacd8c98d007df70..d619e2230ec6334eaf86e55cb4bf6309 Util.shuffle(list, this.level.random); // Paper start - PlayerNaturallySpawnCreaturesEvent -@@ -553,7 +562,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon +@@ -474,7 +483,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon if (this.level.isNaturalSpawningAllowed(chunkcoordintpair) && this.chunkMap.anyPlayerCloseEnoughForSpawning(chunkcoordintpair)) { chunk1.incrementInhabitedTime(j); @@ -56,7 +56,7 @@ index b5c302abb343a34f8f160454eacd8c98d007df70..d619e2230ec6334eaf86e55cb4bf6309 NaturalSpawner.spawnForChunk(this.level, chunk1, spawnercreature_d, this.spawnFriendlies, this.spawnEnemies, flag1); } -@@ -579,6 +588,20 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon +@@ -500,6 +509,20 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon } } diff --git a/patches/server/0110-5-second-TPS-average.patch b/patches/server/0110-5-second-TPS-average.patch index ac9d7b3..b876ea2 100644 --- a/patches/server/0110-5-second-TPS-average.patch +++ b/patches/server/0110-5-second-TPS-average.patch @@ -59,10 +59,10 @@ index 039a86034928a5eb7aaa2d7ca76a7bddcca346bd..7c32c60100cf2bd109eb8762efa856c1 } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index d91e6fc1949778ddda073afeee9d1850f49633ca..5415cc96c9acba64b1f26b76726226fb2756c908 100644 +index 4307145528278b10efdc19d50b4814bc5218b4ff..f8909886e6c1e4c64fd674b8a19b0cc6242160cb 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1052,6 +1052,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop