From e22dacf4d2d39cb9d82b127953f9ad24d3e0f695 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sat, 12 Nov 2022 12:57:41 -0800 Subject: [PATCH] update yarn param mappings (#8563) --- build.gradle.kts | 2 +- patches/server/0014-Starlight.patch | 14 +++++++------- patches/server/0016-Rewrite-chunk-system.patch | 16 ++++++++-------- .../0059-Add-exception-reporting-event.patch | 12 ++++++------ ...mplement-optional-per-player-mob-spawns.patch | 16 ++++++++-------- ...ms-from-classes-related-villager-gossip.patch | 12 ++++++------ .../server/0639-Add-PlayerKickEvent-causes.patch | 4 ++-- ...calculate-regionfile-header-if-it-is-co.patch | 16 ++++++++-------- .../server/0767-Optimize-HashMapPalette.patch | 4 ++-- ...mal-debug-information-to-chat-packet-er.patch | 8 ++++---- 10 files changed, 52 insertions(+), 52 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index a96c6273ff..29281eb7c8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -61,7 +61,7 @@ repositories { } dependencies { - paramMappings("net.fabricmc:yarn:1.19.2+build.1:mergedv2") + paramMappings("net.fabricmc:yarn:1.19.2+build.28:mergedv2") remapper("net.fabricmc:tiny-remapper:0.8.6:fat") decompiler("net.minecraftforge:forgeflower:1.5.605.7") spigotDecompiler("io.papermc:patched-spigot-fernflower:0.1+build.6") diff --git a/patches/server/0014-Starlight.patch b/patches/server/0014-Starlight.patch index b0b2e367cc..85767b58f9 100644 --- a/patches/server/0014-Starlight.patch +++ b/patches/server/0014-Starlight.patch @@ -4468,7 +4468,7 @@ index 0000000000000000000000000000000000000000..7784d72ddd6db00c674e22759c00c430 + } +} diff --git a/src/main/java/net/minecraft/server/level/ChunkHolder.java b/src/main/java/net/minecraft/server/level/ChunkHolder.java -index fa800bb4fbbd553ca2a70ba9717546f1415bfc0e..27e1880c4b74a36391f66b1126a92a8b7789c069 100644 +index 74d1ae0104e8d0795df50f00317fd860de4f112e..a7feddc31da0870faa3d32a7108282e9e9143180 100644 --- a/src/main/java/net/minecraft/server/level/ChunkHolder.java +++ b/src/main/java/net/minecraft/server/level/ChunkHolder.java @@ -55,7 +55,7 @@ public class ChunkHolder { @@ -4481,7 +4481,7 @@ index fa800bb4fbbd553ca2a70ba9717546f1415bfc0e..27e1880c4b74a36391f66b1126a92a8b private final DebugBuffer chunkToSaveHistory; public int oldTicketLevel; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 47a07a372f1e160c0da2c3e8d59ec42166edaf8b..4850ca166a664e2f4b2f28188f72b18812c302f0 100644 +index 8f34cb94edc994732e86ce57d67e4581251e3e92..1fa6d7ba1c04f9f4773f9303cc220d75415a56fb 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -128,7 +128,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -4928,11 +4928,11 @@ index 441d46635caedfae3cb2f46d30b8d9ae95636e7b..e6240f891e396d91e31b02fdf3084be7 return (ChunkStatus) Registry.CHUNK_STATUS.get(ResourceLocation.tryParse(id)); } diff --git a/src/main/java/net/minecraft/world/level/chunk/EmptyLevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/EmptyLevelChunk.java -index 80e383e9a2d12f9f1b0b0d9ae71a0add9b51c9d4..a78bf00d4559dd99869d93ec78b3525d24331925 100644 +index 587cc435a58d28e14e88860c8348425101334eda..2eb92dde607d7c8968cb07c6f3c24e1c45e9990f 100644 --- a/src/main/java/net/minecraft/world/level/chunk/EmptyLevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/EmptyLevelChunk.java @@ -21,6 +21,40 @@ public class EmptyLevelChunk extends LevelChunk { - this.biome = holder; + this.biome = biomeEntry; } + // Paper start - starlight @@ -5026,7 +5026,7 @@ index 3dff0f7c3ccd04a67b2153e402d801de2341e520..ac5dff35e2df23b8790bbe65c40acc6a super(wrapped.getPos(), UpgradeData.EMPTY, wrapped.levelHeightAccessor, wrapped.getLevel().registryAccess().registryOrThrow(Registry.BIOME_REGISTRY), wrapped.getBlendingData()); this.wrapped = wrapped; 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 b322d9b7bd9e107a9adf995b6c4db4ff0af05fc1..e75ec8f6aa597b5f3048d6269fba45eef057bc71 100644 +index 1c6f51c227a0b6da81eeb817f996789645a547db..a6e364f88abcf1a6afcdd85b340ae8d62b753e4f 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -93,6 +93,10 @@ public class LevelChunk extends ChunkAccess { @@ -5067,7 +5067,7 @@ index 78e20871e4bd8d92c4475f797a55733c68f6aeb4..33eecdac9d844af2f70aad97c4788b13 return data.palette.valueFor(data.storage.get(index)); } diff --git a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java -index 603111a52346f678aba0fd66b010d8f3026fce40..040c6092ceed4c693a7a056c0d1a49d3d2242b19 100644 +index 92a64c49b1c7227a5b34488ea15d3d8adb0f9c80..0b67858f8d6689b34816f9556f3424af512a7401 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java @@ -55,6 +55,12 @@ public class ProtoChunk extends ChunkAccess { @@ -5084,7 +5084,7 @@ index 603111a52346f678aba0fd66b010d8f3026fce40..040c6092ceed4c693a7a056c0d1a49d3 this.fluidTicks = fluidTickScheduler; } diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -index 864e2e0355a5fb8c1d4a5b0896ba299faf9ea534..2dead743775df9b261bdcdca30df9b672c6acc8b 100644 +index 6c844a826892c5f31d5afb9ead56d4cff3ab5968..8da52553a9465bf88a0c22fd987a4d8ae63d2f5a 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java @@ -82,6 +82,14 @@ public class ChunkSerializer { diff --git a/patches/server/0016-Rewrite-chunk-system.patch b/patches/server/0016-Rewrite-chunk-system.patch index 34bdc592ad..2e9ba3c092 100644 --- a/patches/server/0016-Rewrite-chunk-system.patch +++ b/patches/server/0016-Rewrite-chunk-system.patch @@ -15918,7 +15918,7 @@ index 32d6e4b194c3c4eca7009059f8d185896b5ae556..51d3150e732f95be13f5f54d994dab1f + // Paper end } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4e7db441f68019d6e5d3359605b76bc4b258e87e..22c095539425a6667b8e7f5c5f0a8ff2e87adfb5 100644 +index 50f95d25d95dd4fd57c42d026919061ebdf4bb55..651424daeaf8305810fb36c5fe6cfcbc62a86ff6 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -784,6 +784,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -16211,7 +16211,7 @@ index 1a44c98b69398ba5dcb4115f0e8fdcf3f62fd920..1a2ee5824c6af6b548e7006d583b73f4 @Override diff --git a/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java b/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java -index db4fa7355b1f834d0f8a0710c1c583dded184613..a98f4315b82919e4d90d74f5cd0e6f21e49353dc 100644 +index ffc3925e9e52c186e579bbc7342bd326b5d499cf..6d9ccb87265bcb5c2aecf2e5a0a043ac3c4cbefd 100644 --- a/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java +++ b/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java @@ -38,12 +38,28 @@ import net.minecraft.world.level.chunk.storage.SectionStorage; @@ -16425,7 +16425,7 @@ index db4fa7355b1f834d0f8a0710c1c583dded184613..a98f4315b82919e4d90d74f5cd0e6f21 HAS_SPACE(PoiRecord::hasSpace), IS_OCCUPIED(PoiRecord::isOccupied), diff --git a/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiSection.java b/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiSection.java -index bb2be6eea7a0cff4cc70bd43738b1ce213e43558..d0ce7b14d29459e276961c38cfc5b5da1cd15634 100644 +index 157c5f2d2738a9ed15949b97d176977905ada14c..e921e3cce8c746e28d73e1a7e67a7efe656ec09f 100644 --- a/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiSection.java +++ b/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiSection.java @@ -29,6 +29,7 @@ public class PoiSection { @@ -16691,7 +16691,7 @@ index e6240f891e396d91e31b02fdf3084be77e9d6697..00cb9dafc711607f28529ea9afbcdb49 public int getIndex() { 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 e75ec8f6aa597b5f3048d6269fba45eef057bc71..4c931b6eaec6f97927077423d186afb9de4ca73f 100644 +index a6e364f88abcf1a6afcdd85b340ae8d62b753e4f..9f5f7510e7a28471088c44fa9b1f94c374b2d29e 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -183,6 +183,43 @@ public class LevelChunk extends ChunkAccess { @@ -16908,7 +16908,7 @@ index e75ec8f6aa597b5f3048d6269fba45eef057bc71..4c931b6eaec6f97927077423d186afb9 public void setFullStatus(Supplier levelTypeProvider) { diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -index 2dead743775df9b261bdcdca30df9b672c6acc8b..e59910540458ca912efea64d9f7cd212d63d110a 100644 +index 8da52553a9465bf88a0c22fd987a4d8ae63d2f5a..d0b7533b8ed16f062a4ed2f1389b79c3d0929fe1 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java @@ -92,7 +92,31 @@ public class ChunkSerializer { @@ -17062,7 +17062,7 @@ index 2dead743775df9b261bdcdca30df9b672c6acc8b..e59910540458ca912efea64d9f7cd212 CompoundTag nbttagcompound3 = new CompoundTag(); Iterator iterator1 = chunk.getHeightmaps().iterator(); diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java -index 9730ee10042e02741383c8153eb3b7b7103f80e0..f2539f2aab4086bc6772db9985ca9f75ff6a7c71 100644 +index aa6d4996e1b9fce21ebf184eefb9d7a92d2a340b..c3305cb49741523724ff7b3c9254a0df2cf3d6c6 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java @@ -28,26 +28,33 @@ import net.minecraft.world.level.storage.DimensionDataStorage; @@ -17132,7 +17132,7 @@ index 9730ee10042e02741383c8153eb3b7b7103f80e0..f2539f2aab4086bc6772db9985ca9f75 + synchronized (this.persistentDataLock) { // Paper - async chunk loading persistentstructurelegacy = this.legacyStructureHandler; if (persistentstructurelegacy == null) { - this.legacyStructureHandler = persistentstructurelegacy = LegacyStructureDataHandler.getLegacyStructureHandler(resourcekey, (DimensionDataStorage) supplier.get()); + this.legacyStructureHandler = persistentstructurelegacy = LegacyStructureDataHandler.getLegacyStructureHandler(worldKey, (DimensionDataStorage) stateManagerGetter.get()); @@ -153,26 +163,49 @@ public class ChunkStorage implements AutoCloseable { } @@ -17348,7 +17348,7 @@ index 0ede151943109e81f66875340261d77f67f63c95..0b92db95416b878f41b83b5c74d1c0a1 } } diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java -index d51bafd2f5a763b8a49c835ab74a7cf60caa1ab6..7412da51c2eae70f17f4883f7223303d570c8402 100644 +index d9daf07132c46548964a75588b69d7a74680e917..e68205fe7169c7c5b7c6fdada2ee97d86107ca97 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java @@ -44,6 +44,7 @@ public class RegionFile implements AutoCloseable { diff --git a/patches/server/0059-Add-exception-reporting-event.patch b/patches/server/0059-Add-exception-reporting-event.patch index b2dc854d68..e90ea3836a 100644 --- a/patches/server/0059-Add-exception-reporting-event.patch +++ b/patches/server/0059-Add-exception-reporting-event.patch @@ -111,7 +111,7 @@ index 1473664f94f228abd81b8c654d105b8a76cc49e9..65fd3a3c1f0a55d034e6f91c4f222e64 // Paper end } diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index 992b1eb2e4151863ba7900c3f7eaa8e56c0de7fa..c6ba7427b53398ddc8f0c942a810fad6e24561b4 100644 +index 8f097817e38798b8e985bcbb9b8c9bdae24ed692..287ea1d056556e106a23987eb9f1b42e81ce6262 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -290,6 +290,7 @@ public final class NaturalSpawner { @@ -131,7 +131,7 @@ index 992b1eb2e4151863ba7900c3f7eaa8e56c0de7fa..c6ba7427b53398ddc8f0c942a810fad6 } 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 f8854de81036878886d706b8bf3bfea1e6b8505f..6327ab661ed88bf385744fcd3beeb80dd5fa75ec 100644 +index f9980a781f02e10c1c96deaa39cfecbf4deedff9..ea2176501dfa773a1114f5db4e6dbe4c2d2c7abe 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -1,6 +1,7 @@ @@ -172,7 +172,7 @@ index f8854de81036878886d706b8bf3bfea1e6b8505f..6327ab661ed88bf385744fcd3beeb80d // Paper end // Spigot start diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java -index 7412da51c2eae70f17f4883f7223303d570c8402..8adebb8408cc22ae7e9e89721645e5dd27a41cd8 100644 +index e68205fe7169c7c5b7c6fdada2ee97d86107ca97..aa8972fd1a1fade05d60ab69efb8ff24f344508a 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java @@ -275,6 +275,7 @@ public class RegionFile implements AutoCloseable { @@ -184,15 +184,15 @@ index 7412da51c2eae70f17f4883f7223303d570c8402..8adebb8408cc22ae7e9e89721645e5dd } } @@ -356,6 +357,7 @@ public class RegionFile implements AutoCloseable { - ((java.nio.Buffer) bytebuffer).position(5); // CraftBukkit - decompile error - filechannel.write(bytebuffer); + ((java.nio.Buffer) buf).position(5); // CraftBukkit - decompile error + filechannel.write(buf); } catch (Throwable throwable) { + com.destroystokyo.paper.exception.ServerInternalException.reportInternalException(throwable); // Paper if (filechannel != null) { try { filechannel.close(); diff --git a/src/main/java/net/minecraft/world/level/storage/DimensionDataStorage.java b/src/main/java/net/minecraft/world/level/storage/DimensionDataStorage.java -index 5272a718178b5a2cb1df263ce0c5500c92c9ebda..0465b397b628b11a6fc52e3375945c94d68cfdd5 100644 +index 90061d0b2363a31eaea760c09243e5d35154665c..2513069f4ffe594857762ef51f1b9a078b8b1d17 100644 --- a/src/main/java/net/minecraft/world/level/storage/DimensionDataStorage.java +++ b/src/main/java/net/minecraft/world/level/storage/DimensionDataStorage.java @@ -120,6 +120,7 @@ public class DimensionDataStorage { diff --git a/patches/server/0350-implement-optional-per-player-mob-spawns.patch b/patches/server/0350-implement-optional-per-player-mob-spawns.patch index 7d77e64308..966c7b42be 100644 --- a/patches/server/0350-implement-optional-per-player-mob-spawns.patch +++ b/patches/server/0350-implement-optional-per-player-mob-spawns.patch @@ -252,7 +252,7 @@ index 0000000000000000000000000000000000000000..11de56afaf059b00fa5bec293516bcdc + } +} diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index ec352a1916bea3893173375cfeaf84fc1c3cc52a..7b6a35026978485b676ea92324d3290ad9da3705 100644 +index b3dc360658ec7449c063e7f50b11fd188c5768a0..6a08bd2b13a2c9dcc47a469607d0dd8ff79c0328 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -145,6 +145,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -362,7 +362,7 @@ index 3a2cacbbba15d48428147842590851a57b3f3df7..8b8c8970e1d478edc3a0231556bf92f8 this.lastSpawnState = spawnercreature_d; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 9cae5379d60c8d20ae6966850f7f13640742f9b7..f2808d62c15c586dff0313e6d27ef92d45f66dc7 100644 +index fc05217186d0af6cb758a189f4287ac812625cd4..ef03173f9399c6047985e4ed85ce6ef480d75cdf 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -235,6 +235,11 @@ public class ServerPlayer extends Player { @@ -386,18 +386,18 @@ index 9cae5379d60c8d20ae6966850f7f13640742f9b7..f2808d62c15c586dff0313e6d27ef92d // Yes, this doesn't match Vanilla, but it's the best we can do for now. diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index 3b8ea490e7b8bd1a6df624e4eb5c7edccaeb800f..25256c422a3274ed75c9a9cd20fbbb709c8b298e 100644 +index 2d39b7204a5d3967e2fbbd288eb5ff6bf4e324ce..b031dece541d2765f9488a5ffcb0d339c38ccc9e 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -69,6 +69,12 @@ public final class NaturalSpawner { private NaturalSpawner() {} - public static NaturalSpawner.SpawnState createState(int spawningChunkCount, Iterable entities, NaturalSpawner.ChunkGetter chunkSource, LocalMobCapCalculator localmobcapcalculator) { + public static NaturalSpawner.SpawnState createState(int spawningChunkCount, Iterable entities, NaturalSpawner.ChunkGetter chunkSource, LocalMobCapCalculator densityCapper) { + // Paper start - add countMobs parameter -+ return createState(spawningChunkCount, entities, chunkSource, localmobcapcalculator, false); ++ return createState(spawningChunkCount, entities, chunkSource, densityCapper, false); + } + -+ public static NaturalSpawner.SpawnState createState(int spawningChunkCount, Iterable entities, NaturalSpawner.ChunkGetter chunkSource, LocalMobCapCalculator localmobcapcalculator, boolean countMobs) { ++ public static NaturalSpawner.SpawnState createState(int spawningChunkCount, Iterable entities, NaturalSpawner.ChunkGetter chunkSource, LocalMobCapCalculator densityCapper, boolean countMobs) { + // Paper end PotentialCalculator spawnercreatureprobabilities = new PotentialCalculator(); Object2IntOpenHashMap object2intopenhashmap = new Object2IntOpenHashMap(); @@ -407,8 +407,8 @@ index 3b8ea490e7b8bd1a6df624e4eb5c7edccaeb800f..25256c422a3274ed75c9a9cd20fbbb70 } - if (entity instanceof Mob) { -+ if (localmobcapcalculator != null && entity instanceof Mob) { // Paper - localmobcapcalculator.addMob(chunk.getPos(), enumcreaturetype); ++ if (densityCapper != null && entity instanceof Mob) { // Paper + densityCapper.addMob(chunk.getPos(), enumcreaturetype); } object2intopenhashmap.addTo(enumcreaturetype, 1); diff --git a/patches/server/0442-Remove-streams-from-classes-related-villager-gossip.patch b/patches/server/0442-Remove-streams-from-classes-related-villager-gossip.patch index b70ae30d26..6ae0f1a026 100644 --- a/patches/server/0442-Remove-streams-from-classes-related-villager-gossip.patch +++ b/patches/server/0442-Remove-streams-from-classes-related-villager-gossip.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Remove streams from classes related villager gossip diff --git a/src/main/java/net/minecraft/world/entity/ai/gossip/GossipContainer.java b/src/main/java/net/minecraft/world/entity/ai/gossip/GossipContainer.java -index 0de65462956fa734b6405614e047161696e596fb..aa277479f5552503a202a057b1a3ede379f2bbbf 100644 +index 92beb137d86ae89d90b1963a024c0be308d81a42..e377dd95b7824804611d0e4ce825576ed533e73e 100644 --- a/src/main/java/net/minecraft/world/entity/ai/gossip/GossipContainer.java +++ b/src/main/java/net/minecraft/world/entity/ai/gossip/GossipContainer.java @@ -58,8 +58,21 @@ public class GossipContainer { @@ -34,10 +34,10 @@ index 0de65462956fa734b6405614e047161696e596fb..aa277479f5552503a202a057b1a3ede3 @@ -153,7 +166,7 @@ public class GossipContainer { } - public Dynamic store(DynamicOps dynamicOps) { -- return new Dynamic<>(dynamicOps, dynamicOps.createList(this.unpack().map((gossipEntry) -> { -+ return new Dynamic<>(dynamicOps, dynamicOps.createList(this.decompress().stream().map((gossipEntry) -> { - return gossipEntry.store(dynamicOps); + public Dynamic store(DynamicOps ops) { +- return new Dynamic<>(ops, ops.createList(this.unpack().map((entry) -> { ++ return new Dynamic<>(ops, ops.createList(this.decompress().stream().map((entry) -> { // Paper - remove streams from reputation + return entry.store(ops); }).map(Dynamic::getValue))); } @@ -179,11 +192,23 @@ public class GossipContainer { @@ -65,7 +65,7 @@ index 0de65462956fa734b6405614e047161696e596fb..aa277479f5552503a202a057b1a3ede3 + list.add(new GossipContainer.GossipEntry(uuid, entry.getKey(), entry.getIntValue())); + } + return list; -+ // Paper - end ++ // Paper end } public Stream unpack(UUID target) { diff --git a/patches/server/0639-Add-PlayerKickEvent-causes.patch b/patches/server/0639-Add-PlayerKickEvent-causes.patch index a5ef4fe797..7303e3383d 100644 --- a/patches/server/0639-Add-PlayerKickEvent-causes.patch +++ b/patches/server/0639-Add-PlayerKickEvent-causes.patch @@ -57,7 +57,7 @@ index 65637a33ba171a4b598f70cd943d24b0ee44a69f..57a9146bf2dee7a60aab16716e25348f } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3fcd92c408258a60de049437478f6dab010f1fb1..1673082e5badbc0f3057b11544fb39be0ed84a44 100644 +index 1ac8490d9a935a1816147363fb35fc12dbbb72fc..c809098218b7676bf9609f53129957361b36776a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -369,7 +369,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -270,7 +270,7 @@ index 3fcd92c408258a60de049437478f6dab010f1fb1..1673082e5badbc0f3057b11544fb39be @@ -2465,7 +2475,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } - if (!playerchatmessage.verify(chatsender)) { + if (!message.verify(chatsender)) { - this.disconnect(Component.translatable("multiplayer.disconnect.unsigned_chat")); + this.disconnect(Component.translatable("multiplayer.disconnect.unsigned_chat"), org.bukkit.event.player.PlayerKickEvent.Cause.UNSIGNED_CHAT); // Paper - kick event cause return false; diff --git a/patches/server/0712-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/server/0712-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch index cea19c1410..65fc9468d8 100644 --- a/patches/server/0712-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch +++ b/patches/server/0712-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch @@ -10,7 +10,7 @@ hoping that at least then we don't swap chunks, and maybe recover them all. diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -index 31e552e1b4c3a6931a61a88a75965a0427d6de8d..0254b71ab9af6d74640aa5dc0533afa386e5f57f 100644 +index 4236cf65b893bc21d2597010a2f9745fc0e107a4..6e39c2c1556f41140b92064a6fa3a38427504aee 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java @@ -68,6 +68,18 @@ import net.minecraft.world.ticks.ProtoChunkTicks; @@ -42,7 +42,7 @@ index 31e552e1b4c3a6931a61a88a75965a0427d6de8d..0254b71ab9af6d74640aa5dc0533afa3 nbttagcompound.putString("Status", chunk.getStatus().getName()); BlendingData blendingdata = chunk.getBlendingData(); diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java -index aa915195d4aab3e931a92bf844f6dc18a0a59b9e..84ad2f6dfe33d747453365656c1a0114ea6d2a54 100644 +index e276b2ceddbb269ef9a8625f26cc1847ded3862a..6289858d54a6affd504533b1a280718a01446ebb 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java @@ -41,7 +41,7 @@ public class ChunkStorage implements AutoCloseable { @@ -87,7 +87,7 @@ index c8298a597818227de33a4afce4698ec0666cf758..6baceb6ce9021c489be6e79d338a9704 this.used.set(start, start + size); } diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java -index 861a25a15f1aab20e3245b6d5cdad5d23bdfd6d0..8ff8855c5267379b3a5f5d8baa4a275ffee2c4bf 100644 +index cda87a66fe80bf910f629c64e36c1fecbad81d77..9bae47f99336c377beb72c4b50b7f01cb4db15da 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java @@ -51,6 +51,355 @@ public class RegionFile implements AutoCloseable { @@ -752,7 +752,7 @@ index c881d15efa94fc379ed2817a534fef3a4dd3d90d..e71a451a6b385716cc46db7350b58b41 } diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java -index 95070af5e5bb7013ce7126ba9f725b43e3c4c749..97d4ae5619dcc0922e0381b1bb45a135f514e3af 100644 +index 5fa7a842431dd64c7a0dc5d8e940563a2aeef463..4411e427d3b6b592f8a18e61b6c59309cf699d3f 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java @@ -14,7 +14,7 @@ import javax.annotation.Nullable; @@ -760,7 +760,7 @@ index 95070af5e5bb7013ce7126ba9f725b43e3c4c749..97d4ae5619dcc0922e0381b1bb45a135 public class RegionFileVersion { - private static final Int2ObjectMap VERSIONS = new Int2ObjectOpenHashMap<>(); -+ public static final Int2ObjectMap VERSIONS = new Int2ObjectOpenHashMap<>(); // Paper - public - public static final RegionFileVersion VERSION_GZIP = register(new RegionFileVersion(1, (inputStream) -> { - return new FastBufferedInputStream(new GZIPInputStream(inputStream)); - }, (outputStream) -> { ++ public static final Int2ObjectMap VERSIONS = new Int2ObjectOpenHashMap<>(); // Paper - private -> public + public static final RegionFileVersion VERSION_GZIP = register(new RegionFileVersion(1, (stream) -> { + return new FastBufferedInputStream(new GZIPInputStream(stream)); + }, (stream) -> { diff --git a/patches/server/0767-Optimize-HashMapPalette.patch b/patches/server/0767-Optimize-HashMapPalette.patch index ef1880895f..52a28a4fd3 100644 --- a/patches/server/0767-Optimize-HashMapPalette.patch +++ b/patches/server/0767-Optimize-HashMapPalette.patch @@ -24,7 +24,7 @@ to corrupted data. This is also something that Anti-Xray is currently relying on. diff --git a/src/main/java/net/minecraft/world/level/chunk/HashMapPalette.java b/src/main/java/net/minecraft/world/level/chunk/HashMapPalette.java -index c5551c31597f5a7fe62ade325e36425e5f2df0b9..ba9b0f419b0785a0b1e3bc57f18bfe5edaa192bd 100644 +index a6d0008636f72ff6614eda4b1fa856798e6b46fd..50580313a1e224a9569e343ccf4aa0c00b906a30 100644 --- a/src/main/java/net/minecraft/world/level/chunk/HashMapPalette.java +++ b/src/main/java/net/minecraft/world/level/chunk/HashMapPalette.java @@ -19,7 +19,7 @@ public class HashMapPalette implements Palette { @@ -35,7 +35,7 @@ index c5551c31597f5a7fe62ade325e36425e5f2df0b9..ba9b0f419b0785a0b1e3bc57f18bfe5e + this(idList, indexBits, listener, CrudeIncrementalIntIdentityHashBiMap.create((1 << indexBits) + 1)); // Paper - Avoid unnecessary resize operation in CrudeIncrementalIntIdentityHashBiMap } - private HashMapPalette(IdMap idMap, int i, PaletteResize paletteResize, CrudeIncrementalIntIdentityHashBiMap crudeIncrementalIntIdentityHashBiMap) { + private HashMapPalette(IdMap idList, int indexBits, PaletteResize listener, CrudeIncrementalIntIdentityHashBiMap map) { @@ -37,10 +37,16 @@ public class HashMapPalette implements Palette { public int idFor(T object) { int i = this.values.getId(object); diff --git a/patches/server/0878-Add-some-minimal-debug-information-to-chat-packet-er.patch b/patches/server/0878-Add-some-minimal-debug-information-to-chat-packet-er.patch index efcec77ccb..3d57db549e 100644 --- a/patches/server/0878-Add-some-minimal-debug-information-to-chat-packet-er.patch +++ b/patches/server/0878-Add-some-minimal-debug-information-to-chat-packet-er.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add some minimal debug information to chat packet errors TODO: potentially add some kick leeway diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index e156be2e21e7df4fffc841dd0451dae0cf9ab57b..0e803b7ee309190ebb3878df477feda190638208 100644 +index c7f80f899ebcce306439d1fb55bbd5349f7d81a9..41b25c3d9586b114616332228e115ab4fa4336ae 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2298,7 +2298,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -21,9 +21,9 @@ index e156be2e21e7df4fffc841dd0451dae0cf9ab57b..0e803b7ee309190ebb3878df477feda1 @@ -2569,7 +2569,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } - if (playerchatmessage.hasExpiredServer(Instant.now())) { -- ServerGamePacketListenerImpl.LOGGER.warn("{} sent expired chat: '{}'. Is the client/server system time unsynchronized?", this.player.getName().getString(), playerchatmessage.signedContent().plain()); -+ ServerGamePacketListenerImpl.LOGGER.warn("{} sent expired chat: '{}'. Is the client/server system time unsynchronized? c: {} s: {}", this.player.getName().getString(), playerchatmessage.signedContent().plain(), playerchatmessage.timeStamp().getEpochSecond(), Instant.now().getEpochSecond()); // Paper + if (message.hasExpiredServer(Instant.now())) { +- ServerGamePacketListenerImpl.LOGGER.warn("{} sent expired chat: '{}'. Is the client/server system time unsynchronized?", this.player.getName().getString(), message.signedContent().plain()); ++ ServerGamePacketListenerImpl.LOGGER.warn("{} sent expired chat: '{}'. Is the client/server system time unsynchronized? c: {} s: {}", this.player.getName().getString(), message.signedContent().plain(), message.timeStamp().getEpochSecond(), Instant.now().getEpochSecond()); // Paper } return true;