From baf28f8babfea38d17e2854d1cba88d202023309 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Wed, 26 Jun 2019 15:21:16 +0100 Subject: [PATCH 1/3] Only save world data during a full save (Fixes #2243) --- .../incremental-chunk-saving.patch | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/Spigot-Server-Patches/incremental-chunk-saving.patch b/Spigot-Server-Patches/incremental-chunk-saving.patch index 9c9c6e5125..d0e663719f 100644 --- a/Spigot-Server-Patches/incremental-chunk-saving.patch +++ b/Spigot-Server-Patches/incremental-chunk-saving.patch @@ -126,7 +126,7 @@ index d85220b66c..c4ad039ffd 100644 } diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 2e697675e2..ec3b6ec5cf 100644 +index 2e697675e2..ccc129525a 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -0,0 +0,0 @@ public class WorldServer extends World { @@ -148,4 +148,20 @@ index 2e697675e2..ec3b6ec5cf 100644 timings.worldSaveChunks.startTiming(); // Paper chunkproviderserver.save(flag); +@@ -0,0 +0,0 @@ public class WorldServer extends World { + } // Paper + } + ++ if (flag || server.serverAutoSave) { // Paper + // CraftBukkit start - moved from MinecraftServer.saveChunks + // PAIL - rename + WorldServer worldserver1 = this; +@@ -0,0 +0,0 @@ public class WorldServer extends World { + worlddata.c(this.server.getBossBattleCustomData().c()); + worldserver1.getDataManager().saveWorldData(worlddata, this.server.getPlayerList().r()); + // CraftBukkit end ++ } // Paper + } + + protected void k_() throws ExceptionWorldConflict { -- \ No newline at end of file From a54890fe8cd8b0960a821cafd17a5e590f7da797 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Fri, 28 Jun 2019 05:33:17 -0500 Subject: [PATCH 2/3] Fix #2232 - Passive mobs don't move (#2253) --- .../Prevent-Mob-AI-Rules-from-Loading-Chunks.patch | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Spigot-Server-Patches/Prevent-Mob-AI-Rules-from-Loading-Chunks.patch b/Spigot-Server-Patches/Prevent-Mob-AI-Rules-from-Loading-Chunks.patch index 1da1b06b82..e061020f89 100644 --- a/Spigot-Server-Patches/Prevent-Mob-AI-Rules-from-Loading-Chunks.patch +++ b/Spigot-Server-Patches/Prevent-Mob-AI-Rules-from-Loading-Chunks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent Mob AI Rules from Loading Chunks diff --git a/src/main/java/net/minecraft/server/PathfinderGoalRemoveBlock.java b/src/main/java/net/minecraft/server/PathfinderGoalRemoveBlock.java -index 4199c154eb..31c4412012 100644 +index 4199c154..31c44120 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalRemoveBlock.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalRemoveBlock.java @@ -0,0 +0,0 @@ public class PathfinderGoalRemoveBlock extends PathfinderGoalGotoTarget { @@ -53,14 +53,14 @@ index 4199c154eb..31c4412012 100644 return block == this.g && iworldreader.getType(blockposition.up()).isAir() && iworldreader.getType(blockposition.up(2)).isAir(); } diff --git a/src/main/java/net/minecraft/server/RandomPositionGenerator.java b/src/main/java/net/minecraft/server/RandomPositionGenerator.java -index dd6a8fe3dd..8ba69380b7 100644 +index dd6a8fe3..ddbb71b1 100644 --- a/src/main/java/net/minecraft/server/RandomPositionGenerator.java +++ b/src/main/java/net/minecraft/server/RandomPositionGenerator.java @@ -0,0 +0,0 @@ public class RandomPositionGenerator { } blockposition2 = new BlockPosition((double) l + entitycreature.locX, (double) i1 + entitycreature.locY, (double) j1 + entitycreature.locZ); -+ if (!entitycreature.world.isLoaded(blockposition1)) continue; // Paper ++ if (!entitycreature.world.isLoaded(blockposition2)) continue; // Paper if ((!flag1 || entitycreature.a(blockposition2)) && navigationabstract.a(blockposition2)) { if (!flag) { blockposition2 = a(blockposition2, entitycreature); From b61c6a39584681f3114b1224f8bb486f77ecc0ed Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Fri, 28 Jun 2019 14:02:49 +0100 Subject: [PATCH 3/3] Updated Upstream (CraftBukkit) Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing CraftBukkit Changes: c6997924 SPIGOT-5110: Zombies converting to drowned too quickly 0c575603 SPIGOT-5101: Raids crash --- .../Add-more-Zombie-API.patch | 2 +- .../EntityTransformedEvent.patch | 2 +- Spigot-Server-Patches/Fix-Raids-CME.patch | 28 ------------------- work/CraftBukkit | 2 +- 4 files changed, 3 insertions(+), 31 deletions(-) delete mode 100644 Spigot-Server-Patches/Fix-Raids-CME.patch diff --git a/Spigot-Server-Patches/Add-more-Zombie-API.patch b/Spigot-Server-Patches/Add-more-Zombie-API.patch index 791ad1a107..309c40f8ad 100644 --- a/Spigot-Server-Patches/Add-more-Zombie-API.patch +++ b/Spigot-Server-Patches/Add-more-Zombie-API.patch @@ -18,7 +18,7 @@ index 5e88367d3c..c73d2ff5da 100644 byte b0 = (Byte) this.datawatcher.get(EntityInsentient.b); diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java -index 76cf1d8bfc..6e265467b0 100644 +index 5d93af5857..552bad0520 100644 --- a/src/main/java/net/minecraft/server/EntityZombie.java +++ b/src/main/java/net/minecraft/server/EntityZombie.java @@ -0,0 +0,0 @@ public class EntityZombie extends EntityMonster { diff --git a/Spigot-Server-Patches/EntityTransformedEvent.patch b/Spigot-Server-Patches/EntityTransformedEvent.patch index 3982a27d16..2a34a1dab1 100644 --- a/Spigot-Server-Patches/EntityTransformedEvent.patch +++ b/Spigot-Server-Patches/EntityTransformedEvent.patch @@ -29,7 +29,7 @@ index 9311cc5bd6..07f7b90f58 100644 // CraftBukkit end this.die(); diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java -index 0f4e50c3fe..76cf1d8bfc 100644 +index 19eb72909a..5d93af5857 100644 --- a/src/main/java/net/minecraft/server/EntityZombie.java +++ b/src/main/java/net/minecraft/server/EntityZombie.java @@ -0,0 +0,0 @@ public class EntityZombie extends EntityMonster { diff --git a/Spigot-Server-Patches/Fix-Raids-CME.patch b/Spigot-Server-Patches/Fix-Raids-CME.patch deleted file mode 100644 index a093231f4c..0000000000 --- a/Spigot-Server-Patches/Fix-Raids-CME.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Shane Freeder -Date: Wed, 26 Jun 2019 03:04:45 +0100 -Subject: [PATCH] Fix Raids CME - - -diff --git a/src/main/java/net/minecraft/server/Raid.java b/src/main/java/net/minecraft/server/Raid.java -index 6c1bbefd71..72f76d6c02 100644 ---- a/src/main/java/net/minecraft/server/Raid.java -+++ b/src/main/java/net/minecraft/server/Raid.java -@@ -0,0 +0,0 @@ public class Raid { - private void y() { - Collection collection = this.r.getPlayers(); - Set set = Sets.newHashSet(collection); -- Iterator iterator = collection.iterator(); -+ Iterator iterator = set.iterator(); // Paper - use the set, this doesn't get modified out of scope - - while (iterator.hasNext()) { - EntityPlayer entityplayer = (EntityPlayer) iterator.next(); - BlockPosition blockposition = new BlockPosition(entityplayer); - - if (this.k.c_(blockposition) != this) { -- set.remove(entityplayer); -+ iterator.remove(); // Paper - this.r.removePlayer(entityplayer); - } - } --- \ No newline at end of file diff --git a/work/CraftBukkit b/work/CraftBukkit index e8b39d430a..c69979247b 160000 --- a/work/CraftBukkit +++ b/work/CraftBukkit @@ -1 +1 @@ -Subproject commit e8b39d430a77c2e53656b4c7bc2ed4b4a2b48a00 +Subproject commit c69979247bdae6884d4edf377d485cf88ddfa0f5