diff --git a/Paper b/Paper index 1c8b6065e..fc4c0bc42 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit 1c8b6065efe99d479f27671fa222d7fdad2f2a01 +Subproject commit fc4c0bc42e32809eabf37bf378f16b394a71eae0 diff --git a/patches/server/0001-Tuinity-Server-Changes.patch b/patches/server/0001-Tuinity-Server-Changes.patch index ec1583a33..ec21b14c4 100644 --- a/patches/server/0001-Tuinity-Server-Changes.patch +++ b/patches/server/0001-Tuinity-Server-Changes.patch @@ -10474,7 +10474,7 @@ index 7636a51a7ef0aa05b5b2aaa9d17e7b551dedac96..480a02a8f6ec7110f9af8f2037fdc09a double d0 = this.locX() + vec3d.x; diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index 04d505c7a19775d0353c10424a84a1ce8885dc2c..9f5b7243ccbe0729a061345c25033d9145b91b3f 100644 +index baa82134d1f56a4d370db3012207e0f2b2fcd9ed..2797941b53fa47316f90a86c8b2b4c2f059df223 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -527,6 +527,185 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -10760,7 +10760,7 @@ index c4a83448ed4513f6e4ab179d1d43e5bb0cb13641..5c3eb4fc7e5aec2ad8d0050673fc8f4d Vec3D vec3d1 = raytrace1.a(); VoxelShape voxelshape = raytrace1.a(iblockdata, this, blockposition); diff --git a/src/main/java/net/minecraft/server/IChunkAccess.java b/src/main/java/net/minecraft/server/IChunkAccess.java -index 180b6b58dc5663158db84b6f1257591439b48c31..564703d87c47eab34a23cb5d159cc66cdbfc00a3 100644 +index 180b6b58dc5663158db84b6f1257591439b48c31..eb0d794b7275af7f860e7c7b85a9e3b2aa4a863f 100644 --- a/src/main/java/net/minecraft/server/IChunkAccess.java +++ b/src/main/java/net/minecraft/server/IChunkAccess.java @@ -24,6 +24,36 @@ public interface IChunkAccess extends IBlockAccess, IStructureAccess { @@ -10808,14 +10808,16 @@ index 180b6b58dc5663158db84b6f1257591439b48c31..564703d87c47eab34a23cb5d159cc66c Stream m(); TickList n(); -@@ -142,6 +173,7 @@ public interface IChunkAccess extends IBlockAccess, IStructureAccess { +@@ -142,7 +173,9 @@ public interface IChunkAccess extends IBlockAccess, IStructureAccess { return ashortlist[i]; } + default boolean isLit() { return this.r(); } // Tuinity - OBFHELPER boolean r(); ++ default void setLit(boolean lit) { this.b(lit); } // Tuinity - OBFHELPER void b(boolean flag); + } diff --git a/src/main/java/net/minecraft/server/IChunkLoader.java b/src/main/java/net/minecraft/server/IChunkLoader.java index 582a5695bac7d078e3022b8ee70c512c0680d992..5601088cd5024a40e8296bab979f43de924c2b62 100644 --- a/src/main/java/net/minecraft/server/IChunkLoader.java @@ -10992,7 +10994,7 @@ index b98e60772bad7e06845b50fdc11e98c0ea775d3d..e0bbfe1422cbad811ecb43d7436380d8 while (objectiterator.hasNext()) { entry = (Entry) objectiterator.next(); diff --git a/src/main/java/net/minecraft/server/LightEngineThreaded.java b/src/main/java/net/minecraft/server/LightEngineThreaded.java -index 2f9c97dd4e1d705a87772d18c7ab4883a876af08..168fe23177dfaa401396c1e460f56273ee0a59e4 100644 +index 2f9c97dd4e1d705a87772d18c7ab4883a876af08..7833846ffa52353f5a67da16df030f6edf2d30ec 100644 --- a/src/main/java/net/minecraft/server/LightEngineThreaded.java +++ b/src/main/java/net/minecraft/server/LightEngineThreaded.java @@ -2,6 +2,11 @@ package net.minecraft.server; @@ -11108,8 +11110,8 @@ index 2f9c97dd4e1d705a87772d18c7ab4883a876af08..168fe23177dfaa401396c1e460f56273 + } else { + this.holdingChunks.put(coordinate, current + 1); + } -+ } -+ + } + + protected final void releaseLightWorkChunk(int chunkX, int chunkZ) { + final long coordinate = MCUtil.getCoordinateKey(chunkX, chunkZ); + final int current = this.holdingChunks.get(coordinate); @@ -11174,8 +11176,8 @@ index 2f9c97dd4e1d705a87772d18c7ab4883a876af08..168fe23177dfaa401396c1e460f56273 + } + + return CompletableFuture.completedFuture(playerChunk.getAvailableChunkNow()); - } - ++ } ++ + // note: task is discarded if the chunk is not at light status or if the chunk is not lit + protected final void scheduleLightWorkTask(int chunkX, int chunkZ, LightEngineThreaded.Update type, Runnable task) { + if (!org.bukkit.Bukkit.isPrimaryThread()) { @@ -11327,47 +11329,38 @@ index 2f9c97dd4e1d705a87772d18c7ab4883a876af08..168fe23177dfaa401396c1e460f56273 this.a(chunkcoordintpair.x, chunkcoordintpair.z, () -> { return 0; }, LightEngineThreaded.Update.PRE_UPDATE, SystemUtils.a(() -> { -@@ -277,6 +526,7 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { - return; - } - // Paper end -+ if (this.theLightEngine == null) { // Tuinity - replace light engine impl - ChunkSection[] achunksection = ichunkaccess.getSections(); +@@ -264,6 +513,30 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { + public CompletableFuture a(IChunkAccess ichunkaccess, boolean flag) { + ChunkCoordIntPair chunkcoordintpair = ichunkaccess.getPos(); - for (int i = 0; i < 16; ++i) { -@@ -293,16 +543,29 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { - super.a(blockposition, ichunkaccess.g(blockposition)); - }); - } -+ } else { // Tuinity start - replace light engine impl ++ // Tuinity start - replace light engine ++ if (this.theLightEngine != null) { ++ // make the completion of this future only depend on pre-update execution ++ // post-update is used for block updates, so by using pre here we prioritise chunk lighting ++ return CompletableFuture.supplyAsync(() -> { + Boolean[] emptySections = com.tuinity.tuinity.chunk.light.StarLightEngine.getEmptySectionsForChunk(ichunkaccess); + if (!flag) { ++ ichunkaccess.setLit(false); + this.theLightEngine.lightChunk(ichunkaccess, emptySections); ++ ichunkaccess.setLit(true); + } else { + this.theLightEngine.forceLoadInChunk(ichunkaccess, emptySections); -+ // can't really force the chunk to be edged checked, as we need neighbouring chunks - but we don't have -+ // them, so if it's not loaded then i guess we can't do edge checks. later loads of the chunk should -+ // catch what we miss here. + this.theLightEngine.checkChunkEdges(chunkcoordintpair.x, chunkcoordintpair.z); + } + -+ } // Tuinity end - replace light engine impl - - // this.d.c(chunkcoordintpair); // Paper - move into post task below - }, () -> { - return "lightChunk " + chunkcoordintpair + " " + flag; - // Paper start - merge the 2 together - }), () -> { -- this.d.c(chunkcoordintpair); // Paper - release light tickets as post task to ensure they stay loaded until fully done -+ this.d.c(chunkcoordintpair); // Paper - release light tickets as post task to ensure they stay loaded until fully done // Tuinity - diff on change, copied to top of method for early return if the chunk is already lit - if (skippedPre[0]) return; // Paper - future's already complete - ichunkaccess.b(true); -- super.b(chunkcoordintpair, false); -+ if (this.theLightEngine == null) super.b(chunkcoordintpair, false); // Tuinity - replace light engine impl - // Paper start - future.complete(ichunkaccess); - }); -@@ -311,7 +574,7 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { ++ // safe to move the release light to here, as all the work required is done now ++ this.playerChunkMap.removeLightTicket(chunkcoordintpair); // copied from below ++ return ichunkaccess; ++ }, (runnable) -> { ++ this.scheduleTask(chunkcoordintpair.x, chunkcoordintpair.z, LightEngineThreaded.Update.PRE_UPDATE, runnable); ++ }); ++ } ++ // Tuinity end - replace light engine ++ + // Paper start + //ichunkaccess.b(false); // Don't need to disable this + long pair = chunkcoordintpair.pair(); +@@ -311,7 +584,7 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { } public void queueUpdate() { @@ -11376,7 +11369,7 @@ index 2f9c97dd4e1d705a87772d18c7ab4883a876af08..168fe23177dfaa401396c1e460f56273 this.b.a((() -> { // Paper - decompile error this.b(); this.g.set(false); -@@ -325,17 +588,36 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { +@@ -325,17 +598,36 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { private final java.util.List pre = new java.util.ArrayList<>(); private final java.util.List post = new java.util.ArrayList<>(); private void b() { @@ -12903,7 +12896,7 @@ index 42b12ad5ba68bdf8f76704ddd970715770183de0..ac82f1791ce07e9a23cf97ca34974ab2 if (chunk != null) { playerchunkmap.callbackExecutor.execute(() -> { diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index 49008cdec739b19409fdaf1b0ed806a6c0e93200..16779ffa00caf32752170700e1d88092802fa932 100644 +index 49008cdec739b19409fdaf1b0ed806a6c0e93200..a42571cfd2c9c80df27e59db832cb64c2a64e141 100644 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java @@ -121,31 +121,28 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { @@ -13163,7 +13156,7 @@ index 49008cdec739b19409fdaf1b0ed806a6c0e93200..16779ffa00caf32752170700e1d88092 // Paper end if (chunkHolder.protoChunk != null) {try (Timing ignored2 = this.world.timings.chunkLoadLevelTimer.startTimingIfSync()) { // Paper start - timings // Paper - chunk is created async -@@ -1246,7 +1321,10 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1246,9 +1321,13 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { } // Paper end this.mailboxWorldGen.a(ChunkTaskQueueSorter.a(playerchunk, runnable)); @@ -13174,8 +13167,11 @@ index 49008cdec739b19409fdaf1b0ed806a6c0e93200..16779ffa00caf32752170700e1d88092 + // Tuinity end - force competion on the main thread } ++ protected final void removeLightTicket(ChunkCoordIntPair chunkcoordintpair) { this.c(chunkcoordintpair); } // Tuinity - OBFHELPER protected void c(ChunkCoordIntPair chunkcoordintpair) { -@@ -1498,6 +1576,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { + this.executor.a(SystemUtils.a(() -> { + this.chunkDistanceManager.b(TicketType.LIGHT, chunkcoordintpair, 33 + ChunkStatus.a(ChunkStatus.FEATURES), chunkcoordintpair); +@@ -1498,6 +1577,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { } public void setViewDistance(int i) { // Paper - public @@ -13183,7 +13179,7 @@ index 49008cdec739b19409fdaf1b0ed806a6c0e93200..16779ffa00caf32752170700e1d88092 int j = MathHelper.clamp(i + 1, 3, 33); // Paper - diff on change, these make the lower view distance limit 2 and the upper 32 if (j != this.viewDistance) { -@@ -1511,6 +1590,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1511,6 +1591,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { // Paper start - no-tick view distance public final void setNoTickViewDistance(int viewDistance) { @@ -13191,7 +13187,7 @@ index 49008cdec739b19409fdaf1b0ed806a6c0e93200..16779ffa00caf32752170700e1d88092 viewDistance = viewDistance == -1 ? -1 : MathHelper.clamp(viewDistance, 2, 32); this.noTickViewDistance = viewDistance; -@@ -1626,7 +1706,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1626,7 +1707,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { if (Thread.currentThread() != com.destroystokyo.paper.io.PaperFileIOThread.Holder.INSTANCE) { com.destroystokyo.paper.io.PaperFileIOThread.Holder.INSTANCE.scheduleSave( this.world, chunkcoordintpair.x, chunkcoordintpair.z, null, nbttagcompound, @@ -13200,7 +13196,7 @@ index 49008cdec739b19409fdaf1b0ed806a6c0e93200..16779ffa00caf32752170700e1d88092 return; } super.write(chunkcoordintpair, nbttagcompound); -@@ -1710,6 +1790,11 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1710,6 +1791,11 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { return chunkHolder == null ? null : chunkHolder.getAvailableChunkNow(); } // Paper end @@ -13212,7 +13208,7 @@ index 49008cdec739b19409fdaf1b0ed806a6c0e93200..16779ffa00caf32752170700e1d88092 // Paper start - async io -@@ -2037,22 +2122,25 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -2037,22 +2123,25 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { private final void processTrackQueue() { this.world.timings.tracker1.startTiming(); try { diff --git a/patches/server/0009-AFK-API.patch b/patches/server/0009-AFK-API.patch index 2908ed9d9..3783dbbfe 100644 --- a/patches/server/0009-AFK-API.patch +++ b/patches/server/0009-AFK-API.patch @@ -25,10 +25,10 @@ index 9796b4e57d6680c9f0dc76decdd985572daafb7e..f15ec5c45d95c6828ed628451917ac34 super(EntityTypes.PLAYER, world); this.bL = ItemStack.b; diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index 9f5b7243ccbe0729a061345c25033d9145b91b3f..dc69cba40806782e0b8ffd3b77aa6298feddb35d 100644 +index 2797941b53fa47316f90a86c8b2b4c2f059df223..72eb4a207f67fbbeffa4ad44ead8dec176863c72 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java -@@ -1904,8 +1904,54 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -1909,8 +1909,54 @@ public class EntityPlayer extends EntityHuman implements ICrafting { public void resetIdleTimer() { this.ca = SystemUtils.getMonotonicMillis(); diff --git a/patches/server/0018-Player-invulnerabilities.patch b/patches/server/0018-Player-invulnerabilities.patch index 8022a2369..95725ba0b 100644 --- a/patches/server/0018-Player-invulnerabilities.patch +++ b/patches/server/0018-Player-invulnerabilities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Player invulnerabilities diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index dc69cba40806782e0b8ffd3b77aa6298feddb35d..ca63c583524c760072933602079ffe34796ff83c 100644 +index 72eb4a207f67fbbeffa4ad44ead8dec176863c72..ca4cecece1b321e8f81fd63d40b27ef3a2f64e5d 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -150,6 +150,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -39,15 +39,15 @@ index dc69cba40806782e0b8ffd3b77aa6298feddb35d..ca63c583524c760072933602079ffe34 return false; } else { if (damagesource instanceof EntityDamageSource) { -@@ -1169,6 +1177,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { - // CraftBukkit end +@@ -1174,6 +1182,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } + // Paper end + this.invulnerableTicks = worldserver.purpurConfig.playerSpawnInvulnerableTicks; // Purpur return this; } } -@@ -2322,9 +2331,17 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -2327,9 +2336,17 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @Override public boolean isFrozen() { // Paper - protected > public diff --git a/patches/server/0047-Signs-allow-color-codes.patch b/patches/server/0047-Signs-allow-color-codes.patch index 64b7af3e0..57052d4c4 100644 --- a/patches/server/0047-Signs-allow-color-codes.patch +++ b/patches/server/0047-Signs-allow-color-codes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Signs allow color codes diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index ca63c583524c760072933602079ffe34796ff83c..eddec84023a3458deebec28215aba9acc87489c1 100644 +index ca4cecece1b321e8f81fd63d40b27ef3a2f64e5d..24609591526a1f73c3b24ea3f3c47842d09dd870 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java -@@ -1429,6 +1429,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -1434,6 +1434,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @Override public void openSign(TileEntitySign tileentitysign) { diff --git a/patches/server/0049-Controllable-Minecarts.patch b/patches/server/0049-Controllable-Minecarts.patch index 2da82933d..de5fafbb7 100644 --- a/patches/server/0049-Controllable-Minecarts.patch +++ b/patches/server/0049-Controllable-Minecarts.patch @@ -106,7 +106,7 @@ index 022dfdc5b6af4b243e7e4da8660e8e41d04e1a30..298af30b1a7f12d42216fc1b7ee801fd this.move(EnumMoveType.SELF, this.getMot()); if (!this.onGround) { diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index eddec84023a3458deebec28215aba9acc87489c1..f4d9ac6efa29e5aa26b819ff05e5500104dcb6bf 100644 +index 24609591526a1f73c3b24ea3f3c47842d09dd870..b97c2e41424efdc2d7f1684a4e64619b1dbb005a 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -1004,6 +1004,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/server/0051-Players-should-not-cram-to-death.patch b/patches/server/0051-Players-should-not-cram-to-death.patch index e2aa8d884..bd55d2b2f 100644 --- a/patches/server/0051-Players-should-not-cram-to-death.patch +++ b/patches/server/0051-Players-should-not-cram-to-death.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Players should not cram to death diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index f4d9ac6efa29e5aa26b819ff05e5500104dcb6bf..ff4e60e321e0df7d43078ae0899b9e08717ad9b3 100644 +index b97c2e41424efdc2d7f1684a4e64619b1dbb005a..e36bfda9be9874eaa5dfd6886d2bb8b9be5adbfa 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java -@@ -1406,7 +1406,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -1411,7 +1411,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @Override public boolean isInvulnerable(DamageSource damagesource) { diff --git a/patches/server/0087-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch b/patches/server/0087-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch index 01c65b1bb..7ce244ab0 100644 --- a/patches/server/0087-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch +++ b/patches/server/0087-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch @@ -17,10 +17,10 @@ index 82ef4c9c534f4a0840a61d33c7727bd4770c7511..bfbe9b82c14a525bffa96a8dfa071e88 } } diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index ff4e60e321e0df7d43078ae0899b9e08717ad9b3..994e17f874696d7a410d2c308efe060d4894c705 100644 +index e36bfda9be9874eaa5dfd6886d2bb8b9be5adbfa..036bf70c578b7bd1201405a8517695f627a5f079 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java -@@ -2389,4 +2389,26 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -2394,4 +2394,26 @@ public class EntityPlayer extends EntityHuman implements ICrafting { return (CraftPlayer) super.getBukkitEntity(); } // CraftBukkit end diff --git a/patches/server/0095-Fix-death-message-colors.patch b/patches/server/0095-Fix-death-message-colors.patch index 7511945cb..234f81301 100644 --- a/patches/server/0095-Fix-death-message-colors.patch +++ b/patches/server/0095-Fix-death-message-colors.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix death message colors diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index 994e17f874696d7a410d2c308efe060d4894c705..ed8be7954fa42a241f370977f2862911b4d4395b 100644 +index 036bf70c578b7bd1201405a8517695f627a5f079..29ae0d1ab7c4f51222200b7794778879f84e983f 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -852,7 +852,24 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/server/0107-Ridables.patch b/patches/server/0107-Ridables.patch index ea1761239..8ca0f418c 100644 --- a/patches/server/0107-Ridables.patch +++ b/patches/server/0107-Ridables.patch @@ -3211,7 +3211,7 @@ index a3a428da99574c485fcf2b8c7944e0d8354146ee..cf7de0127166f6175a6246062c8664e6 this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true)); this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityVillagerAbstract.class, false)); diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index ed8be7954fa42a241f370977f2862911b4d4395b..5767871fc8c26dc9d4c4489016740c75314f421c 100644 +index 29ae0d1ab7c4f51222200b7794778879f84e983f..5b3ebe1cca4e0553781a04cad30c1e69efc0298a 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -508,6 +508,15 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/server/0127-Add-tablist-suffix-option-for-afk.patch b/patches/server/0127-Add-tablist-suffix-option-for-afk.patch index ead3939ed..8a7cbc66b 100644 --- a/patches/server/0127-Add-tablist-suffix-option-for-afk.patch +++ b/patches/server/0127-Add-tablist-suffix-option-for-afk.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add tablist suffix option for afk diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index 5767871fc8c26dc9d4c4489016740c75314f421c..d01dd1b4b561cda65c247d7775b7e8e1e503cbda 100644 +index 5b3ebe1cca4e0553781a04cad30c1e69efc0298a..52d697d46242bbad82ae3c62839b93ea3dad1bb7 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java -@@ -1972,7 +1972,11 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -1977,7 +1977,11 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } if (world.purpurConfig.idleTimeoutUpdateTabList) { diff --git a/patches/server/0143-Add-boat-fall-damage-config.patch b/patches/server/0143-Add-boat-fall-damage-config.patch index 87c94e4e6..6a66e172a 100644 --- a/patches/server/0143-Add-boat-fall-damage-config.patch +++ b/patches/server/0143-Add-boat-fall-damage-config.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add boat fall damage config diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index d01dd1b4b561cda65c247d7775b7e8e1e503cbda..53125d7fc29e87f4bbf37ee77518222f6be1a4f4 100644 +index 52d697d46242bbad82ae3c62839b93ea3dad1bb7..4719bf0945208061424401b68385212fe3af1830 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -1030,7 +1030,16 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/server/0170-Fix-stuck-in-portals.patch b/patches/server/0170-Fix-stuck-in-portals.patch index 8d80dd909..4f6c9905d 100644 --- a/patches/server/0170-Fix-stuck-in-portals.patch +++ b/patches/server/0170-Fix-stuck-in-portals.patch @@ -25,7 +25,7 @@ index 41844f30a2a98eb14559b3ab0885ae738b54520c..63eb29635957d4e6ce1274ee17a59af6 this.inPortal = true; diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index 53125d7fc29e87f4bbf37ee77518222f6be1a4f4..13b745b333137ed4d71755a0fc7b5f3fb4ab972e 100644 +index 4719bf0945208061424401b68385212fe3af1830..ae5b0d19a7fa572a1483314261dc10c84927f3d6 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -1180,6 +1180,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {