diff --git a/Paper-MojangAPI/pom.xml b/Paper-MojangAPI/pom.xml
index 7075a42db1..7712a8723c 100644
--- a/Paper-MojangAPI/pom.xml
+++ b/Paper-MojangAPI/pom.xml
@@ -10,7 +10,7 @@
com.destroystokyo.paper
paper-mojangapi
- 1.16.4-R0.1-SNAPSHOT
+ 1.16.5-R0.1-SNAPSHOT
jar
Paper-MojangAPI
diff --git a/Spigot-API-Patches/Allow-plugins-to-use-SLF4J-for-logging.patch b/Spigot-API-Patches/Allow-plugins-to-use-SLF4J-for-logging.patch
index d73b94e9ce..0f734cdb0a 100644
--- a/Spigot-API-Patches/Allow-plugins-to-use-SLF4J-for-logging.patch
+++ b/Spigot-API-Patches/Allow-plugins-to-use-SLF4J-for-logging.patch
@@ -18,7 +18,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
--- a/pom.xml
+++ b/pom.xml
@@ -0,0 +0,0 @@
- 19.0.0
+ 20.1.0
provided
+
diff --git a/Spigot-API-Patches/POM-changes.patch b/Spigot-API-Patches/POM-changes.patch
index d7dfe5b6a6..b1791b20bf 100644
--- a/Spigot-API-Patches/POM-changes.patch
+++ b/Spigot-API-Patches/POM-changes.patch
@@ -22,7 +22,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- spigot-api
+ com.destroystokyo.paper
+ paper-api
- 1.16.4-R0.1-SNAPSHOT
+ 1.16.5-R0.1-SNAPSHOT
jar
- Spigot-API
diff --git a/Spigot-API-Patches/Use-ASM-for-event-executors.patch b/Spigot-API-Patches/Use-ASM-for-event-executors.patch
index 43317f6b55..623ae6a81a 100644
--- a/Spigot-API-Patches/Use-ASM-for-event-executors.patch
+++ b/Spigot-API-Patches/Use-ASM-for-event-executors.patch
@@ -10,19 +10,19 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
--- a/pom.xml
+++ b/pom.xml
@@ -0,0 +0,0 @@
- 8.0.1
+ 9.0
test
+
+
+ org.ow2.asm
+ asm
-+ 8.0.1
++ 9.0
+
+
+ org.ow2.asm
+ asm-commons
-+ 8.0.1
++ 9.0
+
diff --git a/Spigot-Server-Patches/Configurable-fishing-time-ranges.patch b/Spigot-Server-Patches/Configurable-fishing-time-ranges.patch
index de446ce1a3..7272b85674 100644
--- a/Spigot-Server-Patches/Configurable-fishing-time-ranges.patch
+++ b/Spigot-Server-Patches/Configurable-fishing-time-ranges.patch
@@ -28,7 +28,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
@@ -0,0 +0,0 @@ public class EntityFishingHook extends IProjectile {
entityhuman.hookedFish = this;
this.an = Math.max(0, i);
- this.ao = Math.max(0, j);
+ this.lureLevel = Math.max(0, j);
+ // Paper start
+ minWaitTime = world.paperConfig.fishingMinTicks;
+ maxWaitTime = world.paperConfig.fishingMaxTicks;
diff --git a/Spigot-Server-Patches/Fix-CME-on-adding-a-passenger-in-CreatureSpawnEvent.patch b/Spigot-Server-Patches/Fix-CME-on-adding-a-passenger-in-CreatureSpawnEvent.patch
index 1332822615..eeff232b6d 100644
--- a/Spigot-Server-Patches/Fix-CME-on-adding-a-passenger-in-CreatureSpawnEvent.patch
+++ b/Spigot-Server-Patches/Fix-CME-on-adding-a-passenger-in-CreatureSpawnEvent.patch
@@ -11,9 +11,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
@@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
}
- public Stream cp() {
-- return Stream.concat(Stream.of(this), this.passengers.stream().flatMap(Entity::cp));
-+ return Stream.concat(Stream.of(this), com.google.common.collect.ImmutableList.copyOf(this.passengers).stream().flatMap(Entity::cp)); // Paper
+ public Stream recursiveStream() {
+- return Stream.concat(Stream.of(this), this.passengers.stream().flatMap(Entity::recursiveStream));
++ return Stream.concat(Stream.of(this), com.google.common.collect.ImmutableList.copyOf(this.passengers).stream().flatMap(Entity::recursiveStream)); // Paper
}
public boolean hasSinglePlayerPassenger() {
diff --git a/Spigot-Server-Patches/Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/Spigot-Server-Patches/Fix-Per-World-Difficulty-Remembering-Difficulty.patch
index 467d2b73f2..9869a5675d 100644
--- a/Spigot-Server-Patches/Fix-Per-World-Difficulty-Remembering-Difficulty.patch
+++ b/Spigot-Server-Patches/Fix-Per-World-Difficulty-Remembering-Difficulty.patch
@@ -47,17 +47,15 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
}
- public void a(EnumDifficulty enumdifficulty, boolean flag) {
-- if (flag || !this.saveData.isDifficultyLocked()) {
-- this.saveData.setDifficulty(this.saveData.isHardcore() ? EnumDifficulty.HARD : enumdifficulty);
-- this.bc();
-- this.getPlayerList().getPlayers().forEach(this::b);
+ // Paper start - fix per world difficulty
+ public void a(WorldServer world, EnumDifficulty enumdifficulty, boolean flag) {
+ WorldDataServer worldData = world.worldDataServer;
-+ if (flag || !worldData.isDifficultyLocked()) {
-+ worldData.setDifficulty(worldData.isHardcore() ? EnumDifficulty.HARD : enumdifficulty);
+ if (flag || !this.saveData.isDifficultyLocked()) {
+ this.saveData.setDifficulty(this.saveData.isHardcore() ? EnumDifficulty.HARD : enumdifficulty);
+- this.updateSpawnFlags();
+- this.getPlayerList().getPlayers().forEach(this::b);
+ world.setSpawnFlags(worldData.getDifficulty() != EnumDifficulty.PEACEFUL && ((DedicatedServer)this).propertyManager.getProperties().spawnMonsters, this.getSpawnAnimals());
-+ //world.players.forEach(this::b);
++ //this.getPlayerList().getPlayers().forEach(this::b);
+ // Paper end
}
}
diff --git a/Spigot-Server-Patches/Implement-CraftBlockSoundGroup.patch b/Spigot-Server-Patches/Implement-CraftBlockSoundGroup.patch
index 244c332f1e..82e1024299 100644
--- a/Spigot-Server-Patches/Implement-CraftBlockSoundGroup.patch
+++ b/Spigot-Server-Patches/Implement-CraftBlockSoundGroup.patch
@@ -54,35 +54,17 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+++ b/src/main/java/net/minecraft/server/SoundEffectType.java
@@ -0,0 +0,0 @@ public class SoundEffectType {
public static final SoundEffectType U = new SoundEffectType(1.0F, 1.0F, SoundEffects.BLOCK_GILDED_BLACKSTONE_BREAK, SoundEffects.BLOCK_GILDED_BLACKSTONE_STEP, SoundEffects.BLOCK_GILDED_BLACKSTONE_PLACE, SoundEffects.BLOCK_GILDED_BLACKSTONE_HIT, SoundEffects.BLOCK_GILDED_BLACKSTONE_FALL);
- public final float V;
- public final float W;
-- public final SoundEffect X; // PAIL private -> public, rename breakSound
-+ public final SoundEffect X; public final SoundEffect getBreakSound() { return this.X; } // Paper - OBFHELPER // PAIL private -> public, rename breakSound
- private final SoundEffect Y;
- private final SoundEffect Z;
-- public final SoundEffect aa; // PAIL private -> public, rename hitSound
-+ public final SoundEffect aa; public final SoundEffect getHitSound() { return this.aa; } // Paper - OBFHELPER // PAIL private -> public, rename hitSound
- private final SoundEffect ab;
+ public final float volume;
+ public final float pitch;
+- public final SoundEffect breakSound;
++ public final SoundEffect breakSound; public final SoundEffect getBreakSound() { return this.breakSound; } // Paper - OBFHELPER // PAIL private -> public, rename breakSound
+ private final SoundEffect stepSound;
+ private final SoundEffect placeSound;
+- public final SoundEffect hitSound;
++ public final SoundEffect hitSound; public final SoundEffect getHitSound() { return this.hitSound; } // Paper - OBFHELPER // PAIL private -> public, rename hitSound
+ private final SoundEffect fallSound;
public SoundEffectType(float f, float f1, SoundEffect soundeffect, SoundEffect soundeffect1, SoundEffect soundeffect2, SoundEffect soundeffect3, SoundEffect soundeffect4) {
-@@ -0,0 +0,0 @@ public class SoundEffectType {
- return this.W;
- }
-
-+ public final SoundEffect getStepSound() { return this.d(); } // Paper - OBFHELPER
- public SoundEffect d() {
- return this.Y;
- }
-
-+ public final SoundEffect getPlaceSound() { return this.e(); } // Paper - OBFHELPER
- public SoundEffect e() {
- return this.Z;
- }
-
-+ public final SoundEffect getFallSound() { return this.g(); } // Paper - OBFHELPER
- public SoundEffect g() {
- return this.ab;
- }
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
diff --git a/Spigot-Server-Patches/Increase-Light-Queue-Size.patch b/Spigot-Server-Patches/Increase-Light-Queue-Size.patch
index 089751b8b1..97bc361448 100644
--- a/Spigot-Server-Patches/Increase-Light-Queue-Size.patch
+++ b/Spigot-Server-Patches/Increase-Light-Queue-Size.patch
@@ -38,5 +38,5 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- chunkproviderserver.getLightEngine().a(5);
+ chunkproviderserver.getLightEngine().a(worldserver.paperConfig.lightQueueSize); // Paper - increase light queue size
// CraftBukkit start
- // this.bc();
+ // this.updateSpawnFlags();
worldserver.setSpawnFlags(this.getSpawnMonsters(), this.getSpawnAnimals());
diff --git a/Spigot-Server-Patches/POM-Changes.patch b/Spigot-Server-Patches/POM-Changes.patch
index 41540706a9..282dc7fd4d 100644
--- a/Spigot-Server-Patches/POM-Changes.patch
+++ b/Spigot-Server-Patches/POM-Changes.patch
@@ -16,7 +16,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- spigot
+ paper
jar
- 1.16.4-R0.1-SNAPSHOT
+ 1.16.5-R0.1-SNAPSHOT
- Spigot
- https://www.spigotmc.org/
+ Paper
@@ -27,7 +27,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+
UTF-8
unknown
- 1.16.4
+ git
@@ -0,0 +0,0 @@
@@ -62,7 +62,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
${minecraft.version}-SNAPSHOT
compile
@@ -0,0 +0,0 @@
- 8.0.1
+ 9.0
compile
+
@@ -101,7 +101,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- ex-spigot
-
-- git-Spigot-%s
+- ${bt.name}-Spigot-%s
- ../
- spigot.desc
-
@@ -153,7 +153,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
${shadeSourcesJar}
-@@ -0,0 +0,0 @@
+- org.spigotmc:minecraft-server
++ io.papermc:minecraft-server
+
com/google/common/**
com/google/gson/**
com/google/thirdparty/**
@@ -202,7 +204,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
@@ -0,0 +0,0 @@ public class Main {
}
- if (false && Main.class.getPackage().getImplementationVendor() != null && System.getProperty("IReallyKnowWhatIAmDoingISwear") == null) {
+ if (Main.class.getPackage().getImplementationVendor() != null && System.getProperty("IReallyKnowWhatIAmDoingISwear") == null) {
- Date buildDate = new Date(Integer.parseInt(Main.class.getPackage().getImplementationVendor()) * 1000L);
+ Date buildDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").parse(Main.class.getPackage().getImplementationVendor()); // Paper
diff --git a/Spigot-Server-Patches/Use-TerminalConsoleAppender-for-console-improvements.patch b/Spigot-Server-Patches/Use-TerminalConsoleAppender-for-console-improvements.patch
index 974edb7601..c1623662fe 100644
--- a/Spigot-Server-Patches/Use-TerminalConsoleAppender-for-console-improvements.patch
+++ b/Spigot-Server-Patches/Use-TerminalConsoleAppender-for-console-improvements.patch
@@ -325,7 +325,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ System.setProperty(TerminalConsoleAppender.JLINE_OVERRIDE_PROPERTY, "false"); // Paper
}
- if (false && Main.class.getPackage().getImplementationVendor() != null && System.getProperty("IReallyKnowWhatIAmDoingISwear") == null) {
+ if (Main.class.getPackage().getImplementationVendor() != null && System.getProperty("IReallyKnowWhatIAmDoingISwear") == null) {
@@ -0,0 +0,0 @@ public class Main {
System.out.println("Unable to read system info");
}
diff --git a/Spigot-Server-Patches/Use-asynchronous-Log4j-2-loggers.patch b/Spigot-Server-Patches/Use-asynchronous-Log4j-2-loggers.patch
index 8b8f90c601..44aab741ce 100644
--- a/Spigot-Server-Patches/Use-asynchronous-Log4j-2-loggers.patch
+++ b/Spigot-Server-Patches/Use-asynchronous-Log4j-2-loggers.patch
@@ -9,8 +9,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
--- a/pom.xml
+++ b/pom.xml
@@ -0,0 +0,0 @@
- 2.8.1
- compile
+
+
+
+
diff --git a/work/BuildData b/work/BuildData
index 501ea06074..656df5e622 160000
--- a/work/BuildData
+++ b/work/BuildData
@@ -1 +1 @@
-Subproject commit 501ea060743c7bba4436878207e4f1232298efce
+Subproject commit 656df5e622bba97efb4e858e8cd3ec428a0b2d71
diff --git a/work/Bukkit b/work/Bukkit
index 0958895aef..85b16b8a5f 160000
--- a/work/Bukkit
+++ b/work/Bukkit
@@ -1 +1 @@
-Subproject commit 0958895aefcccb79abb4d703d5a8694af7416e4a
+Subproject commit 85b16b8a5f044eb8d38375c23e8968641d18a933
diff --git a/work/CraftBukkit b/work/CraftBukkit
index 7a6c3c9aa6..f3f30947e0 160000
--- a/work/CraftBukkit
+++ b/work/CraftBukkit
@@ -1 +1 @@
-Subproject commit 7a6c3c9aa6e48de164aeeb78052a7775f3f81c30
+Subproject commit f3f30947e07c4ea07dcbf41129c2ca830a73fd4d
diff --git a/work/Spigot b/work/Spigot
index a93cbb1e98..018b9a0d5a 160000
--- a/work/Spigot
+++ b/work/Spigot
@@ -1 +1 @@
-Subproject commit a93cbb1e986c59ffd888f072490db0afe4119093
+Subproject commit 018b9a0d5a7a03eeabe2b2d7d74bca56db2e9949