diff --git a/Spigot-API-Patches/0001-POM-changes.patch b/Spigot-API-Patches/0001-POM-changes.patch index a18a62e0be..9b0058a900 100644 --- a/Spigot-API-Patches/0001-POM-changes.patch +++ b/Spigot-API-Patches/0001-POM-changes.patch @@ -1,11 +1,11 @@ -From d2964723ffed5f0bbf1fef361f554666b43d53e7 Mon Sep 17 00:00:00 2001 +From b3731bee34a4bb6ddd06bc47e1b0c9631aabcec9 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Mon, 29 Feb 2016 17:16:08 -0600 Subject: [PATCH] POM changes diff --git a/pom.xml b/pom.xml -index 217ce0b..8f0fb79 100644 +index 2ccc205..1ce6a91 100644 --- a/pom.xml +++ b/pom.xml @@ -4,35 +4,37 @@ @@ -24,7 +24,7 @@ index 217ce0b..8f0fb79 100644 - spigot-api + com.destroystokyo.paper + paper-api - 1.10.2-R0.1-SNAPSHOT + 1.11-R0.1-SNAPSHOT jar - Spigot-API @@ -101,7 +101,7 @@ index 217ce0b..8f0fb79 100644 - org.codehaus.mojo - animal-sniffer-maven-plugin -- 1.14 +- 1.15 - - - process-classes @@ -121,7 +121,7 @@ index 217ce0b..8f0fb79 100644 - org.apache.maven.plugins maven-shade-plugin - 2.4.1 + 2.4.3 -- 2.10.2 diff --git a/Spigot-API-Patches/0003-Timings-v2.patch b/Spigot-API-Patches/0003-Timings-v2.patch index 9f90c71e63..9756b42ae4 100644 --- a/Spigot-API-Patches/0003-Timings-v2.patch +++ b/Spigot-API-Patches/0003-Timings-v2.patch @@ -1,4 +1,4 @@ -From 3a72f5e0b411d51cf5ec7263a22466214012d08f Mon Sep 17 00:00:00 2001 +From 814fcd79c37cf32b74eb3a231ba4ff8e71d58c0a Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 29 Feb 2016 18:48:17 -0600 Subject: [PATCH] Timings v2 @@ -2888,7 +2888,7 @@ index 0000000..3a288d2 + } +} diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index dc2c9d1..85fd9a8 100644 +index 5d8422e..ac8b0f5 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -537,7 +537,6 @@ public final class Bukkit { @@ -2900,10 +2900,10 @@ index dc2c9d1..85fd9a8 100644 /** diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 69720e9..f82cbaf 100644 +index c5c3506..3cc741b 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -942,12 +942,27 @@ public interface Server extends PluginMessageRecipient { +@@ -925,12 +925,27 @@ public interface Server extends PluginMessageRecipient { public class Spigot { @@ -2933,7 +2933,7 @@ index 69720e9..f82cbaf 100644 * Sends the component to the player * diff --git a/src/main/java/org/bukkit/command/Command.java b/src/main/java/org/bukkit/command/Command.java -index ffbe5dd..4c86694 100644 +index 08a9739..347d218 100644 --- a/src/main/java/org/bukkit/command/Command.java +++ b/src/main/java/org/bukkit/command/Command.java @@ -32,7 +32,8 @@ public abstract class Command { @@ -2954,7 +2954,7 @@ index ffbe5dd..4c86694 100644 } /** -@@ -250,7 +250,6 @@ public abstract class Command { +@@ -235,7 +235,6 @@ public abstract class Command { public boolean setLabel(String name) { this.nextLabel = name; if (!isRegistered()) { @@ -3656,5 +3656,5 @@ index 8d98297..7e89b97 100644 - } } -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-API-Patches/0005-Add-getTPS-method.patch b/Spigot-API-Patches/0005-Add-getTPS-method.patch index ab8c17c677..22d1f021c5 100644 --- a/Spigot-API-Patches/0005-Add-getTPS-method.patch +++ b/Spigot-API-Patches/0005-Add-getTPS-method.patch @@ -1,14 +1,14 @@ -From 5c2caa3ee27bbd84914df4a001cfb7bcb528b3a2 Mon Sep 17 00:00:00 2001 +From 10486c5a17f63eecf703a772acd168b74c0f6d40 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 29 Feb 2016 17:24:57 -0600 Subject: [PATCH] Add getTPS method diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 85fd9a8..8d602a3 100644 +index ac8b0f5..86102a6 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -1140,6 +1140,14 @@ public final class Bukkit { +@@ -1121,6 +1121,14 @@ public final class Bukkit { } /** @@ -24,10 +24,10 @@ index 85fd9a8..8d602a3 100644 * @return the unsafe values instance */ diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index f82cbaf..6e23b0c 100644 +index 3cc741b..1e65835 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -934,6 +934,13 @@ public interface Server extends PluginMessageRecipient { +@@ -917,6 +917,13 @@ public interface Server extends PluginMessageRecipient { BossBar createBossBar(String title, BarColor color, BarStyle style, BarFlag ...flags); /** @@ -42,5 +42,5 @@ index f82cbaf..6e23b0c 100644 * @return the unsafe values instance */ -- -2.9.2.windows.1 +2.10.2 diff --git a/Spigot-API-Patches/0015-Expose-server-CommandMap.patch b/Spigot-API-Patches/0015-Expose-server-CommandMap.patch index dd32aa24b6..7668baa7d2 100644 --- a/Spigot-API-Patches/0015-Expose-server-CommandMap.patch +++ b/Spigot-API-Patches/0015-Expose-server-CommandMap.patch @@ -1,11 +1,11 @@ -From e4b1bdd2b710c3c09c0ba4946bf8a313c4f4296d Mon Sep 17 00:00:00 2001 +From a6fae8f6ab073c9006b14b039aebbf7e1d64e242 Mon Sep 17 00:00:00 2001 From: kashike Date: Mon, 29 Feb 2016 19:48:59 -0600 Subject: [PATCH] Expose server CommandMap diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 8d602a3..b6a0b40 100644 +index 86102a6..5b0441a 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -17,10 +17,7 @@ import org.bukkit.boss.BarColor; @@ -20,7 +20,7 @@ index 8d602a3..b6a0b40 100644 import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryType; -@@ -1156,6 +1153,17 @@ public final class Bukkit { +@@ -1137,6 +1134,17 @@ public final class Bukkit { return server.getUnsafe(); } @@ -39,7 +39,7 @@ index 8d602a3..b6a0b40 100644 { return server.spigot(); diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 6e23b0c..a1ce356 100644 +index 1e65835..de22136 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -17,10 +17,7 @@ import org.bukkit.boss.BarColor; @@ -54,7 +54,7 @@ index 6e23b0c..a1ce356 100644 import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryType; -@@ -940,6 +937,14 @@ public interface Server extends PluginMessageRecipient { +@@ -923,6 +920,14 @@ public interface Server extends PluginMessageRecipient { */ public double[] getTPS(); @@ -70,5 +70,5 @@ index 6e23b0c..a1ce356 100644 * @see UnsafeValues * @return the unsafe values instance -- -2.9.2.windows.1 +2.10.2 diff --git a/Spigot-API-Patches/0026-Add-command-to-reload-permissions.yml-and-require-co.patch b/Spigot-API-Patches/0026-Add-command-to-reload-permissions.yml-and-require-co.patch index e8a92b0cdd..8fa807281e 100644 --- a/Spigot-API-Patches/0026-Add-command-to-reload-permissions.yml-and-require-co.patch +++ b/Spigot-API-Patches/0026-Add-command-to-reload-permissions.yml-and-require-co.patch @@ -1,4 +1,4 @@ -From f0041900182f286ab91e23bd1c3dac326d165510 Mon Sep 17 00:00:00 2001 +From 8674a30c6579a14d5b0be4b545d2fb296eb9a3eb Mon Sep 17 00:00:00 2001 From: William Date: Fri, 18 Mar 2016 03:28:07 -0400 Subject: [PATCH] Add command to reload permissions.yml and require confirm to @@ -6,10 +6,10 @@ Subject: [PATCH] Add command to reload permissions.yml and require confirm to diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 5b37396..b01cd7d 100644 +index 5265d68..28a54fd 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -1182,6 +1182,13 @@ public final class Bukkit { +@@ -1163,6 +1163,13 @@ public final class Bukkit { public static CommandMap getCommandMap() { return server.getCommandMap(); } @@ -24,10 +24,10 @@ index 5b37396..b01cd7d 100644 public static Server.Spigot spigot() diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 309fa3f..b527372 100644 +index c8d209e..4d82c6f 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1018,4 +1018,6 @@ public interface Server extends PluginMessageRecipient { +@@ -1001,4 +1001,6 @@ public interface Server extends PluginMessageRecipient { } Spigot spigot(); @@ -105,5 +105,5 @@ index 1302773..9ce0a5d 100644 + } -- -2.10.1.windows.1 +2.10.2 diff --git a/Spigot-API-Patches/0033-Add-getEntity-by-UUID-API.patch b/Spigot-API-Patches/0033-Add-getEntity-by-UUID-API.patch index ec4af78f3a..5bc0138e9a 100644 --- a/Spigot-API-Patches/0033-Add-getEntity-by-UUID-API.patch +++ b/Spigot-API-Patches/0033-Add-getEntity-by-UUID-API.patch @@ -1,14 +1,14 @@ -From 1ec57a41072c805aeeb8efb10cac8b4738cb4aab Mon Sep 17 00:00:00 2001 +From 2ab72f61fd122921fba37d85ee45181482a8b1bc Mon Sep 17 00:00:00 2001 From: DemonWav Date: Wed, 30 Mar 2016 01:19:51 -0500 Subject: [PATCH] Add getEntity by UUID API diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index b01cd7d..3161b87 100644 +index 28a54fd..152f1d1 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -1189,6 +1189,16 @@ public final class Bukkit { +@@ -1170,6 +1170,16 @@ public final class Bukkit { public static void reloadPermissions() { server.reloadPermissions(); } @@ -26,10 +26,10 @@ index b01cd7d..3161b87 100644 public static Server.Spigot spigot() diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index b527372..edf0d04 100644 +index 4d82c6f..4b56131 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1020,4 +1020,12 @@ public interface Server extends PluginMessageRecipient { +@@ -1003,4 +1003,12 @@ public interface Server extends PluginMessageRecipient { Spigot spigot(); void reloadPermissions(); // Paper @@ -43,5 +43,5 @@ index b527372..edf0d04 100644 + Entity getEntity(UUID uuid); // Paper } -- -2.9.2.windows.1 +2.10.2 diff --git a/Spigot-API-Patches/0037-EntityRegainHealthEvent-isFastRegen-API.patch b/Spigot-API-Patches/0037-EntityRegainHealthEvent-isFastRegen-API.patch index 04f5eae1b4..08120d8122 100644 --- a/Spigot-API-Patches/0037-EntityRegainHealthEvent-isFastRegen-API.patch +++ b/Spigot-API-Patches/0037-EntityRegainHealthEvent-isFastRegen-API.patch @@ -1,24 +1,19 @@ -From e9878408be4b8c493c04fa5adcd9c2c7fcd4297c Mon Sep 17 00:00:00 2001 +From eb18a4b30a1eabbbac206684cb0fe901ce78a5c0 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Fri, 22 Apr 2016 01:43:11 -0500 Subject: [PATCH] EntityRegainHealthEvent isFastRegen API diff --git a/src/main/java/org/bukkit/event/entity/EntityRegainHealthEvent.java b/src/main/java/org/bukkit/event/entity/EntityRegainHealthEvent.java -index a7b3517..703520f 100644 +index c7e9ba6..3ffc727 100644 --- a/src/main/java/org/bukkit/event/entity/EntityRegainHealthEvent.java +++ b/src/main/java/org/bukkit/event/entity/EntityRegainHealthEvent.java -@@ -13,6 +13,7 @@ public class EntityRegainHealthEvent extends EntityEvent implements Cancellable +@@ -13,12 +13,31 @@ public class EntityRegainHealthEvent extends EntityEvent implements Cancellable private boolean cancelled; private double amount; private final RegainReason regainReason; + private final boolean isFastRegen; // Paper - @Deprecated - public EntityRegainHealthEvent(final Entity entity, final int amount, final RegainReason regainReason) { -@@ -20,10 +21,28 @@ public class EntityRegainHealthEvent extends EntityEvent implements Cancellable - } - public EntityRegainHealthEvent(final Entity entity, final double amount, final RegainReason regainReason) { + // Paper start - Forward + this(entity, amount, regainReason, false); @@ -46,5 +41,5 @@ index a7b3517..703520f 100644 /** * Gets the amount of regained health -- -2.9.2.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0001-POM-Changes.patch b/Spigot-Server-Patches/0001-POM-Changes.patch index 1e97a19242..2cb4e1a221 100644 --- a/Spigot-Server-Patches/0001-POM-Changes.patch +++ b/Spigot-Server-Patches/0001-POM-Changes.patch @@ -1,11 +1,11 @@ -From 888d6c40c7160d46ca8a0f64c5c0eda4129a841a Mon Sep 17 00:00:00 2001 +From ef4a8ce2c0397b24187bd98015ccc83c33f14062 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Mon, 29 Feb 2016 20:40:33 -0600 Subject: [PATCH] POM Changes diff --git a/pom.xml b/pom.xml -index 5dfa5b6..4ae34c8 100644 +index 165863b..87f438c 100644 --- a/pom.xml +++ b/pom.xml @@ -1,12 +1,12 @@ @@ -17,7 +17,7 @@ index 5dfa5b6..4ae34c8 100644 + com.destroystokyo.paper + paper jar - 1.10.2-R0.1-SNAPSHOT + 1.11-R0.1-SNAPSHOT - Spigot - http://www.spigotmc.org + Paper @@ -25,10 +25,10 @@ index 5dfa5b6..4ae34c8 100644 UTF-8 -@@ -15,21 +15,22 @@ - 1_10_R1 +@@ -16,21 +16,22 @@ git-Bukkit- + yyyyMMdd-HHmm - 1.6 - 1.6 + @@ -54,7 +54,7 @@ index 5dfa5b6..4ae34c8 100644 ${project.version} compile -@@ -93,34 +94,22 @@ +@@ -94,34 +95,22 @@ @@ -100,9 +100,9 @@ index 5dfa5b6..4ae34c8 100644 -@@ -130,11 +119,12 @@ +@@ -131,11 +120,12 @@ maven-jar-plugin - 2.6 + 3.0.2 + true @@ -111,16 +111,16 @@ index 5dfa5b6..4ae34c8 100644 CraftBukkit - ${spigot.desc}${craftbukkit.desc} + ${describe} - Bukkit Team + ${maven.build.timestamp} Bukkit ${api.version} -@@ -164,26 +154,6 @@ +@@ -165,26 +155,6 @@ - org.codehaus.mojo - animal-sniffer-maven-plugin -- 1.14 +- 1.15 - - - process-classes @@ -140,8 +140,8 @@ index 5dfa5b6..4ae34c8 100644 - org.apache.maven.plugins maven-shade-plugin - 2.4.1 -@@ -194,11 +164,13 @@ + 2.4.3 +@@ -195,11 +165,13 @@ shade @@ -159,7 +159,7 @@ index 5dfa5b6..4ae34c8 100644 jline org.bukkit.craftbukkit.libs.jline -@@ -232,20 +204,6 @@ +@@ -238,20 +210,6 @@ maven-compiler-plugin 3.1 @@ -194,5 +194,5 @@ index 9304637..674096c 100644 if (stream != null) { -- -2.9.0 +2.10.2 diff --git a/Spigot-Server-Patches/0002-Paper-config-files.patch b/Spigot-Server-Patches/0002-Paper-config-files.patch index 3ed81f06dc..c845f75634 100644 --- a/Spigot-Server-Patches/0002-Paper-config-files.patch +++ b/Spigot-Server-Patches/0002-Paper-config-files.patch @@ -1,4 +1,4 @@ -From ad312eb4160456b4bef80ad7b7984b4cdb9d609c Mon Sep 17 00:00:00 2001 +From ec03a27e95b1f53a612f33a4223a818ad61226fa Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Mon, 29 Feb 2016 21:02:09 -0600 Subject: [PATCH] Paper config files @@ -253,10 +253,10 @@ index 0000000..dae60dc + } +} diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java -index 109d0e8..11a49a3 100644 +index 954e0f3..f01bd35 100644 --- a/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java -@@ -182,6 +182,10 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer +@@ -183,6 +183,10 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer org.spigotmc.SpigotConfig.init((File) options.valueOf("spigot-settings")); org.spigotmc.SpigotConfig.registerCommands(); // Spigot end @@ -268,7 +268,7 @@ index 109d0e8..11a49a3 100644 DedicatedServer.LOGGER.info("Generating keypair"); this.a(MinecraftEncryption.b()); diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index fcd90be..e649435 100644 +index a912719..8bd0250 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -125,6 +125,8 @@ public abstract class World implements IBlockAccess { @@ -289,7 +289,7 @@ index fcd90be..e649435 100644 this.world = new CraftWorld((WorldServer) this, gen, env); this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 0658647..e7e9941 100644 +index 6f31b47..d306f62 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -694,6 +694,7 @@ public final class CraftServer implements Server { @@ -316,10 +316,10 @@ index 0658647..e7e9941 100644 overrideAllCommandBlockCommands = commandsConfiguration.getStringList("command-block-overrides").contains("*"); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 337aa29..979adad 100644 +index f7637a9..11bc824 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -122,6 +122,14 @@ public class Main { +@@ -126,6 +126,14 @@ public class Main { .defaultsTo(new File("spigot.yml")) .describedAs("Yml file"); // Spigot End @@ -335,5 +335,5 @@ index 337aa29..979adad 100644 }; -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0003-MC-Dev-fixes.patch b/Spigot-Server-Patches/0003-MC-Dev-fixes.patch index 9a12c0c813..f02323521f 100644 --- a/Spigot-Server-Patches/0003-MC-Dev-fixes.patch +++ b/Spigot-Server-Patches/0003-MC-Dev-fixes.patch @@ -1,4 +1,4 @@ -From bd8f9fe1de9b9e80ac852d851b6f7d58aecfec55 Mon Sep 17 00:00:00 2001 +From 3feb3accfd0afbeb9d2896bf9f1561dab0959fb7 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 30 Mar 2016 19:36:20 -0400 Subject: [PATCH] MC Dev fixes @@ -18,7 +18,7 @@ index f02fc60..d60e755 100644 } } diff --git a/src/main/java/net/minecraft/server/BiomeBase.java b/src/main/java/net/minecraft/server/BiomeBase.java -index 059c96f..ab04f9c 100644 +index e62df5c..62a338e 100644 --- a/src/main/java/net/minecraft/server/BiomeBase.java +++ b/src/main/java/net/minecraft/server/BiomeBase.java @@ -49,7 +49,7 @@ public abstract class BiomeBase { @@ -44,19 +44,37 @@ index 71524f2..288c52c 100644 } diff --git a/src/main/java/net/minecraft/server/CommandAbstract.java b/src/main/java/net/minecraft/server/CommandAbstract.java -index 7876457..20572d4 100644 +index fe74068..b669884 100644 --- a/src/main/java/net/minecraft/server/CommandAbstract.java +++ b/src/main/java/net/minecraft/server/CommandAbstract.java -@@ -212,7 +212,7 @@ public abstract class CommandAbstract implements ICommand { +@@ -223,7 +223,7 @@ public abstract class CommandAbstract implements ICommand { } if (object != null && oclass.isAssignableFrom(object.getClass())) { - return (Entity) object; + return (T) object; // Paper - fix decompile error } else { - throw new ExceptionEntityNotFound(); + throw new ExceptionEntityNotFound(s); } -@@ -554,7 +554,7 @@ public abstract class CommandAbstract implements ICommand { +@@ -440,7 +440,7 @@ public abstract class CommandAbstract implements ICommand { + } + + private static > IBlockData a(IBlockData iblockdata, IBlockState iblockstate, Comparable comparable) { +- return iblockdata.set(iblockstate, comparable); ++ return iblockdata.set(iblockstate, (T) comparable); // Paper - fix decompiler error + } + + public static Predicate b(final Block block, String s) throws ExceptionInvalidBlockState { +@@ -533,7 +533,7 @@ public abstract class CommandAbstract implements ICommand { + + @Nullable + private static > T a(IBlockState iblockstate, String s) { +- return (Comparable) iblockstate.b(s).orNull(); ++ return iblockstate.b(s).orNull(); // Paper - fix decompiler error + } + + public static String a(Object[] aobject) { +@@ -684,7 +684,7 @@ public abstract class CommandAbstract implements ICommand { return this.getCommand().compareTo(icommand.getCommand()); } @@ -65,6 +83,66 @@ index 7876457..20572d4 100644 return this.a((ICommand) object); } +diff --git a/src/main/java/net/minecraft/server/IEntitySelector.java b/src/main/java/net/minecraft/server/IEntitySelector.java +index dc0ffd8..ec75cf3 100644 +--- a/src/main/java/net/minecraft/server/IEntitySelector.java ++++ b/src/main/java/net/minecraft/server/IEntitySelector.java +@@ -61,7 +61,7 @@ public final class IEntitySelector { + } + + public boolean apply(@Nullable Object object) { +- return this.a((Entity) object); ++ return this.a((T) object); // Paper - Fix decompile error + } + }; + } +@@ -71,7 +71,7 @@ public final class IEntitySelector { + final ScoreboardTeamBase.EnumTeamPush scoreboardteambase_enumteampush = scoreboardteambase == null ? ScoreboardTeamBase.EnumTeamPush.ALWAYS : scoreboardteambase.getCollisionRule(); + + return scoreboardteambase_enumteampush == ScoreboardTeamBase.EnumTeamPush.NEVER ? Predicates.alwaysFalse() : Predicates.and(IEntitySelector.e, new Predicate() { +- public boolean a(@Nullable Entity entity) { ++ public boolean a(@Nullable Entity entity1) { // Paper - fix decompile error + if (!entity.isCollidable()) { + return false; + } else if (entity1.world.isClientSide && (!(entity instanceof EntityHuman) || !((EntityHuman) entity).cR())) { +@@ -83,9 +83,10 @@ public final class IEntitySelector { + if (scoreboardteambase_enumteampush == ScoreboardTeamBase.EnumTeamPush.NEVER) { + return false; + } else { +- boolean flag = scoreboardteambase1 != null && scoreboardteambase1.isAlly(scoreboardteambase); ++ boolean flag = scoreboardteambase != null && scoreboardteambase.isAlly(scoreboardteambase); // Paper - fix decompile error + +- return (scoreboardteambase_enumteampush1 == ScoreboardTeamBase.EnumTeamPush.HIDE_FOR_OWN_TEAM || scoreboardteambase_enumteampush == ScoreboardTeamBase.EnumTeamPush.HIDE_FOR_OWN_TEAM) && flag ? false : scoreboardteambase_enumteampush1 != ScoreboardTeamBase.EnumTeamPush.HIDE_FOR_OTHER_TEAMS && scoreboardteambase_enumteampush != ScoreboardTeamBase.EnumTeamPush.HIDE_FOR_OTHER_TEAMS || flag; ++ // Paper - fix decompiler error ++ return (scoreboardteambase_enumteampush == ScoreboardTeamBase.EnumTeamPush.HIDE_FOR_OWN_TEAM || scoreboardteambase_enumteampush == ScoreboardTeamBase.EnumTeamPush.HIDE_FOR_OWN_TEAM) && flag ? false : scoreboardteambase_enumteampush != ScoreboardTeamBase.EnumTeamPush.HIDE_FOR_OTHER_TEAMS && scoreboardteambase_enumteampush != ScoreboardTeamBase.EnumTeamPush.HIDE_FOR_OTHER_TEAMS || flag; + } + } + } +@@ -98,10 +99,12 @@ public final class IEntitySelector { + + public static Predicate b(final Entity entity) { + return new Predicate() { +- public boolean a(@Nullable Entity entity) { ++ public boolean a(@Nullable Entity entity1) { // Paper - fix decompile error + while (true) { +- if (entity.isPassenger()) { +- entity = entity.bB(); ++ // Paper start - fix decompile error - entity -> entity1 - double check this ++ if (entity1.isPassenger()) { ++ entity1 = entity.bB(); ++ // Paper end + if (entity != entity1) { + continue; + } +@@ -139,7 +142,7 @@ public final class IEntitySelector { + } + } + +- public boolean apply(@Nullable Object object) { ++ public boolean apply(@Nullable Entity object) { + return this.a((Entity) object); + } + } diff --git a/src/test/java/org/bukkit/craftbukkit/inventory/ItemFactoryTest.java b/src/test/java/org/bukkit/craftbukkit/inventory/ItemFactoryTest.java index f5bcbdb..3190cad 100644 --- a/src/test/java/org/bukkit/craftbukkit/inventory/ItemFactoryTest.java @@ -79,5 +157,5 @@ index f5bcbdb..3190cad 100644 for (ZipEntry clazzEntry; (clazzEntry = nmsZipStream.getNextEntry()) != null; ) { final String entryName = clazzEntry.getName(); -- -2.7.4 (Apple Git-66) +2.10.2 diff --git a/Spigot-Server-Patches/0005-Timings-v2.patch b/Spigot-Server-Patches/0005-Timings-v2.patch index ef7bd986b9..2720bb20e6 100644 --- a/Spigot-Server-Patches/0005-Timings-v2.patch +++ b/Spigot-Server-Patches/0005-Timings-v2.patch @@ -1,14 +1,14 @@ -From cc65e1b66b14dc2f2ef8ee68689bdee6201c1fd0 Mon Sep 17 00:00:00 2001 +From 8c8e0a712b18892ec8be649e2833253515115a00 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 3 Mar 2016 04:00:11 -0600 Subject: [PATCH] Timings v2 diff --git a/pom.xml b/pom.xml -index 4ae34c8..63aaa7a 100644 +index cb22454..0de362d 100644 --- a/pom.xml +++ b/pom.xml -@@ -65,6 +65,12 @@ +@@ -66,6 +66,12 @@ compile @@ -143,7 +143,7 @@ index 0000000..29838de +} diff --git a/src/main/java/co/aikar/timings/TimedChunkGenerator.java b/src/main/java/co/aikar/timings/TimedChunkGenerator.java new file mode 100644 -index 0000000..2bf5b66 +index 0000000..b79f1be --- /dev/null +++ b/src/main/java/co/aikar/timings/TimedChunkGenerator.java @@ -0,0 +1,126 @@ @@ -262,8 +262,8 @@ index 0000000..2bf5b66 + + @Override + @Nullable -+ public BlockPosition findNearestMapFeature(World world, String s, BlockPosition blockposition) { -+ return timedGenerator.findNearestMapFeature(world, s, blockposition); ++ public BlockPosition findNearestMapFeature(World world, String s, BlockPosition blockposition, boolean flag) { ++ return timedGenerator.findNearestMapFeature(world, s, blockposition, flag); + } + + @Override @@ -425,10 +425,10 @@ index 3d0a005..f509bed 100644 + } } diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java -index a106e44..d17160a 100644 +index 9d14403..da86874 100644 --- a/src/main/java/net/minecraft/server/Block.java +++ b/src/main/java/net/minecraft/server/Block.java -@@ -33,6 +33,15 @@ public class Block { +@@ -35,6 +35,15 @@ public class Block { protected final BlockStateList blockStateList; private IBlockData blockData; private String name; @@ -445,7 +445,7 @@ index a106e44..d17160a 100644 public static int getId(Block block) { return Block.REGISTRY.a(block); // CraftBukkit - decompile error diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index b651edc..5807bb8 100644 +index 81fc04e..bd3b160 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -900,7 +900,7 @@ public class Chunk { @@ -493,10 +493,10 @@ index b651edc..5807bb8 100644 private void z() { diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 5682f03..1380815 100644 +index b39937f..17d39bb 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java -@@ -194,7 +194,7 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -195,7 +195,7 @@ public class ChunkProviderServer implements IChunkProvider { } public void saveChunkNOP(Chunk chunk) { @@ -505,7 +505,7 @@ index 5682f03..1380815 100644 this.chunkLoader.b(this.world, chunk); } catch (Exception exception) { ChunkProviderServer.a.error("Couldn\'t save entities", exception); -@@ -203,7 +203,7 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -204,7 +204,7 @@ public class ChunkProviderServer implements IChunkProvider { } public void saveChunk(Chunk chunk) { @@ -515,10 +515,10 @@ index 5682f03..1380815 100644 this.chunkLoader.a(this.world, chunk); } catch (IOException ioexception) { diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index f604639..17dd7bb 100644 +index 15969b1..ca33899 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -@@ -394,7 +394,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { +@@ -402,7 +402,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { public void loadEntities(Chunk chunk, NBTTagCompound nbttagcompound, World world) { // CraftBukkit end @@ -526,18 +526,18 @@ index f604639..17dd7bb 100644 + world.timings.syncChunkLoadNBTTimer.startTiming(); // Spigot NBTTagList nbttaglist1 = nbttagcompound.getList("Entities", 10); - if (nbttaglist1 != null) { -@@ -405,8 +405,6 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { - chunk.g(true); - } + for (int l = 0; l < nbttaglist1.size(); ++l) { +@@ -411,8 +411,6 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { + a(nbttagcompound2, world, chunk); + chunk.g(true); } - world.timings.syncChunkLoadEntitiesTimer.stopTiming(); // Spigot - world.timings.syncChunkLoadTileEntitiesTimer.startTiming(); // Spigot NBTTagList nbttaglist2 = nbttagcompound.getList("TileEntities", 10); - if (nbttaglist2 != null) { -@@ -419,8 +417,6 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { - } + for (int i1 = 0; i1 < nbttaglist2.size(); ++i1) { +@@ -423,8 +421,6 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { + chunk.a(tileentity); } } - world.timings.syncChunkLoadTileEntitiesTimer.stopTiming(); // Spigot @@ -545,8 +545,8 @@ index f604639..17dd7bb 100644 if (nbttagcompound.hasKeyOfType("TileTicks", 9)) { NBTTagList nbttaglist3 = nbttagcompound.getList("TileTicks", 10); -@@ -440,7 +436,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { - } +@@ -442,7 +438,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { + world.b(new BlockPosition(nbttagcompound4.getInt("x"), nbttagcompound4.getInt("y"), nbttagcompound4.getInt("z")), block, nbttagcompound4.getInt("t"), nbttagcompound4.getInt("p")); } } - world.timings.syncChunkLoadTileTicksTimer.stopTiming(); // Spigot @@ -555,7 +555,7 @@ index f604639..17dd7bb 100644 // return chunk; // CraftBukkit } diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java -index 11a49a3..e70d5c5 100644 +index f01bd35..51d6b3e 100644 --- a/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java @@ -23,7 +23,7 @@ import java.io.PrintStream; @@ -567,16 +567,16 @@ index 11a49a3..e70d5c5 100644 import org.bukkit.event.server.ServerCommandEvent; import org.bukkit.craftbukkit.util.Waitable; import org.bukkit.event.server.RemoteServerCommandEvent; -@@ -428,7 +428,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer +@@ -427,7 +427,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer } - public void aL() { + public void aM() { - SpigotTimings.serverCommandTimer.startTiming(); // Spigot + MinecraftTimings.serverCommandTimer.startTiming(); // Spigot while (!this.serverCommandQueue.isEmpty()) { ServerCommand servercommand = (ServerCommand) this.serverCommandQueue.remove(0); -@@ -443,7 +443,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer +@@ -442,7 +442,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer // CraftBukkit end } @@ -586,7 +586,7 @@ index 11a49a3..e70d5c5 100644 public boolean aa() { diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 6434566..1409faa 100644 +index e148e37..e0276a6 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -24,7 +24,8 @@ import org.bukkit.block.BlockFace; @@ -599,7 +599,7 @@ index 6434566..1409faa 100644 import org.bukkit.event.entity.EntityCombustByEntityEvent; import org.bukkit.event.hanging.HangingBreakByEntityEvent; import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; -@@ -143,7 +144,7 @@ public abstract class Entity implements ICommandListener { +@@ -142,7 +143,7 @@ public abstract class Entity implements ICommandListener { public boolean valid; // CraftBukkit public org.bukkit.projectiles.ProjectileSource projectileSource; // CraftBukkit - For projectiles only public boolean forceExplosionKnockback; // CraftBukkit - SPIGOT-949 @@ -608,15 +608,15 @@ index 6434566..1409faa 100644 // Spigot start public final byte activationType = org.spigotmc.ActivationRange.initializeEntityActivationType(this); public final boolean defaultActivationState; -@@ -467,7 +468,6 @@ public abstract class Entity implements ICommandListener { +@@ -471,7 +472,6 @@ public abstract class Entity implements ICommandListener { } - public void move(double d0, double d1, double d2) { + public void move(EnumMoveType enummovetype, double d0, double d1, double d2) { - org.bukkit.craftbukkit.SpigotTimings.entityMoveTimer.startTiming(); // Spigot if (this.noclip) { - this.a(this.getBoundingBox().c(d0, d1, d2)); + this.a(this.getBoundingBox().d(d0, d1, d2)); this.recalcPosition(); -@@ -805,7 +805,6 @@ public abstract class Entity implements ICommandListener { +@@ -820,7 +820,6 @@ public abstract class Entity implements ICommandListener { this.world.methodProfiler.b(); } @@ -625,10 +625,10 @@ index 6434566..1409faa 100644 public void recalcPosition() { diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 365b61d..0a583bc 100644 +index 0fbec05..c19bf3a 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -26,7 +26,7 @@ import org.bukkit.event.entity.EntityTeleportEvent; +@@ -31,7 +31,7 @@ import org.bukkit.event.entity.EntityTeleportEvent; import org.bukkit.event.player.PlayerItemConsumeEvent; // CraftBukkit end @@ -637,15 +637,15 @@ index 365b61d..0a583bc 100644 public abstract class EntityLiving extends Entity { -@@ -1740,7 +1740,6 @@ public abstract class EntityLiving extends Entity { +@@ -1812,7 +1812,6 @@ public abstract class EntityLiving extends Entity { } - public void m() { + public void A_() { - SpigotTimings.timerEntityBaseTick.startTiming(); // Spigot - super.m(); - this.cz(); + super.A_(); + this.cA(); if (!this.world.isClientSide) { -@@ -1813,9 +1812,7 @@ public abstract class EntityLiving extends Entity { +@@ -1885,9 +1884,7 @@ public abstract class EntityLiving extends Entity { } } @@ -655,24 +655,24 @@ index 365b61d..0a583bc 100644 double d0 = this.locX - this.lastX; double d1 = this.locZ - this.lastZ; float f = (float) (d0 * d0 + d1 * d1); -@@ -1884,8 +1881,6 @@ public abstract class EntityLiving extends Entity { +@@ -1956,8 +1953,6 @@ public abstract class EntityLiving extends Entity { } else { - this.bq = 0; + this.bp = 0; } - - SpigotTimings.timerEntityTickRest.stopTiming(); // Spigot } protected float h(float f, float f1) { -@@ -1950,7 +1945,6 @@ public abstract class EntityLiving extends Entity { +@@ -2022,7 +2017,6 @@ public abstract class EntityLiving extends Entity { } this.world.methodProfiler.a("ai"); - SpigotTimings.timerEntityAI.startTiming(); // Spigot - if (this.cj()) { - this.be = false; - this.bf = 0.0F; -@@ -1961,7 +1955,6 @@ public abstract class EntityLiving extends Entity { + if (this.isFrozen()) { + this.bd = false; + this.be = 0.0F; +@@ -2033,7 +2027,6 @@ public abstract class EntityLiving extends Entity { this.doTick(); this.world.methodProfiler.b(); } @@ -680,26 +680,26 @@ index 365b61d..0a583bc 100644 this.world.methodProfiler.b(); this.world.methodProfiler.a("jump"); -@@ -1984,14 +1977,10 @@ public abstract class EntityLiving extends Entity { - this.bg *= 0.98F; - this.bh *= 0.9F; +@@ -2056,14 +2049,10 @@ public abstract class EntityLiving extends Entity { + this.bf *= 0.98F; + this.bg *= 0.9F; this.r(); - SpigotTimings.timerEntityAIMove.startTiming(); // Spigot - this.g(this.bf, this.bg); + this.g(this.be, this.bf); - SpigotTimings.timerEntityAIMove.stopTiming(); // Spigot this.world.methodProfiler.b(); this.world.methodProfiler.a("push"); - SpigotTimings.timerEntityAICollision.startTiming(); // Spigot - this.cs(); + this.ct(); - SpigotTimings.timerEntityAICollision.stopTiming(); // Spigot this.world.methodProfiler.b(); } diff --git a/src/main/java/net/minecraft/server/EntityTracker.java b/src/main/java/net/minecraft/server/EntityTracker.java -index 5432e70..72cd51a 100644 +index 347a2b6..aceb08c 100644 --- a/src/main/java/net/minecraft/server/EntityTracker.java +++ b/src/main/java/net/minecraft/server/EntityTracker.java -@@ -171,7 +171,7 @@ public class EntityTracker { +@@ -175,7 +175,7 @@ public class EntityTracker { public void updatePlayers() { ArrayList arraylist = Lists.newArrayList(); Iterator iterator = this.c.iterator(); @@ -708,7 +708,7 @@ index 5432e70..72cd51a 100644 while (iterator.hasNext()) { EntityTrackerEntry entitytrackerentry = (EntityTrackerEntry) iterator.next(); -@@ -184,7 +184,9 @@ public class EntityTracker { +@@ -188,7 +188,9 @@ public class EntityTracker { } } } @@ -718,7 +718,7 @@ index 5432e70..72cd51a 100644 for (int i = 0; i < arraylist.size(); ++i) { EntityPlayer entityplayer = (EntityPlayer) arraylist.get(i); Iterator iterator1 = this.c.iterator(); -@@ -197,6 +199,7 @@ public class EntityTracker { +@@ -201,6 +203,7 @@ public class EntityTracker { } } } @@ -727,10 +727,10 @@ index 5432e70..72cd51a 100644 } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 26f8467..4814643 100644 +index 0b790ab..81a69e8 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -45,7 +45,7 @@ import org.bukkit.Bukkit; +@@ -47,7 +47,7 @@ import org.bukkit.Bukkit; import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.Main; // CraftBukkit end @@ -739,7 +739,7 @@ index 26f8467..4814643 100644 public abstract class MinecraftServer implements Runnable, ICommandListener, IAsyncTaskHandler, IMojangStatistics { -@@ -450,6 +450,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -457,6 +457,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs } // CraftBukkit end MinecraftServer.LOGGER.info("Stopping server"); @@ -747,7 +747,7 @@ index 26f8467..4814643 100644 // CraftBukkit start if (this.server != null) { this.server.disablePlugins(); -@@ -654,7 +655,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -661,7 +662,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs public void B() {} protected void C() throws ExceptionWorldConflict { // CraftBukkit - added throws @@ -756,7 +756,7 @@ index 26f8467..4814643 100644 long i = System.nanoTime(); ++this.ticks; -@@ -681,7 +682,6 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -688,7 +689,6 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs } if (autosavePeriod > 0 && this.ticks % autosavePeriod == 0) { // CraftBukkit @@ -764,7 +764,7 @@ index 26f8467..4814643 100644 this.methodProfiler.a("save"); this.v.savePlayers(); // Spigot Start -@@ -696,7 +696,6 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -703,7 +703,6 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs // this.saveChunks(true); // Spigot End this.methodProfiler.b(); @@ -772,7 +772,7 @@ index 26f8467..4814643 100644 } this.methodProfiler.a("tallying"); -@@ -713,15 +712,16 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -720,15 +719,16 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs this.methodProfiler.b(); this.methodProfiler.b(); @@ -793,7 +793,7 @@ index 26f8467..4814643 100644 this.methodProfiler.a("jobs"); Queue queue = this.j; -@@ -732,22 +732,23 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -739,22 +739,23 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs SystemUtils.a(entry, MinecraftServer.LOGGER); } // Spigot end @@ -822,7 +822,7 @@ index 26f8467..4814643 100644 // Send time updates to everyone, it will get the right time from the world the player is in. if (this.ticks % 20 == 0) { for (int i = 0; i < this.getPlayerList().players.size(); ++i) { -@@ -755,7 +756,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -762,7 +763,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs entityplayer.playerConnection.sendPacket(new PacketPlayOutUpdateTime(entityplayer.world.getTime(), entityplayer.getPlayerTime(), entityplayer.world.getGameRules().getBoolean("doDaylightCycle"))); // Add support for per player time } } @@ -831,7 +831,7 @@ index 26f8467..4814643 100644 int i; -@@ -812,9 +813,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -819,9 +820,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs this.methodProfiler.b(); this.methodProfiler.a("tracker"); @@ -841,13 +841,13 @@ index 26f8467..4814643 100644 this.methodProfiler.b(); this.methodProfiler.b(); // } // CraftBukkit -@@ -823,20 +822,20 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -830,20 +829,20 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs } this.methodProfiler.c("connection"); - SpigotTimings.connectionTimer.startTiming(); // Spigot + MinecraftTimings.connectionTimer.startTiming(); // Spigot - this.am().c(); + this.an().c(); - SpigotTimings.connectionTimer.stopTiming(); // Spigot + MinecraftTimings.connectionTimer.stopTiming(); // Spigot this.methodProfiler.c("players"); @@ -861,7 +861,7 @@ index 26f8467..4814643 100644 - SpigotTimings.tickablesTimer.startTiming(); // Spigot + MinecraftTimings.tickablesTimer.startTiming(); // Spigot for (i = 0; i < this.o.size(); ++i) { - ((ITickable) this.o.get(i)).E_(); + ((ITickable) this.o.get(i)).F_(); } - SpigotTimings.tickablesTimer.stopTiming(); // Spigot + MinecraftTimings.tickablesTimer.stopTiming(); // Spigot @@ -869,7 +869,7 @@ index 26f8467..4814643 100644 this.methodProfiler.b(); } diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index b0249ff..797a84f 100644 +index ae427b4..ce3390c 100644 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java @@ -1,5 +1,6 @@ @@ -969,10 +969,10 @@ index b0249ff..797a84f 100644 } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 29f0062..d910c41 100644 +index 4c2e13f..a5aa755 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -57,6 +57,7 @@ import org.bukkit.inventory.CraftingInventory; +@@ -56,6 +56,7 @@ import org.bukkit.inventory.CraftingInventory; import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.InventoryView; import org.bukkit.util.NumberConversions; @@ -980,7 +980,7 @@ index 29f0062..d910c41 100644 // CraftBukkit end public class PlayerConnection implements PacketListenerPlayIn, ITickable { -@@ -1339,7 +1340,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { +@@ -1316,7 +1317,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { // CraftBukkit end private void handleCommand(String s) { @@ -989,7 +989,7 @@ index 29f0062..d910c41 100644 // CraftBukkit start - whole method if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot this.LOGGER.info(this.player.getName() + " issued server command: " + s); -@@ -1350,22 +1351,22 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { +@@ -1327,22 +1328,22 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { this.server.getPluginManager().callEvent(event); if (event.isCancelled()) { @@ -1017,7 +1017,7 @@ index 29f0062..d910c41 100644 // CraftBukkit end } diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 7090262..2e418a7 100644 +index 5d6cadc..e40268b 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -1,5 +1,6 @@ @@ -1027,7 +1027,7 @@ index 7090262..2e418a7 100644 import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; -@@ -1167,10 +1168,11 @@ public abstract class PlayerList { +@@ -1165,10 +1166,11 @@ public abstract class PlayerList { } public void savePlayers() { @@ -1041,7 +1041,7 @@ index 7090262..2e418a7 100644 public void addWhitelist(GameProfile gameprofile) { diff --git a/src/main/java/net/minecraft/server/StructureGenerator.java b/src/main/java/net/minecraft/server/StructureGenerator.java -index 8dd434c..c965af1 100644 +index f1f2065..fb350c4 100644 --- a/src/main/java/net/minecraft/server/StructureGenerator.java +++ b/src/main/java/net/minecraft/server/StructureGenerator.java @@ -1,5 +1,7 @@ @@ -1051,8 +1051,8 @@ index 8dd434c..c965af1 100644 +import co.aikar.timings.Timing; import it.unimi.dsi.fastutil.longs.Long2ObjectMap; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; - import java.util.Iterator; -@@ -8,11 +10,13 @@ import java.util.Random; + import it.unimi.dsi.fastutil.objects.ObjectIterator; +@@ -9,11 +11,13 @@ import javax.annotation.Nullable; public abstract class StructureGenerator extends WorldGenBase { @@ -1066,7 +1066,7 @@ index 8dd434c..c965af1 100644 public abstract String a(); protected final synchronized void a(World world, final int i, final int j, int k, int l, ChunkSnapshot chunksnapshot) { -@@ -68,6 +72,7 @@ public abstract class StructureGenerator extends WorldGenBase { +@@ -69,6 +73,7 @@ public abstract class StructureGenerator extends WorldGenBase { } public synchronized boolean a(World world, Random random, ChunkCoordIntPair chunkcoordintpair) { @@ -1074,7 +1074,7 @@ index 8dd434c..c965af1 100644 this.a(world); int i = (chunkcoordintpair.x << 4) + 8; int j = (chunkcoordintpair.z << 4) + 8; -@@ -84,6 +89,7 @@ public abstract class StructureGenerator extends WorldGenBase { +@@ -85,6 +90,7 @@ public abstract class StructureGenerator extends WorldGenBase { this.a(structurestart.e(), structurestart.f(), structurestart); } } @@ -1083,10 +1083,10 @@ index 8dd434c..c965af1 100644 return flag; } diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java -index 42f37df..2b82312 100644 +index 8d54eb3..0f505ed 100644 --- a/src/main/java/net/minecraft/server/TileEntity.java +++ b/src/main/java/net/minecraft/server/TileEntity.java -@@ -6,12 +6,13 @@ import javax.annotation.Nullable; +@@ -4,12 +4,13 @@ import javax.annotation.Nullable; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -1100,10 +1100,10 @@ index 42f37df..2b82312 100644 - public CustomTimingsHandler tickTimer = org.bukkit.craftbukkit.SpigotTimings.getTileEntityTimings(this); // Spigot + public Timing tickTimer = MinecraftTimings.getTileEntityTimings(this); // Paper private static final Logger a = LogManager.getLogger(); - private static final Map> f = Maps.newHashMap(); - private static final Map, String> g = Maps.newHashMap(); + private static final RegistryMaterials> f = new RegistryMaterials(); + protected World world; diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index e649435..b73f64e 100644 +index 8bd0250..78b5a3c 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -18,11 +18,11 @@ import com.google.common.collect.Maps; @@ -1137,7 +1137,7 @@ index e649435..b73f64e 100644 this.entityLimiter = new org.spigotmc.TickLimiter(spigotConfig.entityMaxTickTime); this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime); } -@@ -1379,6 +1379,7 @@ public abstract class World implements IBlockAccess { +@@ -1402,6 +1402,7 @@ public abstract class World implements IBlockAccess { } this.methodProfiler.c("remove"); @@ -1145,7 +1145,7 @@ index e649435..b73f64e 100644 this.entityList.removeAll(this.f); int j; -@@ -1399,6 +1400,7 @@ public abstract class World implements IBlockAccess { +@@ -1422,6 +1423,7 @@ public abstract class World implements IBlockAccess { this.f.clear(); this.l(); @@ -1153,7 +1153,7 @@ index e649435..b73f64e 100644 this.methodProfiler.c("regular"); CrashReportSystemDetails crashreportsystemdetails1; -@@ -1408,6 +1410,7 @@ public abstract class World implements IBlockAccess { +@@ -1431,6 +1433,7 @@ public abstract class World implements IBlockAccess { timings.entityTick.startTiming(); // Spigot guardEntityList = true; // Spigot // CraftBukkit start - Use field for loop variable @@ -1161,7 +1161,7 @@ index e649435..b73f64e 100644 int entitiesThisCycle = 0; if (tickPosition < 0) tickPosition = 0; for (entityLimiter.initTick(); -@@ -1429,10 +1432,11 @@ public abstract class World implements IBlockAccess { +@@ -1452,10 +1455,11 @@ public abstract class World implements IBlockAccess { this.methodProfiler.a("tick"); if (!entity.dead && !(entity instanceof EntityPlayer)) { try { @@ -1175,7 +1175,7 @@ index e649435..b73f64e 100644 crashreport1 = CrashReport.a(throwable1, "Ticking entity"); crashreportsystemdetails1 = crashreport1.a("Entity being ticked"); entity.appendEntityCrashDetails(crashreportsystemdetails1); -@@ -1565,6 +1569,7 @@ public abstract class World implements IBlockAccess { +@@ -1588,6 +1592,7 @@ public abstract class World implements IBlockAccess { } timings.tileEntityPending.stopTiming(); // Spigot @@ -1183,7 +1183,7 @@ index e649435..b73f64e 100644 this.methodProfiler.b(); this.methodProfiler.b(); } -@@ -1617,7 +1622,6 @@ public abstract class World implements IBlockAccess { +@@ -1640,7 +1645,6 @@ public abstract class World implements IBlockAccess { entity.ticksLived++; entity.inactiveTick(); } else { @@ -1191,15 +1191,15 @@ index e649435..b73f64e 100644 // CraftBukkit end entity.M = entity.locX; entity.N = entity.locY; -@@ -1626,6 +1630,7 @@ public abstract class World implements IBlockAccess { +@@ -1649,6 +1653,7 @@ public abstract class World implements IBlockAccess { entity.lastPitch = entity.pitch; - if (flag && entity.ab) { + if (flag && entity.aa) { ++entity.ticksLived; + ++co.aikar.timings.TimingHistory.activatedEntityTicks; // Paper if (entity.isPassenger()) { entity.aw(); } else { -@@ -1684,8 +1689,6 @@ public abstract class World implements IBlockAccess { +@@ -1707,8 +1712,6 @@ public abstract class World implements IBlockAccess { } } } @@ -1209,7 +1209,7 @@ index e649435..b73f64e 100644 } diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 50fad7c..3d98392 100644 +index 695bb42..6afcf7c 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -246,13 +246,13 @@ public class WorldServer extends World implements IAsyncTaskHandler { @@ -1230,7 +1230,7 @@ index 50fad7c..3d98392 100644 this.methodProfiler.c("chunkMap"); timings.doChunkMap.startTiming(); // Spigot this.manager.flush(); -@@ -484,7 +484,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -486,7 +486,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { } } @@ -1239,7 +1239,7 @@ index 50fad7c..3d98392 100644 if (i > 0) { ChunkSection[] achunksection = chunk.getSections(); int i1 = achunksection.length; -@@ -512,6 +512,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -514,6 +514,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { } } } @@ -1247,7 +1247,7 @@ index 50fad7c..3d98392 100644 } this.methodProfiler.b(); -@@ -707,6 +708,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -709,6 +710,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { this.methodProfiler.a("cleaning"); @@ -1255,7 +1255,7 @@ index 50fad7c..3d98392 100644 NextTickListEntry nextticklistentry; for (int j = 0; j < i; ++j) { -@@ -720,9 +722,11 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -722,9 +724,11 @@ public class WorldServer extends World implements IAsyncTaskHandler { // this.nextTickListHash.remove(nextticklistentry); this.U.add(nextticklistentry); } @@ -1267,7 +1267,7 @@ index 50fad7c..3d98392 100644 Iterator iterator = this.U.iterator(); while (iterator.hasNext()) { -@@ -732,6 +736,8 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -734,6 +738,8 @@ public class WorldServer extends World implements IAsyncTaskHandler { if (this.areChunksLoadedBetween(nextticklistentry.a.a(0, 0, 0), nextticklistentry.a.a(0, 0, 0))) { IBlockData iblockdata = this.getType(nextticklistentry.a); @@ -1276,7 +1276,7 @@ index 50fad7c..3d98392 100644 if (iblockdata.getMaterial() != Material.AIR && Block.a(iblockdata.getBlock(), nextticklistentry.a())) { try { -@@ -744,10 +750,12 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -746,10 +752,12 @@ public class WorldServer extends World implements IAsyncTaskHandler { throw new ReportedException(crashreport); } } @@ -1289,7 +1289,7 @@ index 50fad7c..3d98392 100644 this.methodProfiler.b(); this.U.clear(); -@@ -843,7 +851,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -845,7 +853,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { gen = new org.bukkit.craftbukkit.generator.NormalChunkGenerator(this, this.getSeed()); } @@ -1298,7 +1298,7 @@ index 50fad7c..3d98392 100644 // CraftBukkit end } -@@ -1007,6 +1015,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -1010,6 +1018,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { if (chunkproviderserver.e()) { org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld())); // CraftBukkit @@ -1306,7 +1306,7 @@ index 50fad7c..3d98392 100644 if (iprogressupdate != null) { iprogressupdate.a("Saving level"); } -@@ -1016,7 +1025,9 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -1019,7 +1028,9 @@ public class WorldServer extends World implements IAsyncTaskHandler { iprogressupdate.c("Saving chunks"); } @@ -1316,7 +1316,7 @@ index 50fad7c..3d98392 100644 // CraftBukkit - ArrayList -> Collection Collection arraylist = chunkproviderserver.a(); Iterator iterator = arraylist.iterator(); -@@ -1028,7 +1039,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -1031,7 +1042,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { chunkproviderserver.unload(chunk); } } @@ -1325,7 +1325,7 @@ index 50fad7c..3d98392 100644 } } -@@ -1041,6 +1052,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -1044,6 +1055,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { } protected void a() throws ExceptionWorldConflict { @@ -1333,7 +1333,7 @@ index 50fad7c..3d98392 100644 this.checkSession(); WorldServer[] aworldserver = this.server.worldServer; int i = aworldserver.length; -@@ -1070,6 +1082,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -1073,6 +1085,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { this.worldData.e(this.getWorldBorder().i()); this.dataManager.saveWorldData(this.worldData, this.server.getPlayerList().t()); this.worldMaps.a(); @@ -1342,10 +1342,10 @@ index 50fad7c..3d98392 100644 // CraftBukkit start diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index e7e9941..5f2a9b0 100644 +index d306f62..9460486 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1727,6 +1727,7 @@ public final class CraftServer implements Server { +@@ -1722,6 +1722,7 @@ public final class CraftServer implements Server { private final Spigot spigot = new Spigot() { @@ -1353,7 +1353,7 @@ index e7e9941..5f2a9b0 100644 @Override public YamlConfiguration getConfig() { -@@ -1734,6 +1735,24 @@ public final class CraftServer implements Server { +@@ -1729,6 +1730,24 @@ public final class CraftServer implements Server { } @Override @@ -1602,7 +1602,7 @@ index 3a95b44..b5efb9c 100644 public void callStage3(QueuedChunk queuedChunk, Chunk chunk, Runnable runnable) throws RuntimeException { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 4e3b8fc..8ee4fc4 100644 +index e83f56f..3784c32 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -37,15 +37,9 @@ import org.bukkit.configuration.serialization.DelegateDeserialization; @@ -1771,7 +1771,7 @@ index e52ef47..3d90b34 100644 this.value = value; } diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 30efc99..eb30abe 100644 +index c32d44d..5c2fb00 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -29,7 +29,7 @@ import net.minecraft.server.EntityWither; @@ -1818,8 +1818,8 @@ index 30efc99..eb30abe 100644 { - SpigotTimings.checkIfActiveTimer.startTiming(); // Never safe to skip fireworks or entities not yet added to chunk - // PAIL: inChunk - if ( !entity.ab || entity instanceof EntityFireworks ) { + // PAIL: inChunk - boolean under datawatchers + if ( !entity.aa || entity instanceof EntityFireworks ) { - SpigotTimings.checkIfActiveTimer.stopTiming(); return true; } @@ -1833,5 +1833,5 @@ index 30efc99..eb30abe 100644 } } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0006-Vanished-players-don-t-have-rights.patch b/Spigot-Server-Patches/0006-Vanished-players-don-t-have-rights.patch index 09aa7586e3..152458ca1f 100644 --- a/Spigot-Server-Patches/0006-Vanished-players-don-t-have-rights.patch +++ b/Spigot-Server-Patches/0006-Vanished-players-don-t-have-rights.patch @@ -1,14 +1,14 @@ -From e5ce005823f066b5c88dfc06184f878f7d301501 Mon Sep 17 00:00:00 2001 +From 70093c6d868924d6d2947cd7a5e952144c9cb44d Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Mon, 29 Feb 2016 21:20:21 -0600 Subject: [PATCH] Vanished players don't have rights diff --git a/src/main/java/net/minecraft/server/EntityArrow.java b/src/main/java/net/minecraft/server/EntityArrow.java -index 8d52140..ccbf47e 100644 +index ca84d92..287566c 100644 --- a/src/main/java/net/minecraft/server/EntityArrow.java +++ b/src/main/java/net/minecraft/server/EntityArrow.java -@@ -189,6 +189,14 @@ public abstract class EntityArrow extends Entity implements IProjectile { +@@ -190,6 +190,14 @@ public abstract class EntityArrow extends Entity implements IProjectile { } } @@ -24,26 +24,27 @@ index 8d52140..ccbf47e 100644 this.a(movingobjectposition); } diff --git a/src/main/java/net/minecraft/server/EntityFishingHook.java b/src/main/java/net/minecraft/server/EntityFishingHook.java -index 5a62881..da4eaf1 100644 +index 0b28c88..91702f2 100644 --- a/src/main/java/net/minecraft/server/EntityFishingHook.java +++ b/src/main/java/net/minecraft/server/EntityFishingHook.java -@@ -198,6 +198,14 @@ public class EntityFishingHook extends Entity { - movingobjectposition = new MovingObjectPosition(entity); - } +@@ -224,6 +224,15 @@ public class EntityFishingHook extends Entity { -+ // Paper start - Allow fishing hooks to fly through vanished players the shooter can't see -+ if (movingobjectposition != null && movingobjectposition.entity instanceof EntityPlayer && owner != null && owner instanceof EntityPlayer) { -+ if (!((EntityPlayer) owner).getBukkitEntity().canSee(((EntityPlayer) movingobjectposition.entity).getBukkitEntity())) { -+ movingobjectposition = null; -+ } -+ } -+ // Paper end + vec3d = new Vec3D(this.locX, this.locY, this.locZ); + vec3d1 = new Vec3D(this.locX + this.motX, this.locY + this.motY, this.locZ + this.motZ); + - if (movingobjectposition != null) { - org.bukkit.craftbukkit.event.CraftEventFactory.callProjectileHitEvent(this); // Craftbukkit - Call event - if (movingobjectposition.entity != null) { ++ // Paper start - Allow fishing hooks to fly through vanished players the shooter can't see ++ if (movingobjectposition != null && movingobjectposition.entity instanceof EntityPlayer && owner != null && owner instanceof EntityPlayer) { ++ if (!((EntityPlayer) owner).getBukkitEntity().canSee(((EntityPlayer) movingobjectposition.entity).getBukkitEntity())) { ++ movingobjectposition = null; ++ } ++ } ++ // Paper end ++ + if (movingobjectposition != null) { + org.bukkit.craftbukkit.event.CraftEventFactory.callProjectileHitEvent(this); // Craftbukkit - Call event + vec3d1 = new Vec3D(movingobjectposition.pos.x, movingobjectposition.pos.y, movingobjectposition.pos.z); diff --git a/src/main/java/net/minecraft/server/EntityProjectile.java b/src/main/java/net/minecraft/server/EntityProjectile.java -index 07dc5cc..770f130 100644 +index 40ac335..3d5548f 100644 --- a/src/main/java/net/minecraft/server/EntityProjectile.java +++ b/src/main/java/net/minecraft/server/EntityProjectile.java @@ -160,6 +160,14 @@ public abstract class EntityProjectile extends Entity implements IProjectile { @@ -62,23 +63,23 @@ index 07dc5cc..770f130 100644 if (movingobjectposition.type == MovingObjectPosition.EnumMovingObjectType.BLOCK && this.world.getType(movingobjectposition.a()).getBlock() == Blocks.PORTAL) { this.e(movingobjectposition.a()); diff --git a/src/main/java/net/minecraft/server/ItemBlock.java b/src/main/java/net/minecraft/server/ItemBlock.java -index 3b6feb7..1450483 100644 +index eb32871..58ec8b5 100644 --- a/src/main/java/net/minecraft/server/ItemBlock.java +++ b/src/main/java/net/minecraft/server/ItemBlock.java -@@ -23,7 +23,7 @@ public class ItemBlock extends Item { - blockposition = blockposition.shift(enumdirection); - } +@@ -20,7 +20,7 @@ public class ItemBlock extends Item { -- if (itemstack.count != 0 && entityhuman.a(blockposition, enumdirection, itemstack) && world.a(this.a, blockposition, false, enumdirection, (Entity) null, itemstack)) { -+ if (itemstack.count != 0 && entityhuman.a(blockposition, enumdirection, itemstack) && world.a(this.a, blockposition, false, enumdirection, entityhuman, itemstack)) { // Paper - Pass entityhuman instead of null + ItemStack itemstack = entityhuman.b(enumhand); + +- if (!itemstack.isEmpty() && entityhuman.a(blockposition, enumdirection, itemstack) && world.a(this.a, blockposition, false, enumdirection, (Entity) null)) { ++ if (!itemstack.isEmpty() && entityhuman.a(blockposition, enumdirection, itemstack) && world.a(this.a, blockposition, false, enumdirection, entityhuman)) { // Paper - Pass entityhuman instead of null int i = this.filterData(itemstack.getData()); IBlockData iblockdata1 = this.a.getPlacedState(world, blockposition, enumdirection, f, f1, f2, i, entityhuman); diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index b73f64e..932e826 100644 +index 78b5a3c..2a38b1c 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1702,6 +1702,14 @@ public abstract class World implements IBlockAccess { +@@ -1725,6 +1725,14 @@ public abstract class World implements IBlockAccess { for (int i = 0; i < list.size(); ++i) { Entity entity1 = (Entity) list.get(i); @@ -94,5 +95,5 @@ index b73f64e..932e826 100644 return false; } -- -2.9.0 +2.10.2 diff --git a/Spigot-Server-Patches/0007-Configurable-squid-spawn-ranges.patch b/Spigot-Server-Patches/0007-Configurable-squid-spawn-ranges.patch index b3d79fbe81..32fb5a7ae8 100644 --- a/Spigot-Server-Patches/0007-Configurable-squid-spawn-ranges.patch +++ b/Spigot-Server-Patches/0007-Configurable-squid-spawn-ranges.patch @@ -1,4 +1,4 @@ -From d28a7aa05ce6180aeb5248aeb987ba08a6ab42b7 Mon Sep 17 00:00:00 2001 +From e460bd961a9d020f64b2e0cb59b9e0991e1361e9 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Tue, 1 Mar 2016 12:45:11 -0600 Subject: [PATCH] Configurable squid spawn ranges @@ -22,19 +22,18 @@ index dae60dc..c74c8a7 100644 + } } diff --git a/src/main/java/net/minecraft/server/EntitySquid.java b/src/main/java/net/minecraft/server/EntitySquid.java -index c5ac670..85aebc0 100644 +index 9f88e44..56f7ca8 100644 --- a/src/main/java/net/minecraft/server/EntitySquid.java +++ b/src/main/java/net/minecraft/server/EntitySquid.java -@@ -145,7 +145,8 @@ public class EntitySquid extends EntityWaterAnimal { +@@ -141,7 +141,7 @@ public class EntitySquid extends EntityWaterAnimal { } - public boolean cK() { -- return this.locY > 45.0D && this.locY < (double) this.world.K() && super.cK(); -+ // Paper - Configurable squid spawn height range -+ return this.locY > world.paperConfig.squidMinSpawnHeight && this.locY < world.paperConfig.squidMaxSpawnHeight && super.cK(); + public boolean cM() { +- return this.locY > 45.0D && this.locY < (double) this.world.K() && super.cM(); ++ return this.locY > world.paperConfig.squidMinSpawnHeight && this.locY < world.paperConfig.squidMaxSpawnHeight && super.cM(); // Paper - Configurable squid spawn height range } public void b(float f, float f1, float f2) { -- -2.8.3 +2.10.2 diff --git a/Spigot-Server-Patches/0009-Configurable-baby-zombie-movement-speed.patch b/Spigot-Server-Patches/0009-Configurable-baby-zombie-movement-speed.patch index d50ed873cf..6606143e3b 100644 --- a/Spigot-Server-Patches/0009-Configurable-baby-zombie-movement-speed.patch +++ b/Spigot-Server-Patches/0009-Configurable-baby-zombie-movement-speed.patch @@ -1,4 +1,4 @@ -From f88c8fd4582df133bd04083eda03b8015e62db30 Mon Sep 17 00:00:00 2001 +From 4913d3438af4ad594d6c8022d5e343ec0f03bcc7 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Tue, 1 Mar 2016 13:09:16 -0600 Subject: [PATCH] Configurable baby zombie movement speed @@ -20,7 +20,7 @@ index 8d9c322..ae3d0e4 100644 + } } diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java -index c2913d6..3145bdc 100644 +index 497d559..897882c 100644 --- a/src/main/java/net/minecraft/server/EntityZombie.java +++ b/src/main/java/net/minecraft/server/EntityZombie.java @@ -16,7 +16,7 @@ public class EntityZombie extends EntityMonster { @@ -29,10 +29,10 @@ index c2913d6..3145bdc 100644 private static final UUID b = UUID.fromString("B9766B59-9566-4402-BC1F-2EE2A276D836"); - private static final AttributeModifier c = new AttributeModifier(EntityZombie.b, "Baby speed boost", 0.5D, 1); + private final AttributeModifier c = new AttributeModifier(EntityZombie.b, "Baby speed boost", world.paperConfig.babyZombieMovementSpeed, 1); // Paper - Remove static - Make baby speed configurable - private static final DataWatcherObject bx = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.h); - private static final DataWatcherObject by = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.b); - private static final DataWatcherObject bz = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.h); -@@ -106,9 +106,9 @@ public class EntityZombie extends EntityMonster { + private static final DataWatcherObject bw = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.h); + private static final DataWatcherObject bx = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.b); + private static final DataWatcherObject by = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.h); +@@ -102,9 +102,9 @@ public class EntityZombie extends EntityMonster { if (this.world != null && !this.world.isClientSide) { AttributeInstance attributeinstance = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED); @@ -45,5 +45,5 @@ index c2913d6..3145bdc 100644 } -- -2.8.3 +2.10.2 diff --git a/Spigot-Server-Patches/0010-Configurable-fishing-time-ranges.patch b/Spigot-Server-Patches/0010-Configurable-fishing-time-ranges.patch index acf490f408..3dc58a31ad 100644 --- a/Spigot-Server-Patches/0010-Configurable-fishing-time-ranges.patch +++ b/Spigot-Server-Patches/0010-Configurable-fishing-time-ranges.patch @@ -1,11 +1,11 @@ -From 34e9632195c39d7e3a6e49b75c945b67b5f92cae Mon Sep 17 00:00:00 2001 +From d1e7170b9d3d73895ed986db6751a0897443c488 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Tue, 1 Mar 2016 13:14:11 -0600 Subject: [PATCH] Configurable fishing time ranges diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index ae3d0e4..9a72ef7 100644 +index ae3d0e4..7b2b95d 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -92,4 +92,12 @@ public class PaperWorldConfig { @@ -17,23 +17,23 @@ index ae3d0e4..9a72ef7 100644 + public int fishingMaxTicks; + private void fishingTickRange() { + fishingMinTicks = getInt("fishing-time-range.MinimumTicks", 100); -+ fishingMaxTicks = getInt("fishing-time-range.MaximumTicks", 900); ++ fishingMaxTicks = getInt("fishing-time-range.MaximumTicks", 600); + log("Fishing time ranges are between " + fishingMinTicks +" and " + fishingMaxTicks + " ticks"); + } } diff --git a/src/main/java/net/minecraft/server/EntityFishingHook.java b/src/main/java/net/minecraft/server/EntityFishingHook.java -index da4eaf1..9b71cdd 100644 +index 91702f2..e0475ce 100644 --- a/src/main/java/net/minecraft/server/EntityFishingHook.java +++ b/src/main/java/net/minecraft/server/EntityFishingHook.java -@@ -359,7 +359,7 @@ public class EntityFishingHook extends Entity { - this.aw = MathHelper.nextInt(this.random, 20, 80); - } - } else { -- this.av = MathHelper.nextInt(this.random, 100, 900); -+ this.av = MathHelper.nextInt(this.random, world.paperConfig.fishingMinTicks, world.paperConfig.fishingMaxTicks); // Paper - Configurable fishing time range - this.av -= EnchantmentManager.g(this.owner) * 20 * 5; - } - } +@@ -380,7 +380,7 @@ public class EntityFishingHook extends Entity { + this.at = MathHelper.nextInt(this.random, 20, 80); + } + } else { +- this.h = MathHelper.nextInt(this.random, 100, 600); ++ this.h = MathHelper.nextInt(this.random, world.paperConfig.fishingMinTicks, world.paperConfig.fishingMaxTicks); // Paper - Configurable fishing time range + this.h -= EnchantmentManager.g(this.owner) * 20 * 5; + } + } -- -2.8.3 +2.10.2 diff --git a/Spigot-Server-Patches/0011-Allow-nerfed-mobs-to-jump.patch b/Spigot-Server-Patches/0011-Allow-nerfed-mobs-to-jump.patch index f22092ba59..01521efbfa 100644 --- a/Spigot-Server-Patches/0011-Allow-nerfed-mobs-to-jump.patch +++ b/Spigot-Server-Patches/0011-Allow-nerfed-mobs-to-jump.patch @@ -1,15 +1,15 @@ -From 61f10185ed47a235d07f9c59ff107cc23818d2cc Mon Sep 17 00:00:00 2001 +From 910207ffbebc1c4e2b75815e1be168f7379a0233 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Tue, 1 Mar 2016 13:24:16 -0600 Subject: [PATCH] Allow nerfed mobs to jump diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 9a72ef7..a44bbed 100644 +index 7b2b95d..021c01b 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -100,4 +100,9 @@ public class PaperWorldConfig { - fishingMaxTicks = getInt("fishing-time-range.MaximumTicks", 900); + fishingMaxTicks = getInt("fishing-time-range.MaximumTicks", 600); log("Fishing time ranges are between " + fishingMinTicks +" and " + fishingMaxTicks + " ticks"); } + @@ -19,18 +19,19 @@ index 9a72ef7..a44bbed 100644 + } } diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index d600fd7..bbf7f02 100644 +index 0dabbaa..50b29c0 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java -@@ -44,6 +44,7 @@ public abstract class EntityInsentient extends EntityLiving { - private boolean bE; +@@ -44,6 +44,8 @@ public abstract class EntityInsentient extends EntityLiving { + private boolean bD; private Entity leashHolder; - private NBTTagCompound bG; + private NBTTagCompound bF; ++ private NBTTagCompound bG; + public PathfinderGoalFloat goalFloat; // Paper public EntityInsentient(World world) { super(world); -@@ -654,6 +655,12 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -643,6 +645,12 @@ public abstract class EntityInsentient extends EntityLiving { // Spigot Start if ( this.fromMobSpawner ) { @@ -56,5 +57,5 @@ index e3b4058..c16ad2c 100644 ((Navigation) entityinsentient.getNavigation()).c(true); } -- -2.8.3 +2.10.2 diff --git a/Spigot-Server-Patches/0013-Add-configurable-despawn-distances-for-living-entiti.patch b/Spigot-Server-Patches/0012-Add-configurable-despawn-distances-for-living-entiti.patch similarity index 85% rename from Spigot-Server-Patches/0013-Add-configurable-despawn-distances-for-living-entiti.patch rename to Spigot-Server-Patches/0012-Add-configurable-despawn-distances-for-living-entiti.patch index c5567efd9f..3b29ad2f14 100644 --- a/Spigot-Server-Patches/0013-Add-configurable-despawn-distances-for-living-entiti.patch +++ b/Spigot-Server-Patches/0012-Add-configurable-despawn-distances-for-living-entiti.patch @@ -1,16 +1,16 @@ -From 0765aaedfd591133840b85dd8399cedb173a3b46 Mon Sep 17 00:00:00 2001 +From c44fba6cdb89433a896e92ea32ab56a25ab58a20 Mon Sep 17 00:00:00 2001 From: Suddenly Date: Tue, 1 Mar 2016 13:51:54 -0600 Subject: [PATCH] Add configurable despawn distances for living entities diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index b1d712f..402dbe7 100644 +index 021c01b..92f38a4 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -114,4 +114,20 @@ public class PaperWorldConfig { - log("Player exhaustion penalty for breaking blocks is " + blockBreakExhaustion); - log("Player exhaustion penalty for swimming is " + playerSwimmingExhaustion); +@@ -105,4 +105,20 @@ public class PaperWorldConfig { + private void nerfedMobsShouldJump() { + nerfedMobsShouldJump = getBoolean("spawner-nerfed-mobs-should-jump", false); } + + public int softDespawnDistance; @@ -30,10 +30,10 @@ index b1d712f..402dbe7 100644 + } } diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index bbf7f02..85d4b81 100644 +index 50b29c0..3f7eae1 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java -@@ -633,13 +633,13 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -623,13 +623,13 @@ public abstract class EntityInsentient extends EntityLiving { double d2 = entityhuman.locZ - this.locZ; double d3 = d0 * d0 + d1 * d1 + d2 * d2; @@ -51,5 +51,5 @@ index bbf7f02..85d4b81 100644 } } -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0012-Player-Exhaustion-Multipliers.patch b/Spigot-Server-Patches/0012-Player-Exhaustion-Multipliers.patch deleted file mode 100644 index 1c6c36fa62..0000000000 --- a/Spigot-Server-Patches/0012-Player-Exhaustion-Multipliers.patch +++ /dev/null @@ -1,60 +0,0 @@ -From da91460fe9c232759f9523b67a9f656cf4a2a854 Mon Sep 17 00:00:00 2001 -From: gsand -Date: Tue, 1 Mar 2016 13:43:16 -0600 -Subject: [PATCH] Player Exhaustion Multipliers - - -diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index a44bbed..b1d712f 100644 ---- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -105,4 +105,13 @@ public class PaperWorldConfig { - private void nerfedMobsShouldJump() { - nerfedMobsShouldJump = getBoolean("spawner-nerfed-mobs-should-jump", false); - } -+ -+ public float blockBreakExhaustion; -+ public float playerSwimmingExhaustion; -+ public void exhaustionValues() { -+ blockBreakExhaustion = getFloat("player-exhaustion.block-break", 0.025F); -+ playerSwimmingExhaustion = getFloat("player-exhaustion.swimming", 0.015F); -+ log("Player exhaustion penalty for breaking blocks is " + blockBreakExhaustion); -+ log("Player exhaustion penalty for swimming is " + playerSwimmingExhaustion); -+ } - } -diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java -index d17160a..f7cf12f 100644 ---- a/src/main/java/net/minecraft/server/Block.java -+++ b/src/main/java/net/minecraft/server/Block.java -@@ -455,7 +455,7 @@ public class Block { - - public void a(World world, EntityHuman entityhuman, BlockPosition blockposition, IBlockData iblockdata, @Nullable TileEntity tileentity, @Nullable ItemStack itemstack) { - entityhuman.b(StatisticList.a(this)); -- entityhuman.applyExhaustion(0.025F); -+ entityhuman.applyExhaustion(world.paperConfig.blockBreakExhaustion); // Paper - Configurable block break exhaustion - if (this.o() && EnchantmentManager.getEnchantmentLevel(Enchantments.SILK_TOUCH, itemstack) > 0) { - ItemStack itemstack1 = this.u(iblockdata); - -diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index 30c5116..ffcc235 100644 ---- a/src/main/java/net/minecraft/server/EntityHuman.java -+++ b/src/main/java/net/minecraft/server/EntityHuman.java -@@ -1464,13 +1464,13 @@ public abstract class EntityHuman extends EntityLiving { - i = Math.round(MathHelper.sqrt(d0 * d0 + d1 * d1 + d2 * d2) * 100.0F); - if (i > 0) { - this.a(StatisticList.q, i); -- this.applyExhaustion(0.015F * (float) i * 0.01F); -+ this.applyExhaustion(world.paperConfig.playerSwimmingExhaustion); // Paper - Configurable swimming exhaustion - } - } else if (this.isInWater()) { - i = Math.round(MathHelper.sqrt(d0 * d0 + d2 * d2) * 100.0F); - if (i > 0) { - this.a(StatisticList.m, i); -- this.applyExhaustion(0.015F * (float) i * 0.01F); -+ this.applyExhaustion(world.paperConfig.playerSwimmingExhaustion); // Paper - Configurable swimming exhaustion - } - } else if (this.m_()) { - if (d1 > 0.0D) { --- -2.10.0.windows.1 - diff --git a/Spigot-Server-Patches/0014-Allow-for-toggling-of-spawn-chunks.patch b/Spigot-Server-Patches/0013-Allow-for-toggling-of-spawn-chunks.patch similarity index 88% rename from Spigot-Server-Patches/0014-Allow-for-toggling-of-spawn-chunks.patch rename to Spigot-Server-Patches/0013-Allow-for-toggling-of-spawn-chunks.patch index 474c52a81c..1f3225b642 100644 --- a/Spigot-Server-Patches/0014-Allow-for-toggling-of-spawn-chunks.patch +++ b/Spigot-Server-Patches/0013-Allow-for-toggling-of-spawn-chunks.patch @@ -1,14 +1,14 @@ -From 2a60bdf1a9f93a1969dfe37d9e6a73fd27dddb2f Mon Sep 17 00:00:00 2001 +From c445404785a2d57072675ac79855742923a32331 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Thu, 3 Mar 2016 03:53:43 -0600 Subject: [PATCH] Allow for toggling of spawn chunks diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 402dbe7..78dcf26 100644 +index 92f38a4..c2c488a 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -130,4 +130,10 @@ public class PaperWorldConfig { +@@ -121,4 +121,10 @@ public class PaperWorldConfig { softDespawnDistance = softDespawnDistance*softDespawnDistance; hardDespawnDistance = hardDespawnDistance*hardDespawnDistance; } @@ -20,7 +20,7 @@ index 402dbe7..78dcf26 100644 + } } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 932e826..3e79e02 100644 +index 2a38b1c..52171a3 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -198,6 +198,7 @@ public abstract class World implements IBlockAccess { @@ -32,5 +32,5 @@ index 932e826..3e79e02 100644 this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime); } -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0015-Drop-falling-block-and-tnt-entities-at-the-specified.patch b/Spigot-Server-Patches/0014-Drop-falling-block-and-tnt-entities-at-the-specified.patch similarity index 84% rename from Spigot-Server-Patches/0015-Drop-falling-block-and-tnt-entities-at-the-specified.patch rename to Spigot-Server-Patches/0014-Drop-falling-block-and-tnt-entities-at-the-specified.patch index 38205893ba..d7c6d63524 100644 --- a/Spigot-Server-Patches/0015-Drop-falling-block-and-tnt-entities-at-the-specified.patch +++ b/Spigot-Server-Patches/0014-Drop-falling-block-and-tnt-entities-at-the-specified.patch @@ -1,14 +1,14 @@ -From 2180a0f774d1077f684fbee8360b9f9db2c84be2 Mon Sep 17 00:00:00 2001 +From 93b9b2bae96d5f54b99cfd0765ec3ce98b413cbd Mon Sep 17 00:00:00 2001 From: Byteflux Date: Tue, 1 Mar 2016 14:14:15 -0600 Subject: [PATCH] Drop falling block and tnt entities at the specified height diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 78dcf26..f19ae97 100644 +index c2c488a..d44fdae 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -136,4 +136,14 @@ public class PaperWorldConfig { +@@ -127,4 +127,14 @@ public class PaperWorldConfig { keepSpawnInMemory = getBoolean("keep-spawn-loaded", true); log("Keep spawn chunk loaded: " + keepSpawnInMemory); } @@ -24,13 +24,13 @@ index 78dcf26..f19ae97 100644 + } } diff --git a/src/main/java/net/minecraft/server/EntityFallingBlock.java b/src/main/java/net/minecraft/server/EntityFallingBlock.java -index b8449fe..dbcda27 100644 +index bce4c3c..2ed1fb1 100644 --- a/src/main/java/net/minecraft/server/EntityFallingBlock.java +++ b/src/main/java/net/minecraft/server/EntityFallingBlock.java -@@ -80,6 +80,17 @@ public class EntityFallingBlock extends Entity { +@@ -80,6 +80,16 @@ public class EntityFallingBlock extends Entity { } - this.move(this.motX, this.motY, this.motZ); + this.move(EnumMoveType.SELF, this.motX, this.motY, this.motZ); + + // Paper start - Configurable EntityFallingBlock height nerf + if (this.world.paperConfig.fallingBlockHeightNerf != 0 && this.locY > this.world.paperConfig.fallingBlockHeightNerf) { @@ -41,18 +41,17 @@ index b8449fe..dbcda27 100644 + this.die(); + } + // Paper end -+ this.motX *= 0.9800000190734863D; this.motY *= 0.9800000190734863D; this.motZ *= 0.9800000190734863D; diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java -index 0ed3f89..2745c49 100644 +index 0fbdbd6..fd07356 100644 --- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java +++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java -@@ -54,6 +54,13 @@ public class EntityTNTPrimed extends Entity { +@@ -56,6 +56,13 @@ public class EntityTNTPrimed extends Entity { } - this.move(this.motX, this.motY, this.motZ); + this.move(EnumMoveType.SELF, this.motX, this.motY, this.motZ); + + // Paper start - Configurable TNT entity height nerf + if (this.world.paperConfig.entityTNTHeightNerf != 0 && this.locY > this.world.paperConfig.entityTNTHeightNerf) { @@ -64,5 +63,5 @@ index 0ed3f89..2745c49 100644 this.motY *= 0.9800000190734863D; this.motZ *= 0.9800000190734863D; -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0016-Configurable-speed-for-water-flowing-over-lava.patch b/Spigot-Server-Patches/0015-Configurable-speed-for-water-flowing-over-lava.patch similarity index 92% rename from Spigot-Server-Patches/0016-Configurable-speed-for-water-flowing-over-lava.patch rename to Spigot-Server-Patches/0015-Configurable-speed-for-water-flowing-over-lava.patch index 98ae3be961..0c66bf3ecf 100644 --- a/Spigot-Server-Patches/0016-Configurable-speed-for-water-flowing-over-lava.patch +++ b/Spigot-Server-Patches/0015-Configurable-speed-for-water-flowing-over-lava.patch @@ -1,14 +1,14 @@ -From 1cf26e0671905c3572a05a55b68d4c04d934fb4b Mon Sep 17 00:00:00 2001 +From eac74f310db6273e941e40504ba31fab0bbad29c Mon Sep 17 00:00:00 2001 From: Byteflux Date: Tue, 1 Mar 2016 14:27:13 -0600 Subject: [PATCH] Configurable speed for water flowing over lava diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index f19ae97..8fc2f6c 100644 +index d44fdae..06d1527 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -146,4 +146,10 @@ public class PaperWorldConfig { +@@ -137,4 +137,10 @@ public class PaperWorldConfig { if (fallingBlockHeightNerf != 0) log("Falling Block Height Limit set to Y: " + fallingBlockHeightNerf); if (entityTNTHeightNerf != 0) log("TNT Entity Height Limit set to Y: " + entityTNTHeightNerf); } @@ -20,7 +20,7 @@ index f19ae97..8fc2f6c 100644 + } } diff --git a/src/main/java/net/minecraft/server/BlockFlowing.java b/src/main/java/net/minecraft/server/BlockFlowing.java -index c0f4961..b00865e 100644 +index 40c7b55..e9f73cd 100644 --- a/src/main/java/net/minecraft/server/BlockFlowing.java +++ b/src/main/java/net/minecraft/server/BlockFlowing.java @@ -35,7 +35,7 @@ public class BlockFlowing extends BlockFluids { @@ -57,5 +57,5 @@ index c0f4961..b00865e 100644 + } } -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0017-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch b/Spigot-Server-Patches/0016-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch similarity index 95% rename from Spigot-Server-Patches/0017-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch rename to Spigot-Server-Patches/0016-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch index 53251f6e58..c881946ece 100644 --- a/Spigot-Server-Patches/0017-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch +++ b/Spigot-Server-Patches/0016-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch @@ -1,4 +1,4 @@ -From c7b09e1fe02118a64de6d2a35558912e0278aea1 Mon Sep 17 00:00:00 2001 +From 6c8a2f785dd53582ad864a4413e44c2ac8564f18 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Tue, 1 Mar 2016 14:32:43 -0600 Subject: [PATCH] Show 'Paper' in client crashes, server lists, and Mojang @@ -20,10 +20,10 @@ index a8b5079..ebbc1fc 100644 EULA.a.warn("Failed to save {}", new Object[] { this.b, exception}); } finally { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 4814643..41f560f 100644 +index 81a69e8..c8c6959 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1028,7 +1028,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -1035,7 +1035,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs } public String getServerModName() { @@ -33,7 +33,7 @@ index 4814643..41f560f 100644 public CrashReport b(CrashReport crashreport) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 5f2a9b0..4ac573f 100644 +index 9460486..e782a80 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -132,7 +132,7 @@ import net.md_5.bungee.api.chat.BaseComponent; @@ -80,5 +80,5 @@ index 94a3d42..3ed983c 100644 log.log( Level.SEVERE, "------------------------------" ); // -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0017-Player-affects-spawning-API.patch b/Spigot-Server-Patches/0017-Player-affects-spawning-API.patch new file mode 100644 index 0000000000..923c9f1d33 --- /dev/null +++ b/Spigot-Server-Patches/0017-Player-affects-spawning-API.patch @@ -0,0 +1,75 @@ +From 3c03eaa436c6bba260c5bde3eb2acaf58476e1ef Mon Sep 17 00:00:00 2001 +From: Jedediah Smith +Date: Tue, 1 Mar 2016 14:47:52 -0600 +Subject: [PATCH] Player affects spawning API + + +diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java +index 9f115d1..ae86ebc 100644 +--- a/src/main/java/net/minecraft/server/EntityHuman.java ++++ b/src/main/java/net/minecraft/server/EntityHuman.java +@@ -63,6 +63,7 @@ public abstract class EntityHuman extends EntityLiving { + private final ItemCooldown bV; + @Nullable + public EntityFishingHook hookedFish; ++ public boolean affectsSpawning = true; // Paper - AffectsSpawning API + + // CraftBukkit start + public boolean fauxSleeping; +diff --git a/src/main/java/net/minecraft/server/IEntitySelector.java b/src/main/java/net/minecraft/server/IEntitySelector.java +index dc0ffd8..f04aecb 100644 +--- a/src/main/java/net/minecraft/server/IEntitySelector.java ++++ b/src/main/java/net/minecraft/server/IEntitySelector.java +@@ -44,13 +44,14 @@ public final class IEntitySelector { + }; + public static final Predicate e = new Predicate() { + public boolean a(@Nullable Entity entity) { +- return !(entity instanceof EntityHuman) || !((EntityHuman) entity).isSpectator(); ++ return !(entity instanceof EntityHuman) || !((EntityHuman) entity).isSpectator() || !((EntityHuman) entity).affectsSpawning; // Paper - Affects Spawning API + } + + public boolean apply(@Nullable Object object) { + return this.a((Entity) object); + } + }; ++ public static final Predicate CAN_MOBS_TARGET = e; // Paper - OBFHELPER + + public static Predicate a(final double d0, final double d1, final double d2, double d3) { + final double d4 = d3 * d3; +diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java +index bec25e4..171410e 100644 +--- a/src/main/java/net/minecraft/server/SpawnerCreature.java ++++ b/src/main/java/net/minecraft/server/SpawnerCreature.java +@@ -52,7 +52,7 @@ public final class SpawnerCreature { + while (iterator.hasNext()) { + EntityHuman entityhuman = (EntityHuman) iterator.next(); + +- if (!entityhuman.isSpectator()) { ++ if (!entityhuman.isSpectator() && entityhuman.affectsSpawning) { // Paper - AffectsSpawning API + int l = MathHelper.floor(entityhuman.locX / 16.0D); + + j = MathHelper.floor(entityhuman.locZ / 16.0D); +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +index 3784c32..3bda255 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +@@ -1427,6 +1427,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { + + } + ++ @Override ++ public void setAffectsSpawning(boolean affects) { ++ this.getHandle().affectsSpawning = affects; ++ } ++ ++ @Override ++ public boolean getAffectsSpawning() { ++ return this.getHandle().affectsSpawning; ++ } ++ + // Spigot start + private final Player.Spigot spigot = new Player.Spigot() + { +-- +2.10.2 + diff --git a/Spigot-Server-Patches/0019-Metrics.patch b/Spigot-Server-Patches/0018-Metrics.patch similarity index 92% rename from Spigot-Server-Patches/0019-Metrics.patch rename to Spigot-Server-Patches/0018-Metrics.patch index 856ba24490..abd62339c3 100644 --- a/Spigot-Server-Patches/0019-Metrics.patch +++ b/Spigot-Server-Patches/0018-Metrics.patch @@ -1,4 +1,4 @@ -From d8a42f222d0f8146e852a3895d3a7eb0e9c267c2 Mon Sep 17 00:00:00 2001 +From 1764a472a3a6830464ebe4136e6c8ebb9b3b4b1f Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Tue, 1 Mar 2016 14:54:32 -0600 Subject: [PATCH] Metrics @@ -18,5 +18,5 @@ index a5fd59d..680283c 100644 String pluginVersion = (Metrics.class.getPackage().getImplementationVersion() != null) ? Metrics.class.getPackage().getImplementationVersion() : "unknown"; String serverVersion = Bukkit.getVersion(); -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0018-Player-affects-spawning-API.patch b/Spigot-Server-Patches/0018-Player-affects-spawning-API.patch deleted file mode 100644 index 112830b733..0000000000 --- a/Spigot-Server-Patches/0018-Player-affects-spawning-API.patch +++ /dev/null @@ -1,209 +0,0 @@ -From 97bbce71d023974e57cfae01c96b05e7086e2d77 Mon Sep 17 00:00:00 2001 -From: Jedediah Smith -Date: Tue, 1 Mar 2016 14:47:52 -0600 -Subject: [PATCH] Player affects spawning API - - -diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index ffcc235..35f4647 100644 ---- a/src/main/java/net/minecraft/server/EntityHuman.java -+++ b/src/main/java/net/minecraft/server/EntityHuman.java -@@ -1,6 +1,7 @@ - package net.minecraft.server; - - import com.google.common.base.Charsets; -+import com.google.common.base.Predicate; // Paper - import com.google.common.collect.Lists; - import com.mojang.authlib.GameProfile; - import java.util.Arrays; -@@ -65,6 +66,19 @@ public abstract class EntityHuman extends EntityLiving { - private final ItemCooldown bW = this.l(); - public EntityFishingHook hookedFish; - -+ // Paper start - affectsSpawning API -+ public boolean affectsSpawning = true; -+ -+ public static Predicate affectsSpawningFilter() { -+ return new Predicate() { -+ @Override -+ public boolean apply(EntityHuman entityHuman) { -+ return entityHuman.affectsSpawning; -+ } -+ }; -+ } -+ // Paper end -+ - // CraftBukkit start - public boolean fauxSleeping; - public String spawnWorld = ""; -diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index 85d4b81..74aaba2 100644 ---- a/src/main/java/net/minecraft/server/EntityInsentient.java -+++ b/src/main/java/net/minecraft/server/EntityInsentient.java -@@ -625,7 +625,7 @@ public abstract class EntityInsentient extends EntityLiving { - if (this.persistent) { - this.ticksFarFromPlayer = 0; - } else { -- EntityHuman entityhuman = this.world.findNearbyPlayer(this, -1.0D); -+ EntityHuman entityhuman = this.world.findNearbyPlayer(this, -1.0D, EntityHuman.affectsSpawningFilter()); // Paper - affectsSpawning filter - - if (entityhuman != null) { - double d0 = entityhuman.locX - this.locX; -diff --git a/src/main/java/net/minecraft/server/EntitySilverfish.java b/src/main/java/net/minecraft/server/EntitySilverfish.java -index 78dbf79..e4d3ba4 100644 ---- a/src/main/java/net/minecraft/server/EntitySilverfish.java -+++ b/src/main/java/net/minecraft/server/EntitySilverfish.java -@@ -93,7 +93,7 @@ public class EntitySilverfish extends EntityMonster { - - public boolean cK() { - if (super.cK()) { -- EntityHuman entityhuman = this.world.b(this, 5.0D); -+ EntityHuman entityhuman = this.world.findNearbyPlayerNotInCreativeMode(this, 5.0D, EntityHuman.affectsSpawningFilter()); // Paper - affectsSpawning filter - - return entityhuman == null; - } else { -diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java -index 3145bdc..6981185 100644 ---- a/src/main/java/net/minecraft/server/EntityZombie.java -+++ b/src/main/java/net/minecraft/server/EntityZombie.java -@@ -197,7 +197,7 @@ public class EntityZombie extends EntityMonster { - - if (this.world.getType(new BlockPosition(i1, j1 - 1, k1)).q() && this.world.getLightLevel(new BlockPosition(i1, j1, k1)) < 10) { - entityzombie.setPosition((double) i1, (double) j1, (double) k1); -- if (!this.world.isPlayerNearby((double) i1, (double) j1, (double) k1, 7.0D) && this.world.a(entityzombie.getBoundingBox(), (Entity) entityzombie) && this.world.getCubes(entityzombie, entityzombie.getBoundingBox()).isEmpty() && !this.world.containsLiquid(entityzombie.getBoundingBox())) { -+ if (!this.world.isPlayerNearby((double) i1, (double) j1, (double) k1, 7.0D, EntityHuman.affectsSpawningFilter()) && this.world.a(entityzombie.getBoundingBox(), (Entity) entityzombie) && this.world.getCubes(entityzombie, entityzombie.getBoundingBox()).isEmpty() && !this.world.containsLiquid(entityzombie.getBoundingBox())) { // Paper - affectsSpawning filter - this.world.addEntity(entityzombie, CreatureSpawnEvent.SpawnReason.REINFORCEMENTS); // CraftBukkit - entityzombie.setGoalTarget(entityliving, EntityTargetEvent.TargetReason.REINFORCEMENT_TARGET, true); - entityzombie.prepare(this.world.D(new BlockPosition(entityzombie)), (GroupDataEntity) null); -diff --git a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java -index 7bae42a..f040775 100644 ---- a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java -+++ b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java -@@ -32,7 +32,7 @@ public abstract class MobSpawnerAbstract { - private boolean h() { - BlockPosition blockposition = this.b(); - -- return this.a().isPlayerNearby((double) blockposition.getX() + 0.5D, (double) blockposition.getY() + 0.5D, (double) blockposition.getZ() + 0.5D, (double) this.requiredPlayerRange); -+ return this.a().isPlayerNearby((double) blockposition.getX() + 0.5D, (double) blockposition.getY() + 0.5D, (double) blockposition.getZ() + 0.5D, (double) this.requiredPlayerRange, EntityHuman.affectsSpawningFilter()); // Paper - affectsSpawning filter - } - - public void c() { -diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java -index 9e86aa2..fb0830d 100644 ---- a/src/main/java/net/minecraft/server/SpawnerCreature.java -+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java -@@ -52,6 +52,8 @@ public final class SpawnerCreature { - while (iterator.hasNext()) { - EntityHuman entityhuman = (EntityHuman) iterator.next(); - -+ if (!entityhuman.affectsSpawning) continue; // Paper - affectsSpawning check -+ - if (!entityhuman.isSpectator()) { - int l = MathHelper.floor(entityhuman.locX / 16.0D); - -@@ -162,7 +164,7 @@ public final class SpawnerCreature { - float f = (float) j3 + 0.5F; - float f1 = (float) l3 + 0.5F; - -- if (!worldserver.isPlayerNearby((double) f, (double) k3, (double) f1, 24.0D) && blockposition.distanceSquared((double) f, (double) k3, (double) f1) >= 576.0D) { -+ if (!worldserver.isPlayerNearby((double) f, (double) k3, (double) f1, 24.0D, EntityHuman.affectsSpawningFilter()) && blockposition.distanceSquared((double) f, (double) k3, (double) f1) >= 576.0D) { // Paper - affectsSpawning filter - if (biomebase_biomemeta == null) { - biomebase_biomemeta = worldserver.a(enumcreaturetype, (BlockPosition) blockposition_mutableblockposition); - if (biomebase_biomemeta == null) { -diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 3e79e02..e3d971c 100644 ---- a/src/main/java/net/minecraft/server/World.java -+++ b/src/main/java/net/minecraft/server/World.java -@@ -3,6 +3,7 @@ - import com.google.common.base.Function; - import com.google.common.base.Objects; - import com.google.common.base.Predicate; -+import com.google.common.base.Predicates; // Paper - import com.google.common.collect.Lists; - import java.util.ArrayList; - import java.util.Calendar; -@@ -2713,16 +2714,31 @@ public abstract class World implements IBlockAccess { - - @Nullable - public EntityHuman findNearbyPlayer(Entity entity, double d0) { -- return this.a(entity.locX, entity.locY, entity.locZ, d0, false); -+ // Paper start - Add filter parameter -+ return findNearbyPlayer(entity, d0, Predicates.alwaysTrue()); -+ } -+ -+ public EntityHuman findNearbyPlayer(Entity entity, double d0, Predicate filter) { -+ return this.findNearbyPlayer(entity.locX, entity.locY, entity.locZ, d0, false, filter); - } - - @Nullable - public EntityHuman b(Entity entity, double d0) { -- return this.a(entity.locX, entity.locY, entity.locZ, d0, true); -+ return this.findNearbyPlayerNotInCreativeMode(entity, d0, Predicates.alwaysTrue()); -+ } -+ -+ public EntityHuman findNearbyPlayerNotInCreativeMode(Entity entity, double d0, Predicate filter) { -+ return this.findNearbyPlayer(entity.locX, entity.locY, entity.locZ, d0, true, filter); - } - - @Nullable - public EntityHuman a(double d0, double d1, double d2, double d3, boolean flag) { -+ return findNearbyPlayer(d0, d1, d2, d3, flag, Predicates.alwaysTrue()); -+ } -+ -+ public EntityHuman findNearbyPlayer(double d0, double d1, double d2, double d3, boolean flag, Predicate filter) { -+ // FYI the flag means "exclude creative mode players" -+ // Paper end - double d4 = -1.0D; - EntityHuman entityhuman = null; - -@@ -2734,6 +2750,8 @@ public abstract class World implements IBlockAccess { - } - // CraftBukkit end - -+ if (!filter.apply(entityhuman1)) continue; // Paper - check filter -+ - if ((IEntitySelector.d.apply(entityhuman1) || !flag) && (IEntitySelector.e.apply(entityhuman1) || flag)) { - double d5 = entityhuman1.e(d0, d1, d2); - -@@ -2748,9 +2766,17 @@ public abstract class World implements IBlockAccess { - } - - public boolean isPlayerNearby(double d0, double d1, double d2, double d3) { -+ // Paper start - add filter parameter -+ return isPlayerNearby(d0, d1, d2, d3, Predicates.alwaysTrue()); -+ } -+ -+ public boolean isPlayerNearby(double d0, double d1, double d2, double d3, Predicate filter) { -+ // Paper end - for (int i = 0; i < this.players.size(); ++i) { - EntityHuman entityhuman = (EntityHuman) this.players.get(i); - -+ if (!filter.apply(entityhuman)) continue; // Paper - check filter -+ - if (IEntitySelector.e.apply(entityhuman)) { - double d4 = entityhuman.e(d0, d1, d2); - -diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 5874554..95cdbab 100644 ---- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1427,6 +1427,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { - - } - -+ @Override -+ public void setAffectsSpawning(boolean affects) { -+ this.getHandle().affectsSpawning = affects; -+ } -+ -+ @Override -+ public boolean getAffectsSpawning() { -+ return this.getHandle().affectsSpawning; -+ } -+ - // Spigot start - private final Player.Spigot spigot = new Player.Spigot() - { --- -2.10.0.windows.1 - diff --git a/Spigot-Server-Patches/0020-Remove-invalid-mob-spawner-tile-entities.patch b/Spigot-Server-Patches/0019-Remove-invalid-mob-spawner-tile-entities.patch similarity index 89% rename from Spigot-Server-Patches/0020-Remove-invalid-mob-spawner-tile-entities.patch rename to Spigot-Server-Patches/0019-Remove-invalid-mob-spawner-tile-entities.patch index 9497f8b02e..f3484170a1 100644 --- a/Spigot-Server-Patches/0020-Remove-invalid-mob-spawner-tile-entities.patch +++ b/Spigot-Server-Patches/0019-Remove-invalid-mob-spawner-tile-entities.patch @@ -1,15 +1,15 @@ -From f4ee8852de88f04a10452efeadde65721090b7a2 Mon Sep 17 00:00:00 2001 +From 6fa172fd0c691f25c4f2bde7223513232b35ab32 Mon Sep 17 00:00:00 2001 From: Byteflux Date: Tue, 1 Mar 2016 15:08:03 -0600 Subject: [PATCH] Remove invalid mob spawner tile entities diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 5807bb8..445419f 100644 +index bd3b160..1c0108e 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -722,6 +722,10 @@ public class Chunk { - tileentity.z(); + tileentity.A(); this.tileEntities.put(blockposition, tileentity); // CraftBukkit start + // Paper start - Remove invalid mob spawner tile entities @@ -20,5 +20,5 @@ index 5807bb8..445419f 100644 System.out.println("Attempted to place a tile entity (" + tileentity + ") at " + tileentity.position.getX() + "," + tileentity.position.getY() + "," + tileentity.position.getZ() + " (" + org.bukkit.craftbukkit.util.CraftMagicNumbers.getMaterial(getBlockData(blockposition).getBlock()) + ") where there was no entity tile!"); -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0021-Optimize-TileEntity-Ticking.patch b/Spigot-Server-Patches/0020-Optimize-TileEntity-Ticking.patch similarity index 81% rename from Spigot-Server-Patches/0021-Optimize-TileEntity-Ticking.patch rename to Spigot-Server-Patches/0020-Optimize-TileEntity-Ticking.patch index 10fd997609..42d1ee75c7 100644 --- a/Spigot-Server-Patches/0021-Optimize-TileEntity-Ticking.patch +++ b/Spigot-Server-Patches/0020-Optimize-TileEntity-Ticking.patch @@ -1,21 +1,21 @@ -From acf62d273a781fa52762156b98d76d0f27e28a4d Mon Sep 17 00:00:00 2001 +From f2bbe33ed075142f13f0c6d51b67f5e2d62f7a31 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Tue, 1 Mar 2016 22:01:19 -0600 Subject: [PATCH] Optimize TileEntity Ticking diff --git a/src/main/java/net/minecraft/server/TileEntityChest.java b/src/main/java/net/minecraft/server/TileEntityChest.java -index 5014903..81db929 100644 +index 28a514a..60452e8 100644 --- a/src/main/java/net/minecraft/server/TileEntityChest.java +++ b/src/main/java/net/minecraft/server/TileEntityChest.java -@@ -9,17 +9,17 @@ import org.bukkit.craftbukkit.entity.CraftHumanEntity; +@@ -8,17 +8,17 @@ import org.bukkit.craftbukkit.entity.CraftHumanEntity; import org.bukkit.entity.HumanEntity; // CraftBukkit end --public class TileEntityChest extends TileEntityLootable implements ITickable, IInventory { -+public class TileEntityChest extends TileEntityLootable implements IInventory { // Paper - Remove ITickable +-public class TileEntityChest extends TileEntityLootable implements ITickable { ++public class TileEntityChest extends TileEntityLootable { // Paper - Remove ITickable - private ItemStack[] items = new ItemStack[27]; + private NonNullList items; public boolean a; - public TileEntityChest f; - public TileEntityChest g; @@ -30,19 +30,19 @@ index 5014903..81db929 100644 public float k; - public int l; + public int l; // Paper - Number of viewers - private int p; - private BlockChest.Type q; - private String r; -@@ -241,6 +241,8 @@ public class TileEntityChest extends TileEntityLootable implements ITickable, II + private int q; + private BlockChest.Type r; + +@@ -190,6 +190,8 @@ public class TileEntityChest extends TileEntityLootable implements ITickable { } - public void E_() { + public void F_() { + // Paper - Disable all of this, just in case this does get ticked + /* - this.m(); + this.o(); int i = this.position.getX(); int j = this.position.getY(); -@@ -321,7 +323,8 @@ public class TileEntityChest extends TileEntityLootable implements ITickable, II +@@ -270,7 +272,8 @@ public class TileEntityChest extends TileEntityLootable implements ITickable { this.j = 0.0F; } } @@ -52,13 +52,13 @@ index 5014903..81db929 100644 } public boolean c(int i, int j) { -@@ -341,6 +344,28 @@ public class TileEntityChest extends TileEntityLootable implements ITickable, II +@@ -290,6 +293,28 @@ public class TileEntityChest extends TileEntityLootable implements ITickable { int oldPower = Math.max(0, Math.min(15, this.l)); // CraftBukkit - Get power before new viewer is added ++this.l; + + // Paper start - Move chest open sound out of the tick loop -+ this.m(); ++ this.o(); + + if (this.l > 0 && this.j == 0.0F && this.f == null && this.h == null) { + this.j = 0.7F; @@ -74,17 +74,17 @@ index 5014903..81db929 100644 + d1 += 0.5D; + } + -+ this.world.a((EntityHuman) null, d1, (double) this.position.getY() + 0.5D, d0, SoundEffects.X, SoundCategory.BLOCKS, 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F); ++ this.world.a((EntityHuman) null, d1, (double) this.position.getY() + 0.5D, d0, SoundEffects.Z, SoundCategory.BLOCKS, 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F); + } + // Paper end + if (this.world == null) return; // CraftBukkit this.world.playBlockAction(this.position, this.getBlock(), 1, this.l); -@@ -364,6 +389,34 @@ public class TileEntityChest extends TileEntityLootable implements ITickable, II +@@ -314,6 +339,34 @@ public class TileEntityChest extends TileEntityLootable implements ITickable { + if (!entityhuman.isSpectator() && this.getBlock() instanceof BlockChest) { int oldPower = Math.max(0, Math.min(15, this.l)); // CraftBukkit - Get power before new viewer is added --this.l; - if (this.world == null) return; // CraftBukkit + + // Paper start - Move chest close sound out of the tick loop + if (this.l == 0 && this.j > 0.0F || this.l > 0 && this.j < 1.0F) { @@ -108,16 +108,16 @@ index 5014903..81db929 100644 + d0 += 0.5D; + } + -+ this.world.a((EntityHuman) null, d0, (double) yLoc + 0.5D, d2, SoundEffects.V, SoundCategory.BLOCKS, 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F); ++ this.world.a((EntityHuman) null, d0, (double) yLoc + 0.5D, d2, SoundEffects.X, SoundCategory.BLOCKS, 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F); + this.j = 0.0F; + } + // Paper end + this.world.playBlockAction(this.position, this.getBlock(), 1, this.l); + this.world.applyPhysics(this.position, this.getBlock(), false); - // CraftBukkit start - Call redstone event diff --git a/src/main/java/net/minecraft/server/TileEntityEnderChest.java b/src/main/java/net/minecraft/server/TileEntityEnderChest.java -index d5f0d61..b257bc4 100644 +index 3d61c2d..586ceaa 100644 --- a/src/main/java/net/minecraft/server/TileEntityEnderChest.java +++ b/src/main/java/net/minecraft/server/TileEntityEnderChest.java @@ -1,15 +1,17 @@ @@ -135,7 +135,7 @@ index d5f0d61..b257bc4 100644 public TileEntityEnderChest() {} - public void E_() { + public void F_() { + // Paper start - Disable all of this, just in case this does get ticked + /* if (++this.h % 20 * 4 == 0) { @@ -152,7 +152,7 @@ index d5f0d61..b257bc4 100644 @@ -73,11 +77,34 @@ public class TileEntityEnderChest extends TileEntity implements ITickable { - public void d() { + public void a() { ++this.g; + + // Paper start - Move enderchest open sounds out of the tick loop @@ -162,7 +162,7 @@ index d5f0d61..b257bc4 100644 + double d1 = (double) this.getPosition().getX() + 0.5D; + double d0 = (double) this.getPosition().getZ() + 0.5D; + -+ this.world.a((EntityHuman) null, d1, (double) this.getPosition().getY() + 0.5D, d0, SoundEffects.aN, SoundCategory.BLOCKS, 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F); ++ this.world.a((EntityHuman) null, d1, (double) this.getPosition().getY() + 0.5D, d0, SoundEffects.aQ, SoundCategory.BLOCKS, 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F); + } + // Paper end + @@ -177,7 +177,7 @@ index d5f0d61..b257bc4 100644 + double d0 = (double) this.getPosition().getX() + 0.5D; + double d2 = (double) this.getPosition().getZ() + 0.5D; + -+ this.world.a((EntityHuman) null, d0, (double) this.getPosition().getY() + 0.5D, d2, SoundEffects.aM, SoundCategory.BLOCKS, 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F); ++ this.world.a((EntityHuman) null, d0, (double) this.getPosition().getY() + 0.5D, d2, SoundEffects.aP, SoundCategory.BLOCKS, 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F); + this.a = 0.0F; + } + // Paper end @@ -186,5 +186,5 @@ index d5f0d61..b257bc4 100644 } -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0022-Further-improve-server-tick-loop.patch b/Spigot-Server-Patches/0021-Further-improve-server-tick-loop.patch similarity index 95% rename from Spigot-Server-Patches/0022-Further-improve-server-tick-loop.patch rename to Spigot-Server-Patches/0021-Further-improve-server-tick-loop.patch index af750c823c..d2af2e9d12 100644 --- a/Spigot-Server-Patches/0022-Further-improve-server-tick-loop.patch +++ b/Spigot-Server-Patches/0021-Further-improve-server-tick-loop.patch @@ -1,4 +1,4 @@ -From 01d6f991f6f4b263e38da7878cad63b7a7cd7b1b Mon Sep 17 00:00:00 2001 +From 5cb731aebea389dbd75eaf4cb77841f9672baa62 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 1 Mar 2016 23:09:29 -0600 Subject: [PATCH] Further improve server tick loop @@ -12,10 +12,10 @@ Previous implementation did not calculate TPS correctly. Switch to a realistic rolling average and factor in std deviation as an extra reporting variable diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 062cfd6..1363472 100644 +index c8c6959..127d11c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -109,17 +109,11 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -112,17 +112,11 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs public org.bukkit.command.ConsoleCommandSender console; public org.bukkit.command.RemoteConsoleCommandSender remoteConsole; public ConsoleReader reader; @@ -34,7 +34,7 @@ index 062cfd6..1363472 100644 public MinecraftServer(OptionSet options, Proxy proxy, DataConverterManager dataconvertermanager, YggdrasilAuthenticationService yggdrasilauthenticationservice, MinecraftSessionService minecraftsessionservice, GameProfileRepository gameprofilerepository, UserCache usercache) { io.netty.util.ResourceLeakDetector.setEnabled( false ); // Spigot - disable -@@ -524,12 +518,54 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -531,12 +525,54 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs this.isRunning = false; } @@ -94,7 +94,7 @@ index 062cfd6..1363472 100644 public void run() { try { -@@ -543,24 +579,41 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -550,24 +586,41 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs // Spigot start Arrays.fill( recentTps, 20 ); @@ -148,10 +148,10 @@ index 062cfd6..1363472 100644 } lastTick = curTime; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4ac573f..b5132cd 100644 +index e782a80..494c61a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1724,6 +1724,17 @@ public final class CraftServer implements Server { +@@ -1719,6 +1719,17 @@ public final class CraftServer implements Server { return CraftMagicNumbers.INSTANCE; } @@ -211,5 +211,5 @@ index be2e31d..6d21c32 100644 return ( ( tps > 18.0 ) ? ChatColor.GREEN : ( tps > 16.0 ) ? ChatColor.YELLOW : ChatColor.RED ).toString() + ( ( tps > 20.0 ) ? "*" : "" ) + Math.min( Math.round( tps * 100.0 ) / 100.0, 20.0 ); -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0023-Only-refresh-abilities-if-needed.patch b/Spigot-Server-Patches/0022-Only-refresh-abilities-if-needed.patch similarity index 90% rename from Spigot-Server-Patches/0023-Only-refresh-abilities-if-needed.patch rename to Spigot-Server-Patches/0022-Only-refresh-abilities-if-needed.patch index e4a5af94a3..15e56d9d49 100644 --- a/Spigot-Server-Patches/0023-Only-refresh-abilities-if-needed.patch +++ b/Spigot-Server-Patches/0022-Only-refresh-abilities-if-needed.patch @@ -1,11 +1,11 @@ -From 52edc592b137c32d87f8ead08ea7b011614b406e Mon Sep 17 00:00:00 2001 +From b9c6bdb7d61d314397dc9f1426d80b23b8f43eee Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Tue, 1 Mar 2016 23:12:03 -0600 Subject: [PATCH] Only refresh abilities if needed diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 95cdbab..3b0e58b 100644 +index 3bda255..0267e50 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1151,12 +1151,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -24,5 +24,5 @@ index 95cdbab..3b0e58b 100644 @Override -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0024-Add-async-chunk-load-API.patch b/Spigot-Server-Patches/0023-Add-async-chunk-load-API.patch similarity index 92% rename from Spigot-Server-Patches/0024-Add-async-chunk-load-API.patch rename to Spigot-Server-Patches/0023-Add-async-chunk-load-API.patch index c2298dcb12..65f67e9c95 100644 --- a/Spigot-Server-Patches/0024-Add-async-chunk-load-API.patch +++ b/Spigot-Server-Patches/0023-Add-async-chunk-load-API.patch @@ -1,11 +1,11 @@ -From c4f8d2a04dc43344dc465aeee0ad81a67677ea1e Mon Sep 17 00:00:00 2001 +From 72530f8a0121d4f72bd4b24f9164512ed285288f Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Tue, 1 Mar 2016 23:19:01 -0600 Subject: [PATCH] Add async chunk load API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index b1e4026..9ef8fc1 100644 +index bc214af..c507858 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -125,6 +125,26 @@ public class CraftWorld implements World { @@ -36,5 +36,5 @@ index b1e4026..9ef8fc1 100644 return this.world.getChunkProviderServer().getChunkAt(x, z).bukkitChunk; } -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0025-Entity-Origin-API.patch b/Spigot-Server-Patches/0024-Entity-Origin-API.patch similarity index 84% rename from Spigot-Server-Patches/0025-Entity-Origin-API.patch rename to Spigot-Server-Patches/0024-Entity-Origin-API.patch index 356e7cbe19..f4c5fbcd36 100644 --- a/Spigot-Server-Patches/0025-Entity-Origin-API.patch +++ b/Spigot-Server-Patches/0024-Entity-Origin-API.patch @@ -1,14 +1,14 @@ -From 3febea393a161f09bef588e1b62c721860f1b0ec Mon Sep 17 00:00:00 2001 +From d67a5caa6bb6004252668cda3001ccd9180c5e5a Mon Sep 17 00:00:00 2001 From: Byteflux Date: Tue, 1 Mar 2016 23:45:08 -0600 Subject: [PATCH] Entity Origin API diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 1409faa..cf08a0e 100644 +index e0276a6..6766166 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -145,6 +145,7 @@ public abstract class Entity implements ICommandListener { +@@ -144,6 +144,7 @@ public abstract class Entity implements ICommandListener { public org.bukkit.projectiles.ProjectileSource projectileSource; // CraftBukkit - For projectiles only public boolean forceExplosionKnockback; // CraftBukkit - SPIGOT-949 public Timing tickTimer = MinecraftTimings.getEntityTimings(this); // Paper @@ -16,7 +16,7 @@ index 1409faa..cf08a0e 100644 // Spigot start public final byte activationType = org.spigotmc.ActivationRange.initializeEntityActivationType(this); public final boolean defaultActivationState; -@@ -1373,6 +1374,11 @@ public abstract class Entity implements ICommandListener { +@@ -1416,6 +1417,11 @@ public abstract class Entity implements ICommandListener { } } @@ -28,7 +28,7 @@ index 1409faa..cf08a0e 100644 return nbttagcompound; } catch (Throwable throwable) { CrashReport crashreport = CrashReport.a(throwable, "Saving entity NBT"); -@@ -1517,6 +1523,13 @@ public abstract class Entity implements ICommandListener { +@@ -1560,6 +1566,13 @@ public abstract class Entity implements ICommandListener { } // CraftBukkit end @@ -42,7 +42,7 @@ index 1409faa..cf08a0e 100644 } catch (Throwable throwable) { CrashReport crashreport = CrashReport.a(throwable, "Loading entity NBT"); CrashReportSystemDetails crashreportsystemdetails = crashreport.a("Entity being loaded"); -@@ -1538,6 +1551,7 @@ public abstract class Entity implements ICommandListener { +@@ -1584,6 +1597,7 @@ public abstract class Entity implements ICommandListener { protected abstract void b(NBTTagCompound nbttagcompound); @@ -51,10 +51,10 @@ index 1409faa..cf08a0e 100644 NBTTagList nbttaglist = new NBTTagList(); double[] adouble1 = adouble; diff --git a/src/main/java/net/minecraft/server/EntityFallingBlock.java b/src/main/java/net/minecraft/server/EntityFallingBlock.java -index dbcda27..a1392d6 100644 +index 2ed1fb1..042670b 100644 --- a/src/main/java/net/minecraft/server/EntityFallingBlock.java +++ b/src/main/java/net/minecraft/server/EntityFallingBlock.java -@@ -246,6 +246,14 @@ public class EntityFallingBlock extends Entity { +@@ -247,6 +247,14 @@ public class EntityFallingBlock extends Entity { this.block = Blocks.SAND.getBlockData(); } @@ -70,10 +70,10 @@ index dbcda27..a1392d6 100644 public void a(boolean flag) { diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java -index 2745c49..86f3f1f 100644 +index fd07356..25e471d 100644 --- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java +++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java -@@ -107,6 +107,14 @@ public class EntityTNTPrimed extends Entity { +@@ -108,6 +108,14 @@ public class EntityTNTPrimed extends Entity { protected void a(NBTTagCompound nbttagcompound) { this.setFuseTicks(nbttagcompound.getShort("Fuse")); @@ -87,12 +87,12 @@ index 2745c49..86f3f1f 100644 + // Paper end } - public EntityLiving getSource() { + @Nullable diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index e3d971c..5b3e50c 100644 +index 52171a3..4db969b 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -962,6 +962,12 @@ public abstract class World implements IBlockAccess { +@@ -1021,6 +1021,12 @@ public abstract class World implements IBlockAccess { int j = MathHelper.floor(entity.locZ / 16.0D); boolean flag = entity.attachedToPlayer; @@ -106,10 +106,10 @@ index e3d971c..5b3e50c 100644 flag = true; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 09523de..a24efd9 100644 +index 72fd019..f8aabe2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -650,4 +650,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -672,4 +672,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return spigot; } // Spigot end @@ -122,11 +122,11 @@ index 09523de..a24efd9 100644 + } + // Paper end } -diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingSand.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingSand.java -index ad4eb39..f6dad02 100644 ---- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingSand.java -+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingSand.java -@@ -65,4 +65,11 @@ public class CraftFallingSand extends CraftEntity implements FallingSand { +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java +index b0a7f63..56666f1 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java +@@ -65,4 +65,11 @@ public class CraftFallingBlock extends CraftEntity implements FallingBlock { // Second field for EntityFallingBlock getHandle().ticksLived = value; } diff --git a/Spigot-Server-Patches/0026-Prevent-tile-entity-and-entity-crashes.patch b/Spigot-Server-Patches/0025-Prevent-tile-entity-and-entity-crashes.patch similarity index 87% rename from Spigot-Server-Patches/0026-Prevent-tile-entity-and-entity-crashes.patch rename to Spigot-Server-Patches/0025-Prevent-tile-entity-and-entity-crashes.patch index 870bbe8457..2024603d25 100644 --- a/Spigot-Server-Patches/0026-Prevent-tile-entity-and-entity-crashes.patch +++ b/Spigot-Server-Patches/0025-Prevent-tile-entity-and-entity-crashes.patch @@ -1,32 +1,32 @@ -From 9180cb4c79c197a377028ff0066f36a57010f7e3 Mon Sep 17 00:00:00 2001 +From 7fbd0b2351a7a6e38cf85611cbcb5caa1fc5cbf0 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 1 Mar 2016 23:52:34 -0600 Subject: [PATCH] Prevent tile entity and entity crashes diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java -index 2b82312..9fa93ed 100644 +index 0f505ed..1f3e89b 100644 --- a/src/main/java/net/minecraft/server/TileEntity.java +++ b/src/main/java/net/minecraft/server/TileEntity.java -@@ -177,7 +177,12 @@ public abstract class TileEntity { +@@ -175,7 +175,12 @@ public abstract class TileEntity { } }); if (this.world != null) { -- CrashReportSystemDetails.a(crashreportsystemdetails, this.position, this.getBlock(), this.u()); +- CrashReportSystemDetails.a(crashreportsystemdetails, this.position, this.getBlock(), this.v()); + // Paper start - Prevent TileEntity and Entity crashes + Block block = this.getBlock(); + if (block != null) { -+ CrashReportSystemDetails.a(crashreportsystemdetails, this.position, block, this.u()); ++ CrashReportSystemDetails.a(crashreportsystemdetails, this.position, this.getBlock(), this.v()); + } + // Paper end crashreportsystemdetails.a("Actual block type", new CrashReportCallable() { public String a() throws Exception { int i = Block.getId(TileEntity.this.world.getType(TileEntity.this.position).getBlock()); diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 5b3e50c..8fb8176 100644 +index 4db969b..20cc5ff 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1445,10 +1445,12 @@ public abstract class World implements IBlockAccess { +@@ -1467,10 +1467,12 @@ public abstract class World implements IBlockAccess { entity.tickTimer.stopTiming(); // Paper } catch (Throwable throwable1) { entity.tickTimer.stopTiming(); @@ -43,8 +43,8 @@ index 5b3e50c..8fb8176 100644 } } -@@ -1511,10 +1513,13 @@ public abstract class World implements IBlockAccess { - ((ITickable) tileentity).E_(); +@@ -1533,10 +1535,13 @@ public abstract class World implements IBlockAccess { + ((ITickable) tileentity).F_(); this.methodProfiler.b(); } catch (Throwable throwable2) { - crashreport1 = CrashReport.a(throwable2, "Ticking block entity"); @@ -62,5 +62,5 @@ index 5b3e50c..8fb8176 100644 // Spigot start finally { -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0027-Configurable-top-of-nether-void-damage.patch b/Spigot-Server-Patches/0026-Configurable-top-of-nether-void-damage.patch similarity index 85% rename from Spigot-Server-Patches/0027-Configurable-top-of-nether-void-damage.patch rename to Spigot-Server-Patches/0026-Configurable-top-of-nether-void-damage.patch index 4ee0762fb0..12eceab3e8 100644 --- a/Spigot-Server-Patches/0027-Configurable-top-of-nether-void-damage.patch +++ b/Spigot-Server-Patches/0026-Configurable-top-of-nether-void-damage.patch @@ -1,14 +1,14 @@ -From a926366fca50262a094af3fe90e733f386d83b7c Mon Sep 17 00:00:00 2001 +From 94a01cae0a4766334b1efdb05a4410a02a84a401 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Tue, 1 Mar 2016 23:58:50 -0600 Subject: [PATCH] Configurable top of nether void damage diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 8fc2f6c..d78b688 100644 +index 06d1527..2767ffb 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -152,4 +152,10 @@ public class PaperWorldConfig { +@@ -143,4 +143,10 @@ public class PaperWorldConfig { waterOverLavaFlowSpeed = getInt("water-over-lava-flow-speed", 5); log("Water over lava flow speed: " + waterOverLavaFlowSpeed); } @@ -20,10 +20,10 @@ index 8fc2f6c..d78b688 100644 + } } diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 38df1c6..fd51ecb 100644 +index 6766166..40398ca 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -386,9 +386,15 @@ public abstract class Entity implements ICommandListener { +@@ -390,9 +390,15 @@ public abstract class Entity implements ICommandListener { this.fallDistance *= 0.5F; } @@ -39,7 +39,7 @@ index 38df1c6..fd51ecb 100644 if (!this.world.isClientSide) { this.setFlag(0, this.fireTicks > 0); -@@ -398,6 +404,18 @@ public abstract class Entity implements ICommandListener { +@@ -402,6 +408,18 @@ public abstract class Entity implements ICommandListener { this.world.methodProfiler.b(); } @@ -58,7 +58,7 @@ index 38df1c6..fd51ecb 100644 protected void H() { if (this.portalCooldown > 0) { --this.portalCooldown; -@@ -454,6 +472,7 @@ public abstract class Entity implements ICommandListener { +@@ -458,6 +476,7 @@ public abstract class Entity implements ICommandListener { this.fireTicks = 0; } @@ -67,10 +67,10 @@ index 38df1c6..fd51ecb 100644 this.die(); } diff --git a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java -index 36ef2da..4438d83 100644 +index fdacb6d..ec75bab 100644 --- a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java +++ b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java -@@ -210,9 +210,15 @@ public abstract class EntityMinecartAbstract extends Entity implements INamableT +@@ -206,9 +206,15 @@ public abstract class EntityMinecartAbstract extends Entity implements INamableT this.setDamage(this.getDamage() - 1.0F); } @@ -87,5 +87,5 @@ index 36ef2da..4438d83 100644 int i; -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0028-Check-online-mode-before-converting-and-renaming-pla.patch b/Spigot-Server-Patches/0027-Check-online-mode-before-converting-and-renaming-pla.patch similarity index 84% rename from Spigot-Server-Patches/0028-Check-online-mode-before-converting-and-renaming-pla.patch rename to Spigot-Server-Patches/0027-Check-online-mode-before-converting-and-renaming-pla.patch index 15d8f26c0c..1ccebb764f 100644 --- a/Spigot-Server-Patches/0028-Check-online-mode-before-converting-and-renaming-pla.patch +++ b/Spigot-Server-Patches/0027-Check-online-mode-before-converting-and-renaming-pla.patch @@ -1,14 +1,14 @@ -From 1f849507582b5b1dae133b05b73c29aa78ef9d14 Mon Sep 17 00:00:00 2001 +From 44c07ef0621492638973ef6e53b42a04e87c7bee Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Wed, 2 Mar 2016 00:03:55 -0600 Subject: [PATCH] Check online mode before converting and renaming player data diff --git a/src/main/java/net/minecraft/server/WorldNBTStorage.java b/src/main/java/net/minecraft/server/WorldNBTStorage.java -index 75e2338..f077398 100644 +index b6cb918..7c4c599 100644 --- a/src/main/java/net/minecraft/server/WorldNBTStorage.java +++ b/src/main/java/net/minecraft/server/WorldNBTStorage.java -@@ -165,7 +165,7 @@ public class WorldNBTStorage implements IDataManager, IPlayerFileData { +@@ -166,7 +166,7 @@ public class WorldNBTStorage implements IDataManager, IPlayerFileData { File file = new File(this.playerDir, entityhuman.bf() + ".dat"); // Spigot Start boolean usingWrongFile = false; @@ -18,5 +18,5 @@ index 75e2338..f077398 100644 file = new File( this.playerDir, UUID.nameUUIDFromBytes( ( "OfflinePlayer:" + entityhuman.getName() ).getBytes( "UTF-8" ) ).toString() + ".dat"); if ( file.exists() ) -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0029-Always-tick-falling-blocks.patch b/Spigot-Server-Patches/0028-Always-tick-falling-blocks.patch similarity index 91% rename from Spigot-Server-Patches/0029-Always-tick-falling-blocks.patch rename to Spigot-Server-Patches/0028-Always-tick-falling-blocks.patch index 9e14fafde8..816b99d525 100644 --- a/Spigot-Server-Patches/0029-Always-tick-falling-blocks.patch +++ b/Spigot-Server-Patches/0028-Always-tick-falling-blocks.patch @@ -1,11 +1,11 @@ -From 67763518c9084c592b734afd2bd4118da9127b92 Mon Sep 17 00:00:00 2001 +From 2a837acc0906c9c21810efbe5aa68b66d4866d3a Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Wed, 2 Mar 2016 00:32:25 -0600 Subject: [PATCH] Always tick falling blocks diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index eb30abe..c4ed64a 100644 +index 5c2fb00..c411ce8 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -13,6 +13,7 @@ import net.minecraft.server.EntityCreature; @@ -25,5 +25,5 @@ index eb30abe..c4ed64a 100644 || entity instanceof EntityFireworks ) { -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0030-Lighting-Queue.patch b/Spigot-Server-Patches/0029-Lighting-Queue.patch similarity index 94% rename from Spigot-Server-Patches/0030-Lighting-Queue.patch rename to Spigot-Server-Patches/0029-Lighting-Queue.patch index 4822dda513..6ac49c31d3 100644 --- a/Spigot-Server-Patches/0030-Lighting-Queue.patch +++ b/Spigot-Server-Patches/0029-Lighting-Queue.patch @@ -1,4 +1,4 @@ -From fa2e0c1e868ffb94b3748ffbd75b60a5b6ce38fc Mon Sep 17 00:00:00 2001 +From de8891c221aadfd9a15b896d964d0d41367c5c44 Mon Sep 17 00:00:00 2001 From: Byteflux Date: Wed, 2 Mar 2016 00:52:31 -0600 Subject: [PATCH] Lighting Queue @@ -27,10 +27,10 @@ index e778911..f90f5bf 100644 } } diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index d78b688..158db3a 100644 +index 2767ffb..f7a0c18 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -158,4 +158,10 @@ public class PaperWorldConfig { +@@ -149,4 +149,10 @@ public class PaperWorldConfig { netherVoidTopDamage = getBoolean( "nether-ceiling-void-damage", false ); log("Top of the nether void damage: " + netherVoidTopDamage); } @@ -42,7 +42,7 @@ index d78b688..158db3a 100644 + } } diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 445419f..76130c9 100644 +index 1c0108e..b80f951 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -33,6 +33,7 @@ public class Chunk { @@ -85,10 +85,10 @@ index 445419f..76130c9 100644 TileEntity tileentity; diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 1380815..466cd49 100644 +index 17d39bb..df3ce72 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java -@@ -279,6 +279,7 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -280,6 +280,7 @@ public class ChunkProviderServer implements IChunkProvider { return false; } save = event.isSaveChunk(); @@ -97,10 +97,10 @@ index 1380815..466cd49 100644 // Update neighbor counts for (int x = -2; x < 3; x++) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 029a6c3..f0dcb9f 100644 +index 127d11c..2e72b8c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -709,7 +709,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -716,7 +716,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs protected void C() throws ExceptionWorldConflict { // CraftBukkit - added throws co.aikar.timings.TimingsManager.FULL_SERVER_TICK.startTiming(); // Paper @@ -108,8 +108,8 @@ index 029a6c3..f0dcb9f 100644 + long i = System.nanoTime(); long startTime = i; // Paper ++this.ticks; - if (this.S) { -@@ -767,6 +767,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs + if (this.T) { +@@ -774,6 +774,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs this.methodProfiler.b(); org.spigotmc.WatchdogThread.tick(); // Spigot @@ -222,10 +222,10 @@ index 0000000..2350fe3 + } +} diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 8fb8176..672167a 100644 +index 20cc5ff..abe11ad 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -384,7 +384,7 @@ public abstract class World implements IBlockAccess { +@@ -387,7 +387,7 @@ public abstract class World implements IBlockAccess { } else { if (iblockdata.c() != iblockdata1.c() || iblockdata.d() != iblockdata1.d()) { this.methodProfiler.a("checkLight"); @@ -235,5 +235,5 @@ index 8fb8176..672167a 100644 } -- -2.10.1 +2.10.2 diff --git a/Spigot-Server-Patches/0032-Configurable-end-credits.patch b/Spigot-Server-Patches/0030-Configurable-end-credits.patch similarity index 86% rename from Spigot-Server-Patches/0032-Configurable-end-credits.patch rename to Spigot-Server-Patches/0030-Configurable-end-credits.patch index ae823e1f46..e5d540c179 100644 --- a/Spigot-Server-Patches/0032-Configurable-end-credits.patch +++ b/Spigot-Server-Patches/0030-Configurable-end-credits.patch @@ -1,14 +1,14 @@ -From 40b69207b686437a0b1414c9f46ad9c3d11f5d6f Mon Sep 17 00:00:00 2001 +From ee64101f6764c9f72a0c602568c0a27a872adeae Mon Sep 17 00:00:00 2001 From: DoctorDark Date: Wed, 16 Mar 2016 02:21:39 -0500 Subject: [PATCH] Configurable end credits diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 158db3a..e4e5487 100644 +index f7a0c18..31503e7 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -164,4 +164,10 @@ public class PaperWorldConfig { +@@ -155,4 +155,10 @@ public class PaperWorldConfig { queueLightUpdates = getBoolean("queue-light-updates", false); log("Lighting Queue enabled: " + queueLightUpdates); } @@ -20,10 +20,10 @@ index 158db3a..e4e5487 100644 + } } diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index 37c94f8..522c7f2 100644 +index 29e33da..a400062 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java -@@ -511,6 +511,15 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -495,6 +495,15 @@ public class EntityPlayer extends EntityHuman implements ICrafting { return this.world.pvpMode; } @@ -39,7 +39,7 @@ index 37c94f8..522c7f2 100644 @Nullable public Entity c(int i) { // this.worldChangeInvuln = true; // CraftBukkit - Moved down and into PlayerList#changeDimension -@@ -519,7 +528,10 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -503,7 +512,10 @@ public class EntityPlayer extends EntityHuman implements ICrafting { this.world.kill(this); if (!this.viewingCredits) { this.viewingCredits = true; @@ -52,5 +52,5 @@ index 37c94f8..522c7f2 100644 } else { this.b((Statistic) AchievementList.D); -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0033-Fix-lag-from-explosions-processing-dead-entities.patch b/Spigot-Server-Patches/0031-Fix-lag-from-explosions-processing-dead-entities.patch similarity index 89% rename from Spigot-Server-Patches/0033-Fix-lag-from-explosions-processing-dead-entities.patch rename to Spigot-Server-Patches/0031-Fix-lag-from-explosions-processing-dead-entities.patch index b6a2fa5f60..34b19e2d99 100644 --- a/Spigot-Server-Patches/0033-Fix-lag-from-explosions-processing-dead-entities.patch +++ b/Spigot-Server-Patches/0031-Fix-lag-from-explosions-processing-dead-entities.patch @@ -1,14 +1,14 @@ -From 8bd58b6f24a637fc603a703b2d20cc4208c564ac Mon Sep 17 00:00:00 2001 +From f20f61e14a0f0ce21e1f6a4dafe533125e40bf0d Mon Sep 17 00:00:00 2001 From: Iceee Date: Wed, 2 Mar 2016 01:39:52 -0600 Subject: [PATCH] Fix lag from explosions processing dead entities diff --git a/src/main/java/net/minecraft/server/Explosion.java b/src/main/java/net/minecraft/server/Explosion.java -index acbf7a8..f4765d3 100644 +index 904bee8..4e05bcd 100644 --- a/src/main/java/net/minecraft/server/Explosion.java +++ b/src/main/java/net/minecraft/server/Explosion.java -@@ -103,7 +103,14 @@ public class Explosion { +@@ -104,7 +104,14 @@ public class Explosion { int i1 = MathHelper.floor(this.posY + (double) f3 + 1.0D); int j1 = MathHelper.floor(this.posZ - (double) f3 - 1.0D); int k1 = MathHelper.floor(this.posZ + (double) f3 + 1.0D); @@ -25,5 +25,5 @@ index acbf7a8..f4765d3 100644 for (int l1 = 0; l1 < list.size(); ++l1) { -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0031-Optimize-draining.patch b/Spigot-Server-Patches/0031-Optimize-draining.patch deleted file mode 100644 index 52e556076d..0000000000 --- a/Spigot-Server-Patches/0031-Optimize-draining.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 06168b7a4b64d23e90503435a82258588871d586 Mon Sep 17 00:00:00 2001 -From: Byteflux -Date: Wed, 2 Mar 2016 00:55:24 -0600 -Subject: [PATCH] Optimize draining - - -diff --git a/src/main/java/net/minecraft/server/BlockFlowing.java b/src/main/java/net/minecraft/server/BlockFlowing.java -index b00865e..72654df 100644 ---- a/src/main/java/net/minecraft/server/BlockFlowing.java -+++ b/src/main/java/net/minecraft/server/BlockFlowing.java -@@ -88,7 +88,13 @@ public class BlockFlowing extends BlockFluids { - iblockdata = iblockdata.set(BlockFlowing.LEVEL, Integer.valueOf(i1)); - world.setTypeAndData(blockposition, iblockdata, 2); - world.a(blockposition, (Block) this, j); -- world.applyPhysics(blockposition, this); -+ // Paper start - Optimize draining -+ world.e(blockposition.west(), this); -+ world.e(blockposition.east(), this); -+ world.e(blockposition.up(), this); -+ world.e(blockposition.north(), this); -+ world.e(blockposition.south(), this); -+ // Paper end - } - } - } else { --- -2.10.0.windows.1 - diff --git a/Spigot-Server-Patches/0034-Generator-Settings.patch b/Spigot-Server-Patches/0032-Generator-Settings.patch similarity index 86% rename from Spigot-Server-Patches/0034-Generator-Settings.patch rename to Spigot-Server-Patches/0032-Generator-Settings.patch index af0873f87d..d7f4d2858e 100644 --- a/Spigot-Server-Patches/0034-Generator-Settings.patch +++ b/Spigot-Server-Patches/0032-Generator-Settings.patch @@ -1,14 +1,14 @@ -From 614348db3e370b5ac7e74b6c805d2003280a27f8 Mon Sep 17 00:00:00 2001 +From 19f118c6124003316d9f50b1a2f08e90d0b72a8f Mon Sep 17 00:00:00 2001 From: Byteflux Date: Wed, 2 Mar 2016 02:17:54 -0600 Subject: [PATCH] Generator Settings diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index e4e5487..7525bcb 100644 +index 31503e7..bc50289 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -170,4 +170,28 @@ public class PaperWorldConfig { +@@ -161,4 +161,28 @@ public class PaperWorldConfig { disableEndCredits = getBoolean("game-mechanics.disable-end-credits", false); log("End credits disabled: " + disableEndCredits); } @@ -38,10 +38,10 @@ index e4e5487..7525bcb 100644 + } } diff --git a/src/main/java/net/minecraft/server/BiomeBase.java b/src/main/java/net/minecraft/server/BiomeBase.java -index ab04f9c..bf4f06c 100644 +index 62a338e..d3f1dce 100644 --- a/src/main/java/net/minecraft/server/BiomeBase.java +++ b/src/main/java/net/minecraft/server/BiomeBase.java -@@ -178,7 +178,7 @@ public abstract class BiomeBase { +@@ -179,7 +179,7 @@ public abstract class BiomeBase { BlockPosition.MutableBlockPosition blockposition_mutableblockposition = new BlockPosition.MutableBlockPosition(); for (int l1 = 255; l1 >= 0; --l1) { @@ -51,20 +51,20 @@ index ab04f9c..bf4f06c 100644 } else { IBlockData iblockdata2 = chunksnapshot.a(k1, l1, j1); diff --git a/src/main/java/net/minecraft/server/BiomeMesa.java b/src/main/java/net/minecraft/server/BiomeMesa.java -index 8bcc0f3..62abbbd 100644 +index 3d0a60b..1214193 100644 --- a/src/main/java/net/minecraft/server/BiomeMesa.java +++ b/src/main/java/net/minecraft/server/BiomeMesa.java -@@ -103,7 +103,7 @@ public class BiomeMesa extends BiomeBase { +@@ -99,7 +99,7 @@ public class BiomeMesa extends BiomeBase { chunksnapshot.a(l, i2, k, BiomeMesa.a); } - if (i2 <= random.nextInt(5)) { + if (i2 <= (world.paperConfig.generateFlatBedrock ? 0 : random.nextInt(5))) { // Paper - Configurable flat bedrock chunksnapshot.a(l, i2, k, BiomeMesa.c); - } else if (l1 < 15) { + } else if (l1 < 15 || this.J) { IBlockData iblockdata2 = chunksnapshot.a(l, i2, k); diff --git a/src/main/java/net/minecraft/server/ChunkProviderFlat.java b/src/main/java/net/minecraft/server/ChunkProviderFlat.java -index aa35a24..ea6a00e 100644 +index d958a66..f8a9f49 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderFlat.java +++ b/src/main/java/net/minecraft/server/ChunkProviderFlat.java @@ -26,7 +26,7 @@ public class ChunkProviderFlat implements ChunkGenerator { @@ -77,27 +77,27 @@ index aa35a24..ea6a00e 100644 if (!map1.containsKey("size")) { @@ -36,19 +36,19 @@ public class ChunkProviderFlat implements ChunkGenerator { - this.e.add(new WorldGenVillage(map1)); + this.e.put("Village", new WorldGenVillage(map1)); } - if (map.containsKey("biome_1")) { + if (map.containsKey("biome_1") && world.paperConfig.generateTemple) { // Paper - this.e.add(new WorldGenLargeFeature((Map) map.get("biome_1"))); + this.e.put("Temple", new WorldGenLargeFeature((Map) map.get("biome_1"))); } - if (map.containsKey("mineshaft")) { + if (map.containsKey("mineshaft") && world.paperConfig.generateMineshaft) { // Paper - this.e.add(new WorldGenMineshaft((Map) map.get("mineshaft"))); + this.e.put("Mineshaft", new WorldGenMineshaft((Map) map.get("mineshaft"))); } - if (map.containsKey("stronghold")) { + if (map.containsKey("stronghold") && world.paperConfig.generateStronghold) { // Paper - this.e.add(new WorldGenStronghold((Map) map.get("stronghold"))); + this.e.put("Stronghold", new WorldGenStronghold((Map) map.get("stronghold"))); } - if (map.containsKey("oceanmonument")) { + if (map.containsKey("oceanmonument") && world.paperConfig.generateMonument) { // Paper - this.e.add(new WorldGenMonument((Map) map.get("oceanmonument"))); + this.e.put("Monument", new WorldGenMonument((Map) map.get("oceanmonument"))); } } @@ -61,7 +61,7 @@ public class ChunkProviderFlat implements ChunkGenerator { @@ -110,20 +110,20 @@ index aa35a24..ea6a00e 100644 int k = 0; boolean flag1 = true; diff --git a/src/main/java/net/minecraft/server/ChunkProviderGenerate.java b/src/main/java/net/minecraft/server/ChunkProviderGenerate.java -index ac990af..0722956 100644 +index a8fc857..0530501 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderGenerate.java +++ b/src/main/java/net/minecraft/server/ChunkProviderGenerate.java -@@ -158,32 +158,32 @@ public class ChunkProviderGenerate implements ChunkGenerator { +@@ -160,32 +160,32 @@ public class ChunkProviderGenerate implements ChunkGenerator { this.a(i, j, chunksnapshot); - this.C = this.n.getWorldChunkManager().getBiomeBlock(this.C, i * 16, j * 16, 16, 16); - this.a(i, j, chunksnapshot, this.C); + this.D = this.n.getWorldChunkManager().getBiomeBlock(this.D, i * 16, j * 16, 16, 16); + this.a(i, j, chunksnapshot, this.D); - if (this.s.r) { + if (this.s.r && this.n.paperConfig.generateCaves) { // Paper this.v.a(this.n, i, j, chunksnapshot); } -- if (this.s.z) { -+ if (this.s.z && this.n.paperConfig.generateCanyon) { // Paper +- if (this.s.A) { ++ if (this.s.A && this.n.paperConfig.generateCanyon) { // Paper this.A.a(this.n, i, j, chunksnapshot); } @@ -152,8 +152,8 @@ index ac990af..0722956 100644 + if (this.s.y && this.n.paperConfig.generateMonument) { // Paper this.B.a(this.n, i, j, chunksnapshot); } - } -@@ -323,23 +323,23 @@ public class ChunkProviderGenerate implements ChunkGenerator { + +@@ -329,23 +329,23 @@ public class ChunkProviderGenerate implements ChunkGenerator { ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(i, j); if (this.o) { @@ -181,8 +181,8 @@ index ac990af..0722956 100644 + if (this.s.y && this.n.paperConfig.generateMonument) { // Paper this.B.a(this.n, this.i, chunkcoordintpair); } - } -@@ -364,7 +364,7 @@ public class ChunkProviderGenerate implements ChunkGenerator { + +@@ -374,7 +374,7 @@ public class ChunkProviderGenerate implements ChunkGenerator { } } @@ -191,7 +191,7 @@ index ac990af..0722956 100644 for (k1 = 0; k1 < this.s.t; ++k1) { l1 = this.i.nextInt(16) + 8; i2 = this.i.nextInt(256); -@@ -429,23 +429,23 @@ public class ChunkProviderGenerate implements ChunkGenerator { +@@ -439,23 +439,23 @@ public class ChunkProviderGenerate implements ChunkGenerator { public void recreateStructures(Chunk chunk, int i, int j) { if (this.o) { @@ -219,9 +219,9 @@ index ac990af..0722956 100644 + if (this.s.y && this.n.paperConfig.generateMonument) { // Paper this.B.a(this.n, i, j, (ChunkSnapshot) null); } - } + diff --git a/src/main/java/net/minecraft/server/ChunkProviderHell.java b/src/main/java/net/minecraft/server/ChunkProviderHell.java -index 6e6ecd8..e95175e 100644 +index f9519d7..ca64ae0 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderHell.java +++ b/src/main/java/net/minecraft/server/ChunkProviderHell.java @@ -151,7 +151,10 @@ public class ChunkProviderHell implements ChunkGenerator { @@ -245,10 +245,10 @@ index 6e6ecd8..e95175e 100644 } } diff --git a/src/main/java/net/minecraft/server/StructureGenerator.java b/src/main/java/net/minecraft/server/StructureGenerator.java -index c965af1..3ce4449 100644 +index fb350c4..9c1605b 100644 --- a/src/main/java/net/minecraft/server/StructureGenerator.java +++ b/src/main/java/net/minecraft/server/StructureGenerator.java -@@ -95,6 +95,7 @@ public abstract class StructureGenerator extends WorldGenBase { +@@ -96,6 +96,7 @@ public abstract class StructureGenerator extends WorldGenBase { } public boolean b(BlockPosition blockposition) { @@ -256,14 +256,14 @@ index c965af1..3ce4449 100644 this.a(this.g); return this.c(blockposition) != null; } -@@ -122,6 +123,7 @@ public abstract class StructureGenerator extends WorldGenBase { +@@ -124,6 +125,7 @@ public abstract class StructureGenerator extends WorldGenBase { } - public synchronized boolean b(World world, BlockPosition blockposition) { // CraftBukkit - synchronized + public boolean a(World world, BlockPosition blockposition) { + if (this.g == null) return false; // Paper this.a(world); - Iterator iterator = this.c.values().iterator(); + ObjectIterator objectiterator = this.c.values().iterator(); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0035-Optimize-explosions.patch b/Spigot-Server-Patches/0033-Optimize-explosions.patch similarity index 92% rename from Spigot-Server-Patches/0035-Optimize-explosions.patch rename to Spigot-Server-Patches/0033-Optimize-explosions.patch index 845eda3d0f..fd75c010b7 100644 --- a/Spigot-Server-Patches/0035-Optimize-explosions.patch +++ b/Spigot-Server-Patches/0033-Optimize-explosions.patch @@ -1,4 +1,4 @@ -From 515eed54a3ee0c2bcc5e03d27f522fc6c650f7e8 Mon Sep 17 00:00:00 2001 +From 28e05719f8e0a3f399db8c129b780df4fc2984e7 Mon Sep 17 00:00:00 2001 From: Byteflux Date: Wed, 2 Mar 2016 11:59:48 -0600 Subject: [PATCH] Optimize explosions @@ -10,10 +10,10 @@ This patch adds a per-tick cache that is used for storing and retrieving an entity's exposure during an explosion. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 7525bcb..ca0ac9b 100644 +index bc50289..356265e 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -194,4 +194,10 @@ public class PaperWorldConfig { +@@ -185,4 +185,10 @@ public class PaperWorldConfig { generateVillage = getBoolean("generator-settings.village", true); generateFlatBedrock = getBoolean("generator-settings.flat-bedrock", false); } @@ -25,10 +25,10 @@ index 7525bcb..ca0ac9b 100644 + } } diff --git a/src/main/java/net/minecraft/server/Explosion.java b/src/main/java/net/minecraft/server/Explosion.java -index f4765d3..caf29c7 100644 +index 4e05bcd..49fc95e 100644 --- a/src/main/java/net/minecraft/server/Explosion.java +++ b/src/main/java/net/minecraft/server/Explosion.java -@@ -129,7 +129,7 @@ public class Explosion { +@@ -130,7 +130,7 @@ public class Explosion { d8 /= d11; d9 /= d11; d10 /= d11; @@ -37,7 +37,7 @@ index f4765d3..caf29c7 100644 double d13 = (1.0D - d7) * d12; // CraftBukkit start -@@ -296,4 +296,85 @@ public class Explosion { +@@ -298,4 +298,85 @@ public class Explosion { public List getBlocks() { return this.blocks; } @@ -124,10 +124,10 @@ index f4765d3..caf29c7 100644 + // Paper end } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index f0dcb9f..885fc80 100644 +index 2e72b8c..a872e76 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -870,6 +870,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -877,6 +877,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs worldserver.getTracker().updatePlayers(); this.methodProfiler.b(); this.methodProfiler.b(); @@ -136,10 +136,10 @@ index f0dcb9f..885fc80 100644 // this.i[i][this.ticks % 100] = System.nanoTime() - j; // CraftBukkit diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 672167a..e8cfe2b 100644 +index abe11ad..1248a9f 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -16,6 +16,7 @@ import javax.annotation.Nullable; +@@ -15,6 +15,7 @@ import javax.annotation.Nullable; // CraftBukkit start import com.google.common.collect.Maps; @@ -147,7 +147,7 @@ index 672167a..e8cfe2b 100644 import java.util.Map; import org.bukkit.Bukkit; import org.bukkit.block.BlockState; -@@ -135,6 +136,7 @@ public abstract class World implements IBlockAccess { +@@ -134,6 +135,7 @@ public abstract class World implements IBlockAccess { private org.spigotmc.TickLimiter entityLimiter; private org.spigotmc.TickLimiter tileLimiter; private int tileTickPosition; @@ -156,5 +156,5 @@ index 672167a..e8cfe2b 100644 public CraftWorld getWorld() { return this.world; -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0036-Stop-updating-flowing-block-if-material-has-changed.patch b/Spigot-Server-Patches/0034-Stop-updating-flowing-block-if-material-has-changed.patch similarity index 81% rename from Spigot-Server-Patches/0036-Stop-updating-flowing-block-if-material-has-changed.patch rename to Spigot-Server-Patches/0034-Stop-updating-flowing-block-if-material-has-changed.patch index f1796ae7a2..0c180807be 100644 --- a/Spigot-Server-Patches/0036-Stop-updating-flowing-block-if-material-has-changed.patch +++ b/Spigot-Server-Patches/0034-Stop-updating-flowing-block-if-material-has-changed.patch @@ -1,14 +1,14 @@ -From dac6bac6e17684e8b5b4b0fa5e51fe76f0f5b92f Mon Sep 17 00:00:00 2001 +From fb7f9985a6e06097d8a35efff62d104649223bdd Mon Sep 17 00:00:00 2001 From: Iceee Date: Wed, 2 Mar 2016 12:03:23 -0600 Subject: [PATCH] Stop updating flowing block if material has changed diff --git a/src/main/java/net/minecraft/server/BlockFlowing.java b/src/main/java/net/minecraft/server/BlockFlowing.java -index 72654df..def694a 100644 +index e9f73cd..83433e8 100644 --- a/src/main/java/net/minecraft/server/BlockFlowing.java +++ b/src/main/java/net/minecraft/server/BlockFlowing.java -@@ -101,6 +101,7 @@ public class BlockFlowing extends BlockFluids { +@@ -95,6 +95,7 @@ public class BlockFlowing extends BlockFluids { this.f(world, blockposition, iblockdata); } @@ -17,5 +17,5 @@ index 72654df..def694a 100644 if (this.h(world, blockposition.down(), iblockdata2)) { -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0037-Fast-draining.patch b/Spigot-Server-Patches/0035-Fast-draining.patch similarity index 94% rename from Spigot-Server-Patches/0037-Fast-draining.patch rename to Spigot-Server-Patches/0035-Fast-draining.patch index d206662261..edb305875c 100644 --- a/Spigot-Server-Patches/0037-Fast-draining.patch +++ b/Spigot-Server-Patches/0035-Fast-draining.patch @@ -1,14 +1,14 @@ -From 678a7464e92867731d118c7beea8f565e5ad6c69 Mon Sep 17 00:00:00 2001 +From d51651300f04706da2dbeb17dbf7ddcb63bca70b Mon Sep 17 00:00:00 2001 From: Byteflux Date: Wed, 2 Mar 2016 12:20:52 -0600 Subject: [PATCH] Fast draining diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index ca0ac9b..f8b90e3 100644 +index 356265e..2ec5068 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -200,4 +200,11 @@ public class PaperWorldConfig { +@@ -191,4 +191,11 @@ public class PaperWorldConfig { optimizeExplosions = getBoolean("optimize-explosions", false); log("Optimize explosions: " + optimizeExplosions); } @@ -21,7 +21,7 @@ index ca0ac9b..f8b90e3 100644 + } } diff --git a/src/main/java/net/minecraft/server/BlockFlowing.java b/src/main/java/net/minecraft/server/BlockFlowing.java -index def694a..0b5bc19 100644 +index 83433e8..2b21aec 100644 --- a/src/main/java/net/minecraft/server/BlockFlowing.java +++ b/src/main/java/net/minecraft/server/BlockFlowing.java @@ -74,7 +74,7 @@ public class BlockFlowing extends BlockFluids { @@ -42,7 +42,7 @@ index def694a..0b5bc19 100644 world.setAir(blockposition); } else { iblockdata = iblockdata.set(BlockFlowing.LEVEL, Integer.valueOf(i1)); -@@ -275,6 +275,7 @@ public class BlockFlowing extends BlockFluids { +@@ -269,6 +269,7 @@ public class BlockFlowing extends BlockFluids { } @@ -50,7 +50,7 @@ index def694a..0b5bc19 100644 /** * Paper - Get flow speed. Throttle if its water and flowing adjacent to lava */ -@@ -288,4 +289,57 @@ public class BlockFlowing extends BlockFluids { +@@ -282,4 +283,57 @@ public class BlockFlowing extends BlockFluids { } return super.a(world); } @@ -109,5 +109,5 @@ index def694a..0b5bc19 100644 + // Paper end } -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0038-Configurable-lava-flow-speed.patch b/Spigot-Server-Patches/0036-Configurable-lava-flow-speed.patch similarity index 86% rename from Spigot-Server-Patches/0038-Configurable-lava-flow-speed.patch rename to Spigot-Server-Patches/0036-Configurable-lava-flow-speed.patch index 10525302c3..a93fc3e322 100644 --- a/Spigot-Server-Patches/0038-Configurable-lava-flow-speed.patch +++ b/Spigot-Server-Patches/0036-Configurable-lava-flow-speed.patch @@ -1,14 +1,14 @@ -From 2ce25ad8cfc444a0f5bf7e327e99ce0f05618bfe Mon Sep 17 00:00:00 2001 +From 5f8b909ecc7f3564eaf77b9591ad02940d086f55 Mon Sep 17 00:00:00 2001 From: Byteflux Date: Wed, 2 Mar 2016 12:27:07 -0600 Subject: [PATCH] Configurable lava flow speed diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index f8b90e3..004d4c0 100644 +index 2ec5068..b5a106d 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -207,4 +207,11 @@ public class PaperWorldConfig { +@@ -198,4 +198,11 @@ public class PaperWorldConfig { fastDrainLava = getBoolean("fast-drain.lava", false); fastDrainWater = getBoolean("fast-drain.water", false); } @@ -21,10 +21,10 @@ index f8b90e3..004d4c0 100644 + } } diff --git a/src/main/java/net/minecraft/server/BlockFlowing.java b/src/main/java/net/minecraft/server/BlockFlowing.java -index 0b5bc19..0336b9c 100644 +index 2b21aec..3174326 100644 --- a/src/main/java/net/minecraft/server/BlockFlowing.java +++ b/src/main/java/net/minecraft/server/BlockFlowing.java -@@ -280,6 +280,9 @@ public class BlockFlowing extends BlockFluids { +@@ -274,6 +274,9 @@ public class BlockFlowing extends BlockFluids { * Paper - Get flow speed. Throttle if its water and flowing adjacent to lava */ public int getFlowSpeed(World world, BlockPosition blockposition) { @@ -35,5 +35,5 @@ index 0b5bc19..0336b9c 100644 world.getType(blockposition.north(1)).getBlock().material == Material.LAVA || world.getType(blockposition.south(1)).getBlock().material == Material.LAVA || -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0039-Add-player-view-distance-API.patch b/Spigot-Server-Patches/0037-Add-player-view-distance-API.patch similarity index 98% rename from Spigot-Server-Patches/0039-Add-player-view-distance-API.patch rename to Spigot-Server-Patches/0037-Add-player-view-distance-API.patch index bf34763a9d..fa4562ab69 100644 --- a/Spigot-Server-Patches/0039-Add-player-view-distance-API.patch +++ b/Spigot-Server-Patches/0037-Add-player-view-distance-API.patch @@ -1,11 +1,11 @@ -From 47bf3a4b1683d16807ed8e5af8ac10fae61beb57 Mon Sep 17 00:00:00 2001 +From f6252bf66202b9b23dada7c611dd52c534537efb Mon Sep 17 00:00:00 2001 From: Byteflux Date: Wed, 2 Mar 2016 14:35:27 -0600 Subject: [PATCH] Add player view distance API diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index 522c7f2..4950db4 100644 +index a400062..635aad7 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -56,6 +56,15 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -25,7 +25,7 @@ index 522c7f2..4950db4 100644 // CraftBukkit start public String displayName; diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index 797a84f..fcd0186 100644 +index ce3390c..5db113c 100644 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java @@ -47,7 +47,7 @@ public class PlayerChunkMap { @@ -194,7 +194,7 @@ index 797a84f..fcd0186 100644 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 3b0e58b..75c7ece 100644 +index 0267e50..2a577d5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1438,6 +1438,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -215,5 +215,5 @@ index 3b0e58b..75c7ece 100644 private final Player.Spigot spigot = new Player.Spigot() { -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0040-Disable-explosion-knockback.patch b/Spigot-Server-Patches/0038-Disable-explosion-knockback.patch similarity index 84% rename from Spigot-Server-Patches/0040-Disable-explosion-knockback.patch rename to Spigot-Server-Patches/0038-Disable-explosion-knockback.patch index 4479052eff..00d7a11ec2 100644 --- a/Spigot-Server-Patches/0040-Disable-explosion-knockback.patch +++ b/Spigot-Server-Patches/0038-Disable-explosion-knockback.patch @@ -1,14 +1,14 @@ -From b17bd30962bd0c8bf018b8e06301ccb0670b0dfa Mon Sep 17 00:00:00 2001 +From ea9f6345fab166ab7678c9e5212b78f2fc18618d Mon Sep 17 00:00:00 2001 From: Sudzzy Date: Wed, 2 Mar 2016 14:48:03 -0600 Subject: [PATCH] Disable explosion knockback diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 004d4c0..87979dd 100644 +index b5a106d..fcbf8a2 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -214,4 +214,9 @@ public class PaperWorldConfig { +@@ -205,4 +205,9 @@ public class PaperWorldConfig { lavaFlowSpeedNormal = getInt("lava-flow-speed.normal", 30); lavaFlowSpeedNether = getInt("lava-flow-speed.nether", 10); } @@ -19,10 +19,10 @@ index 004d4c0..87979dd 100644 + } } diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 0a583bc..8aaab9e 100644 +index 3267357..87a8a3e 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -872,12 +872,14 @@ public abstract class EntityLiving extends Entity { +@@ -892,12 +892,14 @@ public abstract class EntityLiving extends Entity { } } @@ -37,21 +37,21 @@ index 0a583bc..8aaab9e 100644 this.world.broadcastEntityEffect(this, (byte) 2); } -@@ -901,6 +903,8 @@ public abstract class EntityLiving extends Entity { +@@ -921,6 +923,8 @@ public abstract class EntityLiving extends Entity { } } + if (knockbackCancelled) this.world.broadcastEntityEffect(this, (byte) 2); // Paper - Disable explosion knockback + if (this.getHealth() <= 0.0F) { - SoundEffect soundeffect = this.bW(); - + if (!this.d(damagesource)) { + SoundEffect soundeffect = this.bX(); diff --git a/src/main/java/net/minecraft/server/Explosion.java b/src/main/java/net/minecraft/server/Explosion.java -index caf29c7..6cdc3a3 100644 +index 49fc95e..d7bc6a0 100644 --- a/src/main/java/net/minecraft/server/Explosion.java +++ b/src/main/java/net/minecraft/server/Explosion.java -@@ -145,7 +145,7 @@ public class Explosion { - double d14 = 1.0D; +@@ -146,7 +146,7 @@ public class Explosion { + double d14 = d13; if (entity instanceof EntityLiving) { - d14 = EnchantmentProtection.a((EntityLiving) entity, d13); @@ -59,7 +59,7 @@ index caf29c7..6cdc3a3 100644 } entity.motX += d8 * d14; -@@ -154,7 +154,7 @@ public class Explosion { +@@ -155,7 +155,7 @@ public class Explosion { if (entity instanceof EntityHuman) { EntityHuman entityhuman = (EntityHuman) entity; @@ -69,5 +69,5 @@ index caf29c7..6cdc3a3 100644 } } -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0041-Disable-thunder.patch b/Spigot-Server-Patches/0039-Disable-thunder.patch similarity index 85% rename from Spigot-Server-Patches/0041-Disable-thunder.patch rename to Spigot-Server-Patches/0039-Disable-thunder.patch index 3d04272166..fbe1ea90e9 100644 --- a/Spigot-Server-Patches/0041-Disable-thunder.patch +++ b/Spigot-Server-Patches/0039-Disable-thunder.patch @@ -1,14 +1,14 @@ -From e6e691810c2713ab5be6850b337d662a33067458 Mon Sep 17 00:00:00 2001 +From 6ca8b0e340f4ec99543cf6b3f700bb290f49d05c Mon Sep 17 00:00:00 2001 From: Sudzzy Date: Wed, 2 Mar 2016 14:52:43 -0600 Subject: [PATCH] Disable thunder diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 87979dd..076fcbb 100644 +index fcbf8a2..b52e5c5 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -219,4 +219,9 @@ public class PaperWorldConfig { +@@ -210,4 +210,9 @@ public class PaperWorldConfig { private void disableExplosionKnockback(){ disableExplosionKnockback = getBoolean("disable-explosion-knockback", false); } @@ -19,10 +19,10 @@ index 87979dd..076fcbb 100644 + } } diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 769d55b..5b9e2c1 100644 +index 6afcf7c..ca74db6 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -424,7 +424,8 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -427,7 +427,8 @@ public class WorldServer extends World implements IAsyncTaskHandler { int l; BlockPosition blockposition; @@ -33,5 +33,5 @@ index 769d55b..5b9e2c1 100644 l = this.l >> 2; blockposition = this.a(new BlockPosition(j + (l & 15), 0, k + (l >> 8 & 15))); -- -2.10.1 +2.10.2 diff --git a/Spigot-Server-Patches/0042-Disable-ice-and-snow.patch b/Spigot-Server-Patches/0040-Disable-ice-and-snow.patch similarity index 84% rename from Spigot-Server-Patches/0042-Disable-ice-and-snow.patch rename to Spigot-Server-Patches/0040-Disable-ice-and-snow.patch index 032e9382b7..af53a50624 100644 --- a/Spigot-Server-Patches/0042-Disable-ice-and-snow.patch +++ b/Spigot-Server-Patches/0040-Disable-ice-and-snow.patch @@ -1,14 +1,14 @@ -From 19fc676defe5633053a5242c6c7ab76f759f6f3b Mon Sep 17 00:00:00 2001 +From b8fb8297e40abe3791a77426cbdb2a690e39801b Mon Sep 17 00:00:00 2001 From: Sudzzy Date: Wed, 2 Mar 2016 14:57:24 -0600 Subject: [PATCH] Disable ice and snow diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 076fcbb..9018df5 100644 +index b52e5c5..a6afdd3 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -224,4 +224,9 @@ public class PaperWorldConfig { +@@ -215,4 +215,9 @@ public class PaperWorldConfig { private void disableThunder() { disableThunder = getBoolean("disable-thunder", false); } @@ -19,10 +19,10 @@ index 076fcbb..9018df5 100644 + } } diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 5b9e2c1..c2c0b5e 100644 +index ca74db6..c84121c 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -448,7 +448,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -450,7 +450,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { } this.methodProfiler.c("iceandsnow"); @@ -32,5 +32,5 @@ index 5b9e2c1..c2c0b5e 100644 l = this.l >> 2; blockposition = this.p(new BlockPosition(j + (l & 15), 0, k + (l >> 8 & 15))); -- -2.10.1 +2.10.2 diff --git a/Spigot-Server-Patches/0043-Configurable-mob-spawner-tick-rate.patch b/Spigot-Server-Patches/0041-Configurable-mob-spawner-tick-rate.patch similarity index 86% rename from Spigot-Server-Patches/0043-Configurable-mob-spawner-tick-rate.patch rename to Spigot-Server-Patches/0041-Configurable-mob-spawner-tick-rate.patch index 060dbb741d..7db15a9cf0 100644 --- a/Spigot-Server-Patches/0043-Configurable-mob-spawner-tick-rate.patch +++ b/Spigot-Server-Patches/0041-Configurable-mob-spawner-tick-rate.patch @@ -1,14 +1,14 @@ -From 8515d9b08aa94851190b4db7d33556486959394f Mon Sep 17 00:00:00 2001 +From d83f4a1d0a54a8c3e7c06b042e8bd56899562124 Mon Sep 17 00:00:00 2001 From: Sudzzy Date: Wed, 2 Mar 2016 15:03:53 -0600 Subject: [PATCH] Configurable mob spawner tick rate diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 9018df5..5a139e2 100644 +index a6afdd3..57480f5 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -229,4 +229,9 @@ public class PaperWorldConfig { +@@ -220,4 +220,9 @@ public class PaperWorldConfig { private void disableIceAndSnow(){ disableIceAndSnow = getBoolean("disable-ice-and-snow", false); } @@ -19,10 +19,10 @@ index 9018df5..5a139e2 100644 + } } diff --git a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java -index f040775..f17aea4 100644 +index 5b41955..e523267 100644 --- a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java +++ b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java -@@ -18,6 +18,7 @@ public abstract class MobSpawnerAbstract { +@@ -20,6 +20,7 @@ public abstract class MobSpawnerAbstract { private int maxNearbyEntities = 6; private int requiredPlayerRange = 16; private int spawnRange = 4; @@ -30,7 +30,7 @@ index f040775..f17aea4 100644 public MobSpawnerAbstract() {} -@@ -36,6 +37,10 @@ public abstract class MobSpawnerAbstract { +@@ -45,6 +46,10 @@ public abstract class MobSpawnerAbstract { } public void c() { @@ -41,7 +41,7 @@ index f040775..f17aea4 100644 if (!this.h()) { this.e = this.d; } else { -@@ -49,18 +54,18 @@ public abstract class MobSpawnerAbstract { +@@ -58,18 +63,18 @@ public abstract class MobSpawnerAbstract { this.a().addParticle(EnumParticle.SMOKE_NORMAL, d0, d1, d2, 0.0D, 0.0D, 0.0D, new int[0]); this.a().addParticle(EnumParticle.FLAME, d0, d1, d2, 0.0D, 0.0D, 0.0D, new int[0]); if (this.spawnDelay > 0) { @@ -64,5 +64,5 @@ index f040775..f17aea4 100644 } -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0044-Send-absolute-position-the-first-time-an-entity-is-s.patch b/Spigot-Server-Patches/0042-Send-absolute-position-the-first-time-an-entity-is-s.patch similarity index 97% rename from Spigot-Server-Patches/0044-Send-absolute-position-the-first-time-an-entity-is-s.patch rename to Spigot-Server-Patches/0042-Send-absolute-position-the-first-time-an-entity-is-s.patch index dde3dd24fe..0b3626790c 100644 --- a/Spigot-Server-Patches/0044-Send-absolute-position-the-first-time-an-entity-is-s.patch +++ b/Spigot-Server-Patches/0042-Send-absolute-position-the-first-time-an-entity-is-s.patch @@ -1,11 +1,11 @@ -From dd7e4e1f6e09b5ca1cd4fec140922e502897e0b5 Mon Sep 17 00:00:00 2001 +From 609427e7e62088cfde2ec8cf8026a4a1faf6520d Mon Sep 17 00:00:00 2001 From: Jedediah Smith Date: Wed, 2 Mar 2016 23:13:07 -0600 Subject: [PATCH] Send absolute position the first time an entity is seen diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java -index af32116..413925e 100644 +index b688e99..370cb9c 100644 --- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java @@ -41,7 +41,12 @@ public class EntityTrackerEntry { @@ -76,5 +76,5 @@ index af32116..413925e 100644 entityplayer.playerConnection.sendPacket(packet); -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0045-Add-BeaconEffectEvent.patch b/Spigot-Server-Patches/0043-Add-BeaconEffectEvent.patch similarity index 83% rename from Spigot-Server-Patches/0045-Add-BeaconEffectEvent.patch rename to Spigot-Server-Patches/0043-Add-BeaconEffectEvent.patch index e0180b7a35..fee5a22644 100644 --- a/Spigot-Server-Patches/0045-Add-BeaconEffectEvent.patch +++ b/Spigot-Server-Patches/0043-Add-BeaconEffectEvent.patch @@ -1,11 +1,11 @@ -From 22b4e5883590e2eaf7bc9b74535c121415f700e2 Mon Sep 17 00:00:00 2001 +From 64d0dc145be3cbadee1c880bd14d7f12a416b163 Mon Sep 17 00:00:00 2001 From: Byteflux Date: Wed, 2 Mar 2016 23:30:53 -0600 Subject: [PATCH] Add BeaconEffectEvent diff --git a/src/main/java/net/minecraft/server/TileEntityBeacon.java b/src/main/java/net/minecraft/server/TileEntityBeacon.java -index 48f8793..9b0a1c4 100644 +index 6f2fcd2..71ecc54 100644 --- a/src/main/java/net/minecraft/server/TileEntityBeacon.java +++ b/src/main/java/net/minecraft/server/TileEntityBeacon.java @@ -16,6 +16,14 @@ import org.bukkit.entity.HumanEntity; @@ -23,7 +23,7 @@ index 48f8793..9b0a1c4 100644 public class TileEntityBeacon extends TileEntityContainer implements ITickable, IWorldInventory { public static final MobEffectList[][] a = new MobEffectList[][] { { MobEffects.FASTER_MOVEMENT, MobEffects.FASTER_DIG}, { MobEffects.RESISTANCE, MobEffects.JUMP}, { MobEffects.INCREASE_DAMAGE}, { MobEffects.REGENERATION}}; -@@ -114,14 +122,30 @@ public class TileEntityBeacon extends TileEntityContainer implements ITickable, +@@ -116,14 +124,30 @@ public class TileEntityBeacon extends TileEntityContainer implements ITickable, } private void applyEffect(List list, MobEffectList effects, int i, int b0) { @@ -55,19 +55,19 @@ index 48f8793..9b0a1c4 100644 } } } -@@ -143,10 +167,10 @@ public class TileEntityBeacon extends TileEntityContainer implements ITickable, +@@ -145,10 +169,10 @@ public class TileEntityBeacon extends TileEntityContainer implements ITickable, int i = getLevel(); List list = getHumansInRange(); -- applyEffect(list, this.l, i, b0); -+ applyEffect(list, this.l, i, b0, true); // Paper - BeaconEffectEvent +- applyEffect(list, this.primaryEffect, i, b0); ++ applyEffect(list, this.primaryEffect, i, b0, true); // Paper - BeaconEffectEvent if (hasSecondaryEffect()) { -- applyEffect(list, this.m, i, 0); -+ applyEffect(list, this.m, i, 0, false); // Paper - BeaconEffectEvent +- applyEffect(list, this.secondaryEffect, i, 0); ++ applyEffect(list, this.secondaryEffect, i, 0, false); // Paper - BeaconEffectEvent } } -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0046-Configurable-container-update-tick-rate.patch b/Spigot-Server-Patches/0044-Configurable-container-update-tick-rate.patch similarity index 90% rename from Spigot-Server-Patches/0046-Configurable-container-update-tick-rate.patch rename to Spigot-Server-Patches/0044-Configurable-container-update-tick-rate.patch index d7fe653ca6..0ce24a0485 100644 --- a/Spigot-Server-Patches/0046-Configurable-container-update-tick-rate.patch +++ b/Spigot-Server-Patches/0044-Configurable-container-update-tick-rate.patch @@ -1,14 +1,14 @@ -From e808b68be47b3f1ce457b049edda796ef093895c Mon Sep 17 00:00:00 2001 +From 0aaf35605b0cf4b1c71d3678308de74f272958f4 Mon Sep 17 00:00:00 2001 From: Sudzzy Date: Wed, 2 Mar 2016 23:34:44 -0600 Subject: [PATCH] Configurable container update tick rate diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 5a139e2..e182e48 100644 +index 57480f5..b2b94b8 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -234,4 +234,9 @@ public class PaperWorldConfig { +@@ -225,4 +225,9 @@ public class PaperWorldConfig { private void mobSpawnerTickRate() { mobSpawnerTickRate = getInt("mob-spawner-tick-rate", 1); } @@ -19,7 +19,7 @@ index 5a139e2..e182e48 100644 + } } diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index 4950db4..e9baaa2 100644 +index 635aad7..feb07a3 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -65,6 +65,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -45,5 +45,5 @@ index 4950db4..e9baaa2 100644 this.closeInventory(); this.activeContainer = this.defaultContainer; -- -2.10.0.windows.1 +2.10.2 diff --git a/Spigot-Server-Patches/0047-Use-UserCache-for-player-heads.patch b/Spigot-Server-Patches/0045-Use-UserCache-for-player-heads.patch similarity index 95% rename from Spigot-Server-Patches/0047-Use-UserCache-for-player-heads.patch rename to Spigot-Server-Patches/0045-Use-UserCache-for-player-heads.patch index e7283bfb38..21075233d9 100644 --- a/Spigot-Server-Patches/0047-Use-UserCache-for-player-heads.patch +++ b/Spigot-Server-Patches/0045-Use-UserCache-for-player-heads.patch @@ -1,4 +1,4 @@ -From b298999b39a01889cf42248ccfa9a9ad8bf6fc5d Mon Sep 17 00:00:00 2001 +From 81aa73e5615c5bd1b76585922ded791200c0343b Mon Sep 17 00:00:00 2001 From: Techcable Date: Wed, 2 Mar 2016 23:42:37 -0600 Subject: [PATCH] Use UserCache for player heads @@ -32,5 +32,5 @@ index 2abca0c..7d83bbe 100644 return true; -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0048-Disable-spigot-tick-limiters.patch b/Spigot-Server-Patches/0046-Disable-spigot-tick-limiters.patch similarity index 89% rename from Spigot-Server-Patches/0048-Disable-spigot-tick-limiters.patch rename to Spigot-Server-Patches/0046-Disable-spigot-tick-limiters.patch index 13971f080d..9ae2c18f4c 100644 --- a/Spigot-Server-Patches/0048-Disable-spigot-tick-limiters.patch +++ b/Spigot-Server-Patches/0046-Disable-spigot-tick-limiters.patch @@ -1,14 +1,14 @@ -From 26bf3e047c9296e044b1168e569fe474ae7b4f72 Mon Sep 17 00:00:00 2001 +From 1aeba86f37f8a1f7228c43dcd534c58e60e813cb Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Wed, 2 Mar 2016 23:45:17 -0600 Subject: [PATCH] Disable spigot tick limiters diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index e8cfe2b..5881ffb 100644 +index 1248a9f..0b76735 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1422,10 +1422,10 @@ public abstract class World implements IBlockAccess { +@@ -1444,10 +1444,10 @@ public abstract class World implements IBlockAccess { // CraftBukkit start - Use field for loop variable co.aikar.timings.TimingHistory.entityTicks += this.entityList.size(); // Paper int entitiesThisCycle = 0; @@ -23,7 +23,7 @@ index e8cfe2b..5881ffb 100644 tickPosition = (tickPosition < entityList.size()) ? tickPosition : 0; entity = (Entity) this.entityList.get(this.tickPosition); // CraftBukkit end -@@ -1491,9 +1491,7 @@ public abstract class World implements IBlockAccess { +@@ -1513,9 +1513,7 @@ public abstract class World implements IBlockAccess { // Spigot start // Iterator iterator = this.tileEntityListTick.iterator(); int tilesThisCycle = 0; @@ -35,5 +35,5 @@ index e8cfe2b..5881ffb 100644 TileEntity tileentity = (TileEntity) this.tileEntityListTick.get(tileTickPosition); // Spigot start -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0049-Configurable-Chunk-IO-Thread-Base-Count.patch b/Spigot-Server-Patches/0047-Configurable-Chunk-IO-Thread-Base-Count.patch similarity index 96% rename from Spigot-Server-Patches/0049-Configurable-Chunk-IO-Thread-Base-Count.patch rename to Spigot-Server-Patches/0047-Configurable-Chunk-IO-Thread-Base-Count.patch index 05c31e07be..16e68e8a44 100644 --- a/Spigot-Server-Patches/0049-Configurable-Chunk-IO-Thread-Base-Count.patch +++ b/Spigot-Server-Patches/0047-Configurable-Chunk-IO-Thread-Base-Count.patch @@ -1,4 +1,4 @@ -From 4e2d1396a2ffd7c6b4a51e4ab1fc1dfae123240f Mon Sep 17 00:00:00 2001 +From 99225c7a0f8aae8fd2a853fe687d026b79b68b2a Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Wed, 2 Mar 2016 23:46:57 -0600 Subject: [PATCH] Configurable Chunk IO Thread Base Count @@ -39,5 +39,5 @@ index e4fd9bc..7b7a3d0 100644 private static final AsynchronousExecutor instance = new AsynchronousExecutor(new ChunkIOProvider(), BASE_THREADS); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0050-Don-t-create-Region-File-s-when-checking-if-chunk-ex.patch b/Spigot-Server-Patches/0048-Don-t-create-Region-File-s-when-checking-if-chunk-ex.patch similarity index 94% rename from Spigot-Server-Patches/0050-Don-t-create-Region-File-s-when-checking-if-chunk-ex.patch rename to Spigot-Server-Patches/0048-Don-t-create-Region-File-s-when-checking-if-chunk-ex.patch index 6878cbb5f3..b37c414e04 100644 --- a/Spigot-Server-Patches/0050-Don-t-create-Region-File-s-when-checking-if-chunk-ex.patch +++ b/Spigot-Server-Patches/0048-Don-t-create-Region-File-s-when-checking-if-chunk-ex.patch @@ -1,4 +1,4 @@ -From 357d59ccd264fde423f99502fe7d00776940003f Mon Sep 17 00:00:00 2001 +From 6baf075a94cb42c637f90740d46550f578b01a4a Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 2 Mar 2016 23:51:51 -0600 Subject: [PATCH] Don't create Region File's when checking if chunk exists @@ -7,7 +7,7 @@ Plugins like Dynmap can end up creating tons of emtpy Region Files when using chunkExists. diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index 17dd7bb..162cdd6 100644 +index ca33899..8828275 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java @@ -39,7 +39,10 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { @@ -23,7 +23,7 @@ index 17dd7bb..162cdd6 100644 // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/RegionFileCache.java b/src/main/java/net/minecraft/server/RegionFileCache.java -index 01b54e7..49fa5e4 100644 +index f234298..933934f 100644 --- a/src/main/java/net/minecraft/server/RegionFileCache.java +++ b/src/main/java/net/minecraft/server/RegionFileCache.java @@ -12,7 +12,13 @@ public class RegionFileCache { @@ -49,5 +49,5 @@ index 01b54e7..49fa5e4 100644 file1.mkdirs(); } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0051-Add-PlayerInitialSpawnEvent.patch b/Spigot-Server-Patches/0049-Add-PlayerInitialSpawnEvent.patch similarity index 94% rename from Spigot-Server-Patches/0051-Add-PlayerInitialSpawnEvent.patch rename to Spigot-Server-Patches/0049-Add-PlayerInitialSpawnEvent.patch index 9e55ab5446..50242e4d1f 100644 --- a/Spigot-Server-Patches/0051-Add-PlayerInitialSpawnEvent.patch +++ b/Spigot-Server-Patches/0049-Add-PlayerInitialSpawnEvent.patch @@ -1,4 +1,4 @@ -From c40aebbb665afe2c501b86344eead5f784e19bfe Mon Sep 17 00:00:00 2001 +From ec663ae69ae0571c06d0b99020c30b63b1455223 Mon Sep 17 00:00:00 2001 From: Steve Anton Date: Thu, 3 Mar 2016 00:09:38 -0600 Subject: [PATCH] Add PlayerInitialSpawnEvent @@ -6,7 +6,7 @@ Subject: [PATCH] Add PlayerInitialSpawnEvent For modifying a player's initial spawn location as they join the server diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 1b2cc01..28bcef8 100644 +index e40268b..6e02044 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -101,6 +101,21 @@ public abstract class PlayerList { @@ -32,5 +32,5 @@ index 1b2cc01..28bcef8 100644 entityplayer.playerInteractManager.a((WorldServer) entityplayer.world); String s1 = "local"; -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0052-Disable-chest-cat-detection.patch b/Spigot-Server-Patches/0050-Disable-chest-cat-detection.patch similarity index 89% rename from Spigot-Server-Patches/0052-Disable-chest-cat-detection.patch rename to Spigot-Server-Patches/0050-Disable-chest-cat-detection.patch index 9c7d979ca1..03fb629121 100644 --- a/Spigot-Server-Patches/0052-Disable-chest-cat-detection.patch +++ b/Spigot-Server-Patches/0050-Disable-chest-cat-detection.patch @@ -1,14 +1,14 @@ -From 77d6b5b4dd0caf2cee41b75af28b077b23b06421 Mon Sep 17 00:00:00 2001 +From e5e333c8fb98fadbd22786c882eb57256559d107 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 3 Mar 2016 01:13:45 -0600 Subject: [PATCH] Disable chest cat detection diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index e182e48..c89ab0c 100644 +index b2b94b8..97265b9 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -239,4 +239,9 @@ public class PaperWorldConfig { +@@ -230,4 +230,9 @@ public class PaperWorldConfig { private void containerUpdateTickRate() { containerUpdateTickRate = getInt("container-update-tick-rate", 1); } @@ -19,7 +19,7 @@ index e182e48..c89ab0c 100644 + } } diff --git a/src/main/java/net/minecraft/server/BlockChest.java b/src/main/java/net/minecraft/server/BlockChest.java -index 21be295..a5f2fc0 100644 +index d919d78..9d4c15f 100644 --- a/src/main/java/net/minecraft/server/BlockChest.java +++ b/src/main/java/net/minecraft/server/BlockChest.java @@ -399,6 +399,11 @@ public class BlockChest extends BlockTileEntity { @@ -35,5 +35,5 @@ index 21be295..a5f2fc0 100644 EntityOcelot entityocelot; -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0053-Ensure-commands-are-not-ran-async.patch b/Spigot-Server-Patches/0051-Ensure-commands-are-not-ran-async.patch similarity index 95% rename from Spigot-Server-Patches/0053-Ensure-commands-are-not-ran-async.patch rename to Spigot-Server-Patches/0051-Ensure-commands-are-not-ran-async.patch index 7c04b0c2e9..e4a739e079 100644 --- a/Spigot-Server-Patches/0053-Ensure-commands-are-not-ran-async.patch +++ b/Spigot-Server-Patches/0051-Ensure-commands-are-not-ran-async.patch @@ -1,4 +1,4 @@ -From 9da75049cbc87364d2765429847b1b7dd298abc9 Mon Sep 17 00:00:00 2001 +From ae88d4726bd36fdf6f523d427a86890011d7e48f Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 3 Mar 2016 01:17:12 -0600 Subject: [PATCH] Ensure commands are not ran async @@ -14,10 +14,10 @@ big slowdown in execution but throwing an exception at same time to raise awaren that it is happening so that plugin authors can fix their code to stop executing commands async. diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index d910c41..b2339e9 100644 +index a5aa755..bc35bc5 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -1272,6 +1272,29 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { +@@ -1249,6 +1249,29 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } if (!async && s.startsWith("/")) { @@ -48,7 +48,7 @@ index d910c41..b2339e9 100644 } else if (this.player.getChatFlags() == EntityHuman.EnumChatVisibility.SYSTEM) { // Do nothing, this is coming from a plugin diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index b5132cd..8e501b6 100644 +index 494c61a..1d1d45b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -644,6 +644,29 @@ public final class CraftServer implements Server { @@ -82,5 +82,5 @@ index b5132cd..8e501b6 100644 return true; } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0054-All-chunks-are-slime-spawn-chunks-toggle.patch b/Spigot-Server-Patches/0052-All-chunks-are-slime-spawn-chunks-toggle.patch similarity index 81% rename from Spigot-Server-Patches/0054-All-chunks-are-slime-spawn-chunks-toggle.patch rename to Spigot-Server-Patches/0052-All-chunks-are-slime-spawn-chunks-toggle.patch index 5b7d93bbbf..fd81a1cc23 100644 --- a/Spigot-Server-Patches/0054-All-chunks-are-slime-spawn-chunks-toggle.patch +++ b/Spigot-Server-Patches/0052-All-chunks-are-slime-spawn-chunks-toggle.patch @@ -1,14 +1,14 @@ -From d2f97a1dd265b66d592257dda42959bfccb6b9b4 Mon Sep 17 00:00:00 2001 +From af6c0fa076b068aeee801ed17492e52d8dc528cf Mon Sep 17 00:00:00 2001 From: vemacs Date: Thu, 3 Mar 2016 01:19:22 -0600 Subject: [PATCH] All chunks are slime spawn chunks toggle diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index c89ab0c..b302cb7 100644 +index 97265b9..b2c45c8 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -244,4 +244,9 @@ public class PaperWorldConfig { +@@ -235,4 +235,9 @@ public class PaperWorldConfig { private void disableChestCatDetection() { disableChestCatDetection = getBoolean("game-mechanics.disable-chest-cat-detection", false); } @@ -19,19 +19,19 @@ index c89ab0c..b302cb7 100644 + } } diff --git a/src/main/java/net/minecraft/server/EntitySlime.java b/src/main/java/net/minecraft/server/EntitySlime.java -index 334505f..616c2e8 100644 +index 91ed719..950f07d 100644 --- a/src/main/java/net/minecraft/server/EntitySlime.java +++ b/src/main/java/net/minecraft/server/EntitySlime.java -@@ -249,7 +249,8 @@ public class EntitySlime extends EntityInsentient implements IMonster { - return super.cK(); +@@ -252,7 +252,8 @@ public class EntitySlime extends EntityInsentient implements IMonster { + return super.cM(); } - if (this.random.nextInt(10) == 0 && chunk.a(987234911L).nextInt(10) == 0 && this.locY < 40.0D) { + boolean isSlimeChunk = world.paperConfig.allChunksAreSlimeChunks || chunk.a(987234911L).nextInt(10) == 0; // Paper + if (this.random.nextInt(10) == 0 && isSlimeChunk && this.locY < 40.0D) { - return super.cK(); + return super.cM(); } } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0055-Optimize-Pathfinding.patch b/Spigot-Server-Patches/0053-Optimize-Pathfinding.patch similarity index 94% rename from Spigot-Server-Patches/0055-Optimize-Pathfinding.patch rename to Spigot-Server-Patches/0053-Optimize-Pathfinding.patch index eb6155b745..f542b3507d 100644 --- a/Spigot-Server-Patches/0055-Optimize-Pathfinding.patch +++ b/Spigot-Server-Patches/0053-Optimize-Pathfinding.patch @@ -1,4 +1,4 @@ -From 19676f2dbe9c77faf790b31c6d488bc1e722c7e7 Mon Sep 17 00:00:00 2001 +From 65c8b392d267976d2e7592777f581170493eb311 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 3 Mar 2016 02:02:07 -0600 Subject: [PATCH] Optimize Pathfinding @@ -7,7 +7,7 @@ Prevents pathfinding from spamming failures for things such as arrow attacks. diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java -index c9cfe3f..b1a90c1 100644 +index 4f28b88..43b2be5 100644 --- a/src/main/java/net/minecraft/server/NavigationAbstract.java +++ b/src/main/java/net/minecraft/server/NavigationAbstract.java @@ -118,10 +118,26 @@ public abstract class NavigationAbstract { @@ -47,5 +47,5 @@ index c9cfe3f..b1a90c1 100644 } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0056-Avoid-hopper-searches-if-there-are-no-items.patch b/Spigot-Server-Patches/0054-Avoid-hopper-searches-if-there-are-no-items.patch similarity index 96% rename from Spigot-Server-Patches/0056-Avoid-hopper-searches-if-there-are-no-items.patch rename to Spigot-Server-Patches/0054-Avoid-hopper-searches-if-there-are-no-items.patch index 6f09f0a4bc..df0543069a 100644 --- a/Spigot-Server-Patches/0056-Avoid-hopper-searches-if-there-are-no-items.patch +++ b/Spigot-Server-Patches/0054-Avoid-hopper-searches-if-there-are-no-items.patch @@ -1,4 +1,4 @@ -From e9d8ddfae7bf982be80e3feee2addc9f9adb71ea Mon Sep 17 00:00:00 2001 +From 315637d90a175804eb0576eb881d06a37c81dacb Mon Sep 17 00:00:00 2001 From: CullanP Date: Thu, 3 Mar 2016 02:13:38 -0600 Subject: [PATCH] Avoid hopper searches if there are no items @@ -14,7 +14,7 @@ And since minecart hoppers are used _very_ rarely near we can avoid alot of sear Combined, this adds up a lot. diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 76130c9..989d510 100644 +index b80f951..e1fc4ea 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -47,6 +47,13 @@ public class Chunk { @@ -32,8 +32,8 @@ index 76130c9..989d510 100644 private int neighbors = 0x1 << 12; public long chunkKey; @@ -618,6 +625,13 @@ public class Chunk { - entity.ad = k; - entity.ae = this.locZ; + entity.ac = k; + entity.ad = this.locZ; this.entitySlices[k].add(entity); + // Paper start - update count + if (entity instanceof EntityItem) { @@ -95,5 +95,5 @@ index 76130c9..989d510 100644 while (iterator.hasNext()) { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0057-Expose-server-CommandMap.patch b/Spigot-Server-Patches/0055-Expose-server-CommandMap.patch similarity index 76% rename from Spigot-Server-Patches/0057-Expose-server-CommandMap.patch rename to Spigot-Server-Patches/0055-Expose-server-CommandMap.patch index e9a42735ea..a80372922e 100644 --- a/Spigot-Server-Patches/0057-Expose-server-CommandMap.patch +++ b/Spigot-Server-Patches/0055-Expose-server-CommandMap.patch @@ -1,14 +1,14 @@ -From 86a453e62a7489c982b7f0a6887c08e1a742417a Mon Sep 17 00:00:00 2001 +From f5f6483d38eddfd97e1f94e93645e9e2c7eaf4ec Mon Sep 17 00:00:00 2001 From: kashike Date: Thu, 3 Mar 2016 02:15:57 -0600 Subject: [PATCH] Expose server CommandMap diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 8e501b6..c7cd3f7 100644 +index 1d1d45b..8e00881 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1564,6 +1564,7 @@ public final class CraftServer implements Server { +@@ -1559,6 +1559,7 @@ public final class CraftServer implements Server { return helpMap; } @@ -17,5 +17,5 @@ index 8e501b6..c7cd3f7 100644 return commandMap; } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0058-Be-a-bit-more-informative-in-maxHealth-exception.patch b/Spigot-Server-Patches/0056-Be-a-bit-more-informative-in-maxHealth-exception.patch similarity index 92% rename from Spigot-Server-Patches/0058-Be-a-bit-more-informative-in-maxHealth-exception.patch rename to Spigot-Server-Patches/0056-Be-a-bit-more-informative-in-maxHealth-exception.patch index 7295dadec6..965d2d6b5d 100644 --- a/Spigot-Server-Patches/0058-Be-a-bit-more-informative-in-maxHealth-exception.patch +++ b/Spigot-Server-Patches/0056-Be-a-bit-more-informative-in-maxHealth-exception.patch @@ -1,11 +1,11 @@ -From ae8a24ed319533757b937d8608efe6cf9c1078c2 Mon Sep 17 00:00:00 2001 +From 959189247bab3064b63c69bafee372afd8d85f30 Mon Sep 17 00:00:00 2001 From: kashike Date: Thu, 3 Mar 2016 02:18:39 -0600 Subject: [PATCH] Be a bit more informative in maxHealth exception diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index cffa778..a123d5e 100644 +index 4641e3d..aaea4e8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -92,7 +92,10 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @@ -21,5 +21,5 @@ index cffa778..a123d5e 100644 if (health == 0) { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0059-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch b/Spigot-Server-Patches/0057-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch similarity index 90% rename from Spigot-Server-Patches/0059-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch rename to Spigot-Server-Patches/0057-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch index ca2f5f7bef..4c831cb331 100644 --- a/Spigot-Server-Patches/0059-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch +++ b/Spigot-Server-Patches/0057-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch @@ -1,14 +1,14 @@ -From 5423c45e57cb9c46f271c7e80074460ef3438bad Mon Sep 17 00:00:00 2001 +From 6fd537ae42b766ced6401fcaabe0c0ac6a1133e8 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Thu, 3 Mar 2016 02:21:58 -0600 Subject: [PATCH] Graduate bungeecord chat API from spigot subclasses diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index c7cd3f7..b44808f 100644 +index 8e00881..7dfe30b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1317,6 +1317,18 @@ public final class CraftServer implements Server { +@@ -1312,6 +1312,18 @@ public final class CraftServer implements Server { return count; } @@ -28,7 +28,7 @@ index c7cd3f7..b44808f 100644 @Deprecated public OfflinePlayer getOfflinePlayer(String name) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index b05f111..70da218 100644 +index 2a577d5..e0ec47f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -156,6 +156,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -56,5 +56,5 @@ index b05f111..70da218 100644 public String getDisplayName() { return getHandle().displayName; -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0060-Player-Tab-List-and-Title-APIs.patch b/Spigot-Server-Patches/0058-Player-Tab-List-and-Title-APIs.patch similarity index 94% rename from Spigot-Server-Patches/0060-Player-Tab-List-and-Title-APIs.patch rename to Spigot-Server-Patches/0058-Player-Tab-List-and-Title-APIs.patch index 3a11537fef..724848e752 100644 --- a/Spigot-Server-Patches/0060-Player-Tab-List-and-Title-APIs.patch +++ b/Spigot-Server-Patches/0058-Player-Tab-List-and-Title-APIs.patch @@ -1,4 +1,4 @@ -From 34b016ca45ecc45c0754865c4ab1ba51d664b1fc Mon Sep 17 00:00:00 2001 +From fcc4f1380b80f58a3e9e50569e048c994076ef03 Mon Sep 17 00:00:00 2001 From: Techcable Date: Thu, 3 Mar 2016 02:32:10 -0600 Subject: [PATCH] Player Tab List and Title APIs @@ -40,10 +40,10 @@ index 5f5b382..242efb0 100644 public void a(PacketListenerPlayOut packetlistenerplayout) { diff --git a/src/main/java/net/minecraft/server/PacketPlayOutTitle.java b/src/main/java/net/minecraft/server/PacketPlayOutTitle.java -index 31a2b21..8a0839c 100644 +index 7bcafa8..4f6c1c2 100644 --- a/src/main/java/net/minecraft/server/PacketPlayOutTitle.java +++ b/src/main/java/net/minecraft/server/PacketPlayOutTitle.java -@@ -11,6 +11,18 @@ public class PacketPlayOutTitle implements Packet { +@@ -12,6 +12,18 @@ public class PacketPlayOutTitle implements Packet { private int d; private int e; @@ -62,10 +62,10 @@ index 31a2b21..8a0839c 100644 public PacketPlayOutTitle() {} public PacketPlayOutTitle(PacketPlayOutTitle.EnumTitleAction packetplayouttitle_enumtitleaction, IChatBaseComponent ichatbasecomponent) { -@@ -46,7 +58,13 @@ public class PacketPlayOutTitle implements Packet { +@@ -47,7 +59,13 @@ public class PacketPlayOutTitle implements Packet { public void b(PacketDataSerializer packetdataserializer) throws IOException { packetdataserializer.a((Enum) this.a); - if (this.a == PacketPlayOutTitle.EnumTitleAction.TITLE || this.a == PacketPlayOutTitle.EnumTitleAction.SUBTITLE) { + if (this.a == PacketPlayOutTitle.EnumTitleAction.TITLE || this.a == PacketPlayOutTitle.EnumTitleAction.SUBTITLE || this.a == PacketPlayOutTitle.EnumTitleAction.ACTIONBAR) { - packetdataserializer.a(this.b); + // Paper start + if (this.components != null) { @@ -78,7 +78,7 @@ index 31a2b21..8a0839c 100644 if (this.a == PacketPlayOutTitle.EnumTitleAction.TIMES) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 70da218..eb72f46 100644 +index e0ec47f..ab467d8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1,5 +1,6 @@ @@ -173,5 +173,5 @@ index 70da218..eb72f46 100644 @Override -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0061-Ensure-inv-drag-is-in-bounds.patch b/Spigot-Server-Patches/0059-Ensure-inv-drag-is-in-bounds.patch similarity index 60% rename from Spigot-Server-Patches/0061-Ensure-inv-drag-is-in-bounds.patch rename to Spigot-Server-Patches/0059-Ensure-inv-drag-is-in-bounds.patch index 822c9d97e1..c7ab877792 100644 --- a/Spigot-Server-Patches/0061-Ensure-inv-drag-is-in-bounds.patch +++ b/Spigot-Server-Patches/0059-Ensure-inv-drag-is-in-bounds.patch @@ -1,22 +1,22 @@ -From 459767453fa25a930e55592350f58f60c44abe83 Mon Sep 17 00:00:00 2001 +From a8af90e7ba90ef632cabe8587805da77dd2f62fd Mon Sep 17 00:00:00 2001 From: Joseph Hirschfeld Date: Thu, 3 Mar 2016 02:33:53 -0600 Subject: [PATCH] Ensure inv drag is in bounds diff --git a/src/main/java/net/minecraft/server/Container.java b/src/main/java/net/minecraft/server/Container.java -index 02b1fb1..d39ffbe 100644 +index 69f93d6..0ef93c6 100644 --- a/src/main/java/net/minecraft/server/Container.java +++ b/src/main/java/net/minecraft/server/Container.java -@@ -142,7 +142,7 @@ public abstract class Container { +@@ -141,7 +141,7 @@ public abstract class Container { this.d(); } } else if (this.g == 1) { - Slot slot = (Slot) this.c.get(i); + Slot slot = i < this.c.size() ? this.c.get(i) : null; // Paper - Ensure drag in bounds - if (slot != null && a(slot, playerinventory.getCarried(), true) && slot.isAllowed(playerinventory.getCarried()) && playerinventory.getCarried().count > this.h.size() && this.b(slot)) { - this.h.add(slot); + itemstack1 = playerinventory.getCarried(); + if (slot != null && a(slot, itemstack1, true) && slot.isAllowed(itemstack1) && (this.dragType == 2 || itemstack1.getCount() > this.h.size()) && this.b(slot)) { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0062-Change-implementation-of-tile-entity-removal-list.patch b/Spigot-Server-Patches/0060-Change-implementation-of-tile-entity-removal-list.patch similarity index 78% rename from Spigot-Server-Patches/0062-Change-implementation-of-tile-entity-removal-list.patch rename to Spigot-Server-Patches/0060-Change-implementation-of-tile-entity-removal-list.patch index ec878e5d45..21e994b264 100644 --- a/Spigot-Server-Patches/0062-Change-implementation-of-tile-entity-removal-list.patch +++ b/Spigot-Server-Patches/0060-Change-implementation-of-tile-entity-removal-list.patch @@ -1,33 +1,33 @@ -From 9d5997b7ae5e8b6e070387f8d61a14affa7036e1 Mon Sep 17 00:00:00 2001 +From 006b38a4cab58583721baed2bb4adff90d8ef3ec Mon Sep 17 00:00:00 2001 From: Joseph Hirschfeld Date: Thu, 3 Mar 2016 02:39:54 -0600 Subject: [PATCH] Change implementation of (tile)entity removal list diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index bbbe951..4e333e0 100644 +index 40398ca..10eb818 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -120,10 +120,10 @@ public abstract class Entity implements ICommandListener { private static final DataWatcherObject aB = DataWatcher.a(Entity.class, DataWatcherRegistry.h); private static final DataWatcherObject aC = DataWatcher.a(Entity.class, DataWatcherRegistry.h); private static final DataWatcherObject aD = DataWatcher.a(Entity.class, DataWatcherRegistry.h); -- public boolean ab; +- public boolean aa; +- public int ab; - public int ac; - public int ad; -- public int ae; -+ public boolean ab; public boolean isAddedToChunk() { return ab; } // Paper - OBFHELPER -+ public int ac; public int getChunkX() { return ac; } // Paper - OBFHELPER -+ public int ad; public int getChunkY() { return ad; } // Paper - OBFHELPER -+ public int ae; public int getChunkZ() { return ae; } // Paper - OBFHELPER - public boolean ai; ++ public boolean aa; public boolean isAddedToChunk() { return aa; } // Paper - OBFHELPER ++ public int ab; public int getChunkX() { return ab; } // Paper - OBFHELPER ++ public int ac; public int getChunkY() { return ac; } // Paper - OBFHELPER ++ public int ad; public int getChunkZ() { return ad; } // Paper - OBFHELPER + public boolean ah; public boolean impulse; public int portalCooldown; diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 5881ffb..a905ff9 100644 +index 0b76735..c8a0ae6 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -31,6 +31,11 @@ import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason; +@@ -30,6 +30,11 @@ import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason; import org.bukkit.generator.ChunkGenerator; // CraftBukkit end @@ -39,7 +39,7 @@ index 5881ffb..a905ff9 100644 public abstract class World implements IBlockAccess { private int a = 63; -@@ -61,11 +66,11 @@ public abstract class World implements IBlockAccess { +@@ -60,11 +65,11 @@ public abstract class World implements IBlockAccess { } }; // Spigot end @@ -53,7 +53,7 @@ index 5881ffb..a905ff9 100644 public final List players = Lists.newArrayList(); public final List j = Lists.newArrayList(); protected final IntHashMap entitiesById = new IntHashMap(); -@@ -1393,20 +1398,20 @@ public abstract class World implements IBlockAccess { +@@ -1415,20 +1420,20 @@ public abstract class World implements IBlockAccess { this.entityList.removeAll(this.f); int j; @@ -64,10 +64,10 @@ index 5881ffb..a905ff9 100644 - for (i = 0; i < this.f.size(); ++i) { - entity = (Entity) this.f.get(i); -- int k = entity.ac; +- int k = entity.ab; - -- j = entity.ae; -- if (entity.ab && this.isChunkLoaded(k, j, true)) { +- j = entity.ad; +- if (entity.aa && this.isChunkLoaded(k, j, true)) { - this.getChunkAt(k, j).b(entity); + if (e.isAddedToChunk() && this.isChunkLoaded(k, j, true)) { + this.getChunkAt(k, j).b(e); @@ -84,5 +84,5 @@ index 5881ffb..a905ff9 100644 this.f.clear(); this.l(); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0063-Add-configurable-portal-search-radius.patch b/Spigot-Server-Patches/0061-Add-configurable-portal-search-radius.patch similarity index 93% rename from Spigot-Server-Patches/0063-Add-configurable-portal-search-radius.patch rename to Spigot-Server-Patches/0061-Add-configurable-portal-search-radius.patch index 723e2e2aa6..fd3bfab82f 100644 --- a/Spigot-Server-Patches/0063-Add-configurable-portal-search-radius.patch +++ b/Spigot-Server-Patches/0061-Add-configurable-portal-search-radius.patch @@ -1,14 +1,14 @@ -From f906fb0fd68b9cb4683a22cc4361193ef1ad86fd Mon Sep 17 00:00:00 2001 +From b20c7db532ff71e74c17adeb96fe16d1d83ef5f9 Mon Sep 17 00:00:00 2001 From: Joseph Hirschfeld Date: Thu, 3 Mar 2016 02:46:17 -0600 Subject: [PATCH] Add configurable portal search radius diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index b302cb7..086cab0 100644 +index b2c45c8..ed63854 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -249,4 +249,9 @@ public class PaperWorldConfig { +@@ -240,4 +240,9 @@ public class PaperWorldConfig { private void allChunksAreSlimeChunks() { allChunksAreSlimeChunks = getBoolean("all-chunks-are-slime-chunks", false); } @@ -19,7 +19,7 @@ index b302cb7..086cab0 100644 + } } diff --git a/src/main/java/net/minecraft/server/PortalTravelAgent.java b/src/main/java/net/minecraft/server/PortalTravelAgent.java -index f93a95f..ee1ac7d 100644 +index 4455c2c..fbf7cff 100644 --- a/src/main/java/net/minecraft/server/PortalTravelAgent.java +++ b/src/main/java/net/minecraft/server/PortalTravelAgent.java @@ -12,7 +12,7 @@ import org.bukkit.util.Vector; @@ -54,5 +54,5 @@ index 1d5dce1..7ca2617 100644 private boolean canCreatePortal = true; -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0064-Add-velocity-warnings.patch b/Spigot-Server-Patches/0062-Add-velocity-warnings.patch similarity index 87% rename from Spigot-Server-Patches/0064-Add-velocity-warnings.patch rename to Spigot-Server-Patches/0062-Add-velocity-warnings.patch index 9db500ccb0..75644dc10a 100644 --- a/Spigot-Server-Patches/0064-Add-velocity-warnings.patch +++ b/Spigot-Server-Patches/0062-Add-velocity-warnings.patch @@ -1,14 +1,14 @@ -From 2daf3853eab89e487449f8ac82368b77e85f13e5 Mon Sep 17 00:00:00 2001 +From fe5e6dc3ec8448a373edc77718f64fc51654b95d Mon Sep 17 00:00:00 2001 From: Joseph Hirschfeld Date: Thu, 3 Mar 2016 02:48:12 -0600 Subject: [PATCH] Add velocity warnings diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index c8435a3..f2693eb 100644 +index f8aabe2..6d39f6b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -205,6 +205,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -227,6 +227,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { } public void setVelocity(Vector vel) { @@ -22,5 +22,5 @@ index c8435a3..f2693eb 100644 entity.motY = vel.getY(); entity.motZ = vel.getZ(); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0065-Fix-inter-world-teleportation-glitches.patch b/Spigot-Server-Patches/0063-Fix-inter-world-teleportation-glitches.patch similarity index 92% rename from Spigot-Server-Patches/0065-Fix-inter-world-teleportation-glitches.patch rename to Spigot-Server-Patches/0063-Fix-inter-world-teleportation-glitches.patch index 8726bcd596..4f8bff3ea4 100644 --- a/Spigot-Server-Patches/0065-Fix-inter-world-teleportation-glitches.patch +++ b/Spigot-Server-Patches/0063-Fix-inter-world-teleportation-glitches.patch @@ -1,4 +1,4 @@ -From df8665db4ceaae7b28139f87849d746e086a8ecc Mon Sep 17 00:00:00 2001 +From f695528c786fa0ba4446cf32c56068fb474f9982 Mon Sep 17 00:00:00 2001 From: Sudzzy Date: Thu, 3 Mar 2016 02:50:31 -0600 Subject: [PATCH] Fix inter-world teleportation glitches @@ -11,10 +11,10 @@ Example setup to perform the glitch: http://puu.sh/ng3PC/cf072dcbdb.png The wanted destination was on top of the emerald block however the player ended on top of the diamond block. This only is the case if the player is teleporting between worlds. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 086cab0..aabd629 100644 +index ed63854..7005d69 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -254,4 +254,9 @@ public class PaperWorldConfig { +@@ -245,4 +245,9 @@ public class PaperWorldConfig { private void portalSearchRadius() { portalSearchRadius = getInt("portal-search-radius", 128); } @@ -25,7 +25,7 @@ index 086cab0..aabd629 100644 + } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index eb72f46..98cbc02 100644 +index ab467d8..1f5746a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -572,7 +572,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -39,5 +39,5 @@ index eb72f46..98cbc02 100644 return true; } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0066-Add-exception-reporting-event.patch b/Spigot-Server-Patches/0064-Add-exception-reporting-event.patch similarity index 93% rename from Spigot-Server-Patches/0066-Add-exception-reporting-event.patch rename to Spigot-Server-Patches/0064-Add-exception-reporting-event.patch index 56ebb58791..f532b00431 100644 --- a/Spigot-Server-Patches/0066-Add-exception-reporting-event.patch +++ b/Spigot-Server-Patches/0064-Add-exception-reporting-event.patch @@ -1,4 +1,4 @@ -From ef48b1d4a4d529417c0f69b5558ad4132302dca2 Mon Sep 17 00:00:00 2001 +From 191114236c8aa8add618bbfbc2546ce8fbee3399 Mon Sep 17 00:00:00 2001 From: Joseph Hirschfeld Date: Thu, 3 Mar 2016 03:15:41 -0600 Subject: [PATCH] Add exception reporting event @@ -50,7 +50,7 @@ index 0000000..9339718 +} \ No newline at end of file diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 989d510..9118e4d 100644 +index e1fc4ea..8f1a68d 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -1,5 +1,6 @@ @@ -89,10 +89,10 @@ index 989d510..9118e4d 100644 } } diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 466cd49..cbc93a8 100644 +index df3ce72..54ca738 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java -@@ -11,6 +11,7 @@ import java.util.Iterator; +@@ -12,6 +12,7 @@ import java.util.Iterator; import java.util.List; import java.util.Set; import javax.annotation.Nullable; @@ -100,7 +100,7 @@ index 466cd49..cbc93a8 100644 import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -@@ -188,7 +189,11 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -189,7 +190,11 @@ public class ChunkProviderServer implements IChunkProvider { return chunk; } catch (Exception exception) { @@ -113,7 +113,7 @@ index 466cd49..cbc93a8 100644 return null; } } -@@ -197,7 +202,11 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -198,7 +203,11 @@ public class ChunkProviderServer implements IChunkProvider { try (co.aikar.timings.Timing timed = world.timings.chunkSaveNop.startTiming()) { this.chunkLoader.b(this.world, chunk); } catch (Exception exception) { @@ -126,7 +126,7 @@ index 466cd49..cbc93a8 100644 } } -@@ -207,9 +216,14 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -208,9 +217,14 @@ public class ChunkProviderServer implements IChunkProvider { chunk.setLastSaved(this.world.getTime()); this.chunkLoader.a(this.world, chunk); } catch (IOException ioexception) { @@ -144,7 +144,7 @@ index 466cd49..cbc93a8 100644 } diff --git a/src/main/java/net/minecraft/server/NameReferencingFileConverter.java b/src/main/java/net/minecraft/server/NameReferencingFileConverter.java -index d1c83d1..e21a8c4 100644 +index 016c64e..2ff8a6d 100644 --- a/src/main/java/net/minecraft/server/NameReferencingFileConverter.java +++ b/src/main/java/net/minecraft/server/NameReferencingFileConverter.java @@ -1,5 +1,6 @@ @@ -198,7 +198,7 @@ index 936d6c6..50056f4 100644 } diff --git a/src/main/java/net/minecraft/server/RegionFile.java b/src/main/java/net/minecraft/server/RegionFile.java -index 19fea50..c9bd856 100644 +index b0279ac..be13c11 100644 --- a/src/main/java/net/minecraft/server/RegionFile.java +++ b/src/main/java/net/minecraft/server/RegionFile.java @@ -1,5 +1,6 @@ @@ -208,7 +208,7 @@ index 19fea50..c9bd856 100644 import com.google.common.collect.Lists; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; -@@ -81,6 +82,7 @@ public class RegionFile { +@@ -82,6 +83,7 @@ public class RegionFile { } } catch (IOException ioexception) { ioexception.printStackTrace(); @@ -216,8 +216,8 @@ index 19fea50..c9bd856 100644 } } -@@ -245,6 +247,7 @@ public class RegionFile { - this.b(i, j, (int) (MinecraftServer.av() / 1000L)); +@@ -248,6 +250,7 @@ public class RegionFile { + this.b(i, j, (int) (MinecraftServer.aw() / 1000L)); } catch (IOException ioexception) { ioexception.printStackTrace(); + ServerInternalException.reportInternalException(ioexception); // Paper @@ -225,7 +225,7 @@ index 19fea50..c9bd856 100644 } diff --git a/src/main/java/net/minecraft/server/RegionFileCache.java b/src/main/java/net/minecraft/server/RegionFileCache.java -index 49fa5e4..2121e84 100644 +index 933934f..19fbf9b 100644 --- a/src/main/java/net/minecraft/server/RegionFileCache.java +++ b/src/main/java/net/minecraft/server/RegionFileCache.java @@ -1,5 +1,6 @@ @@ -235,7 +235,7 @@ index 49fa5e4..2121e84 100644 import com.google.common.collect.Maps; import java.io.DataInputStream; import java.io.DataOutputStream; -@@ -54,6 +55,7 @@ public class RegionFileCache { +@@ -75,6 +76,7 @@ public class RegionFileCache { } } catch (IOException ioexception) { ioexception.printStackTrace(); @@ -244,7 +244,7 @@ index 49fa5e4..2121e84 100644 } diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java -index fb0830d..b3edaee 100644 +index 171410e..8c35cab 100644 --- a/src/main/java/net/minecraft/server/SpawnerCreature.java +++ b/src/main/java/net/minecraft/server/SpawnerCreature.java @@ -7,6 +7,7 @@ import java.util.Random; @@ -255,7 +255,7 @@ index fb0830d..b3edaee 100644 import org.bukkit.craftbukkit.util.LongHash; import org.bukkit.craftbukkit.util.LongHashSet; import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason; -@@ -179,6 +180,7 @@ public final class SpawnerCreature { +@@ -177,6 +178,7 @@ public final class SpawnerCreature { entityinsentient = (EntityInsentient) biomebase_biomemeta.b.getConstructor(new Class[] { World.class}).newInstance(new Object[] { worldserver}); } catch (Exception exception) { exception.printStackTrace(); @@ -263,7 +263,7 @@ index fb0830d..b3edaee 100644 return j1; } -@@ -286,6 +288,7 @@ public final class SpawnerCreature { +@@ -284,6 +286,7 @@ public final class SpawnerCreature { entityinsentient = (EntityInsentient) biomebase_biomemeta.b.getConstructor(new Class[] { World.class}).newInstance(new Object[] { world}); } catch (Exception exception) { exception.printStackTrace(); @@ -272,7 +272,7 @@ index fb0830d..b3edaee 100644 } diff --git a/src/main/java/net/minecraft/server/VillageSiege.java b/src/main/java/net/minecraft/server/VillageSiege.java -index e40fd93..d1458aa 100644 +index 7af5b7d..2b49802 100644 --- a/src/main/java/net/minecraft/server/VillageSiege.java +++ b/src/main/java/net/minecraft/server/VillageSiege.java @@ -1,5 +1,7 @@ @@ -283,8 +283,8 @@ index e40fd93..d1458aa 100644 import java.util.Iterator; import java.util.List; import javax.annotation.Nullable; -@@ -137,6 +139,7 @@ public class VillageSiege { - entityzombie.setVillagerType(EnumZombieType.NORMAL); +@@ -136,6 +138,7 @@ public class VillageSiege { + entityzombie.prepare(this.a.D(new BlockPosition(entityzombie)), (GroupDataEntity) null); } catch (Exception exception) { exception.printStackTrace(); + ServerInternalException.reportInternalException(exception); // Paper @@ -292,7 +292,7 @@ index e40fd93..d1458aa 100644 } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index a905ff9..48c0e14 100644 +index c8a0ae6..8272d89 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -1,5 +1,7 @@ @@ -303,7 +303,7 @@ index a905ff9..48c0e14 100644 import com.google.common.base.Function; import com.google.common.base.Objects; import com.google.common.base.Predicate; -@@ -1453,8 +1455,10 @@ public abstract class World implements IBlockAccess { +@@ -1475,8 +1477,10 @@ public abstract class World implements IBlockAccess { } catch (Throwable throwable1) { entity.tickTimer.stopTiming(); // Paper start - Prevent tile entity and entity crashes @@ -315,7 +315,7 @@ index a905ff9..48c0e14 100644 entity.dead = true; continue; // Paper end -@@ -1519,8 +1523,10 @@ public abstract class World implements IBlockAccess { +@@ -1541,8 +1545,10 @@ public abstract class World implements IBlockAccess { this.methodProfiler.b(); } catch (Throwable throwable2) { // Paper start - Prevent tile entity and entity crashes @@ -372,5 +372,5 @@ index 198c37c..cdb836a 100644 // (async tasks must live with race-conditions if they attempt to cancel between these few lines of code) } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0067-Don-t-nest-if-we-don-t-need-to-when-cerealising-text.patch b/Spigot-Server-Patches/0065-Don-t-nest-if-we-don-t-need-to-when-cerealising-text.patch similarity index 93% rename from Spigot-Server-Patches/0067-Don-t-nest-if-we-don-t-need-to-when-cerealising-text.patch rename to Spigot-Server-Patches/0065-Don-t-nest-if-we-don-t-need-to-when-cerealising-text.patch index e6f08af37d..878fa8290f 100644 --- a/Spigot-Server-Patches/0067-Don-t-nest-if-we-don-t-need-to-when-cerealising-text.patch +++ b/Spigot-Server-Patches/0065-Don-t-nest-if-we-don-t-need-to-when-cerealising-text.patch @@ -1,4 +1,4 @@ -From 58ca250bf5e3c9d321d550f6cbf729f20884459b Mon Sep 17 00:00:00 2001 +From 54384862cb8a34c0892bf94a4e77660c531d6dc2 Mon Sep 17 00:00:00 2001 From: kashike Date: Tue, 8 Mar 2016 18:28:43 -0800 Subject: [PATCH] Don't nest if we don't need to when cerealising text @@ -6,7 +6,7 @@ Subject: [PATCH] Don't nest if we don't need to when cerealising text diff --git a/src/main/java/net/minecraft/server/PacketPlayOutChat.java b/src/main/java/net/minecraft/server/PacketPlayOutChat.java -index c0e1199..bc6c054 100644 +index 9fc83c4..b3b13ba 100644 --- a/src/main/java/net/minecraft/server/PacketPlayOutChat.java +++ b/src/main/java/net/minecraft/server/PacketPlayOutChat.java @@ -27,7 +27,14 @@ public class PacketPlayOutChat implements Packet { @@ -26,5 +26,5 @@ index c0e1199..bc6c054 100644 packetdataserializer.a(this.a); } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0068-Disable-Scoreboards-for-non-players-by-default.patch b/Spigot-Server-Patches/0066-Disable-Scoreboards-for-non-players-by-default.patch similarity index 86% rename from Spigot-Server-Patches/0068-Disable-Scoreboards-for-non-players-by-default.patch rename to Spigot-Server-Patches/0066-Disable-Scoreboards-for-non-players-by-default.patch index bc3e18e9f8..ad7a98a8d7 100644 --- a/Spigot-Server-Patches/0068-Disable-Scoreboards-for-non-players-by-default.patch +++ b/Spigot-Server-Patches/0066-Disable-Scoreboards-for-non-players-by-default.patch @@ -1,4 +1,4 @@ -From 0e29b3cf3ecf0e998cd8d3c65b38e7ab881cce2a Mon Sep 17 00:00:00 2001 +From 9d9f39fa78bdfe32ca8c538d05c840470d9ce5ae Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 8 Mar 2016 23:25:45 -0500 Subject: [PATCH] Disable Scoreboards for non players by default @@ -11,10 +11,10 @@ So avoid looking up scoreboards and short circuit to the "not on a team" logic which is most likely to be true. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index aabd629..047fa5f 100644 +index 7005d69..b3678da 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -259,4 +259,9 @@ public class PaperWorldConfig { +@@ -250,4 +250,9 @@ public class PaperWorldConfig { private void disableTeleportationSuffocationCheck() { disableTeleportationSuffocationCheck = getBoolean("disable-teleportation-suffocation-check", false); } @@ -25,10 +25,10 @@ index aabd629..047fa5f 100644 + } } diff --git a/src/main/java/net/minecraft/server/CommandScoreboard.java b/src/main/java/net/minecraft/server/CommandScoreboard.java -index 5f579bc..8e5419d 100644 +index 7af5d0a..ab9aa13 100644 --- a/src/main/java/net/minecraft/server/CommandScoreboard.java +++ b/src/main/java/net/minecraft/server/CommandScoreboard.java -@@ -491,6 +491,7 @@ public class CommandScoreboard extends CommandAbstract { +@@ -492,6 +492,7 @@ public class CommandScoreboard extends CommandAbstract { while (iterator.hasNext()) { Entity entity = (Entity) iterator.next(); @@ -37,10 +37,10 @@ index 5f579bc..8e5419d 100644 if (scoreboard.addPlayerToTeam(s2, s)) { diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 4e333e0..5a4b5bc 100644 +index 10eb818..875dcc8 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1895,6 +1895,7 @@ public abstract class Entity implements ICommandListener { +@@ -1950,6 +1950,7 @@ public abstract class Entity implements ICommandListener { @Nullable public ScoreboardTeamBase aQ() { @@ -49,5 +49,5 @@ index 4e333e0..5a4b5bc 100644 } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0069-Add-methods-for-working-with-arrows-stuck-in-living-.patch b/Spigot-Server-Patches/0067-Add-methods-for-working-with-arrows-stuck-in-living-.patch similarity index 76% rename from Spigot-Server-Patches/0069-Add-methods-for-working-with-arrows-stuck-in-living-.patch rename to Spigot-Server-Patches/0067-Add-methods-for-working-with-arrows-stuck-in-living-.patch index e1880a032a..932462f395 100644 --- a/Spigot-Server-Patches/0069-Add-methods-for-working-with-arrows-stuck-in-living-.patch +++ b/Spigot-Server-Patches/0067-Add-methods-for-working-with-arrows-stuck-in-living-.patch @@ -1,28 +1,28 @@ -From a8dd83849bf5f467be31c0f8a1a49a002b0511e3 Mon Sep 17 00:00:00 2001 +From 1f97c9460dc9da319a81d4abae1ed9e7b5773949 Mon Sep 17 00:00:00 2001 From: mrapple Date: Sun, 25 Nov 2012 13:43:39 -0600 Subject: [PATCH] Add methods for working with arrows stuck in living entities diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 8aaab9e..89e6ef5 100644 +index 87a8a3e..97eac7a 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -1307,10 +1307,12 @@ public abstract class EntityLiving extends Entity { +@@ -1376,10 +1376,12 @@ public abstract class EntityLiving extends Entity { return (float) this.getAttributeInstance(GenericAttributes.maxHealth).getValue(); } -+ public final int getStuckArrows() { return this.cb(); } // Paper - OBFHELPER - public final int cb() { - return ((Integer) this.datawatcher.get(EntityLiving.h)).intValue(); ++ public final int getStuckArrows() { return this.cc(); } // Paper - OBFHELPER + public final int cc() { + return ((Integer) this.datawatcher.get(EntityLiving.bq)).intValue(); } + public final void setStuckArrows(int arrows) { this.f(arrows); } // Paper - OBFHELPER public final void f(int i) { - this.datawatcher.set(EntityLiving.h, Integer.valueOf(i)); + this.datawatcher.set(EntityLiving.bq, Integer.valueOf(i)); } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index a123d5e..79d60a6 100644 +index aaea4e8..2a77cd4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -559,4 +559,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @@ -43,5 +43,5 @@ index a123d5e..79d60a6 100644 + // Paper end } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0070-Complete-resource-pack-API.patch b/Spigot-Server-Patches/0068-Complete-resource-pack-API.patch similarity index 94% rename from Spigot-Server-Patches/0070-Complete-resource-pack-API.patch rename to Spigot-Server-Patches/0068-Complete-resource-pack-API.patch index 2b244d56aa..2720dc418b 100644 --- a/Spigot-Server-Patches/0070-Complete-resource-pack-API.patch +++ b/Spigot-Server-Patches/0068-Complete-resource-pack-API.patch @@ -1,14 +1,14 @@ -From 7ad7edb70e7183fe0cf057c6ac2483f8a1d3e5fa Mon Sep 17 00:00:00 2001 +From af11a3d45c195c64f6141c4bb0a496fc3c9c0cc5 Mon Sep 17 00:00:00 2001 From: Jedediah Smith Date: Sat, 4 Apr 2015 23:17:52 -0400 Subject: [PATCH] Complete resource pack API diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index b2339e9..5e9eca1 100644 +index bc35bc5..724b9ad 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -1033,7 +1033,13 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { +@@ -1010,7 +1010,13 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { // CraftBukkit start public void a(PacketPlayInResourcePackStatus packetplayinresourcepackstatus) { @@ -24,7 +24,7 @@ index b2339e9..5e9eca1 100644 // CraftBukkit end diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 98cbc02..515d0cd 100644 +index 1f5746a..f6b791b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -72,6 +72,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -72,5 +72,5 @@ index 98cbc02..515d0cd 100644 private final Player.Spigot spigot = new Player.Spigot() { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0071-Chunk-save-queue-improvements.patch b/Spigot-Server-Patches/0069-Chunk-save-queue-improvements.patch similarity index 96% rename from Spigot-Server-Patches/0071-Chunk-save-queue-improvements.patch rename to Spigot-Server-Patches/0069-Chunk-save-queue-improvements.patch index 712a9533f1..add7d94b63 100644 --- a/Spigot-Server-Patches/0071-Chunk-save-queue-improvements.patch +++ b/Spigot-Server-Patches/0069-Chunk-save-queue-improvements.patch @@ -1,4 +1,4 @@ -From a4161bf83b718e0ae8b6bfe8689d36ad6faba27e Mon Sep 17 00:00:00 2001 +From 88988bc9d659401547d7d18f14f246d99dafd814 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 4 Mar 2016 18:18:37 -0600 Subject: [PATCH] Chunk save queue improvements @@ -41,7 +41,7 @@ index 259e3b7..c1a8243 100644 + } } diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index 162cdd6..e6e7626 100644 +index 8828275..996e57f 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java @@ -12,14 +12,17 @@ import java.util.Map; @@ -77,7 +77,7 @@ index 162cdd6..e6e7626 100644 // Paper start - Don't create region files when checking that they exist final RegionFile region = RegionFileCache.a(this.d, i, j, false); -@@ -143,35 +146,32 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { +@@ -151,35 +154,32 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { } protected void a(ChunkCoordIntPair chunkcoordintpair, NBTTagCompound nbttagcompound) { @@ -122,7 +122,7 @@ index 162cdd6..e6e7626 100644 if (nbttagcompound != null) { try { -@@ -180,10 +180,11 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { +@@ -188,10 +188,11 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { ChunkRegionLoader.a.error("Failed to save chunk", exception); } } @@ -135,7 +135,7 @@ index 162cdd6..e6e7626 100644 } return flag; -@@ -554,4 +555,16 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { +@@ -556,4 +557,16 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { return entity; } } @@ -177,5 +177,5 @@ index acfdd52..fdbaf5f 100644 if (this.b.isEmpty()) { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0072-Chunk-Save-Reattempt.patch b/Spigot-Server-Patches/0070-Chunk-Save-Reattempt.patch similarity index 88% rename from Spigot-Server-Patches/0072-Chunk-Save-Reattempt.patch rename to Spigot-Server-Patches/0070-Chunk-Save-Reattempt.patch index fcf52a379d..6c87340282 100644 --- a/Spigot-Server-Patches/0072-Chunk-Save-Reattempt.patch +++ b/Spigot-Server-Patches/0070-Chunk-Save-Reattempt.patch @@ -1,4 +1,4 @@ -From 8ae77c2eeaf9244ce0aed3f8f49c24b5de26b3e3 Mon Sep 17 00:00:00 2001 +From 5b78b518b5c1eb3c2699e94e7ea20c74cd91dc94 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 4 Mar 2013 23:46:10 -0500 Subject: [PATCH] Chunk Save Reattempt @@ -6,10 +6,10 @@ Subject: [PATCH] Chunk Save Reattempt We commonly have "Stream Closed" errors on chunk saving, so this code should re-try to save the chunk in the event of failure and hopefully prevent rollbacks. diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index e6e7626..854fbd7 100644 +index 996e57f..e2dd95b 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -@@ -174,11 +174,16 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { +@@ -182,11 +182,16 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { NBTTagCompound nbttagcompound = chunk.compound; // Paper - Chunk queue improvements if (nbttagcompound != null) { @@ -28,12 +28,12 @@ index e6e7626..854fbd7 100644 synchronized (lock) { if (this.b.get(chunkcoordintpair) == nbttagcompound) { this.b.remove(chunkcoordintpair); } }// Paper - This will not equal if a newer version is still pending diff --git a/src/main/java/net/minecraft/server/RegionFile.java b/src/main/java/net/minecraft/server/RegionFile.java -index c9bd856..1fe5019 100644 +index be13c11..9cfc46b 100644 --- a/src/main/java/net/minecraft/server/RegionFile.java +++ b/src/main/java/net/minecraft/server/RegionFile.java -@@ -246,8 +246,7 @@ public class RegionFile { +@@ -249,8 +249,7 @@ public class RegionFile { - this.b(i, j, (int) (MinecraftServer.av() / 1000L)); + this.b(i, j, (int) (MinecraftServer.aw() / 1000L)); } catch (IOException ioexception) { - ioexception.printStackTrace(); - ServerInternalException.reportInternalException(ioexception); // Paper @@ -42,5 +42,5 @@ index c9bd856..1fe5019 100644 } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0073-Default-loading-permissions.yml-before-plugins.patch b/Spigot-Server-Patches/0071-Default-loading-permissions.yml-before-plugins.patch similarity index 96% rename from Spigot-Server-Patches/0073-Default-loading-permissions.yml-before-plugins.patch rename to Spigot-Server-Patches/0071-Default-loading-permissions.yml-before-plugins.patch index 7eabefa0ed..b8f90a6b23 100644 --- a/Spigot-Server-Patches/0073-Default-loading-permissions.yml-before-plugins.patch +++ b/Spigot-Server-Patches/0071-Default-loading-permissions.yml-before-plugins.patch @@ -1,4 +1,4 @@ -From 7e04eeade0c87fbd241b0945a72839c849630703 Mon Sep 17 00:00:00 2001 +From 3adb29de0003d6c0b2d33e1712d60e68f7ee26fd Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 18 Mar 2016 13:17:38 -0400 Subject: [PATCH] Default loading permissions.yml before plugins @@ -30,7 +30,7 @@ index c1a8243..88b6778 100644 + } } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index b44808f..034f8ed 100644 +index 7dfe30b..33b74cd 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -314,6 +314,7 @@ public final class CraftServer implements Server { @@ -51,5 +51,5 @@ index b44808f..034f8ed 100644 CraftDefaultPermissions.registerCorePermissions(); helpMap.initializeCommands(); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0074-Allow-Reloading-of-Custom-Permissions.patch b/Spigot-Server-Patches/0072-Allow-Reloading-of-Custom-Permissions.patch similarity index 87% rename from Spigot-Server-Patches/0074-Allow-Reloading-of-Custom-Permissions.patch rename to Spigot-Server-Patches/0072-Allow-Reloading-of-Custom-Permissions.patch index 5d83bab8bc..f34e09177f 100644 --- a/Spigot-Server-Patches/0074-Allow-Reloading-of-Custom-Permissions.patch +++ b/Spigot-Server-Patches/0072-Allow-Reloading-of-Custom-Permissions.patch @@ -1,4 +1,4 @@ -From 6eaa65221aa494db575fcce21960db12252d7645 Mon Sep 17 00:00:00 2001 +From 49e079c8034062024c738a0be37c44e24d9e45db Mon Sep 17 00:00:00 2001 From: William Date: Fri, 18 Mar 2016 03:30:17 -0400 Subject: [PATCH] Allow Reloading of Custom Permissions @@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Custom Permissions https://github.com/PaperMC/Paper/issues/49 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 034f8ed..1609b07 100644 +index 33b74cd..bb2ab84 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1824,4 +1824,21 @@ public final class CraftServer implements Server { +@@ -1819,4 +1819,21 @@ public final class CraftServer implements Server { { return spigot; } @@ -32,5 +32,5 @@ index 034f8ed..1609b07 100644 + // Paper end } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0075-Remove-Metadata-on-reload.patch b/Spigot-Server-Patches/0073-Remove-Metadata-on-reload.patch similarity index 91% rename from Spigot-Server-Patches/0075-Remove-Metadata-on-reload.patch rename to Spigot-Server-Patches/0073-Remove-Metadata-on-reload.patch index 515d1a150f..926f946c24 100644 --- a/Spigot-Server-Patches/0075-Remove-Metadata-on-reload.patch +++ b/Spigot-Server-Patches/0073-Remove-Metadata-on-reload.patch @@ -1,4 +1,4 @@ -From 5b51439720d9c51313f081977743a6bd40300e5b Mon Sep 17 00:00:00 2001 +From 0ab3c7ee6304633f72b94f77cd2e789da522555d Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 18 Mar 2016 13:50:14 -0400 Subject: [PATCH] Remove Metadata on reload @@ -7,7 +7,7 @@ Metadata is not meant to persist reload as things break badly with non primitive This will remove metadata on reload so it does not crash everything if a plugin uses it. diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 1609b07..15bef42 100644 +index bb2ab84..afefbc3 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -737,6 +737,14 @@ public final class CraftServer implements Server { @@ -26,5 +26,5 @@ index 1609b07..15bef42 100644 commandMap.clearCommands(); resetRecipes(); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0076-Undead-horse-leashing.patch b/Spigot-Server-Patches/0074-Undead-horse-leashing.patch similarity index 51% rename from Spigot-Server-Patches/0076-Undead-horse-leashing.patch rename to Spigot-Server-Patches/0074-Undead-horse-leashing.patch index e3a220cc31..b5d4e96e8e 100644 --- a/Spigot-Server-Patches/0076-Undead-horse-leashing.patch +++ b/Spigot-Server-Patches/0074-Undead-horse-leashing.patch @@ -1,4 +1,4 @@ -From e0459fc81fe3aabc2592519f150c1ea2406332c0 Mon Sep 17 00:00:00 2001 +From 39c79a5582c9b90c852330cb1dd78452af1096a9 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 18 Mar 2016 14:19:19 -0400 Subject: [PATCH] Undead horse leashing @@ -6,10 +6,10 @@ Subject: [PATCH] Undead horse leashing default false to match vanilla, but option to allow undead horse types to be leashed. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 047fa5f..d136807 100644 +index b3678da..029eb39 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -264,4 +264,9 @@ public class PaperWorldConfig { +@@ -255,4 +255,9 @@ public class PaperWorldConfig { private void nonPlayerEntitiesOnScoreboards() { nonPlayerEntitiesOnScoreboards = getBoolean("allow-non-player-entities-on-scoreboards", false); } @@ -19,18 +19,19 @@ index 047fa5f..d136807 100644 + allowLeashingUndeadHorse = getBoolean("allow-leashing-undead-horse", false); + } } -diff --git a/src/main/java/net/minecraft/server/EntityHorse.java b/src/main/java/net/minecraft/server/EntityHorse.java -index ef429c1..38c4f61 100644 ---- a/src/main/java/net/minecraft/server/EntityHorse.java -+++ b/src/main/java/net/minecraft/server/EntityHorse.java -@@ -169,6 +169,7 @@ public class EntityHorse extends EntityAnimal implements IInventoryListener, IJu +diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java +index da95a59..67f66fd 100644 +--- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java ++++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java +@@ -115,7 +115,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven } public boolean a(EntityHuman entityhuman) { -+ if (world.paperConfig.allowLeashingUndeadHorse) { return super.a(entityhuman); } // Paper - return !this.getType().h() && super.a(entityhuman); +- return super.a(entityhuman) && this.getMonsterType() != EnumMonsterType.UNDEAD; ++ return world.paperConfig.allowLeashingUndeadHorse ? super.a(entityhuman) : super.a(entityhuman) && this.getMonsterType() != EnumMonsterType.UNDEAD; // Paper } + protected void q(float f) { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0077-Fix-Furnace-cook-time-bug.patch b/Spigot-Server-Patches/0075-Fix-Furnace-cook-time-bug.patch similarity index 74% rename from Spigot-Server-Patches/0077-Fix-Furnace-cook-time-bug.patch rename to Spigot-Server-Patches/0075-Fix-Furnace-cook-time-bug.patch index 26fbe97265..33a506e53a 100644 --- a/Spigot-Server-Patches/0077-Fix-Furnace-cook-time-bug.patch +++ b/Spigot-Server-Patches/0075-Fix-Furnace-cook-time-bug.patch @@ -1,4 +1,4 @@ -From f5db69e0fe71b3198265c7c204af1d2ab5515530 Mon Sep 17 00:00:00 2001 +From f2abce9bbd30a3db0b929462ffc7cd2f6d44c80d Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 18 Mar 2016 14:24:53 -0400 Subject: [PATCH] Fix Furnace cook time bug @@ -9,18 +9,18 @@ cook in the expected amount of time as the cook time was not decremented correct This patch ensures that furnaces cook to the correct wall time expectation. diff --git a/src/main/java/net/minecraft/server/TileEntityFurnace.java b/src/main/java/net/minecraft/server/TileEntityFurnace.java -index fd6c246..db235c3 100644 +index 93a610a..661716d 100644 --- a/src/main/java/net/minecraft/server/TileEntityFurnace.java +++ b/src/main/java/net/minecraft/server/TileEntityFurnace.java -@@ -172,7 +172,7 @@ public class TileEntityFurnace extends TileEntityContainer implements ITickable, +@@ -165,7 +165,7 @@ public class TileEntityFurnace extends TileEntityContainer implements ITickable, if (this.isBurning() && this.canBurn()) { this.cookTime += elapsedTicks; if (this.cookTime >= this.cookTimeTotal) { - this.cookTime = 0; -+ this.cookTime -= this.a(this.items[0]); // Paper - this.cookTimeTotal = this.a(this.items[0]); ++ this.cookTime -= this.a(this.items.get(0)); // Paper + this.cookTimeTotal = this.a((ItemStack) this.items.get(0)); this.burn(); flag1 = true; -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0078-Handle-Item-Meta-Inconsistencies.patch b/Spigot-Server-Patches/0076-Handle-Item-Meta-Inconsistencies.patch similarity index 98% rename from Spigot-Server-Patches/0078-Handle-Item-Meta-Inconsistencies.patch rename to Spigot-Server-Patches/0076-Handle-Item-Meta-Inconsistencies.patch index 3c5174b3d7..ea8b090a0e 100644 --- a/Spigot-Server-Patches/0078-Handle-Item-Meta-Inconsistencies.patch +++ b/Spigot-Server-Patches/0076-Handle-Item-Meta-Inconsistencies.patch @@ -1,4 +1,4 @@ -From 961e07249cb9356c6cede5583713f8f10621daaa Mon Sep 17 00:00:00 2001 +From 532022b01bd12414fe58ce5f93a919ac47a59667 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 28 May 2015 23:00:19 -0400 Subject: [PATCH] Handle Item Meta Inconsistencies @@ -18,7 +18,7 @@ For consistency, the old API methods now forward to use the ItemMeta API equivalents, and should deprecate the old API's. diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index 6f5dcbd..88f0292 100644 +index 866e54d..46baf00 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java @@ -4,6 +4,7 @@ import static org.bukkit.craftbukkit.inventory.CraftMetaItem.ENCHANTMENTS; @@ -29,7 +29,7 @@ index 6f5dcbd..88f0292 100644 import java.util.Map; import net.minecraft.server.EnchantmentManager; -@@ -184,28 +185,11 @@ public final class CraftItemStack extends ItemStack { +@@ -180,28 +181,11 @@ public final class CraftItemStack extends ItemStack { public void addUnsafeEnchantment(Enchantment ench, int level) { Validate.notNull(ench, "Cannot add null enchantment"); @@ -63,7 +63,7 @@ index 6f5dcbd..88f0292 100644 } static boolean makeTag(net.minecraft.server.ItemStack item) { -@@ -222,66 +206,34 @@ public final class CraftItemStack extends ItemStack { +@@ -218,66 +202,34 @@ public final class CraftItemStack extends ItemStack { @Override public boolean containsEnchantment(Enchantment ench) { @@ -293,5 +293,5 @@ index 22cc267..94f2ba0 100644 private final Spigot spigot = new Spigot() { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0079-Configurable-Non-Player-Arrow-Despawn-Rate.patch b/Spigot-Server-Patches/0077-Configurable-Non-Player-Arrow-Despawn-Rate.patch similarity index 77% rename from Spigot-Server-Patches/0079-Configurable-Non-Player-Arrow-Despawn-Rate.patch rename to Spigot-Server-Patches/0077-Configurable-Non-Player-Arrow-Despawn-Rate.patch index a1a94b1a22..ed4afd2bba 100644 --- a/Spigot-Server-Patches/0079-Configurable-Non-Player-Arrow-Despawn-Rate.patch +++ b/Spigot-Server-Patches/0077-Configurable-Non-Player-Arrow-Despawn-Rate.patch @@ -1,4 +1,4 @@ -From 3c0e3ac83a120387568efcb5acc1572e0ed94a31 Mon Sep 17 00:00:00 2001 +From 745dd2c92706e3e70d9e4eeed52e40e0670b473f Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 18 Mar 2016 15:12:22 -0400 Subject: [PATCH] Configurable Non Player Arrow Despawn Rate @@ -6,10 +6,10 @@ Subject: [PATCH] Configurable Non Player Arrow Despawn Rate Can set a much shorter despawn rate for arrows that players can not pick up. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index d136807..b701e5e 100644 +index 029eb39..9cce672 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -269,4 +269,13 @@ public class PaperWorldConfig { +@@ -260,4 +260,13 @@ public class PaperWorldConfig { private void allowLeashingUndeadHorse() { allowLeashingUndeadHorse = getBoolean("allow-leashing-undead-horse", false); } @@ -24,18 +24,18 @@ index d136807..b701e5e 100644 + } } diff --git a/src/main/java/net/minecraft/server/EntityArrow.java b/src/main/java/net/minecraft/server/EntityArrow.java -index ccbf47e..b7ac5f7 100644 +index 287566c..bb332b3 100644 --- a/src/main/java/net/minecraft/server/EntityArrow.java +++ b/src/main/java/net/minecraft/server/EntityArrow.java -@@ -149,7 +149,7 @@ public abstract class EntityArrow extends Entity implements IProjectile { - - if (block == this.aw && i == this.ax) { - ++this.ay; -- if (this.ay >= world.spigotConfig.arrowDespawnRate) { // Spigot - First int after shooter -+ if (this.ay >= (fromPlayer != PickupStatus.DISALLOWED ? world.spigotConfig.arrowDespawnRate : world.paperConfig.nonPlayerArrowDespawnRate)) { // Spigot - First int after shooter // Paper +@@ -157,7 +157,7 @@ public abstract class EntityArrow extends Entity implements IProjectile { + this.ay = 0; + } else { + ++this.ax; +- if (this.ax >= world.spigotConfig.arrowDespawnRate) { // Spigot - First int after shooter ++ if (this.ax >= (fromPlayer != PickupStatus.DISALLOWED ? world.spigotConfig.arrowDespawnRate : world.paperConfig.nonPlayerArrowDespawnRate)) { // Spigot - First int after shooter // Paper this.die(); } - } else { + } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0080-Add-World-Util-Methods.patch b/Spigot-Server-Patches/0078-Add-World-Util-Methods.patch similarity index 90% rename from Spigot-Server-Patches/0080-Add-World-Util-Methods.patch rename to Spigot-Server-Patches/0078-Add-World-Util-Methods.patch index 4cbdbeafc6..71f6708cf6 100644 --- a/Spigot-Server-Patches/0080-Add-World-Util-Methods.patch +++ b/Spigot-Server-Patches/0078-Add-World-Util-Methods.patch @@ -1,4 +1,4 @@ -From f5f8a0ee2325f6721a28b61713cdf4f41f8a330b Mon Sep 17 00:00:00 2001 +From 890c1645cb95a10a2b3269ed85cb463e3e424b05 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 18 Mar 2016 20:16:03 -0400 Subject: [PATCH] Add World Util Methods @@ -6,10 +6,10 @@ Subject: [PATCH] Add World Util Methods Methods that can be used for other patches to help improve logic. diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 48c0e14..a3bce9a 100644 +index 8272d89..223250f 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -153,6 +153,12 @@ public abstract class World implements IBlockAccess { +@@ -152,6 +152,12 @@ public abstract class World implements IBlockAccess { return (CraftServer) Bukkit.getServer(); } @@ -22,7 +22,7 @@ index 48c0e14..a3bce9a 100644 public Chunk getChunkIfLoaded(int x, int z) { return ((ChunkProviderServer) this.chunkProvider).getChunkIfLoaded(x, z); } -@@ -630,6 +636,41 @@ public abstract class World implements IBlockAccess { +@@ -682,6 +688,41 @@ public abstract class World implements IBlockAccess { } } @@ -64,8 +64,8 @@ index 48c0e14..a3bce9a 100644 public int getLightLevel(BlockPosition blockposition) { return this.c(blockposition, true); } -@@ -749,6 +790,27 @@ public abstract class World implements IBlockAccess { - return this.worldProvider.n()[this.getLightLevel(blockposition)]; +@@ -801,6 +842,27 @@ public abstract class World implements IBlockAccess { + return this.worldProvider.o()[this.getLightLevel(blockposition)]; } + // Paper start - reduces need to do isLoaded before getType @@ -93,5 +93,5 @@ index 48c0e14..a3bce9a 100644 // CraftBukkit start - tree generation if (captureTreeGeneration) { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0081-Optimized-Light-Level-Comparisons.patch b/Spigot-Server-Patches/0079-Optimized-Light-Level-Comparisons.patch similarity index 87% rename from Spigot-Server-Patches/0081-Optimized-Light-Level-Comparisons.patch rename to Spigot-Server-Patches/0079-Optimized-Light-Level-Comparisons.patch index 3869acb029..250276bbae 100644 --- a/Spigot-Server-Patches/0081-Optimized-Light-Level-Comparisons.patch +++ b/Spigot-Server-Patches/0079-Optimized-Light-Level-Comparisons.patch @@ -1,4 +1,4 @@ -From 03a68a2ee994ecbd5a66f33c93ec973405b13d33 Mon Sep 17 00:00:00 2001 +From b2ed021cc393f2627735d38208e87c972ff5dcd1 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 18 Mar 2016 21:22:56 -0400 Subject: [PATCH] Optimized Light Level Comparisons @@ -8,23 +8,23 @@ Use an optimized method to test if a block position meets a desired light level. This method benefits from returning as soon as the desired light level matches. diff --git a/src/main/java/net/minecraft/server/BlockCrops.java b/src/main/java/net/minecraft/server/BlockCrops.java -index 7d44039..4ede2cf 100644 +index e9c5d14..9015aff 100644 --- a/src/main/java/net/minecraft/server/BlockCrops.java +++ b/src/main/java/net/minecraft/server/BlockCrops.java -@@ -49,7 +49,7 @@ public class BlockCrops extends BlockPlant implements IBlockFragilePlantElement +@@ -48,7 +48,7 @@ public class BlockCrops extends BlockPlant implements IBlockFragilePlantElement public void b(World world, BlockPosition blockposition, IBlockData iblockdata, Random random) { super.b(world, blockposition, iblockdata, random); - if (world.getLightLevel(blockposition.up()) >= 9) { + if (world.isLightLevel(blockposition.up(), 9)) { // Paper - int i = this.x(iblockdata); + int i = this.z(iblockdata); if (i < this.g()) { diff --git a/src/main/java/net/minecraft/server/BlockGrass.java b/src/main/java/net/minecraft/server/BlockGrass.java -index 11d9d3f..21e722d 100644 +index fb1bf80..8b43e60 100644 --- a/src/main/java/net/minecraft/server/BlockGrass.java +++ b/src/main/java/net/minecraft/server/BlockGrass.java -@@ -30,7 +30,8 @@ public class BlockGrass extends Block implements IBlockFragilePlantElement { +@@ -29,7 +29,8 @@ public class BlockGrass extends Block implements IBlockFragilePlantElement { public void b(World world, BlockPosition blockposition, IBlockData iblockdata, Random random) { if (!world.isClientSide) { @@ -34,7 +34,7 @@ index 11d9d3f..21e722d 100644 // CraftBukkit start // world.setTypeUpdate(blockposition, Blocks.DIRT.getBlockData()); org.bukkit.World bworld = world.getWorld(); -@@ -45,18 +46,25 @@ public class BlockGrass extends Block implements IBlockFragilePlantElement { +@@ -44,18 +45,25 @@ public class BlockGrass extends Block implements IBlockFragilePlantElement { } // CraftBukkit end } else { @@ -65,7 +65,7 @@ index 11d9d3f..21e722d 100644 // world.setTypeUpdate(blockposition1, Blocks.GRASS.getBlockData()); org.bukkit.World bworld = world.getWorld(); diff --git a/src/main/java/net/minecraft/server/BlockSapling.java b/src/main/java/net/minecraft/server/BlockSapling.java -index 4118fd1..97784f1 100644 +index f463b71..89458cd 100644 --- a/src/main/java/net/minecraft/server/BlockSapling.java +++ b/src/main/java/net/minecraft/server/BlockSapling.java @@ -34,7 +34,7 @@ public class BlockSapling extends BlockPlant implements IBlockFragilePlantElemen @@ -78,7 +78,7 @@ index 4118fd1..97784f1 100644 world.captureTreeGeneration = true; // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/BlockStem.java b/src/main/java/net/minecraft/server/BlockStem.java -index d378ea4..1185100 100644 +index c74b628..bb96e16 100644 --- a/src/main/java/net/minecraft/server/BlockStem.java +++ b/src/main/java/net/minecraft/server/BlockStem.java @@ -48,7 +48,7 @@ public class BlockStem extends BlockPlant implements IBlockFragilePlantElement { @@ -91,11 +91,11 @@ index d378ea4..1185100 100644 if (random.nextInt((int) ((100.0F / (this == Blocks.PUMPKIN_STEM ? world.spigotConfig.pumpkinModifier : world.spigotConfig.melonModifier)) * (25.0F / f)) + 1) == 0) { // Spigot diff --git a/src/main/java/net/minecraft/server/EntityMonster.java b/src/main/java/net/minecraft/server/EntityMonster.java -index 1aef91a..733fec7 100644 +index b5c5437..a281957 100644 --- a/src/main/java/net/minecraft/server/EntityMonster.java +++ b/src/main/java/net/minecraft/server/EntityMonster.java -@@ -122,17 +122,17 @@ public abstract class EntityMonster extends EntityCreature implements IMonster { - if (this.world.b(EnumSkyBlock.SKY, blockposition) > this.random.nextInt(32)) { +@@ -118,17 +118,17 @@ public abstract class EntityMonster extends EntityCreature implements IMonster { + if (this.world.getBrightness(EnumSkyBlock.SKY, blockposition) > this.random.nextInt(32)) { return false; } else { - int i = this.world.getLightLevel(blockposition); @@ -118,18 +118,18 @@ index 1aef91a..733fec7 100644 } diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java -index 6981185..798b9c5 100644 +index 897882c..970fabf 100644 --- a/src/main/java/net/minecraft/server/EntityZombie.java +++ b/src/main/java/net/minecraft/server/EntityZombie.java -@@ -195,7 +195,7 @@ public class EntityZombie extends EntityMonster { +@@ -178,7 +178,7 @@ public class EntityZombie extends EntityMonster { int j1 = j + MathHelper.nextInt(this.random, 7, 40) * MathHelper.nextInt(this.random, -1, 1); int k1 = k + MathHelper.nextInt(this.random, 7, 40) * MathHelper.nextInt(this.random, -1, 1); -- if (this.world.getType(new BlockPosition(i1, j1 - 1, k1)).q() && this.world.getLightLevel(new BlockPosition(i1, j1, k1)) < 10) { -+ if (this.world.getType(new BlockPosition(i1, j1 - 1, k1)).q() && !this.world.isLightLevel(new BlockPosition(i1, j1, k1), 10)) { // Paper +- if (this.world.getType(new BlockPosition(i1, j1 - 1, k1)).r() && this.world.getLightLevel(new BlockPosition(i1, j1, k1)) < 10) { ++ if (this.world.getType(new BlockPosition(i1, j1 - 1, k1)).r() && !this.world.isLightLevel(new BlockPosition(i1, j1, k1), 10)) { // Paper entityzombie.setPosition((double) i1, (double) j1, (double) k1); - if (!this.world.isPlayerNearby((double) i1, (double) j1, (double) k1, 7.0D, EntityHuman.affectsSpawningFilter()) && this.world.a(entityzombie.getBoundingBox(), (Entity) entityzombie) && this.world.getCubes(entityzombie, entityzombie.getBoundingBox()).isEmpty() && !this.world.containsLiquid(entityzombie.getBoundingBox())) { // Paper - affectsSpawning filter + if (!this.world.isPlayerNearby((double) i1, (double) j1, (double) k1, 7.0D) && this.world.a(entityzombie.getBoundingBox(), (Entity) entityzombie) && this.world.getCubes(entityzombie, entityzombie.getBoundingBox()).isEmpty() && !this.world.containsLiquid(entityzombie.getBoundingBox())) { this.world.addEntity(entityzombie, CreatureSpawnEvent.SpawnReason.REINFORCEMENTS); // CraftBukkit -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0082-Pass-world-to-Village-creation.patch b/Spigot-Server-Patches/0080-Pass-world-to-Village-creation.patch similarity index 81% rename from Spigot-Server-Patches/0082-Pass-world-to-Village-creation.patch rename to Spigot-Server-Patches/0080-Pass-world-to-Village-creation.patch index 1f498aa6b8..8825a5442d 100644 --- a/Spigot-Server-Patches/0082-Pass-world-to-Village-creation.patch +++ b/Spigot-Server-Patches/0080-Pass-world-to-Village-creation.patch @@ -1,4 +1,4 @@ -From 4cfd8b339c0ad3fe7a143d724408b5a60049ece6 Mon Sep 17 00:00:00 2001 +From aa4add7106265a50c2756dcd8dbc5b6912ffc116 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 19 Mar 2016 15:16:54 -0400 Subject: [PATCH] Pass world to Village creation @@ -6,10 +6,10 @@ Subject: [PATCH] Pass world to Village creation fixes NPE bug #95 diff --git a/src/main/java/net/minecraft/server/PersistentVillage.java b/src/main/java/net/minecraft/server/PersistentVillage.java -index 75dc674..2a9444e 100644 +index a5b79ec..01f7cee 100644 --- a/src/main/java/net/minecraft/server/PersistentVillage.java +++ b/src/main/java/net/minecraft/server/PersistentVillage.java -@@ -236,7 +236,7 @@ public class PersistentVillage extends PersistentBase { +@@ -238,7 +238,7 @@ public class PersistentVillage extends PersistentBase { for (int i = 0; i < nbttaglist.size(); ++i) { NBTTagCompound nbttagcompound1 = nbttaglist.get(i); @@ -19,10 +19,10 @@ index 75dc674..2a9444e 100644 village.a(nbttagcompound1); this.villages.add(village); diff --git a/src/main/java/net/minecraft/server/Village.java b/src/main/java/net/minecraft/server/Village.java -index 1fa7cb2..fc3a6ab 100644 +index 2ab381d..817c836 100644 --- a/src/main/java/net/minecraft/server/Village.java +++ b/src/main/java/net/minecraft/server/Village.java -@@ -22,7 +22,7 @@ public class Village { +@@ -24,7 +24,7 @@ public class Village { private final List k; private int l; @@ -30,7 +30,7 @@ index 1fa7cb2..fc3a6ab 100644 + private Village() { // Paper - Nothing should call this - world needs to be set. this.c = BlockPosition.ZERO; this.d = BlockPosition.ZERO; - this.j = new TreeMap(); + this.j = Maps.newHashMap(); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0083-Custom-replacement-for-eaten-items.patch b/Spigot-Server-Patches/0081-Custom-replacement-for-eaten-items.patch similarity index 71% rename from Spigot-Server-Patches/0083-Custom-replacement-for-eaten-items.patch rename to Spigot-Server-Patches/0081-Custom-replacement-for-eaten-items.patch index 8f959c3b1e..481179d0a2 100644 --- a/Spigot-Server-Patches/0083-Custom-replacement-for-eaten-items.patch +++ b/Spigot-Server-Patches/0081-Custom-replacement-for-eaten-items.patch @@ -1,17 +1,18 @@ -From 2ffc2bf91c0006ca2a77e6be164fbeabac4721c6 Mon Sep 17 00:00:00 2001 +From 7ef822ff5f73057b05d269b49105de4dfa773c86 Mon Sep 17 00:00:00 2001 From: Jedediah Smith Date: Sun, 21 Jun 2015 15:07:20 -0400 Subject: [PATCH] Custom replacement for eaten items diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 89e6ef5..ad320c2 100644 +index 97eac7a..4cc89ec 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -2261,12 +2261,24 @@ public abstract class EntityLiving extends Entity { - ItemStack itemstack = (craftItem.equals(event.getItem())) ? this.bo.a(this.world, this) : CraftItemStack.asNMSCopy(event.getItem()).a(world, this); +@@ -2337,7 +2337,20 @@ public abstract class EntityLiving extends Entity { + ItemStack itemstack = (craftItem.equals(event.getItem())) ? this.activeItem.a(this.world, this) : CraftItemStack.asNMSCopy(event.getItem()).a(world, this); + this.a(this.cz(), itemstack); // CraftBukkit end - ++ + // Paper start - save the default replacement item and change it if necessary + final ItemStack defaultReplacement = itemstack; + if (event.getReplacement() != null) { @@ -19,12 +20,7 @@ index 89e6ef5..ad320c2 100644 + } + // Paper end + - if (itemstack != null && itemstack.count == 0) { - itemstack = null; - } - - this.a(this.cy(), itemstack); - this.cE(); + this.cF(); + + // Paper start - if the replacement is anything but the default, update the client inventory + if (this instanceof EntityPlayer && !com.google.common.base.Objects.equal(defaultReplacement, itemstack)) { @@ -34,5 +30,5 @@ index 89e6ef5..ad320c2 100644 } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0084-Set-health-before-death-event.patch b/Spigot-Server-Patches/0082-Set-health-before-death-event.patch similarity index 95% rename from Spigot-Server-Patches/0084-Set-health-before-death-event.patch rename to Spigot-Server-Patches/0082-Set-health-before-death-event.patch index 80a1a4bc31..04c5e72a15 100644 --- a/Spigot-Server-Patches/0084-Set-health-before-death-event.patch +++ b/Spigot-Server-Patches/0082-Set-health-before-death-event.patch @@ -1,4 +1,4 @@ -From db119eed768bbd60a42cca20e2a1fefaada86f81 Mon Sep 17 00:00:00 2001 +From 6c7006b595785c4b8b0435af3bd7055fcf019576 Mon Sep 17 00:00:00 2001 From: Jedediah Smith Date: Sun, 19 Jul 2015 16:51:38 -0400 Subject: [PATCH] Set health before death event @@ -19,7 +19,7 @@ index 88b6778..a60aee6 100644 + } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 79d60a6..b807a3f 100644 +index 2a77cd4..0493c1b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -98,11 +98,20 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @@ -45,5 +45,5 @@ index 79d60a6..b807a3f 100644 public double getMaxHealth() { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0085-handle-NaN-health-absorb-values-and-repair-bad-data.patch b/Spigot-Server-Patches/0083-handle-NaN-health-absorb-values-and-repair-bad-data.patch similarity index 87% rename from Spigot-Server-Patches/0085-handle-NaN-health-absorb-values-and-repair-bad-data.patch rename to Spigot-Server-Patches/0083-handle-NaN-health-absorb-values-and-repair-bad-data.patch index 672cc4854e..85a22106ef 100644 --- a/Spigot-Server-Patches/0085-handle-NaN-health-absorb-values-and-repair-bad-data.patch +++ b/Spigot-Server-Patches/0083-handle-NaN-health-absorb-values-and-repair-bad-data.patch @@ -1,14 +1,14 @@ -From c17c58addb833ca7e763f73bc5d7395e5c262d2f Mon Sep 17 00:00:00 2001 +From fa2c964cc53890971c8a61c71ba4056ed2cd289c Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 27 Sep 2015 01:18:02 -0400 Subject: [PATCH] handle NaN health/absorb values and repair bad data diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index ad320c2..d66e766 100644 +index 4cc89ec..7a96447 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -468,7 +468,13 @@ public abstract class EntityLiving extends Entity { +@@ -481,7 +481,13 @@ public abstract class EntityLiving extends Entity { } public void a(NBTTagCompound nbttagcompound) { @@ -23,7 +23,7 @@ index ad320c2..d66e766 100644 if (nbttagcompound.hasKeyOfType("Attributes", 9) && this.world != null && !this.world.isClientSide) { GenericAttributes.a(this.getAttributeMap(), nbttagcompound.getList("Attributes", 10)); } -@@ -759,6 +765,10 @@ public abstract class EntityLiving extends Entity { +@@ -779,6 +785,10 @@ public abstract class EntityLiving extends Entity { } public void setHealth(float f) { @@ -34,7 +34,7 @@ index ad320c2..d66e766 100644 // CraftBukkit start - Handle scaled health if (this instanceof EntityPlayer) { org.bukkit.craftbukkit.entity.CraftPlayer player = ((EntityPlayer) this).getBukkitEntity(); -@@ -2131,7 +2141,7 @@ public abstract class EntityLiving extends Entity { +@@ -2207,7 +2217,7 @@ public abstract class EntityLiving extends Entity { } public void setAbsorptionHearts(float f) { @@ -44,7 +44,7 @@ index ad320c2..d66e766 100644 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 515d0cd..d3f4c3f 100644 +index f6b791b..486ba73 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1390,6 +1390,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -56,5 +56,5 @@ index 515d0cd..d3f4c3f 100644 } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0086-Catch-Async-PlayerChunkMap-operations.patch b/Spigot-Server-Patches/0084-Catch-Async-PlayerChunkMap-operations.patch similarity index 89% rename from Spigot-Server-Patches/0086-Catch-Async-PlayerChunkMap-operations.patch rename to Spigot-Server-Patches/0084-Catch-Async-PlayerChunkMap-operations.patch index e6ea493264..8ca7ff9f24 100644 --- a/Spigot-Server-Patches/0086-Catch-Async-PlayerChunkMap-operations.patch +++ b/Spigot-Server-Patches/0084-Catch-Async-PlayerChunkMap-operations.patch @@ -1,11 +1,11 @@ -From 4a6f7ee5118173e4e65e1a1fcdb72ed0e2c1b194 Mon Sep 17 00:00:00 2001 +From 38d42c576439460df8d23272448c30342f72997a Mon Sep 17 00:00:00 2001 From: Daniel Ennis Date: Sun, 20 Mar 2016 15:22:42 -0400 Subject: [PATCH] Catch Async PlayerChunkMap operations diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index fcd0186..c9d48ac 100644 +index 5db113c..8f6f3a0 100644 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java @@ -461,10 +461,12 @@ public class PlayerChunkMap { @@ -22,5 +22,5 @@ index fcd0186..c9d48ac 100644 long i = d(chunkcoordintpair.x, chunkcoordintpair.z); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0087-Support-offline-mode-in-whitelist-command-as-well.patch b/Spigot-Server-Patches/0085-Support-offline-mode-in-whitelist-command-as-well.patch similarity index 98% rename from Spigot-Server-Patches/0087-Support-offline-mode-in-whitelist-command-as-well.patch rename to Spigot-Server-Patches/0085-Support-offline-mode-in-whitelist-command-as-well.patch index 4bf185ab99..6133b141e6 100644 --- a/Spigot-Server-Patches/0087-Support-offline-mode-in-whitelist-command-as-well.patch +++ b/Spigot-Server-Patches/0085-Support-offline-mode-in-whitelist-command-as-well.patch @@ -1,4 +1,4 @@ -From d73723c415b3c4477fa8935e54b57317a120ed57 Mon Sep 17 00:00:00 2001 +From 43d4f73060153a5e017db795dfdcee5e42f00bab Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Mon, 21 Mar 2016 00:19:18 -0500 Subject: [PATCH] Support offline mode in whitelist command as well @@ -89,5 +89,5 @@ index c74d1d2..0f4237d 100644 + // Paper end } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0088-Fix-SkullCache-case-bug.patch b/Spigot-Server-Patches/0086-Fix-SkullCache-case-bug.patch similarity index 90% rename from Spigot-Server-Patches/0088-Fix-SkullCache-case-bug.patch rename to Spigot-Server-Patches/0086-Fix-SkullCache-case-bug.patch index dac7edf85b..a202b50d00 100644 --- a/Spigot-Server-Patches/0088-Fix-SkullCache-case-bug.patch +++ b/Spigot-Server-Patches/0086-Fix-SkullCache-case-bug.patch @@ -1,11 +1,11 @@ -From d6d1dc0c6e2103a1569f0347817be71316faaf8c Mon Sep 17 00:00:00 2001 +From 8f8a9fef6f5ec940e55af3abcfa351eb280db615 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 5 Jan 2016 21:48:24 -0500 Subject: [PATCH] Fix SkullCache case bug diff --git a/src/main/java/net/minecraft/server/TileEntitySkull.java b/src/main/java/net/minecraft/server/TileEntitySkull.java -index 654b51d..a8adbcb 100644 +index 91ca4a2..edd6fb6 100644 --- a/src/main/java/net/minecraft/server/TileEntitySkull.java +++ b/src/main/java/net/minecraft/server/TileEntitySkull.java @@ -191,7 +191,7 @@ public class TileEntitySkull extends TileEntity implements ITickable { @@ -18,5 +18,5 @@ index 654b51d..a8adbcb 100644 callback.apply(profile); } else { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0089-Waving-banner-workaround.patch b/Spigot-Server-Patches/0087-Waving-banner-workaround.patch similarity index 94% rename from Spigot-Server-Patches/0089-Waving-banner-workaround.patch rename to Spigot-Server-Patches/0087-Waving-banner-workaround.patch index 0bcf2493a2..43c6472107 100644 --- a/Spigot-Server-Patches/0089-Waving-banner-workaround.patch +++ b/Spigot-Server-Patches/0087-Waving-banner-workaround.patch @@ -1,4 +1,4 @@ -From 989047b666c933de551cbd7e336883f1b5948923 Mon Sep 17 00:00:00 2001 +From 428f579770b2aa61fc95a85a5561c3a9ac77d184 Mon Sep 17 00:00:00 2001 From: Gabscap Date: Sat, 19 Mar 2016 22:25:11 +0100 Subject: [PATCH] Waving banner workaround @@ -34,5 +34,5 @@ index c5c3f40..6413f76 100644 public void a(PacketDataSerializer packetdataserializer) throws IOException { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0090-Use-a-Shared-Random-for-Entities.patch b/Spigot-Server-Patches/0088-Use-a-Shared-Random-for-Entities.patch similarity index 83% rename from Spigot-Server-Patches/0090-Use-a-Shared-Random-for-Entities.patch rename to Spigot-Server-Patches/0088-Use-a-Shared-Random-for-Entities.patch index 0f9db640ae..5e55154ace 100644 --- a/Spigot-Server-Patches/0090-Use-a-Shared-Random-for-Entities.patch +++ b/Spigot-Server-Patches/0088-Use-a-Shared-Random-for-Entities.patch @@ -1,4 +1,4 @@ -From a70bb2d71e2a418d5029efa646fc13012f61a01f Mon Sep 17 00:00:00 2001 +From 554f7c012ab7cb05dbaf758c2a6b70b15dc2f634 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 22 Mar 2016 00:33:47 -0400 Subject: [PATCH] Use a Shared Random for Entities @@ -6,7 +6,7 @@ Subject: [PATCH] Use a Shared Random for Entities Reduces memory usage and provides ensures more randomness, Especially since a lot of garbage entity objects get created. diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 5a4b5bc..91eb036 100644 +index 875dcc8..ae16663 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -45,6 +45,7 @@ public abstract class Entity implements ICommandListener { @@ -17,15 +17,15 @@ index 5a4b5bc..91eb036 100644 static boolean isLevelAtLeast(NBTTagCompound tag, int level) { return tag.hasKey("Bukkit.updateLevel") && tag.getInt("Bukkit.updateLevel") >= level; } -@@ -162,7 +163,7 @@ public abstract class Entity implements ICommandListener { +@@ -160,7 +161,7 @@ public abstract class Entity implements ICommandListener { this.width = 0.6F; this.length = 1.8F; this.ax = 1; - this.random = new Random(); + this.random = SHARED_RANDOM; // Paper - this.maxFireTicks = 1; + this.fireTicks = -this.getMaxFireTicks(); this.justCreated = true; this.uniqueID = MathHelper.a(this.random); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0091-Don-t-teleport-dead-entities.patch b/Spigot-Server-Patches/0089-Don-t-teleport-dead-entities.patch similarity index 83% rename from Spigot-Server-Patches/0091-Don-t-teleport-dead-entities.patch rename to Spigot-Server-Patches/0089-Don-t-teleport-dead-entities.patch index 6522228299..5ff61406a4 100644 --- a/Spigot-Server-Patches/0091-Don-t-teleport-dead-entities.patch +++ b/Spigot-Server-Patches/0089-Don-t-teleport-dead-entities.patch @@ -1,4 +1,4 @@ -From ee395eb0157df61aaaa7672ef5e9cf4ba5859950 Mon Sep 17 00:00:00 2001 +From 04db83c72b0dd6425fd8d800822a51dcd56e6d5c Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 22 Mar 2016 00:55:23 -0400 Subject: [PATCH] Don't teleport dead entities @@ -7,10 +7,10 @@ Had some issue with this in past, and this is the vanilla logic. Potentially an old CB change that's no longer needed. diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 91eb036..7696998 100644 +index ae16663..d8ebe11 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -2151,7 +2151,7 @@ public abstract class Entity implements ICommandListener { +@@ -2216,7 +2216,7 @@ public abstract class Entity implements ICommandListener { } public Entity teleportTo(Location exit, boolean portal) { @@ -20,5 +20,5 @@ index 91eb036..7696998 100644 WorldServer worldserver1 = ((CraftWorld) exit.getWorld()).getHandle(); int i = worldserver1.dimension; -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0092-Optimize-Chunk-Access.patch b/Spigot-Server-Patches/0090-Optimize-Chunk-Access.patch similarity index 91% rename from Spigot-Server-Patches/0092-Optimize-Chunk-Access.patch rename to Spigot-Server-Patches/0090-Optimize-Chunk-Access.patch index d76e47a24a..e990118148 100644 --- a/Spigot-Server-Patches/0092-Optimize-Chunk-Access.patch +++ b/Spigot-Server-Patches/0090-Optimize-Chunk-Access.patch @@ -1,4 +1,4 @@ -From 5e1f9c486154c325334770e1d3771eb85fcd352e Mon Sep 17 00:00:00 2001 +From 77c802f0bbd04aeeb2dece18e0efc00950c987ec Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 27 Aug 2015 01:15:02 -0400 Subject: [PATCH] Optimize Chunk Access @@ -9,10 +9,10 @@ getChunkAt is called for the same chunk multiple times in a row, often from getT Optimize this look up by using a Last Access cache. diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index cbc93a8..ad94c5a 100644 +index 54ca738..902f9ac 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java -@@ -26,7 +26,27 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -27,7 +27,27 @@ public class ChunkProviderServer implements IChunkProvider { public final Set unloadQueue = Sets.newHashSet(); public final ChunkGenerator chunkGenerator; private final IChunkLoader chunkLoader; @@ -42,5 +42,5 @@ index cbc93a8..ad94c5a 100644 public ChunkProviderServer(WorldServer worldserver, IChunkLoader ichunkloader, ChunkGenerator chunkgenerator) { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0093-Configurable-spawn-chances-for-skeleton-horses.patch b/Spigot-Server-Patches/0091-Configurable-spawn-chances-for-skeleton-horses.patch similarity index 56% rename from Spigot-Server-Patches/0093-Configurable-spawn-chances-for-skeleton-horses.patch rename to Spigot-Server-Patches/0091-Configurable-spawn-chances-for-skeleton-horses.patch index 7299edea9b..52b61bce1e 100644 --- a/Spigot-Server-Patches/0093-Configurable-spawn-chances-for-skeleton-horses.patch +++ b/Spigot-Server-Patches/0091-Configurable-spawn-chances-for-skeleton-horses.patch @@ -1,39 +1,36 @@ -From 2d4c48e2d7b719b5aef60d4d1264776f9e9e71c9 Mon Sep 17 00:00:00 2001 +From 49d53ee95df9d1cad58e78621fd5a342062e9e09 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Tue, 22 Mar 2016 12:04:28 -0500 Subject: [PATCH] Configurable spawn chances for skeleton horses diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index b701e5e..d29f2a4 100644 +index 9cce672..d92ccc7 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -278,4 +278,12 @@ public class PaperWorldConfig { +@@ -269,4 +269,9 @@ public class PaperWorldConfig { } log("Non Player Arrow Despawn Rate: " + nonPlayerArrowDespawnRate); } + + public double skeleHorseSpawnChance; + private void skeleHorseSpawnChance() { -+ skeleHorseSpawnChance = getDouble("skeleton-horse-thunder-spawn-chance", -1.0D); // -1.0D represents a "vanilla" state -+ if (skeleHorseSpawnChance < 0) { -+ skeleHorseSpawnChance = 0.05D; // Vanilla -+ } ++ skeleHorseSpawnChance = getDouble("skeleton-horse-thunder-spawn-chance", 0.01D); // -1.0D represents a "vanilla" state + } } diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index a5f8d93..c2a8bdf 100644 +index c84121c..04f61e9 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -432,7 +432,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -435,7 +435,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { if (this.isRainingAt(blockposition)) { DifficultyDamageScaler difficultydamagescaler = this.D(blockposition); -- if (this.random.nextDouble() < (double) difficultydamagescaler.b() * 0.05D) { -+ if (this.random.nextDouble() < difficultydamagescaler.b() * paperConfig.skeleHorseSpawnChance) { // Paper - Configurable skeleton horse spawn chance - EntityHorse entityhorse = new EntityHorse(this); +- if (this.getGameRules().getBoolean("doMobSpawning") && this.random.nextDouble() < (double) difficultydamagescaler.b() * 0.01D) { ++ if (this.getGameRules().getBoolean("doMobSpawning") && this.random.nextDouble() < (double) difficultydamagescaler.b() * paperConfig.skeleHorseSpawnChance) { + EntityHorseSkeleton entityhorseskeleton = new EntityHorseSkeleton(this); - entityhorse.setType(EnumHorseType.SKELETON); + entityhorseskeleton.p(true); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0094-Optimize-isValidLocation-getType-and-getBlockData-fo.patch b/Spigot-Server-Patches/0092-Optimize-isValidLocation-getType-and-getBlockData-fo.patch similarity index 91% rename from Spigot-Server-Patches/0094-Optimize-isValidLocation-getType-and-getBlockData-fo.patch rename to Spigot-Server-Patches/0092-Optimize-isValidLocation-getType-and-getBlockData-fo.patch index d11826f5c1..b73b1ec40d 100644 --- a/Spigot-Server-Patches/0094-Optimize-isValidLocation-getType-and-getBlockData-fo.patch +++ b/Spigot-Server-Patches/0092-Optimize-isValidLocation-getType-and-getBlockData-fo.patch @@ -1,4 +1,4 @@ -From 9c40285ed71d8220215e2a1b191d2d299764e757 Mon Sep 17 00:00:00 2001 +From 0c1d747df007846e209ed5f0531dd51d59fad7fc Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 3 Mar 2016 02:07:55 -0600 Subject: [PATCH] Optimize isValidLocation, getType and getBlockData for inling @@ -31,10 +31,10 @@ index d60e755..f772c7c 100644 public BaseBlockPosition(int i, int j, int k) { this.a = i; diff --git a/src/main/java/net/minecraft/server/BlockPosition.java b/src/main/java/net/minecraft/server/BlockPosition.java -index 8603d83..704faa9 100644 +index 5cea6f1..1852972 100644 --- a/src/main/java/net/minecraft/server/BlockPosition.java +++ b/src/main/java/net/minecraft/server/BlockPosition.java -@@ -326,6 +326,16 @@ public class BlockPosition extends BaseBlockPosition { +@@ -343,6 +343,16 @@ public class BlockPosition extends BaseBlockPosition { protected int b; protected int c; protected int d; @@ -52,7 +52,7 @@ index 8603d83..704faa9 100644 public MutableBlockPosition() { this(0, 0, 0); diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 9118e4d..63e11aa 100644 +index 8f1a68d..736fa1f 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -406,11 +406,26 @@ public class Chunk { @@ -98,10 +98,10 @@ index 3d784d0..afdc4a7 100644 private NibbleArray skyLight; diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index a3bce9a..b683c3e 100644 +index 223250f..14ac6d2 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -274,12 +274,12 @@ public abstract class World implements IBlockAccess { +@@ -273,12 +273,12 @@ public abstract class World implements IBlockAccess { return this.getType(blockposition1); } @@ -118,7 +118,7 @@ index a3bce9a..b683c3e 100644 } public boolean isEmpty(BlockPosition blockposition) { -@@ -371,7 +371,7 @@ public abstract class World implements IBlockAccess { +@@ -374,7 +374,7 @@ public abstract class World implements IBlockAccess { return true; } // CraftBukkit end @@ -127,7 +127,7 @@ index a3bce9a..b683c3e 100644 return false; } else if (!this.isClientSide && this.worldData.getType() == WorldType.DEBUG_ALL_BLOCK_STATES) { return false; -@@ -639,7 +639,7 @@ public abstract class World implements IBlockAccess { +@@ -691,7 +691,7 @@ public abstract class World implements IBlockAccess { // Paper start - test if meets light level, return faster // logic copied from below public boolean isLightLevel(BlockPosition blockposition, int level) { @@ -136,7 +136,7 @@ index a3bce9a..b683c3e 100644 if (this.getType(blockposition).f()) { if (this.c(blockposition.up(), false) >= level) { return true; -@@ -757,7 +757,7 @@ public abstract class World implements IBlockAccess { +@@ -809,7 +809,7 @@ public abstract class World implements IBlockAccess { blockposition = new BlockPosition(blockposition.getX(), 0, blockposition.getZ()); } @@ -145,7 +145,7 @@ index a3bce9a..b683c3e 100644 return enumskyblock.c; } else if (!this.isLoaded(blockposition)) { return enumskyblock.c; -@@ -769,7 +769,7 @@ public abstract class World implements IBlockAccess { +@@ -821,7 +821,7 @@ public abstract class World implements IBlockAccess { } public void a(EnumSkyBlock enumskyblock, BlockPosition blockposition, int i) { @@ -154,7 +154,7 @@ index a3bce9a..b683c3e 100644 if (this.isLoaded(blockposition)) { Chunk chunk = this.getChunkAtWorldCoords(blockposition); -@@ -793,19 +793,19 @@ public abstract class World implements IBlockAccess { +@@ -845,19 +845,19 @@ public abstract class World implements IBlockAccess { // Paper start - reduces need to do isLoaded before getType public IBlockData getTypeIfLoaded(BlockPosition blockposition) { // CraftBukkit start - tree generation @@ -182,7 +182,7 @@ index a3bce9a..b683c3e 100644 } return null; } -@@ -813,24 +813,33 @@ public abstract class World implements IBlockAccess { +@@ -865,24 +865,33 @@ public abstract class World implements IBlockAccess { public IBlockData getType(BlockPosition blockposition) { // CraftBukkit start - tree generation @@ -227,7 +227,7 @@ index a3bce9a..b683c3e 100644 public boolean B() { return this.J < 4; -@@ -2058,7 +2067,7 @@ public abstract class World implements IBlockAccess { +@@ -2045,7 +2054,7 @@ public abstract class World implements IBlockAccess { public Map capturedTileEntities = Maps.newHashMap(); @Nullable public TileEntity getTileEntity(BlockPosition blockposition) { @@ -236,16 +236,16 @@ index a3bce9a..b683c3e 100644 return null; } else { // CraftBukkit start -@@ -2099,7 +2108,7 @@ public abstract class World implements IBlockAccess { +@@ -2086,7 +2095,7 @@ public abstract class World implements IBlockAccess { } public void setTileEntity(BlockPosition blockposition, @Nullable TileEntity tileentity) { - if (!this.E(blockposition)) { -+ if (!blockposition.isInvalidYLocation()) { // Paper - if (tileentity != null && !tileentity.x()) { ++ if (!blockposition.isInvalidYLocation()) { + if (tileentity != null && !tileentity.y()) { // CraftBukkit start if (captureBlockStates) { -@@ -2162,7 +2171,7 @@ public abstract class World implements IBlockAccess { +@@ -2149,7 +2158,7 @@ public abstract class World implements IBlockAccess { } public boolean d(BlockPosition blockposition, boolean flag) { @@ -255,5 +255,5 @@ index a3bce9a..b683c3e 100644 } else { Chunk chunk = this.chunkProvider.getLoadedChunkAt(blockposition.getX() >> 4, blockposition.getZ() >> 4); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0095-Use-correct-item-in-arrow-pickup-event.patch b/Spigot-Server-Patches/0093-Use-correct-item-in-arrow-pickup-event.patch similarity index 86% rename from Spigot-Server-Patches/0095-Use-correct-item-in-arrow-pickup-event.patch rename to Spigot-Server-Patches/0093-Use-correct-item-in-arrow-pickup-event.patch index 1dc84e3806..10c3f6dd3f 100644 --- a/Spigot-Server-Patches/0095-Use-correct-item-in-arrow-pickup-event.patch +++ b/Spigot-Server-Patches/0093-Use-correct-item-in-arrow-pickup-event.patch @@ -1,14 +1,14 @@ -From a94a0e2ea04a8d7184a3d22d9059f037d9dabe24 Mon Sep 17 00:00:00 2001 +From c584e7ace10c7aaf8dd332a93ea20b8cf075af8b Mon Sep 17 00:00:00 2001 From: Jedediah Smith Date: Tue, 22 Mar 2016 16:00:16 -0400 Subject: [PATCH] Use correct item in arrow pickup event diff --git a/src/main/java/net/minecraft/server/EntityArrow.java b/src/main/java/net/minecraft/server/EntityArrow.java -index b7ac5f7..37cb17c 100644 +index bb332b3..b71ebea 100644 --- a/src/main/java/net/minecraft/server/EntityArrow.java +++ b/src/main/java/net/minecraft/server/EntityArrow.java -@@ -444,7 +444,7 @@ public abstract class EntityArrow extends Entity implements IProjectile { +@@ -457,7 +457,7 @@ public abstract class EntityArrow extends Entity implements IProjectile { public void d(EntityHuman entityhuman) { if (!this.world.isClientSide && this.inGround && this.shake <= 0) { // CraftBukkit start @@ -17,7 +17,7 @@ index b7ac5f7..37cb17c 100644 if (this.fromPlayer == PickupStatus.ALLOWED && entityhuman.inventory.canHold(itemstack) > 0) { EntityItem item = new EntityItem(this.world, this.locX, this.locY, this.locZ, itemstack); -@@ -459,7 +459,7 @@ public abstract class EntityArrow extends Entity implements IProjectile { +@@ -472,7 +472,7 @@ public abstract class EntityArrow extends Entity implements IProjectile { // CraftBukkit end boolean flag = this.fromPlayer == EntityArrow.PickupStatus.ALLOWED || this.fromPlayer == EntityArrow.PickupStatus.CREATIVE_ONLY && entityhuman.abilities.canInstantlyBuild; @@ -27,5 +27,5 @@ index b7ac5f7..37cb17c 100644 } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0096-Fix-cooked-fish-legacy-import.patch b/Spigot-Server-Patches/0094-Fix-cooked-fish-legacy-import.patch similarity index 93% rename from Spigot-Server-Patches/0096-Fix-cooked-fish-legacy-import.patch rename to Spigot-Server-Patches/0094-Fix-cooked-fish-legacy-import.patch index d015cd8132..b2e7df878d 100644 --- a/Spigot-Server-Patches/0096-Fix-cooked-fish-legacy-import.patch +++ b/Spigot-Server-Patches/0094-Fix-cooked-fish-legacy-import.patch @@ -1,4 +1,4 @@ -From c7d72d10b63991d729bbd3a3bceed69d5fb60183 Mon Sep 17 00:00:00 2001 +From 68d66a89483def18f9e82a01fab7faed0270615a Mon Sep 17 00:00:00 2001 From: Jedediah Smith Date: Tue, 1 Mar 2016 04:32:08 -0500 Subject: [PATCH] Fix cooked fish legacy import @@ -18,5 +18,5 @@ index 87b82eb..a7c71f4 100644 DataConverterMaterialId.a[352] = "minecraft:bone"; DataConverterMaterialId.a[353] = "minecraft:sugar"; -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0097-Prevent-possible-infinite-loop-in-BlockPosition-iter.patch b/Spigot-Server-Patches/0095-Prevent-possible-infinite-loop-in-BlockPosition-iter.patch similarity index 92% rename from Spigot-Server-Patches/0097-Prevent-possible-infinite-loop-in-BlockPosition-iter.patch rename to Spigot-Server-Patches/0095-Prevent-possible-infinite-loop-in-BlockPosition-iter.patch index 17e5de424c..25a9e9d1a3 100644 --- a/Spigot-Server-Patches/0097-Prevent-possible-infinite-loop-in-BlockPosition-iter.patch +++ b/Spigot-Server-Patches/0095-Prevent-possible-infinite-loop-in-BlockPosition-iter.patch @@ -1,14 +1,14 @@ -From 8d48ed529554ee9f79b535d4a88f20ac1f9a68e7 Mon Sep 17 00:00:00 2001 +From 5869c04c3569ddc7ef8dd83d347f6064e8ea0db5 Mon Sep 17 00:00:00 2001 From: DemonWav Date: Sat, 26 Mar 2016 21:36:05 -0500 Subject: [PATCH] Prevent possible infinite loop in BlockPosition iterator diff --git a/src/main/java/net/minecraft/server/BlockPosition.java b/src/main/java/net/minecraft/server/BlockPosition.java -index 704faa9..d6cc51b 100644 +index 1852972..93b65cd 100644 --- a/src/main/java/net/minecraft/server/BlockPosition.java +++ b/src/main/java/net/minecraft/server/BlockPosition.java -@@ -141,15 +141,17 @@ public class BlockPosition extends BaseBlockPosition { +@@ -158,15 +158,17 @@ public class BlockPosition extends BaseBlockPosition { protected BlockPosition a() { if (this.b == null) { @@ -28,7 +28,7 @@ index 704faa9..d6cc51b 100644 if (i < blockposition1.getX()) { ++i; } else if (j < blockposition1.getY()) { -@@ -160,6 +162,18 @@ public class BlockPosition extends BaseBlockPosition { +@@ -177,6 +179,18 @@ public class BlockPosition extends BaseBlockPosition { j = blockposition.getY(); ++k; } @@ -47,7 +47,7 @@ index 704faa9..d6cc51b 100644 this.b = new BlockPosition(i, j, k); return this.b; -@@ -189,15 +203,17 @@ public class BlockPosition extends BaseBlockPosition { +@@ -206,15 +220,17 @@ public class BlockPosition extends BaseBlockPosition { protected BlockPosition.MutableBlockPosition a() { if (this.b == null) { @@ -67,7 +67,7 @@ index 704faa9..d6cc51b 100644 if (i < blockposition1.getX()) { ++i; } else if (j < blockposition1.getY()) { -@@ -208,6 +224,18 @@ public class BlockPosition extends BaseBlockPosition { +@@ -225,6 +241,18 @@ public class BlockPosition extends BaseBlockPosition { j = blockposition.getY(); ++k; } @@ -87,5 +87,5 @@ index 704faa9..d6cc51b 100644 this.b.b = i; this.b.c = j; -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0098-Access-items-by-EquipmentSlot.patch b/Spigot-Server-Patches/0096-Access-items-by-EquipmentSlot.patch similarity index 95% rename from Spigot-Server-Patches/0098-Access-items-by-EquipmentSlot.patch rename to Spigot-Server-Patches/0096-Access-items-by-EquipmentSlot.patch index a39162236e..844d1bca74 100644 --- a/Spigot-Server-Patches/0098-Access-items-by-EquipmentSlot.patch +++ b/Spigot-Server-Patches/0096-Access-items-by-EquipmentSlot.patch @@ -1,11 +1,11 @@ -From ada8adff545102f20f46864b7cb8ae4524f700e1 Mon Sep 17 00:00:00 2001 +From b49a516f20a12e9a8e00b701b1d10de3930d918c Mon Sep 17 00:00:00 2001 From: Jedediah Smith Date: Sun, 20 Mar 2016 06:45:01 -0400 Subject: [PATCH] Access items by EquipmentSlot diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java -index 51a8b4e..47654a0 100644 +index d8c5364..120ec89 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java @@ -271,4 +271,54 @@ public class CraftInventoryPlayer extends CraftInventory implements org.bukkit.i @@ -64,5 +64,5 @@ index 51a8b4e..47654a0 100644 + // Paper end } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0099-Check-async-remove-unused-vars-GH-159.patch b/Spigot-Server-Patches/0097-Check-async-remove-unused-vars-GH-159.patch similarity index 90% rename from Spigot-Server-Patches/0099-Check-async-remove-unused-vars-GH-159.patch rename to Spigot-Server-Patches/0097-Check-async-remove-unused-vars-GH-159.patch index 0ec8e36242..dcdfbf0629 100644 --- a/Spigot-Server-Patches/0099-Check-async-remove-unused-vars-GH-159.patch +++ b/Spigot-Server-Patches/0097-Check-async-remove-unused-vars-GH-159.patch @@ -1,11 +1,11 @@ -From 21198d8e2e5ce1d7838b1e262979728decb7c75e Mon Sep 17 00:00:00 2001 +From 939c6f4fc40f89a3645b2dd258aef8d64781a95a Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Sun, 27 Mar 2016 20:24:05 -0500 Subject: [PATCH] Check async, remove unused vars, GH-159 diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java -index b3edaee..ea0a145 100644 +index 8c35cab..bb8191a 100644 --- a/src/main/java/net/minecraft/server/SpawnerCreature.java +++ b/src/main/java/net/minecraft/server/SpawnerCreature.java @@ -40,6 +40,7 @@ public final class SpawnerCreature { @@ -16,7 +16,7 @@ index b3edaee..ea0a145 100644 if (!flag && !flag1) { return 0; } else { -@@ -122,8 +123,10 @@ public final class SpawnerCreature { +@@ -120,8 +121,10 @@ public final class SpawnerCreature { // CraftBukkit end if ((!enumcreaturetype.d() || flag1) && (enumcreaturetype.d() || flag) && (!enumcreaturetype.e() || flag2)) { @@ -28,5 +28,5 @@ index b3edaee..ea0a145 100644 if ((mobcnt = getEntityCount(worldserver, enumcreaturetype.a())) <= limit * i / 256) { BlockPosition.MutableBlockPosition blockposition_mutableblockposition = new BlockPosition.MutableBlockPosition(); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0100-Option-to-disable-BlockPhysicsEvent-for-Redstone.patch b/Spigot-Server-Patches/0098-Option-to-disable-BlockPhysicsEvent-for-Redstone.patch similarity index 85% rename from Spigot-Server-Patches/0100-Option-to-disable-BlockPhysicsEvent-for-Redstone.patch rename to Spigot-Server-Patches/0098-Option-to-disable-BlockPhysicsEvent-for-Redstone.patch index 6c0d2efa2c..9c456ff046 100644 --- a/Spigot-Server-Patches/0100-Option-to-disable-BlockPhysicsEvent-for-Redstone.patch +++ b/Spigot-Server-Patches/0098-Option-to-disable-BlockPhysicsEvent-for-Redstone.patch @@ -1,4 +1,4 @@ -From 024301036db200b604d03f560d65dbda4d0a9ff8 Mon Sep 17 00:00:00 2001 +From 1efd458d6f84d28d9a77373c4d77e2fddaf7a04e Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 28 Mar 2016 19:55:45 -0400 Subject: [PATCH] Option to disable BlockPhysicsEvent for Redstone @@ -11,12 +11,12 @@ Defaulting this to false will provide substantial performance improvement by saving millions of event calls on redstone heavy servers. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index d29f2a4..9628c06 100644 +index d92ccc7..298c48f 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -286,4 +286,9 @@ public class PaperWorldConfig { - skeleHorseSpawnChance = 0.05D; // Vanilla - } +@@ -274,4 +274,9 @@ public class PaperWorldConfig { + private void skeleHorseSpawnChance() { + skeleHorseSpawnChance = getDouble("skeleton-horse-thunder-spawn-chance", 0.01D); // -1.0D represents a "vanilla" state } + + public boolean firePhysicsEventForRedstone = false; @@ -25,10 +25,10 @@ index d29f2a4..9628c06 100644 + } } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index b683c3e..0c7558f 100644 +index 14ac6d2..2573b8e 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -558,7 +558,7 @@ public abstract class World implements IBlockAccess { +@@ -578,7 +578,7 @@ public abstract class World implements IBlockAccess { try { // CraftBukkit start CraftWorld world = ((WorldServer) this).getWorld(); @@ -38,7 +38,7 @@ index b683c3e..0c7558f 100644 this.getServer().getPluginManager().callEvent(event); diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index c2a8bdf..fc33575 100644 +index 04f61e9..27e13e2 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -34,6 +34,7 @@ import org.bukkit.event.weather.LightningStrikeEvent; @@ -49,7 +49,7 @@ index c2a8bdf..fc33575 100644 private final MinecraftServer server; public EntityTracker tracker; private final PlayerChunkMap manager; -@@ -742,6 +743,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -744,6 +745,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { if (iblockdata.getMaterial() != Material.AIR && Block.a(iblockdata.getBlock(), nextticklistentry.a())) { try { @@ -57,7 +57,7 @@ index c2a8bdf..fc33575 100644 iblockdata.getBlock().b((World) this, nextticklistentry.a, iblockdata, this.random); } catch (Throwable throwable) { CrashReport crashreport = CrashReport.a(throwable, "Exception while ticking a block"); -@@ -749,7 +751,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -751,7 +753,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { CrashReportSystemDetails.a(crashreportsystemdetails, nextticklistentry.a, iblockdata); throw new ReportedException(crashreport); @@ -67,5 +67,5 @@ index c2a8bdf..fc33575 100644 timing.stopTiming(); // Paper } else { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0101-Entity-AddTo-RemoveFrom-World-Events.patch b/Spigot-Server-Patches/0099-Entity-AddTo-RemoveFrom-World-Events.patch similarity index 79% rename from Spigot-Server-Patches/0101-Entity-AddTo-RemoveFrom-World-Events.patch rename to Spigot-Server-Patches/0099-Entity-AddTo-RemoveFrom-World-Events.patch index b61922a018..16bc558cad 100644 --- a/Spigot-Server-Patches/0101-Entity-AddTo-RemoveFrom-World-Events.patch +++ b/Spigot-Server-Patches/0099-Entity-AddTo-RemoveFrom-World-Events.patch @@ -1,14 +1,14 @@ -From 1dabbdc5a9bad0dc21c2fa593554aab2539fa0e5 Mon Sep 17 00:00:00 2001 +From 78bdb62f1d9d62e09dd043e50eb7bedc83e42e44 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 28 Mar 2016 20:32:58 -0400 Subject: [PATCH] Entity AddTo/RemoveFrom World Events diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 0c7558f..a494569 100644 +index 2573b8e..345351e 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1120,6 +1120,7 @@ public abstract class World implements IBlockAccess { +@@ -1179,6 +1179,7 @@ public abstract class World implements IBlockAccess { } entity.valid = true; // CraftBukkit @@ -16,7 +16,7 @@ index 0c7558f..a494569 100644 } protected void c(Entity entity) { -@@ -1127,6 +1128,7 @@ public abstract class World implements IBlockAccess { +@@ -1186,6 +1187,7 @@ public abstract class World implements IBlockAccess { ((IWorldAccess) this.u.get(i)).b(entity); } @@ -25,5 +25,5 @@ index 0c7558f..a494569 100644 } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0102-Configurable-Chunk-Inhabited-Timer.patch b/Spigot-Server-Patches/0100-Configurable-Chunk-Inhabited-Timer.patch similarity index 88% rename from Spigot-Server-Patches/0102-Configurable-Chunk-Inhabited-Timer.patch rename to Spigot-Server-Patches/0100-Configurable-Chunk-Inhabited-Timer.patch index 371418e0a5..505ba72973 100644 --- a/Spigot-Server-Patches/0102-Configurable-Chunk-Inhabited-Timer.patch +++ b/Spigot-Server-Patches/0100-Configurable-Chunk-Inhabited-Timer.patch @@ -1,4 +1,4 @@ -From 804e44d92477a216516f1a5cbaad3c0c9b748f1c Mon Sep 17 00:00:00 2001 +From 53d2df55456f0fa55923f7f232506f25978885b6 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 28 Mar 2016 20:46:14 -0400 Subject: [PATCH] Configurable Chunk Inhabited Timer @@ -9,10 +9,10 @@ aspects of vanilla gameplay to this factor. For people who want all chunks to be treated equally, you can disable the timer. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 9628c06..6eb0a2d 100644 +index 298c48f..b99aa6b 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -291,4 +291,9 @@ public class PaperWorldConfig { +@@ -279,4 +279,9 @@ public class PaperWorldConfig { private void firePhysicsEventForRedstone() { firePhysicsEventForRedstone = getBoolean("fire-physics-event-for-redstone", firePhysicsEventForRedstone); } @@ -23,7 +23,7 @@ index 9628c06..6eb0a2d 100644 + } } diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 63e11aa..74ffa66 100644 +index 736fa1f..61d34fc 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -1405,7 +1405,7 @@ public class Chunk { @@ -36,5 +36,5 @@ index 63e11aa..74ffa66 100644 public void c(long i) { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0103-EntityPathfindEvent.patch b/Spigot-Server-Patches/0101-EntityPathfindEvent.patch similarity index 94% rename from Spigot-Server-Patches/0103-EntityPathfindEvent.patch rename to Spigot-Server-Patches/0101-EntityPathfindEvent.patch index f79d2557ef..12e5b8cbdd 100644 --- a/Spigot-Server-Patches/0103-EntityPathfindEvent.patch +++ b/Spigot-Server-Patches/0101-EntityPathfindEvent.patch @@ -1,4 +1,4 @@ -From 7288ca42285898ba7a54d71ff19d20cb5e60caf0 Mon Sep 17 00:00:00 2001 +From b43ccdb82d26397d2cc633a96a7e3cd037c41d2d Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 28 Mar 2016 21:22:26 -0400 Subject: [PATCH] EntityPathfindEvent @@ -6,7 +6,7 @@ Subject: [PATCH] EntityPathfindEvent Fires when an Entity decides to start moving to a location. diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java -index b1a90c1..5d0b5a4 100644 +index 43b2be5..c0ef240 100644 --- a/src/main/java/net/minecraft/server/NavigationAbstract.java +++ b/src/main/java/net/minecraft/server/NavigationAbstract.java @@ -4,7 +4,7 @@ import javax.annotation.Nullable; @@ -35,5 +35,5 @@ index b1a90c1..5d0b5a4 100644 float f = this.h(); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0104-Prevent-Waterflow-BlockFromToEvent-from-loading-chun.patch b/Spigot-Server-Patches/0102-Prevent-Waterflow-BlockFromToEvent-from-loading-chun.patch similarity index 89% rename from Spigot-Server-Patches/0104-Prevent-Waterflow-BlockFromToEvent-from-loading-chun.patch rename to Spigot-Server-Patches/0102-Prevent-Waterflow-BlockFromToEvent-from-loading-chun.patch index 9bb2f8fc0d..00ac819ae8 100644 --- a/Spigot-Server-Patches/0104-Prevent-Waterflow-BlockFromToEvent-from-loading-chun.patch +++ b/Spigot-Server-Patches/0102-Prevent-Waterflow-BlockFromToEvent-from-loading-chun.patch @@ -1,4 +1,4 @@ -From ecb9dba3254e2296f732959131afccde0c823752 Mon Sep 17 00:00:00 2001 +From fe206616818e3c39b87dcb2d1039d49bd437ccff Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 28 Mar 2016 22:03:09 -0400 Subject: [PATCH] Prevent Waterflow BlockFromToEvent from loading chunks @@ -12,10 +12,10 @@ of unloaded chunks anyways. This keeps behavior consistent, vs inconsistent flowing based on plugin triggered loads. diff --git a/src/main/java/net/minecraft/server/BlockFlowing.java b/src/main/java/net/minecraft/server/BlockFlowing.java -index 0336b9c..044ad71 100644 +index 3174326..009a757 100644 --- a/src/main/java/net/minecraft/server/BlockFlowing.java +++ b/src/main/java/net/minecraft/server/BlockFlowing.java -@@ -105,6 +105,7 @@ public class BlockFlowing extends BlockFluids { +@@ -99,6 +99,7 @@ public class BlockFlowing extends BlockFluids { IBlockData iblockdata2 = world.getType(blockposition.down()); if (this.h(world, blockposition.down(), iblockdata2)) { @@ -23,7 +23,7 @@ index 0336b9c..044ad71 100644 // CraftBukkit start - Send "down" to the server BlockFromToEvent event = new BlockFromToEvent(source, BlockFace.DOWN); if (server != null) { -@@ -142,6 +143,7 @@ public class BlockFlowing extends BlockFluids { +@@ -136,6 +137,7 @@ public class BlockFlowing extends BlockFluids { EnumDirection enumdirection1 = (EnumDirection) iterator1.next(); // CraftBukkit start @@ -31,7 +31,7 @@ index 0336b9c..044ad71 100644 BlockFromToEvent event = new BlockFromToEvent(source, org.bukkit.craftbukkit.block.CraftBlock.notchToBlockFace(enumdirection1)); if (server != null) { server.getPluginManager().callEvent(event); -@@ -156,8 +158,14 @@ public class BlockFlowing extends BlockFluids { +@@ -150,8 +152,14 @@ public class BlockFlowing extends BlockFluids { } @@ -48,5 +48,5 @@ index 0336b9c..044ad71 100644 if (this.material == Material.LAVA) { this.fizz(world, blockposition); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0106-Reduce-IO-ops-opening-a-new-region-file.patch b/Spigot-Server-Patches/0103-Reduce-IO-ops-opening-a-new-region-file.patch similarity index 90% rename from Spigot-Server-Patches/0106-Reduce-IO-ops-opening-a-new-region-file.patch rename to Spigot-Server-Patches/0103-Reduce-IO-ops-opening-a-new-region-file.patch index a29c78a829..ff1e817d52 100644 --- a/Spigot-Server-Patches/0106-Reduce-IO-ops-opening-a-new-region-file.patch +++ b/Spigot-Server-Patches/0103-Reduce-IO-ops-opening-a-new-region-file.patch @@ -1,11 +1,11 @@ -From 9b329259fc400d42ff5cf475495f78d62895d6df Mon Sep 17 00:00:00 2001 +From bf6b9a133ea2b2d0f540eab577914809e73206d1 Mon Sep 17 00:00:00 2001 From: Antony Riley Date: Tue, 29 Mar 2016 06:56:23 +0300 Subject: [PATCH] Reduce IO ops opening a new region file. diff --git a/src/main/java/net/minecraft/server/RegionFile.java b/src/main/java/net/minecraft/server/RegionFile.java -index 1fe5019..45d490e 100644 +index 9cfc46b..637e5ba 100644 --- a/src/main/java/net/minecraft/server/RegionFile.java +++ b/src/main/java/net/minecraft/server/RegionFile.java @@ -8,9 +8,12 @@ import java.io.ByteArrayInputStream; @@ -21,7 +21,7 @@ index 1fe5019..45d490e 100644 import java.util.List; import java.util.zip.DeflaterOutputStream; import java.util.zip.GZIPInputStream; -@@ -66,8 +69,16 @@ public class RegionFile { +@@ -67,8 +70,16 @@ public class RegionFile { int k; @@ -39,7 +39,7 @@ index 1fe5019..45d490e 100644 this.d[j] = k; if (k != 0 && (k >> 8) + (k & 255) <= this.f.size()) { for (int l = 0; l < (k & 255); ++l) { -@@ -77,7 +88,7 @@ public class RegionFile { +@@ -78,7 +89,7 @@ public class RegionFile { } for (j = 0; j < 1024; ++j) { @@ -49,5 +49,5 @@ index 1fe5019..45d490e 100644 } } catch (IOException ioexception) { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0107-Sanitise-RegionFileCache-and-make-configurable.patch b/Spigot-Server-Patches/0104-Sanitise-RegionFileCache-and-make-configurable.patch similarity index 95% rename from Spigot-Server-Patches/0107-Sanitise-RegionFileCache-and-make-configurable.patch rename to Spigot-Server-Patches/0104-Sanitise-RegionFileCache-and-make-configurable.patch index 41eab1a234..36cd77b8c8 100644 --- a/Spigot-Server-Patches/0107-Sanitise-RegionFileCache-and-make-configurable.patch +++ b/Spigot-Server-Patches/0104-Sanitise-RegionFileCache-and-make-configurable.patch @@ -1,4 +1,4 @@ -From 4ff272556b10e7aa88f616e93100ca49e44a7a79 Mon Sep 17 00:00:00 2001 +From b33c16e4099083ce2d1913b8ffde98021ff18ec0 Mon Sep 17 00:00:00 2001 From: Antony Riley Date: Tue, 29 Mar 2016 08:22:55 +0300 Subject: [PATCH] Sanitise RegionFileCache and make configurable. @@ -25,7 +25,7 @@ index a60aee6..1b9c852 100644 + } } diff --git a/src/main/java/net/minecraft/server/RegionFileCache.java b/src/main/java/net/minecraft/server/RegionFileCache.java -index 2121e84..a7ab262 100644 +index 19fbf9b..ad00c39 100644 --- a/src/main/java/net/minecraft/server/RegionFileCache.java +++ b/src/main/java/net/minecraft/server/RegionFileCache.java @@ -8,10 +8,12 @@ import java.io.File; @@ -53,7 +53,7 @@ index 2121e84..a7ab262 100644 } RegionFile regionfile1 = new RegionFile(file2); -@@ -43,6 +45,22 @@ public class RegionFileCache { +@@ -64,6 +66,22 @@ public class RegionFileCache { } } @@ -77,5 +77,5 @@ index 2121e84..a7ab262 100644 Iterator iterator = RegionFileCache.a.values().iterator(); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0108-Add-getEntity-by-UUID-API.patch b/Spigot-Server-Patches/0105-Add-getEntity-by-UUID-API.patch similarity index 84% rename from Spigot-Server-Patches/0108-Add-getEntity-by-UUID-API.patch rename to Spigot-Server-Patches/0105-Add-getEntity-by-UUID-API.patch index b0addf7ba5..fb419bb51c 100644 --- a/Spigot-Server-Patches/0108-Add-getEntity-by-UUID-API.patch +++ b/Spigot-Server-Patches/0105-Add-getEntity-by-UUID-API.patch @@ -1,22 +1,22 @@ -From ecd53891c287dde51e1bc92bd2a4624c7c5d0cef Mon Sep 17 00:00:00 2001 +From 443056c8ed9fbe0c695c2e7e315b9e9234c7537e Mon Sep 17 00:00:00 2001 From: DemonWav Date: Wed, 30 Mar 2016 01:20:11 -0500 Subject: [PATCH] Add getEntity by UUID API diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 885fc80..7bb6033 100644 +index a872e76..3339985 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1506,6 +1506,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs - this.Y = 0L; +@@ -1521,6 +1521,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs + this.Z = 0L; } + public Entity getEntity(UUID uuid) { return this.a(uuid); } // Paper - OBFHELPER @Nullable public Entity a(UUID uuid) { WorldServer[] aworldserver = this.worldServer; -@@ -1519,7 +1520,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -1534,7 +1535,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs if (worldserver != null) { Entity entity = worldserver.getEntity(uuid); @@ -26,7 +26,7 @@ index 885fc80..7bb6033 100644 } } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 15bef42..703aff1 100644 +index afefbc3..26528bc 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -53,6 +53,7 @@ import org.bukkit.configuration.serialization.ConfigurationSerialization; @@ -37,7 +37,7 @@ index 15bef42..703aff1 100644 import org.bukkit.craftbukkit.entity.CraftPlayer; import org.bukkit.craftbukkit.generator.CraftChunkData; import org.bukkit.craftbukkit.help.SimpleHelpMap; -@@ -1848,5 +1849,14 @@ public final class CraftServer implements Server { +@@ -1843,5 +1844,14 @@ public final class CraftServer implements Server { }); } } @@ -53,5 +53,5 @@ index 15bef42..703aff1 100644 // Paper end } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0105-Minecart-drop-name-workaround.patch b/Spigot-Server-Patches/0105-Minecart-drop-name-workaround.patch deleted file mode 100644 index 88a9a87265..0000000000 --- a/Spigot-Server-Patches/0105-Minecart-drop-name-workaround.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 8a94f4550cf262cc0d651b0f080673bd7316b6d1 Mon Sep 17 00:00:00 2001 -From: Fabse -Date: Mon, 28 Mar 2016 00:46:46 +0200 -Subject: [PATCH] Minecart drop name workaround - -This is a workaround for MC-68446 (or similar). -In Survival Minecraft this bug only shows in minecart drops, so this is the only thing fixed here. - -diff --git a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java -index 4438d83..9df7dfc 100644 ---- a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java -+++ b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java -@@ -172,7 +172,7 @@ public abstract class EntityMinecartAbstract extends Entity implements INamableT - if (this.world.getGameRules().getBoolean("doEntityDrops")) { - ItemStack itemstack = new ItemStack(Items.MINECART, 1); - -- if (this.getName() != null) { -+ if (this.hasCustomName()) { // Paper - Only set item name if custom name is set. Workaround for MC-68446 - itemstack.c(this.getName()); - } - --- -2.9.3 - diff --git a/Spigot-Server-Patches/0109-Use-Optimized-Collections.patch b/Spigot-Server-Patches/0106-Use-Optimized-Collections.patch similarity index 92% rename from Spigot-Server-Patches/0109-Use-Optimized-Collections.patch rename to Spigot-Server-Patches/0106-Use-Optimized-Collections.patch index c666bfb95b..4e8d09fb15 100644 --- a/Spigot-Server-Patches/0109-Use-Optimized-Collections.patch +++ b/Spigot-Server-Patches/0106-Use-Optimized-Collections.patch @@ -1,4 +1,4 @@ -From 3159962f7eb8d20c1fe453f71898def9d8b7685f Mon Sep 17 00:00:00 2001 +From 9f18ec97a8e587faf904677dffb029e4faf1a9fb Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 30 Mar 2016 02:13:24 -0400 Subject: [PATCH] Use Optimized Collections @@ -13,10 +13,10 @@ These collections are super fast as seen http://java-performance.info/hashmap-overview-jdk-fastutil-goldman-sachs-hppc-koloboke-trove-january-2015/ diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index ad94c5a..37fac92 100644 +index 902f9ac..a57bcaf 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java -@@ -23,7 +23,7 @@ import org.bukkit.event.world.ChunkUnloadEvent; +@@ -24,7 +24,7 @@ import org.bukkit.event.world.ChunkUnloadEvent; public class ChunkProviderServer implements IChunkProvider { private static final Logger a = LogManager.getLogger(); @@ -26,7 +26,7 @@ index ad94c5a..37fac92 100644 private final IChunkLoader chunkLoader; // Paper start diff --git a/src/main/java/net/minecraft/server/DataWatcher.java b/src/main/java/net/minecraft/server/DataWatcher.java -index 47968a8..1f5e6c0 100644 +index 419add5..820c152 100644 --- a/src/main/java/net/minecraft/server/DataWatcher.java +++ b/src/main/java/net/minecraft/server/DataWatcher.java @@ -12,6 +12,7 @@ import java.util.Map; @@ -47,5 +47,5 @@ index 47968a8..1f5e6c0 100644 private boolean f = true; private boolean g; -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0110-Do-not-load-chunks-for-light-checks.patch b/Spigot-Server-Patches/0107-Do-not-load-chunks-for-light-checks.patch similarity index 83% rename from Spigot-Server-Patches/0110-Do-not-load-chunks-for-light-checks.patch rename to Spigot-Server-Patches/0107-Do-not-load-chunks-for-light-checks.patch index 8483e25b9a..ee95655069 100644 --- a/Spigot-Server-Patches/0110-Do-not-load-chunks-for-light-checks.patch +++ b/Spigot-Server-Patches/0107-Do-not-load-chunks-for-light-checks.patch @@ -1,4 +1,4 @@ -From 3d03fc9bd125d878d67e631adaefac99cae57060 Mon Sep 17 00:00:00 2001 +From 3786f7789bb15a32800a8cb9331b3538510735bf Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 31 Mar 2016 19:17:58 -0400 Subject: [PATCH] Do not load chunks for light checks @@ -7,10 +7,10 @@ Should only happen for blocks on the edge that uses neighbors light level (certain blocks). In that case, there will be 3-4 other neighbors to get a light level from. diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index a494569..1dc8af1 100644 +index 345351e..b175b28 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -707,6 +707,7 @@ public abstract class World implements IBlockAccess { +@@ -759,6 +759,7 @@ public abstract class World implements IBlockAccess { if (blockposition.getY() >= 256) { blockposition = new BlockPosition(blockposition.getX(), 255, blockposition.getZ()); } @@ -19,5 +19,5 @@ index a494569..1dc8af1 100644 Chunk chunk = this.getChunkAtWorldCoords(blockposition); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0111-Add-PlayerUseUnknownEntityEvent.patch b/Spigot-Server-Patches/0108-Add-PlayerUseUnknownEntityEvent.patch similarity index 86% rename from Spigot-Server-Patches/0111-Add-PlayerUseUnknownEntityEvent.patch rename to Spigot-Server-Patches/0108-Add-PlayerUseUnknownEntityEvent.patch index ec40ce1bdc..f599525f7d 100644 --- a/Spigot-Server-Patches/0111-Add-PlayerUseUnknownEntityEvent.patch +++ b/Spigot-Server-Patches/0108-Add-PlayerUseUnknownEntityEvent.patch @@ -1,14 +1,14 @@ -From 333e27c742b38efc4bcecbd2617c4b85c188afab Mon Sep 17 00:00:00 2001 +From 073cf1e4b1797af8772ea2146f63542e4ee2bf4c Mon Sep 17 00:00:00 2001 From: Jedediah Smith Date: Sat, 2 Apr 2016 05:09:16 -0400 Subject: [PATCH] Add PlayerUseUnknownEntityEvent diff --git a/src/main/java/net/minecraft/server/PacketPlayInUseEntity.java b/src/main/java/net/minecraft/server/PacketPlayInUseEntity.java -index 2b23a5d..6464a84 100644 +index c67cb54..521f462 100644 --- a/src/main/java/net/minecraft/server/PacketPlayInUseEntity.java +++ b/src/main/java/net/minecraft/server/PacketPlayInUseEntity.java -@@ -4,7 +4,7 @@ import java.io.IOException; +@@ -5,7 +5,7 @@ import javax.annotation.Nullable; public class PacketPlayInUseEntity implements Packet { @@ -18,10 +18,10 @@ index 2b23a5d..6464a84 100644 private Vec3D c; private EnumHand d; diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 5e9eca1..f562373 100644 +index 724b9ad..6264494 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -1622,6 +1622,16 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { +@@ -1596,6 +1596,16 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } } } @@ -39,5 +39,5 @@ index 5e9eca1..f562373 100644 } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0112-Fix-reducedDebugInfo-not-initialized-on-client.patch b/Spigot-Server-Patches/0109-Fix-reducedDebugInfo-not-initialized-on-client.patch similarity index 77% rename from Spigot-Server-Patches/0112-Fix-reducedDebugInfo-not-initialized-on-client.patch rename to Spigot-Server-Patches/0109-Fix-reducedDebugInfo-not-initialized-on-client.patch index c7d1d2d12e..e664b382c5 100644 --- a/Spigot-Server-Patches/0112-Fix-reducedDebugInfo-not-initialized-on-client.patch +++ b/Spigot-Server-Patches/0109-Fix-reducedDebugInfo-not-initialized-on-client.patch @@ -1,15 +1,15 @@ -From 8b2930b890375f69765ba4276e1adea5c717ee18 Mon Sep 17 00:00:00 2001 +From af7876ac4d5a167fa8d7c84d174e842212713975 Mon Sep 17 00:00:00 2001 From: Jedediah Smith Date: Sat, 2 Apr 2016 20:37:03 -0400 Subject: [PATCH] Fix reducedDebugInfo not initialized on client diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 28bcef8..d26da3a 100644 +index 6e02044..99c420a 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -153,6 +153,7 @@ public abstract class PlayerList { - playerconnection.sendPacket(new PacketPlayOutSpawnPosition(blockposition)); +@@ -151,6 +151,7 @@ public abstract class PlayerList { + playerconnection.sendPacket(new PacketPlayOutServerDifficulty(worlddata.getDifficulty(), worlddata.isDifficultyLocked())); playerconnection.sendPacket(new PacketPlayOutAbilities(entityplayer.abilities)); playerconnection.sendPacket(new PacketPlayOutHeldItemSlot(entityplayer.inventory.itemInHandIndex)); + playerconnection.sendPacket(new PacketPlayOutEntityStatus(entityplayer, (byte) (worldserver.getGameRules().getBoolean("reducedDebugInfo") ? 22 : 23))); // Paper - fix this rule not being initialized on the client @@ -17,5 +17,5 @@ index 28bcef8..d26da3a 100644 entityplayer.getStatisticManager().d(); entityplayer.getStatisticManager().updateStatistics(entityplayer); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0113-Configurable-Grass-Spread-Tick-Rate.patch b/Spigot-Server-Patches/0110-Configurable-Grass-Spread-Tick-Rate.patch similarity index 86% rename from Spigot-Server-Patches/0113-Configurable-Grass-Spread-Tick-Rate.patch rename to Spigot-Server-Patches/0110-Configurable-Grass-Spread-Tick-Rate.patch index f715cb336b..e6cc4b3817 100644 --- a/Spigot-Server-Patches/0113-Configurable-Grass-Spread-Tick-Rate.patch +++ b/Spigot-Server-Patches/0110-Configurable-Grass-Spread-Tick-Rate.patch @@ -1,14 +1,14 @@ -From 0f3548ee8b973ee84a6ff4e82be5e62addac9a48 Mon Sep 17 00:00:00 2001 +From 3f0c460538337858040cb082e5c463d06ff32f7c Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 3 Apr 2016 16:28:17 -0400 Subject: [PATCH] Configurable Grass Spread Tick Rate diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 6eb0a2d..bc3515c 100644 +index b99aa6b..615a6af 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -296,4 +296,10 @@ public class PaperWorldConfig { +@@ -284,4 +284,10 @@ public class PaperWorldConfig { private void useInhabitedTime() { useInhabitedTime = getBoolean("use-chunk-inhabited-timer", true); } @@ -20,10 +20,10 @@ index 6eb0a2d..bc3515c 100644 + } } diff --git a/src/main/java/net/minecraft/server/BlockGrass.java b/src/main/java/net/minecraft/server/BlockGrass.java -index 21e722d..e41f2b2 100644 +index 8b43e60..5cbc95f 100644 --- a/src/main/java/net/minecraft/server/BlockGrass.java +++ b/src/main/java/net/minecraft/server/BlockGrass.java -@@ -29,6 +29,7 @@ public class BlockGrass extends Block implements IBlockFragilePlantElement { +@@ -28,6 +28,7 @@ public class BlockGrass extends Block implements IBlockFragilePlantElement { } public void b(World world, BlockPosition blockposition, IBlockData iblockdata, Random random) { @@ -32,5 +32,5 @@ index 21e722d..e41f2b2 100644 int lightLevel = -1; // Paper if (world.getType(blockposition.up()).c() > 2 && (lightLevel = world.getLightLevel(blockposition.up())) < 4) { // Paper - move light check to end to avoid unneeded light lookups -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0114-Configurable-Keep-Spawn-Loaded-range-per-world.patch b/Spigot-Server-Patches/0111-Configurable-Keep-Spawn-Loaded-range-per-world.patch similarity index 85% rename from Spigot-Server-Patches/0114-Configurable-Keep-Spawn-Loaded-range-per-world.patch rename to Spigot-Server-Patches/0111-Configurable-Keep-Spawn-Loaded-range-per-world.patch index 74190276e7..926d7614ee 100644 --- a/Spigot-Server-Patches/0114-Configurable-Keep-Spawn-Loaded-range-per-world.patch +++ b/Spigot-Server-Patches/0111-Configurable-Keep-Spawn-Loaded-range-per-world.patch @@ -1,4 +1,4 @@ -From 77d643755417d3d0c1e147c1e164227c2350ebf6 Mon Sep 17 00:00:00 2001 +From fcea52254a12482b03687fce9103b55b7117c789 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 13 Sep 2014 23:14:43 -0400 Subject: [PATCH] Configurable Keep Spawn Loaded range per world @@ -6,10 +6,10 @@ Subject: [PATCH] Configurable Keep Spawn Loaded range per world This lets you disable it for some worlds and lower it for others. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index bc3515c..84694b2 100644 +index 615a6af..6517c32 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -302,4 +302,10 @@ public class PaperWorldConfig { +@@ -290,4 +290,10 @@ public class PaperWorldConfig { grassUpdateRate = Math.max(0, getInt("grass-spread-tick-rate", grassUpdateRate)); log("Grass Spread Tick Rate: " + grassUpdateRate); } @@ -21,26 +21,28 @@ index bc3515c..84694b2 100644 + } } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 7bb6033..e35341b 100644 +index 3339985..4cb71eb 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -349,8 +349,9 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs - long j = av(); +@@ -352,8 +352,11 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs + long j = aw(); i = 0; - for (int k = -192; k <= 192 && this.isRunning(); k += 16) { - for (int l = -192; l <= 192 && this.isRunning(); l += 16) { -+ short radius = worldserver.paperConfig.keepLoadedRange; // Paper -+ for (int k = -radius; k <= radius && this.isRunning(); k += 16) { // Paper -+ for (int l = -radius; l <= radius && this.isRunning(); l += 16) { // Paper - long i1 = av(); ++ // Paper start ++ short radius = worldserver.paperConfig.keepLoadedRange; ++ for (int k = -radius; k <= radius && this.isRunning(); k += 16) { ++ for (int l = -radius; l <= radius && this.isRunning(); l += 16) { ++ // Paper end + long i1 = aw(); if (i1 - j > 1000L) { diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 1dc8af1..bb578d9 100644 +index b175b28..bd81a19 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -3249,8 +3249,9 @@ public abstract class World implements IBlockAccess { +@@ -3222,8 +3222,9 @@ public abstract class World implements IBlockAccess { int k = i * 16 + 8 - blockposition.getX(); int l = j * 16 + 8 - blockposition.getZ(); boolean flag = true; @@ -52,7 +54,7 @@ index 1dc8af1..bb578d9 100644 public void a(Packet packet) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 703aff1..100142e 100644 +index 26528bc..6dad363 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -949,7 +949,7 @@ public final class CraftServer implements Server { @@ -65,10 +67,10 @@ index 703aff1..100142e 100644 for (int j = -short1; j <= short1; j += 16) { for (int k = -short1; k <= short1; k += 16) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 9ef8fc1..e85a0a0 100644 +index c507858..0866f54 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1199,8 +1199,9 @@ public class CraftWorld implements World { +@@ -1240,8 +1240,9 @@ public class CraftWorld implements World { int chunkCoordX = chunkcoordinates.getX() >> 4; int chunkCoordZ = chunkcoordinates.getZ() >> 4; // Cycle through the 25x25 Chunks around it to load/unload the chunks. @@ -81,5 +83,5 @@ index 9ef8fc1..e85a0a0 100644 loadChunk(chunkCoordX + x, chunkCoordZ + z); } else { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0115-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch b/Spigot-Server-Patches/0112-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch similarity index 58% rename from Spigot-Server-Patches/0115-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch rename to Spigot-Server-Patches/0112-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch index 18f80efc95..de23ef993b 100644 --- a/Spigot-Server-Patches/0115-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch +++ b/Spigot-Server-Patches/0112-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch @@ -1,21 +1,21 @@ -From 964fa46b5db53f5ccb4a3a53876cee69afc93a1d Mon Sep 17 00:00:00 2001 +From 951354f7bd62febe717bcbe47708e6a8322b0b2a Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 3 Apr 2016 17:48:50 -0400 Subject: [PATCH] Fix Cancelling BlockPlaceEvent triggering physics diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index bb578d9..4452107 100644 +index bd81a19..f0f18b2 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -516,6 +516,7 @@ public abstract class World implements IBlockAccess { +@@ -532,6 +532,7 @@ public abstract class World implements IBlockAccess { } - public void applyPhysics(BlockPosition blockposition, Block block) { + public void applyPhysics(BlockPosition blockposition, Block block, boolean flag) { + if (captureBlockStates) { return; } // Paper - Cancel all physics during placement - this.e(blockposition.west(), block); - this.e(blockposition.east(), block); - this.e(blockposition.down(), block); + this.a(blockposition.west(), block, blockposition); + this.a(blockposition.east(), block, blockposition); + this.a(blockposition.down(), block, blockposition); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0116-Don-t-spam-reload-spawn-chunks-in-nether-end.patch b/Spigot-Server-Patches/0113-Don-t-spam-reload-spawn-chunks-in-nether-end.patch similarity index 65% rename from Spigot-Server-Patches/0116-Don-t-spam-reload-spawn-chunks-in-nether-end.patch rename to Spigot-Server-Patches/0113-Don-t-spam-reload-spawn-chunks-in-nether-end.patch index c2d6287e50..d93be77be6 100644 --- a/Spigot-Server-Patches/0116-Don-t-spam-reload-spawn-chunks-in-nether-end.patch +++ b/Spigot-Server-Patches/0113-Don-t-spam-reload-spawn-chunks-in-nether-end.patch @@ -1,35 +1,33 @@ -From 5469bbf12cf3ecc8f5c41c8567a042c13a860331 Mon Sep 17 00:00:00 2001 +From 2f5acd3d033a39924b042ddfc9aecbfd5a5fb91d Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 5 Apr 2016 19:42:22 -0400 Subject: [PATCH] Don't spam reload spawn chunks in nether/end diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 4452107..34b10c4 100644 +index f0f18b2..124c24a 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -3245,6 +3245,7 @@ public abstract class World implements IBlockAccess { +@@ -3218,6 +3218,7 @@ public abstract class World implements IBlockAccess { return this.N; } -+ public boolean shouldStayLoaded(int i, int j) { return d(i, j); } // Paper - OBFHELPER - public boolean d(int i, int j) { ++ public boolean shouldStayLoaded(int i, int j) { return e(i, j); } // Paper - OBFHELPER + public boolean e(int i, int j) { BlockPosition blockposition = this.getSpawn(); int k = i * 16 + 8 - blockposition.getX(); diff --git a/src/main/java/net/minecraft/server/WorldProvider.java b/src/main/java/net/minecraft/server/WorldProvider.java -index e30d346..d1b2d15 100644 +index 660f3bc..9adadaf 100644 --- a/src/main/java/net/minecraft/server/WorldProvider.java +++ b/src/main/java/net/minecraft/server/WorldProvider.java -@@ -127,7 +127,7 @@ public abstract class WorldProvider { +@@ -137,6 +137,6 @@ public abstract class WorldProvider { + public void s() {} - public void r() {} - -- public boolean c(int i, int j) { + public boolean c(int i, int j) { - return true; -+ public boolean c(int i, int j) { // Method is "can chunk unload" + return !this.b.shouldStayLoaded(i, j); // Paper - Use shouldStayLoaded check for all worlds } } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0117-Remove-Debug-checks-from-DataBits.patch b/Spigot-Server-Patches/0114-Remove-Debug-checks-from-DataBits.patch similarity index 95% rename from Spigot-Server-Patches/0117-Remove-Debug-checks-from-DataBits.patch rename to Spigot-Server-Patches/0114-Remove-Debug-checks-from-DataBits.patch index b7e05158bb..99e977790c 100644 --- a/Spigot-Server-Patches/0117-Remove-Debug-checks-from-DataBits.patch +++ b/Spigot-Server-Patches/0114-Remove-Debug-checks-from-DataBits.patch @@ -1,4 +1,4 @@ -From 63642fdecddb32e6fa31a1e83ca10f67c7869bb7 Mon Sep 17 00:00:00 2001 +From fd1c35b9d21856fe5eaecb673f4b1ce372a3fe2f Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 5 Apr 2016 21:38:58 -0400 Subject: [PATCH] Remove Debug checks from DataBits @@ -42,5 +42,5 @@ index f3a6799..fa0fd8a 100644 int k = j / 64; int l = ((i + 1) * this.b - 1) / 64; -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0118-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch b/Spigot-Server-Patches/0115-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch similarity index 88% rename from Spigot-Server-Patches/0118-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch rename to Spigot-Server-Patches/0115-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch index 86d54fa89d..25234e157f 100644 --- a/Spigot-Server-Patches/0118-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch +++ b/Spigot-Server-Patches/0115-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch @@ -1,14 +1,14 @@ -From eae31361f0bb0cdd478a0654fb10b034e4586117 Mon Sep 17 00:00:00 2001 +From a8b640a52d70d9d23336ec4294ebb4b893533e41 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Wed, 6 Apr 2016 01:04:23 -0500 Subject: [PATCH] Option to use vanilla per-world scoreboard coloring on names diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 84694b2..64e20d5 100644 +index 6517c32..ea254a7 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -308,4 +308,9 @@ public class PaperWorldConfig { +@@ -296,4 +296,9 @@ public class PaperWorldConfig { keepLoadedRange = (short) (getInt("keep-spawn-loaded-range", Math.min(spigotConfig.viewDistance, 8)) * 16); log( "Keep Spawn Loaded Range: " + (keepLoadedRange/16)); } @@ -19,10 +19,10 @@ index 84694b2..64e20d5 100644 + } } diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 7696998..966f9fd 100644 +index d8ebe11..2d0e132 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1894,6 +1894,7 @@ public abstract class Entity implements ICommandListener { +@@ -1949,6 +1949,7 @@ public abstract class Entity implements ICommandListener { return this.getFlag(5); } @@ -31,10 +31,10 @@ index 7696998..966f9fd 100644 public ScoreboardTeamBase aQ() { if (!this.world.paperConfig.nonPlayerEntitiesOnScoreboards && !(this instanceof EntityHuman)) { return null; } // Paper diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index f562373..236062d 100644 +index 6264494..9fa9ad6 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -1352,7 +1352,14 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { +@@ -1329,7 +1329,14 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { return; } @@ -51,5 +51,5 @@ index f562373..236062d 100644 if (((LazyPlayerSet) event.getRecipients()).isLazy()) { for (Object recipient : minecraftServer.getPlayerList().players) { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0119-Workaround-for-setting-passengers-on-players.patch b/Spigot-Server-Patches/0116-Workaround-for-setting-passengers-on-players.patch similarity index 91% rename from Spigot-Server-Patches/0119-Workaround-for-setting-passengers-on-players.patch rename to Spigot-Server-Patches/0116-Workaround-for-setting-passengers-on-players.patch index 9d2f2ecafa..adff6d51c8 100644 --- a/Spigot-Server-Patches/0119-Workaround-for-setting-passengers-on-players.patch +++ b/Spigot-Server-Patches/0116-Workaround-for-setting-passengers-on-players.patch @@ -1,4 +1,4 @@ -From ec76fc711f8238be492858ea353f3137ad9b6381 Mon Sep 17 00:00:00 2001 +From 1e94ddba176b1abc7250080df04e7e0a2eb61404 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Sun, 10 Apr 2016 03:23:32 -0500 Subject: [PATCH] Workaround for setting passengers on players @@ -6,7 +6,7 @@ Subject: [PATCH] Workaround for setting passengers on players SPIGOT-1915 & GH-114 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index d3f4c3f..aff5f44 100644 +index 486ba73..4cb9a82 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -582,6 +582,17 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -28,5 +28,5 @@ index d3f4c3f..aff5f44 100644 public void setSneaking(boolean sneak) { getHandle().setSneaking(sneak); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0120-Remove-unused-World-Tile-Entity-List.patch b/Spigot-Server-Patches/0117-Remove-unused-World-Tile-Entity-List.patch similarity index 85% rename from Spigot-Server-Patches/0120-Remove-unused-World-Tile-Entity-List.patch rename to Spigot-Server-Patches/0117-Remove-unused-World-Tile-Entity-List.patch index 916b42d0a5..13f4fa324d 100644 --- a/Spigot-Server-Patches/0120-Remove-unused-World-Tile-Entity-List.patch +++ b/Spigot-Server-Patches/0117-Remove-unused-World-Tile-Entity-List.patch @@ -1,4 +1,4 @@ -From 788688033b2b6ff1a13273b94ebe06f5b00841be Mon Sep 17 00:00:00 2001 +From de1f0ef246faa7fb26a52bac94bcacc6748219df Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 13 Apr 2016 00:25:28 -0400 Subject: [PATCH] Remove unused World Tile Entity List @@ -6,10 +6,10 @@ Subject: [PATCH] Remove unused World Tile Entity List Massive hit to performance and it is completely unnecessary. diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 34b10c4..71c5596 100644 +index 124c24a..da255bb 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -69,7 +69,7 @@ public abstract class World implements IBlockAccess { +@@ -68,7 +68,7 @@ public abstract class World implements IBlockAccess { }; // Spigot end protected final Set f = Sets.newHashSet(); // Paper @@ -18,7 +18,7 @@ index 34b10c4..71c5596 100644 public final List tileEntityListTick = Lists.newArrayList(); private final List b = Lists.newArrayList(); private final Set tileEntityListUnload = Sets.newHashSet(); // Paper -@@ -1567,7 +1567,7 @@ public abstract class World implements IBlockAccess { +@@ -1589,7 +1589,7 @@ public abstract class World implements IBlockAccess { // CraftBukkit start - From below, clean up tile entities before ticking them if (!this.tileEntityListUnload.isEmpty()) { this.tileEntityListTick.removeAll(this.tileEntityListUnload); @@ -27,8 +27,8 @@ index 34b10c4..71c5596 100644 this.tileEntityListUnload.clear(); } // CraftBukkit end -@@ -1618,7 +1618,7 @@ public abstract class World implements IBlockAccess { - if (tileentity.x()) { +@@ -1640,7 +1640,7 @@ public abstract class World implements IBlockAccess { + if (tileentity.y()) { tilesThisCycle--; this.tileEntityListTick.remove(tileTickPosition--); - this.tileEntityList.remove(tileentity); @@ -36,7 +36,7 @@ index 34b10c4..71c5596 100644 if (this.isLoaded(tileentity.getPosition())) { this.getChunkAtWorldCoords(tileentity.getPosition()).d(tileentity.getPosition()); } -@@ -1656,7 +1656,7 @@ public abstract class World implements IBlockAccess { +@@ -1678,7 +1678,7 @@ public abstract class World implements IBlockAccess { this.notify(tileentity1.getPosition(), iblockdata, iblockdata, 3); // CraftBukkit start // From above, don't screw this up - SPIGOT-1746 @@ -45,7 +45,7 @@ index 34b10c4..71c5596 100644 this.a(tileentity1); } // CraftBukkit end -@@ -1676,9 +1676,9 @@ public abstract class World implements IBlockAccess { +@@ -1698,9 +1698,9 @@ public abstract class World implements IBlockAccess { protected void l() {} public boolean a(TileEntity tileentity) { @@ -57,7 +57,7 @@ index 34b10c4..71c5596 100644 this.tileEntityListTick.add(tileentity); } -@@ -2155,7 +2155,7 @@ public abstract class World implements IBlockAccess { +@@ -2142,7 +2142,7 @@ public abstract class World implements IBlockAccess { } else { if (tileentity != null) { this.b.remove(tileentity); @@ -67,5 +67,5 @@ index 34b10c4..71c5596 100644 } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0121-Don-t-tick-Skulls-unused-code.patch b/Spigot-Server-Patches/0118-Don-t-tick-Skulls-unused-code.patch similarity index 87% rename from Spigot-Server-Patches/0121-Don-t-tick-Skulls-unused-code.patch rename to Spigot-Server-Patches/0118-Don-t-tick-Skulls-unused-code.patch index 18563c0193..ba2d613903 100644 --- a/Spigot-Server-Patches/0121-Don-t-tick-Skulls-unused-code.patch +++ b/Spigot-Server-Patches/0118-Don-t-tick-Skulls-unused-code.patch @@ -1,11 +1,11 @@ -From 65e19363d0f72f23d13d3aeb92633dc47c2c22f7 Mon Sep 17 00:00:00 2001 +From fb9c00889babf3171e41e25c9431eda1d41e133f Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 13 Apr 2016 00:30:10 -0400 Subject: [PATCH] Don't tick Skulls - unused code diff --git a/src/main/java/net/minecraft/server/TileEntitySkull.java b/src/main/java/net/minecraft/server/TileEntitySkull.java -index a8adbcb..ff5929f 100644 +index edd6fb6..380373c 100644 --- a/src/main/java/net/minecraft/server/TileEntitySkull.java +++ b/src/main/java/net/minecraft/server/TileEntitySkull.java @@ -21,7 +21,7 @@ import com.mojang.authlib.Agent; @@ -18,5 +18,5 @@ index a8adbcb..ff5929f 100644 private int a; public int rotation; -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0122-Configurable-Player-Collision.patch b/Spigot-Server-Patches/0119-Configurable-Player-Collision.patch similarity index 92% rename from Spigot-Server-Patches/0122-Configurable-Player-Collision.patch rename to Spigot-Server-Patches/0119-Configurable-Player-Collision.patch index aca49bf44b..cd39fb3512 100644 --- a/Spigot-Server-Patches/0122-Configurable-Player-Collision.patch +++ b/Spigot-Server-Patches/0119-Configurable-Player-Collision.patch @@ -1,4 +1,4 @@ -From b422187190500a2c81f4ef240839151357180fae Mon Sep 17 00:00:00 2001 +From 22c3e633549bd6ec3fb29e90a5edc2896c280f6f Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 13 Apr 2016 02:10:49 -0400 Subject: [PATCH] Configurable Player Collision @@ -19,10 +19,10 @@ index 1b9c852..a3f4c1f 100644 + } } diff --git a/src/main/java/net/minecraft/server/CommandScoreboard.java b/src/main/java/net/minecraft/server/CommandScoreboard.java -index 8e5419d..64a3495 100644 +index ab9aa13..f9f59e5 100644 --- a/src/main/java/net/minecraft/server/CommandScoreboard.java +++ b/src/main/java/net/minecraft/server/CommandScoreboard.java -@@ -182,6 +182,13 @@ public class CommandScoreboard extends CommandAbstract { +@@ -183,6 +183,13 @@ public class CommandScoreboard extends CommandAbstract { throw new ExceptionUsage("commands.scoreboard.teams.option.usage", new Object[0]); } @@ -37,10 +37,10 @@ index 8e5419d..64a3495 100644 } } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e35341b..01044c8 100644 +index 4cb71eb..6f2cf4b 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -324,6 +324,20 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -327,6 +327,20 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs this.v.setPlayerFileData(this.worldServer); this.a(this.getDifficulty()); this.l(); @@ -75,7 +75,7 @@ index d8ec504..eb45d3c 100644 } diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index e044c40..0661974 100644 +index 99c420a..3c47ea2 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -68,6 +68,7 @@ public abstract class PlayerList { @@ -86,7 +86,7 @@ index e044c40..0661974 100644 public PlayerList(MinecraftServer minecraftserver) { this.cserver = minecraftserver.server = new CraftServer(minecraftserver, this); -@@ -235,6 +236,12 @@ public abstract class PlayerList { +@@ -233,6 +234,12 @@ public abstract class PlayerList { } entityplayer.syncInventory(); @@ -99,8 +99,8 @@ index e044c40..0661974 100644 // CraftBukkit - Moved from above, added world PlayerList.f.info(entityplayer.getName() + "[" + s1 + "] logged in with entity id " + entityplayer.getId() + " at ([" + entityplayer.world.worldData.getName() + "]" + entityplayer.locX + ", " + entityplayer.locY + ", " + entityplayer.locZ + ")"); } -@@ -405,6 +412,16 @@ public abstract class PlayerList { - entityplayer.k_();// SPIGOT-924 // PAIL: rename - playerTick +@@ -403,6 +410,16 @@ public abstract class PlayerList { + entityplayer.playerTick();// SPIGOT-924 // CraftBukkit end + // Paper start - Remove from collideRule team if needed @@ -116,7 +116,7 @@ index e044c40..0661974 100644 this.savePlayerFile(entityplayer); if (entityplayer.isPassenger()) { Entity entity = entityplayer.getVehicle(); -@@ -1304,7 +1321,13 @@ public abstract class PlayerList { +@@ -1305,7 +1322,13 @@ public abstract class PlayerList { player.playerConnection.disconnect(this.server.server.getShutdownMessage()); // CraftBukkit - add custom shutdown message } // CraftBukkit end diff --git a/Spigot-Server-Patches/0123-Add-handshake-event-to-allow-plugins-to-handle-clien.patch b/Spigot-Server-Patches/0120-Add-handshake-event-to-allow-plugins-to-handle-clien.patch similarity index 96% rename from Spigot-Server-Patches/0123-Add-handshake-event-to-allow-plugins-to-handle-clien.patch rename to Spigot-Server-Patches/0120-Add-handshake-event-to-allow-plugins-to-handle-clien.patch index 8fe2be8865..18fcbc0e5f 100644 --- a/Spigot-Server-Patches/0123-Add-handshake-event-to-allow-plugins-to-handle-clien.patch +++ b/Spigot-Server-Patches/0120-Add-handshake-event-to-allow-plugins-to-handle-clien.patch @@ -1,4 +1,4 @@ -From 2ee2eb0c74d6b990591792c663d776c43ecdbb9f Mon Sep 17 00:00:00 2001 +From 8717ae9f6fa348f9d037fc1b41f38ba4ce59f575 Mon Sep 17 00:00:00 2001 From: kashike Date: Wed, 13 Apr 2016 20:21:38 -0700 Subject: [PATCH] Add handshake event to allow plugins to handle client @@ -6,7 +6,7 @@ Subject: [PATCH] Add handshake event to allow plugins to handle client diff --git a/src/main/java/net/minecraft/server/HandshakeListener.java b/src/main/java/net/minecraft/server/HandshakeListener.java -index e6b6a5f..4924114 100644 +index d29796a..d84ac87 100644 --- a/src/main/java/net/minecraft/server/HandshakeListener.java +++ b/src/main/java/net/minecraft/server/HandshakeListener.java @@ -72,8 +72,33 @@ public class HandshakeListener implements PacketHandshakingInListener { @@ -45,5 +45,5 @@ index e6b6a5f..4924114 100644 if ( split.length == 3 || split.length == 4 ) { packethandshakinginsetprotocol.hostname = split[0]; -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0124-Water-mobs-should-only-spawn-in-the-water.patch b/Spigot-Server-Patches/0121-Water-mobs-should-only-spawn-in-the-water.patch similarity index 89% rename from Spigot-Server-Patches/0124-Water-mobs-should-only-spawn-in-the-water.patch rename to Spigot-Server-Patches/0121-Water-mobs-should-only-spawn-in-the-water.patch index 4a05fa0ac7..496cef7a2b 100644 --- a/Spigot-Server-Patches/0124-Water-mobs-should-only-spawn-in-the-water.patch +++ b/Spigot-Server-Patches/0121-Water-mobs-should-only-spawn-in-the-water.patch @@ -1,17 +1,17 @@ -From 2a1076770051ea8059e20def150902e9ede862b5 Mon Sep 17 00:00:00 2001 +From 4f5c683362ad3163bcbe0679da71c81c19d6ff60 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Thu, 14 Apr 2016 17:48:56 -0500 Subject: [PATCH] Water mobs should only spawn in the water diff --git a/src/main/java/net/minecraft/server/EntityWaterAnimal.java b/src/main/java/net/minecraft/server/EntityWaterAnimal.java -index 76394a3..e61f9a2 100644 +index 90d33af..2515557 100644 --- a/src/main/java/net/minecraft/server/EntityWaterAnimal.java +++ b/src/main/java/net/minecraft/server/EntityWaterAnimal.java @@ -11,7 +11,15 @@ public abstract class EntityWaterAnimal extends EntityInsentient implements IAni } - public boolean cK() { + public boolean cM() { - return true; + // Paper start - Don't let water mobs spawn in non-water blocks + // Based around EntityAnimal's implementation @@ -26,5 +26,5 @@ index 76394a3..e61f9a2 100644 public boolean canSpawn() { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0125-Fix-Bugs-with-Spigot-Mob-Spawn-Logic.patch b/Spigot-Server-Patches/0122-Fix-Bugs-with-Spigot-Mob-Spawn-Logic.patch similarity index 93% rename from Spigot-Server-Patches/0125-Fix-Bugs-with-Spigot-Mob-Spawn-Logic.patch rename to Spigot-Server-Patches/0122-Fix-Bugs-with-Spigot-Mob-Spawn-Logic.patch index b015c29c77..4ba575f48a 100644 --- a/Spigot-Server-Patches/0125-Fix-Bugs-with-Spigot-Mob-Spawn-Logic.patch +++ b/Spigot-Server-Patches/0122-Fix-Bugs-with-Spigot-Mob-Spawn-Logic.patch @@ -1,4 +1,4 @@ -From e6187234d2194ca23789522ec025538a4efdd172 Mon Sep 17 00:00:00 2001 +From 93ccf6d56b720ecfa06e1de2f1bb78f52633aa98 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 14 Apr 2016 21:01:39 -0400 Subject: [PATCH] Fix Bugs with Spigot Mob Spawn Logic @@ -14,7 +14,7 @@ Specially with servers using smaller mob spawn ranges than view distance, as wel This patch returns mob counting to use all loaded chunks, and 17x17 division. diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 74ffa66..0ee8a13 100644 +index 61d34fc..a6cf1d8 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -680,7 +680,7 @@ public class Chunk { @@ -27,7 +27,7 @@ index 74ffa66..0ee8a13 100644 if (entity instanceof EntityItem) { itemCounts[i]--; diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java -index ea0a145..689d664 100644 +index bb8191a..6bb0cf5 100644 --- a/src/main/java/net/minecraft/server/SpawnerCreature.java +++ b/src/main/java/net/minecraft/server/SpawnerCreature.java @@ -23,6 +23,15 @@ public final class SpawnerCreature { @@ -46,7 +46,7 @@ index ea0a145..689d664 100644 int i = 0; Iterator it = this.b.iterator(); while ( it.hasNext() ) -@@ -128,7 +137,7 @@ public final class SpawnerCreature { +@@ -126,7 +135,7 @@ public final class SpawnerCreature { int l1 = limit * i / a; // CraftBukkit - use per-world limits */ // Paper end @@ -56,5 +56,5 @@ index ea0a145..689d664 100644 Iterator iterator1 = this.b.iterator(); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0126-Configurable-RCON-IP-address.patch b/Spigot-Server-Patches/0123-Configurable-RCON-IP-address.patch similarity index 93% rename from Spigot-Server-Patches/0126-Configurable-RCON-IP-address.patch rename to Spigot-Server-Patches/0123-Configurable-RCON-IP-address.patch index 836395815d..3c82099fa7 100644 --- a/Spigot-Server-Patches/0126-Configurable-RCON-IP-address.patch +++ b/Spigot-Server-Patches/0123-Configurable-RCON-IP-address.patch @@ -1,4 +1,4 @@ -From 002a231d8f4491978da33ad0dfb3526d56b48888 Mon Sep 17 00:00:00 2001 +From 86cd299d88867e1634be4e3515681708fdd15d8c Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 16 Apr 2016 00:39:33 -0400 Subject: [PATCH] Configurable RCON IP address @@ -19,5 +19,5 @@ index a6a0d5a..efcafe7 100644 if (0 == this.h) { this.h = this.i + 10; -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0127-Prevent-Fire-from-loading-chunks.patch b/Spigot-Server-Patches/0124-Prevent-Fire-from-loading-chunks.patch similarity index 95% rename from Spigot-Server-Patches/0127-Prevent-Fire-from-loading-chunks.patch rename to Spigot-Server-Patches/0124-Prevent-Fire-from-loading-chunks.patch index d997ab83e3..2d240b84e6 100644 --- a/Spigot-Server-Patches/0127-Prevent-Fire-from-loading-chunks.patch +++ b/Spigot-Server-Patches/0124-Prevent-Fire-from-loading-chunks.patch @@ -1,4 +1,4 @@ -From f4a6c2de1a43254aee4275315b475d8b860f6e46 Mon Sep 17 00:00:00 2001 +From 074e297af2d1ef1b3389c4b6872e1940ff89c3d7 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 17 Apr 2016 17:27:09 -0400 Subject: [PATCH] Prevent Fire from loading chunks @@ -7,7 +7,7 @@ This causes the nether to spam unload/reload chunks, plus overall bad behavior. diff --git a/src/main/java/net/minecraft/server/BlockFire.java b/src/main/java/net/minecraft/server/BlockFire.java -index 1b91f58..c348221 100644 +index 20eb42d..1f2bc1e 100644 --- a/src/main/java/net/minecraft/server/BlockFire.java +++ b/src/main/java/net/minecraft/server/BlockFire.java @@ -162,6 +162,7 @@ public class BlockFire extends Block { @@ -45,5 +45,5 @@ index 1b91f58..c348221 100644 return i; -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0128-Implement-PlayerLocaleChangeEvent.patch b/Spigot-Server-Patches/0125-Implement-PlayerLocaleChangeEvent.patch similarity index 83% rename from Spigot-Server-Patches/0128-Implement-PlayerLocaleChangeEvent.patch rename to Spigot-Server-Patches/0125-Implement-PlayerLocaleChangeEvent.patch index 3fbe749e00..49ab412641 100644 --- a/Spigot-Server-Patches/0128-Implement-PlayerLocaleChangeEvent.patch +++ b/Spigot-Server-Patches/0125-Implement-PlayerLocaleChangeEvent.patch @@ -1,23 +1,23 @@ -From 637cce0bdf5b0902430a8a3e7c7453954e6b3ef4 Mon Sep 17 00:00:00 2001 +From 3ca88a5f9d09958ab96c851eef8f336fd3ea70ac Mon Sep 17 00:00:00 2001 From: Isaac Moore Date: Tue, 19 Apr 2016 14:09:31 -0500 Subject: [PATCH] Implement PlayerLocaleChangeEvent diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index e9baaa2..d084fc2 100644 +index feb07a3..83f3317 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -28,7 +28,7 @@ import org.bukkit.inventory.MainHand; public class EntityPlayer extends EntityHuman implements ICrafting { - private static final Logger bS = LogManager.getLogger(); + private static final Logger bR = LogManager.getLogger(); - public String locale = "en_US"; // Spigot private -> public + public String locale = null; // Spigot private -> public // Paper - default to null public PlayerConnection playerConnection; public final MinecraftServer server; public final PlayerInteractManager playerInteractManager; -@@ -1083,7 +1083,15 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -1071,7 +1071,15 @@ public class EntityPlayer extends EntityHuman implements ICrafting { this.server.server.getPluginManager().callEvent(event); } // CraftBukkit end @@ -30,11 +30,11 @@ index e9baaa2..d084fc2 100644 + new com.destroystokyo.paper.event.player.PlayerLocaleChangeEvent(this.getBukkitEntity(), oldLocale, this.locale).callEvent(); + } + // Paper end - this.ch = packetplayinsettings.c(); - this.ci = packetplayinsettings.d(); - this.getDataWatcher().set(EntityPlayer.br, Byte.valueOf((byte) packetplayinsettings.e())); + this.cg = packetplayinsettings.c(); + this.ch = packetplayinsettings.d(); + this.getDataWatcher().set(EntityPlayer.bq, Byte.valueOf((byte) packetplayinsettings.e())); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index aff5f44..67a3722 100644 +index 4cb9a82..02f8852 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1675,7 +1675,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -50,5 +50,5 @@ index aff5f44..67a3722 100644 @Override -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0129-EntityRegainHealthEvent-isFastRegen-API.patch b/Spigot-Server-Patches/0126-EntityRegainHealthEvent-isFastRegen-API.patch similarity index 82% rename from Spigot-Server-Patches/0129-EntityRegainHealthEvent-isFastRegen-API.patch rename to Spigot-Server-Patches/0126-EntityRegainHealthEvent-isFastRegen-API.patch index 6078e146cb..d46469c500 100644 --- a/Spigot-Server-Patches/0129-EntityRegainHealthEvent-isFastRegen-API.patch +++ b/Spigot-Server-Patches/0126-EntityRegainHealthEvent-isFastRegen-API.patch @@ -1,4 +1,4 @@ -From 7bb022a63ec88614d0775f9ffae7476bc160a9a5 Mon Sep 17 00:00:00 2001 +From 8f880722e118276157060204f50b4be80fe33955 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Fri, 22 Apr 2016 01:43:11 -0500 Subject: [PATCH] EntityRegainHealthEvent isFastRegen API @@ -6,10 +6,10 @@ Subject: [PATCH] EntityRegainHealthEvent isFastRegen API Don't even get me started diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index d66e766..526a608 100644 +index 7a96447..1eedcb0 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -741,10 +741,16 @@ public abstract class EntityLiving extends Entity { +@@ -761,10 +761,16 @@ public abstract class EntityLiving extends Entity { } public void heal(float f, EntityRegainHealthEvent.RegainReason regainReason) { @@ -28,18 +28,18 @@ index d66e766..526a608 100644 if (!event.isCancelled()) { diff --git a/src/main/java/net/minecraft/server/FoodMetaData.java b/src/main/java/net/minecraft/server/FoodMetaData.java -index 3a7ce8d..46acda8 100644 +index b6e9786..8d95d14 100644 --- a/src/main/java/net/minecraft/server/FoodMetaData.java +++ b/src/main/java/net/minecraft/server/FoodMetaData.java @@ -65,7 +65,7 @@ public class FoodMetaData { if (this.foodTickTimer >= 10) { - float f = Math.min(this.saturationLevel, 4.0F); + float f = Math.min(this.saturationLevel, 6.0F); -- entityhuman.heal(f / 4.0F, org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason.SATIATED); // CraftBukkit - added RegainReason -+ entityhuman.heal(f / 4.0F, org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason.SATIATED, true); // CraftBukkit - added RegainReason // Paper - This is fast regen +- entityhuman.heal(f / 6.0F, org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason.SATIATED); // CraftBukkit - added RegainReason ++ entityhuman.heal(f / 6.0F, org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason.SATIATED, true); // CraftBukkit - added RegainReason // Paper - This is fast regen this.a(f); this.foodTickTimer = 0; } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0130-Add-ability-to-configure-frosted_ice-properties.patch b/Spigot-Server-Patches/0127-Add-ability-to-configure-frosted_ice-properties.patch similarity index 90% rename from Spigot-Server-Patches/0130-Add-ability-to-configure-frosted_ice-properties.patch rename to Spigot-Server-Patches/0127-Add-ability-to-configure-frosted_ice-properties.patch index 247770616b..eeb1e01810 100644 --- a/Spigot-Server-Patches/0130-Add-ability-to-configure-frosted_ice-properties.patch +++ b/Spigot-Server-Patches/0127-Add-ability-to-configure-frosted_ice-properties.patch @@ -1,14 +1,14 @@ -From e0f927b29e3d9220ff2c5e19461c09dcd0d950eb Mon Sep 17 00:00:00 2001 +From 954d12a14c1dff636a87a76694a64029dc2dcd75 Mon Sep 17 00:00:00 2001 From: kashike Date: Thu, 21 Apr 2016 23:51:55 -0700 Subject: [PATCH] Add ability to configure frosted_ice properties diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 64e20d5..9c5dfcf 100644 +index ea254a7..75260d4 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -313,4 +313,14 @@ public class PaperWorldConfig { +@@ -301,4 +301,14 @@ public class PaperWorldConfig { private void useVanillaScoreboardColoring() { useVanillaScoreboardColoring = getBoolean("use-vanilla-world-scoreboard-name-coloring", false); } @@ -24,10 +24,10 @@ index 64e20d5..9c5dfcf 100644 + } } diff --git a/src/main/java/net/minecraft/server/BlockIceFrost.java b/src/main/java/net/minecraft/server/BlockIceFrost.java -index 8f502b9..bddfea0 100644 +index 7385582..f079c33 100644 --- a/src/main/java/net/minecraft/server/BlockIceFrost.java +++ b/src/main/java/net/minecraft/server/BlockIceFrost.java -@@ -20,10 +20,14 @@ public class BlockIceFrost extends BlockIce { +@@ -19,10 +19,14 @@ public class BlockIceFrost extends BlockIce { } public void b(World world, BlockPosition blockposition, IBlockData iblockdata, Random random) { @@ -44,5 +44,5 @@ index 8f502b9..bddfea0 100644 } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0131-Vehicle-Event-Cancellation-Changes.patch b/Spigot-Server-Patches/0128-Vehicle-Event-Cancellation-Changes.patch similarity index 88% rename from Spigot-Server-Patches/0131-Vehicle-Event-Cancellation-Changes.patch rename to Spigot-Server-Patches/0128-Vehicle-Event-Cancellation-Changes.patch index 87b98e6ec4..014ed189e3 100644 --- a/Spigot-Server-Patches/0131-Vehicle-Event-Cancellation-Changes.patch +++ b/Spigot-Server-Patches/0128-Vehicle-Event-Cancellation-Changes.patch @@ -1,17 +1,17 @@ -From c8c8e6fd31deca3a63f0f2f9ed8c90ccfdcc447a Mon Sep 17 00:00:00 2001 +From 8d59288c7eb6f9863e8068be2f788ebc63e67489 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Fri, 22 Apr 2016 18:20:05 -0500 Subject: [PATCH] Vehicle Event Cancellation Changes diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 966f9fd..6ab5b04 100644 +index 2d0e132..b0cdce1 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1699,6 +1699,10 @@ public abstract class Entity implements ICommandListener { - } +@@ -1754,6 +1754,10 @@ public abstract class Entity implements ICommandListener { + } + } - public boolean a(Entity entity, boolean flag) { + return this.mountEntity(entity, flag, false); // Paper - OBFHELPER + } + @@ -19,7 +19,7 @@ index 966f9fd..6ab5b04 100644 if (!flag && (!this.n(entity) || !entity.q(this))) { return false; } else { -@@ -1707,7 +1711,7 @@ public abstract class Entity implements ICommandListener { +@@ -1762,7 +1766,7 @@ public abstract class Entity implements ICommandListener { } this.au = entity; @@ -28,7 +28,7 @@ index 966f9fd..6ab5b04 100644 return true; } } -@@ -1734,12 +1738,20 @@ public abstract class Entity implements ICommandListener { +@@ -1789,12 +1793,20 @@ public abstract class Entity implements ICommandListener { } protected void o(Entity entity) { @@ -49,7 +49,7 @@ index 966f9fd..6ab5b04 100644 CraftEntity craft = (CraftEntity) entity.getBukkitEntity().getVehicle(); Entity orig = craft == null ? null : craft.getHandle(); if (getBukkitEntity() instanceof Vehicle && entity.getBukkitEntity() instanceof LivingEntity && entity.world.isChunkLoaded((int) entity.locX >> 4, (int) entity.locZ >> 4, false)) { // Boolean not used -@@ -1762,6 +1774,8 @@ public abstract class Entity implements ICommandListener { +@@ -1817,6 +1829,8 @@ public abstract class Entity implements ICommandListener { return; } // Spigot end @@ -58,7 +58,7 @@ index 966f9fd..6ab5b04 100644 if (!this.world.isClientSide && entity instanceof EntityHuman && !(this.bw() instanceof EntityHuman)) { this.passengers.add(0, entity); } else { -@@ -1787,16 +1801,29 @@ public abstract class Entity implements ICommandListener { +@@ -1842,16 +1856,29 @@ public abstract class Entity implements ICommandListener { CraftEntity craftn = (CraftEntity) entity.getBukkitEntity().getVehicle(); Entity n = craftn == null ? null : craftn.getHandle(); if (event.isCancelled() || n != orig) { @@ -90,5 +90,5 @@ index 966f9fd..6ab5b04 100644 return this.bx().size() < 1; } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0132-Arrow-pickup-rule-API.patch b/Spigot-Server-Patches/0129-Arrow-pickup-rule-API.patch similarity index 96% rename from Spigot-Server-Patches/0132-Arrow-pickup-rule-API.patch rename to Spigot-Server-Patches/0129-Arrow-pickup-rule-API.patch index c48651211e..5f9336b328 100644 --- a/Spigot-Server-Patches/0132-Arrow-pickup-rule-API.patch +++ b/Spigot-Server-Patches/0129-Arrow-pickup-rule-API.patch @@ -1,4 +1,4 @@ -From 948413ece85f37a42a4ebcab8f43da8a5689b7af Mon Sep 17 00:00:00 2001 +From 20fc9ddcd798168124bbb0efb50264d45a0b86af Mon Sep 17 00:00:00 2001 From: Jedediah Smith Date: Fri, 4 Mar 2016 03:16:11 -0500 Subject: [PATCH] Arrow pickup rule API @@ -54,5 +54,5 @@ index 2a3482c..fbf289f 100644 private final Arrow.Spigot spigot = new Arrow.Spigot() { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0133-SPIGOT-1401-Fix-dispenser-dropper-furnace-placement.patch b/Spigot-Server-Patches/0130-SPIGOT-1401-Fix-dispenser-dropper-furnace-placement.patch similarity index 78% rename from Spigot-Server-Patches/0133-SPIGOT-1401-Fix-dispenser-dropper-furnace-placement.patch rename to Spigot-Server-Patches/0130-SPIGOT-1401-Fix-dispenser-dropper-furnace-placement.patch index c6f31903af..10d418fb42 100644 --- a/Spigot-Server-Patches/0133-SPIGOT-1401-Fix-dispenser-dropper-furnace-placement.patch +++ b/Spigot-Server-Patches/0130-SPIGOT-1401-Fix-dispenser-dropper-furnace-placement.patch @@ -1,14 +1,14 @@ -From 1d0cad6c4498505dbd5c0b78cde9281ac9f84124 Mon Sep 17 00:00:00 2001 +From dacfbf50ad5db3be1c4e25f38e1958a0352a19ee Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Sun, 24 Apr 2016 19:49:33 -0500 Subject: [PATCH] SPIGOT-1401: Fix dispenser, dropper, furnace placement diff --git a/src/main/java/net/minecraft/server/BlockDispenser.java b/src/main/java/net/minecraft/server/BlockDispenser.java -index a1f198b..024ce36 100644 +index 958c9bd..f82dbf8 100644 --- a/src/main/java/net/minecraft/server/BlockDispenser.java +++ b/src/main/java/net/minecraft/server/BlockDispenser.java -@@ -21,6 +21,9 @@ public class BlockDispenser extends BlockTileEntity { +@@ -20,6 +20,9 @@ public class BlockDispenser extends BlockTileEntity { return 4; } @@ -18,20 +18,20 @@ index a1f198b..024ce36 100644 public void onPlace(World world, BlockPosition blockposition, IBlockData iblockdata) { super.onPlace(world, blockposition, iblockdata); this.e(world, blockposition, iblockdata); -@@ -50,6 +53,8 @@ public class BlockDispenser extends BlockTileEntity { +@@ -49,6 +52,8 @@ public class BlockDispenser extends BlockTileEntity { world.setTypeAndData(blockposition, iblockdata.set(BlockDispenser.FACING, enumdirection).set(BlockDispenser.TRIGGERED, Boolean.valueOf(false)), 2); } } + */ + // Paper end - public boolean interact(World world, BlockPosition blockposition, IBlockData iblockdata, EntityHuman entityhuman, EnumHand enumhand, @Nullable ItemStack itemstack, EnumDirection enumdirection, float f, float f1, float f2) { + public boolean interact(World world, BlockPosition blockposition, IBlockData iblockdata, EntityHuman entityhuman, EnumHand enumhand, EnumDirection enumdirection, float f, float f1, float f2) { if (world.isClientSide) { diff --git a/src/main/java/net/minecraft/server/BlockFurnace.java b/src/main/java/net/minecraft/server/BlockFurnace.java -index 61a6b8a..25f7b4b 100644 +index cb70d2c..b8750fb 100644 --- a/src/main/java/net/minecraft/server/BlockFurnace.java +++ b/src/main/java/net/minecraft/server/BlockFurnace.java -@@ -20,6 +20,9 @@ public class BlockFurnace extends BlockTileEntity { +@@ -18,6 +18,9 @@ public class BlockFurnace extends BlockTileEntity { return Item.getItemOf(Blocks.FURNACE); } @@ -41,15 +41,15 @@ index 61a6b8a..25f7b4b 100644 public void onPlace(World world, BlockPosition blockposition, IBlockData iblockdata) { this.e(world, blockposition, iblockdata); } -@@ -45,6 +48,8 @@ public class BlockFurnace extends BlockTileEntity { +@@ -43,6 +46,8 @@ public class BlockFurnace extends BlockTileEntity { world.setTypeAndData(blockposition, iblockdata.set(BlockFurnace.FACING, enumdirection), 2); } } + */ + // Paper end - public boolean interact(World world, BlockPosition blockposition, IBlockData iblockdata, EntityHuman entityhuman, EnumHand enumhand, @Nullable ItemStack itemstack, EnumDirection enumdirection, float f, float f1, float f2) { + public boolean interact(World world, BlockPosition blockposition, IBlockData iblockdata, EntityHuman entityhuman, EnumHand enumhand, EnumDirection enumdirection, float f, float f1, float f2) { if (world.isClientSide) { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0134-Improve-Minecraft-Hopper-Performance.patch b/Spigot-Server-Patches/0131-Improve-Minecraft-Hopper-Performance.patch similarity index 53% rename from Spigot-Server-Patches/0134-Improve-Minecraft-Hopper-Performance.patch rename to Spigot-Server-Patches/0131-Improve-Minecraft-Hopper-Performance.patch index 5d08583445..844bc9b411 100644 --- a/Spigot-Server-Patches/0134-Improve-Minecraft-Hopper-Performance.patch +++ b/Spigot-Server-Patches/0131-Improve-Minecraft-Hopper-Performance.patch @@ -1,4 +1,4 @@ -From 0faf22bd477e057cec232a0f8070302ac2cd05d9 Mon Sep 17 00:00:00 2001 +From 991a1ae6922a3bfab70d43eccec3d5843c80088d Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 27 Apr 2016 22:09:52 -0400 Subject: [PATCH] Improve Minecraft Hopper Performance @@ -7,64 +7,56 @@ Removes unnecessary extra calls to .update() that are very expensive Also reset cooldown each hopper tick that a hopper is full. diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java -index 9fa93ed..cd39fe5 100644 +index 1f3e89b..b2122a9 100644 --- a/src/main/java/net/minecraft/server/TileEntity.java +++ b/src/main/java/net/minecraft/server/TileEntity.java -@@ -36,6 +36,7 @@ public abstract class TileEntity { - } +@@ -33,6 +33,7 @@ public abstract class TileEntity { + return (MinecraftKey) TileEntity.f.b(oclass); } + static boolean IGNORE_TILE_UPDATES = false; // Paper public World getWorld() { return this.world; } -@@ -113,6 +114,7 @@ public abstract class TileEntity { +@@ -111,6 +112,7 @@ public abstract class TileEntity { public void update() { if (this.world != null) { + if (IGNORE_TILE_UPDATES) return; // Paper IBlockData iblockdata = this.world.getType(this.position); - this.h = iblockdata.getBlock().toLegacyData(iblockdata); + this.g = iblockdata.getBlock().toLegacyData(iblockdata); diff --git a/src/main/java/net/minecraft/server/TileEntityHopper.java b/src/main/java/net/minecraft/server/TileEntityHopper.java -index d1ce2b9..a651961 100644 +index f12bc70..4ebcf47 100644 --- a/src/main/java/net/minecraft/server/TileEntityHopper.java +++ b/src/main/java/net/minecraft/server/TileEntityHopper.java -@@ -188,6 +188,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi - return true; - } - } -+ - return false; - } else { - return false; -@@ -499,7 +500,9 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi - boolean flag = false; +@@ -455,7 +455,9 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi + boolean flag1 = iinventory1.w_(); - if (itemstack1 == null) { + if (itemstack1.isEmpty()) { + IGNORE_TILE_UPDATES = true; // Paper - iinventory.setItem(i, itemstack); + iinventory1.setItem(i, itemstack); + IGNORE_TILE_UPDATES = false; // Paper - itemstack = null; + itemstack = ItemStack.a; flag = true; } else if (a(itemstack1, itemstack)) { -@@ -519,7 +522,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi - tileentityhopper.setCooldown(tileentityhopper.world.spigotConfig.hopperTransfer); // Spigot +@@ -486,7 +488,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi } - -- iinventory.update(); -+ //iinventory.update(); // Paper } - iinventory.update(); -@@ -594,6 +597,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi - this.g = i; +- iinventory1.update(); ++ //iinventory1.update(); // Paper + } + } + +@@ -558,6 +560,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi + this.f = i; } -+ boolean isCooledDown() { return o(); } // Paper - OBFHELPER - public boolean o() { - return this.g > 0; ++ boolean isCooledDown() { return J(); } // Paper - OBFHELPER + private boolean J() { + return this.f > 0; } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0135-remove-null-possibility-for-getServer-singleton.patch b/Spigot-Server-Patches/0132-remove-null-possibility-for-getServer-singleton.patch similarity index 82% rename from Spigot-Server-Patches/0135-remove-null-possibility-for-getServer-singleton.patch rename to Spigot-Server-Patches/0132-remove-null-possibility-for-getServer-singleton.patch index 59d533cd6f..4f1e664c79 100644 --- a/Spigot-Server-Patches/0135-remove-null-possibility-for-getServer-singleton.patch +++ b/Spigot-Server-Patches/0132-remove-null-possibility-for-getServer-singleton.patch @@ -1,4 +1,4 @@ -From 4b3a97b25bd70dbc2b2e96bcbbd77177ef7d9f60 Mon Sep 17 00:00:00 2001 +From c72e9c55511cad4b6ea72ace54e6cb392f0fd5ba Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 28 Apr 2016 00:57:27 -0400 Subject: [PATCH] remove null possibility for getServer singleton @@ -6,10 +6,10 @@ Subject: [PATCH] remove null possibility for getServer singleton to stop IDE complaining about potential NPE diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 01044c8..9348ae7 100644 +index 6f2cf4b..7446a3d 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -49,6 +49,7 @@ import co.aikar.timings.MinecraftTimings; // Paper +@@ -51,6 +51,7 @@ import co.aikar.timings.MinecraftTimings; // Paper public abstract class MinecraftServer implements Runnable, ICommandListener, IAsyncTaskHandler, IMojangStatistics { @@ -17,15 +17,15 @@ index 01044c8..9348ae7 100644 public static final Logger LOGGER = LogManager.getLogger(); public static final File a = new File("usercache.json"); public Convertable convertable; -@@ -116,6 +117,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -119,6 +120,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs // CraftBukkit end public MinecraftServer(OptionSet options, Proxy proxy, DataConverterManager dataconvertermanager, YggdrasilAuthenticationService yggdrasilauthenticationservice, MinecraftSessionService minecraftsessionservice, GameProfileRepository gameprofilerepository, UserCache usercache) { + SERVER = this; // Paper - better singleton io.netty.util.ResourceLeakDetector.setEnabled( false ); // Spigot - disable this.e = proxy; - this.U = yggdrasilauthenticationservice; -@@ -1609,7 +1611,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs + this.V = yggdrasilauthenticationservice; +@@ -1626,7 +1628,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs // CraftBukkit start @Deprecated public static MinecraftServer getServer() { diff --git a/Spigot-Server-Patches/0136-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch b/Spigot-Server-Patches/0133-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch similarity index 86% rename from Spigot-Server-Patches/0136-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch rename to Spigot-Server-Patches/0133-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch index 01855fd35c..abf61763c8 100644 --- a/Spigot-Server-Patches/0136-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch +++ b/Spigot-Server-Patches/0133-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch @@ -1,4 +1,4 @@ -From 86add9029e3a04c6a1811ee4dd4f822d86dde9c8 Mon Sep 17 00:00:00 2001 +From 5f6b95f9b97741dc1e2a6170966c8cc30774f9ca Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 29 Apr 2016 20:02:00 -0400 Subject: [PATCH] Improve Maps (in item frames) performance and bug fixes @@ -13,10 +13,10 @@ custom renderers are in use, defaulting to the much simpler Vanilla system. Additionally, numerous issues to player position tracking on maps has been fixed. diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index 35f4647..301313b 100644 +index ae86ebc..c54f3f7 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java -@@ -594,6 +594,12 @@ public abstract class EntityHuman extends EntityLiving { +@@ -597,6 +597,12 @@ public abstract class EntityHuman extends EntityLiving { return null; } // CraftBukkit end @@ -30,7 +30,7 @@ index 35f4647..301313b 100644 ItemStack itemstack1 = this.a(entityitem); diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java -index 413925e..f505e3c 100644 +index 370cb9c..91af48f 100644 --- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java @@ -90,11 +90,11 @@ public class EntityTrackerEntry { @@ -42,16 +42,16 @@ index 413925e..f505e3c 100644 EntityItemFrame entityitemframe = (EntityItemFrame) this.tracker; ItemStack itemstack = entityitemframe.getItem(); -- if (this.a % 10 == 0 && itemstack != null && itemstack.getItem() instanceof ItemWorldMap) { // CraftBukkit - Moved this.m % 10 logic here so item frames do not enter the other blocks +- if (this.a % 10 == 0 && itemstack.getItem() instanceof ItemWorldMap) { // CraftBukkit - Moved this.a % 10 logic here so item frames do not enter the other blocks + if (itemstack != null && itemstack.getItem() instanceof ItemWorldMap) { // Paper - moved back up WorldMap worldmap = Items.FILLED_MAP.getSavedMap(itemstack, this.tracker.world); Iterator iterator = this.trackedPlayers.iterator(); // CraftBukkit diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 71c5596..1d47a11 100644 +index da255bb..ab0656e 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1157,6 +1157,7 @@ public abstract class World implements IBlockAccess { +@@ -1216,6 +1216,7 @@ public abstract class World implements IBlockAccess { { if ( iter.next().trackee == entity ) { @@ -60,18 +60,18 @@ index 71c5596..1d47a11 100644 } } diff --git a/src/main/java/net/minecraft/server/WorldMap.java b/src/main/java/net/minecraft/server/WorldMap.java -index 79a4927..9fca678 100644 +index dd5412e..dbe6a80 100644 --- a/src/main/java/net/minecraft/server/WorldMap.java +++ b/src/main/java/net/minecraft/server/WorldMap.java -@@ -27,6 +27,7 @@ public class WorldMap extends PersistentBase { - public List h = Lists.newArrayList(); - public final Map j = Maps.newHashMap(); // Spigot +@@ -28,6 +28,7 @@ public class WorldMap extends PersistentBase { + public List i = Lists.newArrayList(); + public final Map k = Maps.newHashMap(); // Spigot private -> public public Map decorations = Maps.newLinkedHashMap(); // Spigot + private org.bukkit.craftbukkit.map.RenderData vanillaRender = new org.bukkit.craftbukkit.map.RenderData(); // Paper // CraftBukkit start public final CraftMapView mapView; -@@ -39,6 +40,7 @@ public class WorldMap extends PersistentBase { +@@ -40,6 +41,7 @@ public class WorldMap extends PersistentBase { // CraftBukkit start mapView = new CraftMapView(this); server = (CraftServer) org.bukkit.Bukkit.getServer(); @@ -79,7 +79,7 @@ index 79a4927..9fca678 100644 // CraftBukkit end } -@@ -112,6 +114,7 @@ public class WorldMap extends PersistentBase { +@@ -114,6 +116,7 @@ public class WorldMap extends PersistentBase { } } } @@ -87,15 +87,15 @@ index 79a4927..9fca678 100644 } -@@ -146,6 +149,7 @@ public class WorldMap extends PersistentBase { +@@ -149,6 +152,7 @@ public class WorldMap extends PersistentBase { return nbttagcompound; } + public void updateSeenPlayers(EntityHuman entityhuman, ItemStack itemstack) { a(entityhuman, itemstack); } // Paper - OBFHELPER public void a(EntityHuman entityhuman, ItemStack itemstack) { - if (!this.j.containsKey(entityhuman)) { + if (!this.k.containsKey(entityhuman)) { WorldMap.WorldMapHumanTracker worldmap_worldmaphumantracker = new WorldMap.WorldMapHumanTracker(entityhuman); -@@ -273,6 +277,21 @@ public class WorldMap extends PersistentBase { +@@ -314,6 +318,21 @@ public class WorldMap extends PersistentBase { public class WorldMapHumanTracker { @@ -117,8 +117,8 @@ index 79a4927..9fca678 100644 public final EntityHuman trackee; private boolean d = true; private int e; -@@ -288,9 +307,12 @@ public class WorldMap extends PersistentBase { - +@@ -330,9 +349,12 @@ public class WorldMap extends PersistentBase { + @Nullable public Packet a(ItemStack itemstack) { // CraftBukkit start - org.bukkit.craftbukkit.map.RenderData render = WorldMap.this.mapView.render((org.bukkit.craftbukkit.entity.CraftPlayer) this.trackee.getBukkitEntity()); // CraftBukkit @@ -145,5 +145,5 @@ index 256a131..5768cd5 100644 public RenderData() { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0137-LootTable-API-Replenishable-Lootables-Feature.patch b/Spigot-Server-Patches/0134-LootTable-API-Replenishable-Lootables-Feature.patch similarity index 95% rename from Spigot-Server-Patches/0137-LootTable-API-Replenishable-Lootables-Feature.patch rename to Spigot-Server-Patches/0134-LootTable-API-Replenishable-Lootables-Feature.patch index c3e4d0133c..f631802203 100644 --- a/Spigot-Server-Patches/0137-LootTable-API-Replenishable-Lootables-Feature.patch +++ b/Spigot-Server-Patches/0134-LootTable-API-Replenishable-Lootables-Feature.patch @@ -1,4 +1,4 @@ -From 17dd011270e049f59229ecb9e970d8cd3b7f4dcf Mon Sep 17 00:00:00 2001 +From 6f5b71b26d1b422006ec176d1f343df159bf418b Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 1 May 2016 21:19:14 -0400 Subject: [PATCH] LootTable API & Replenishable Lootables Feature @@ -11,10 +11,10 @@ This feature is good for long term worlds so that newer players do not suffer with "Every chest has been looted" diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 9c5dfcf..f9e6cf0 100644 +index 75260d4..4d6a309 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -323,4 +323,26 @@ public class PaperWorldConfig { +@@ -311,4 +311,26 @@ public class PaperWorldConfig { this.frostedIceDelayMax = this.getInt("frosted-ice.delay.max", this.frostedIceDelayMax); this.log("Frosted Ice: " + (this.frostedIceEnabled ? "enabled" : "disabled") + " / delay: min=" + this.frostedIceDelayMin + ", max=" + this.frostedIceDelayMax); } @@ -418,10 +418,10 @@ index 0000000..01c2713 + } +} diff --git a/src/main/java/net/minecraft/server/EntityMinecartContainer.java b/src/main/java/net/minecraft/server/EntityMinecartContainer.java -index d0c577d..a9b8cfd 100644 +index a799196..965aa5c 100644 --- a/src/main/java/net/minecraft/server/EntityMinecartContainer.java +++ b/src/main/java/net/minecraft/server/EntityMinecartContainer.java -@@ -5,17 +5,21 @@ import javax.annotation.Nullable; +@@ -6,17 +6,21 @@ import javax.annotation.Nullable; // CraftBukkit start import java.util.List; import org.bukkit.Location; @@ -437,15 +437,15 @@ index d0c577d..a9b8cfd 100644 -public abstract class EntityMinecartContainer extends EntityMinecartAbstract implements ITileInventory, ILootable { +public abstract class EntityMinecartContainer extends EntityMinecartAbstract implements ITileInventory, ILootable, CraftLootableInventory { // Paper - private ItemStack[] items = new ItemStack[27]; // CraftBukkit - 36 -> 27 - private boolean b = true; + private NonNullList items; + private boolean b; private MinecraftKey c; - private long d; + private long d;public long getLootTableSeed() { return d; } // Paper - OBFHELPER // CraftBukkit start public List transaction = new java.util.ArrayList(); -@@ -146,12 +150,13 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp +@@ -164,12 +168,13 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp protected void b(NBTTagCompound nbttagcompound) { super.b(nbttagcompound); @@ -457,23 +457,19 @@ index d0c577d..a9b8cfd 100644 } - } else { + } if (true) { // Paper - Always save the items, Table may stick around - NBTTagList nbttaglist = new NBTTagList(); + ContainerUtil.a(nbttagcompound, this.items); + } - for (int i = 0; i < this.items.length; ++i) { -@@ -172,10 +177,11 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp - protected void a(NBTTagCompound nbttagcompound) { - super.a(nbttagcompound); - this.items = new ItemStack[this.getSize()]; -+ lootableData.loadNbt(nbttagcompound); // Paper +@@ -181,7 +186,7 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp if (nbttagcompound.hasKeyOfType("LootTable", 8)) { this.c = new MinecraftKey(nbttagcompound.getString("LootTable")); this.d = nbttagcompound.getLong("LootTableSeed"); - } else { + } if (true) { // Paper - always load the items, table may still remain - NBTTagList nbttaglist = nbttagcompound.getList("Items", 10); + ContainerUtil.b(nbttagcompound, this.items); + } - for (int i = 0; i < nbttaglist.size(); ++i) { -@@ -233,10 +239,10 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp +@@ -230,10 +235,10 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp } public void f(@Nullable EntityHuman entityhuman) { @@ -486,8 +482,8 @@ index d0c577d..a9b8cfd 100644 Random random; if (this.d == 0L) { -@@ -265,12 +271,52 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp - +@@ -258,12 +263,52 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp + this.items.clear(); } + public void setLootTable(MinecraftKey key, long seed) { a(key, seed);} // Paper - OBFHELPER @@ -540,10 +536,10 @@ index d0c577d..a9b8cfd 100644 + // Paper end } diff --git a/src/main/java/net/minecraft/server/TileEntityLootable.java b/src/main/java/net/minecraft/server/TileEntityLootable.java -index ef81867..b3c9f23 100644 +index 5632f2e..01d0d80 100644 --- a/src/main/java/net/minecraft/server/TileEntityLootable.java +++ b/src/main/java/net/minecraft/server/TileEntityLootable.java -@@ -1,43 +1,49 @@ +@@ -1,44 +1,50 @@ package net.minecraft.server; +import com.destroystokyo.paper.loottable.CraftLootableInventoryData; // Paper @@ -559,6 +555,7 @@ index ef81867..b3c9f23 100644 protected MinecraftKey m; - protected long n; + protected long n; public long getLootTableSeed() { return n; } // Paper - OBFHELPER + protected String o; public TileEntityLootable() {} @@ -589,7 +586,7 @@ index ef81867..b3c9f23 100644 } } - protected void d(@Nullable EntityHuman entityhuman) { + public void d(@Nullable EntityHuman entityhuman) { - if (this.m != null) { + if (lootableData.shouldReplenish(entityhuman)) { // Paper LootTable loottable = this.world.ak().a(this.m); @@ -599,7 +596,7 @@ index ef81867..b3c9f23 100644 Random random; if (this.n == 0L) { -@@ -57,12 +63,51 @@ public abstract class TileEntityLootable extends TileEntityContainer implements +@@ -58,10 +64,12 @@ public abstract class TileEntityLootable extends TileEntityContainer implements } @@ -612,7 +609,10 @@ index ef81867..b3c9f23 100644 public void a(MinecraftKey minecraftkey, long i) { this.m = minecraftkey; this.n = i; +@@ -134,4 +142,42 @@ public abstract class TileEntityLootable extends TileEntityContainer implements } + + protected abstract NonNullList q(); + + // Paper start - LootTable API + private final CraftLootableInventoryData lootableData = new CraftLootableInventoryData(this); @@ -650,6 +650,7 @@ index ef81867..b3c9f23 100644 + this.m = (MinecraftKey) null; + } + // Paper end ++ } diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftChest.java b/src/main/java/org/bukkit/craftbukkit/block/CraftChest.java index f15c26b..9c43cbe 100644 @@ -712,7 +713,7 @@ index f155790..acad8bc 100644 public CraftHopper(final Block block) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartChest.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartChest.java -index f5a1875..b2c5679 100644 +index 69435c4..4291edf 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartChest.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartChest.java @@ -1,5 +1,6 @@ @@ -722,7 +723,7 @@ index f5a1875..b2c5679 100644 import net.minecraft.server.EntityMinecartChest; import org.bukkit.craftbukkit.CraftServer; -@@ -9,7 +10,7 @@ import org.bukkit.entity.StorageMinecart; +@@ -9,7 +10,7 @@ import org.bukkit.entity.minecart.StorageMinecart; import org.bukkit.inventory.Inventory; @SuppressWarnings("deprecation") @@ -752,5 +753,5 @@ index e9963e2..acb4dee 100644 CraftMinecartHopper(CraftServer server, EntityMinecartHopper entity) { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0138-Do-not-load-chunks-for-pathfinding.patch b/Spigot-Server-Patches/0135-Do-not-load-chunks-for-pathfinding.patch similarity index 91% rename from Spigot-Server-Patches/0138-Do-not-load-chunks-for-pathfinding.patch rename to Spigot-Server-Patches/0135-Do-not-load-chunks-for-pathfinding.patch index f70f9a92a5..539dc8df2f 100644 --- a/Spigot-Server-Patches/0138-Do-not-load-chunks-for-pathfinding.patch +++ b/Spigot-Server-Patches/0135-Do-not-load-chunks-for-pathfinding.patch @@ -1,4 +1,4 @@ -From 9a95abab256b2be57c15fdbd73726da5c2ac716f Mon Sep 17 00:00:00 2001 +From 9747f0c9aa6bc79dd0e3f0c142f778bae82110db Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 19 Jan 2016 00:13:19 -0500 Subject: [PATCH] Do not load chunks for pathfinding @@ -18,5 +18,5 @@ index 08b986f..786d1dd 100644 } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0139-Entity-Tracking-Improvements.patch b/Spigot-Server-Patches/0136-Entity-Tracking-Improvements.patch similarity index 94% rename from Spigot-Server-Patches/0139-Entity-Tracking-Improvements.patch rename to Spigot-Server-Patches/0136-Entity-Tracking-Improvements.patch index e03d3dd2c5..8faaeb97fa 100644 --- a/Spigot-Server-Patches/0139-Entity-Tracking-Improvements.patch +++ b/Spigot-Server-Patches/0136-Entity-Tracking-Improvements.patch @@ -1,4 +1,4 @@ -From 0c4e3c7362f83ddb7bc1ebda742972c11740a536 Mon Sep 17 00:00:00 2001 +From 16eb78807927b06bcc3b855a29ec3a93cbb5f58d Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 17 Jun 2013 01:24:00 -0400 Subject: [PATCH] Entity Tracking Improvements @@ -7,7 +7,7 @@ If any part of a Vehicle/Passenger relationship is visible to a player, send all passenger/vehicles to the player in the chain. diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 6ab5b04..abd3b7a 100644 +index b0cdce1..5675757 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -52,6 +52,7 @@ public abstract class Entity implements ICommandListener { @@ -19,7 +19,7 @@ index 6ab5b04..abd3b7a 100644 if (bukkitEntity == null) { bukkitEntity = CraftEntity.getEntity(world.getServer(), this); diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java -index f505e3c..c2113d7 100644 +index 91af48f..eec0870 100644 --- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java @@ -49,6 +49,7 @@ public class EntityTrackerEntry { @@ -30,7 +30,7 @@ index f505e3c..c2113d7 100644 this.tracker = entity; this.e = i; this.f = j; -@@ -438,17 +439,59 @@ public class EntityTrackerEntry { +@@ -446,17 +447,59 @@ public class EntityTrackerEntry { this.tracker.b(entityplayer); entityplayer.d(this.tracker); @@ -90,7 +90,7 @@ index f505e3c..c2113d7 100644 double d0 = entityplayer.locX - (double) this.xLoc / 4096.0D; double d1 = entityplayer.locZ - (double) this.zLoc / 4096.0D; int i = Math.min(this.e, this.f); -@@ -581,6 +624,7 @@ public class EntityTrackerEntry { +@@ -593,6 +636,7 @@ public class EntityTrackerEntry { this.trackedPlayers.remove(entityplayer); this.tracker.c(entityplayer); entityplayer.c(this.tracker); @@ -99,5 +99,5 @@ index f505e3c..c2113d7 100644 } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0140-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch b/Spigot-Server-Patches/0137-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch similarity index 95% rename from Spigot-Server-Patches/0140-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch rename to Spigot-Server-Patches/0137-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch index dafa925334..1094e63214 100644 --- a/Spigot-Server-Patches/0140-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch +++ b/Spigot-Server-Patches/0137-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch @@ -1,4 +1,4 @@ -From 343c815b816f30c637aaf720da8a1e83e50d1a62 Mon Sep 17 00:00:00 2001 +From 981399b650a75a66fefb2eb27fd14d79719722d2 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 7 May 2016 23:33:08 -0400 Subject: [PATCH] Don't save empty scoreboard teams to scoreboard.dat @@ -31,5 +31,5 @@ index 230004b..62752f8 100644 nbttagcompound.setString("Name", scoreboardteam.getName()); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0141-Do-not-mark-chunks-as-active-for-neighbor-updates.patch b/Spigot-Server-Patches/0138-Do-not-mark-chunks-as-active-for-neighbor-updates.patch similarity index 96% rename from Spigot-Server-Patches/0141-Do-not-mark-chunks-as-active-for-neighbor-updates.patch rename to Spigot-Server-Patches/0138-Do-not-mark-chunks-as-active-for-neighbor-updates.patch index a944af1838..c148121b5c 100644 --- a/Spigot-Server-Patches/0141-Do-not-mark-chunks-as-active-for-neighbor-updates.patch +++ b/Spigot-Server-Patches/0138-Do-not-mark-chunks-as-active-for-neighbor-updates.patch @@ -1,4 +1,4 @@ -From 58b3bab4987b97c0c963f72537ba7aa87c242ea3 Mon Sep 17 00:00:00 2001 +From df81c219e14fe868c7fa04064774545d91c51ff5 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 12 May 2016 01:55:17 -0400 Subject: [PATCH] Do not mark chunks as active for neighbor updates @@ -6,7 +6,7 @@ Subject: [PATCH] Do not mark chunks as active for neighbor updates Fixes chunk unload issues diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 0ee8a13..1ec820f 100644 +index a6cf1d8..3db2916 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -1004,25 +1004,25 @@ public class Chunk { @@ -44,5 +44,5 @@ index 0ee8a13..1ec820f 100644 if (chunk4 != null) { chunk4.a(chunkgenerator); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0142-Fix-Chunk-Unload-Queue-Issues.patch b/Spigot-Server-Patches/0139-Fix-Chunk-Unload-Queue-Issues.patch similarity index 77% rename from Spigot-Server-Patches/0142-Fix-Chunk-Unload-Queue-Issues.patch rename to Spigot-Server-Patches/0139-Fix-Chunk-Unload-Queue-Issues.patch index 25279cb7fa..ea99c596b2 100644 --- a/Spigot-Server-Patches/0142-Fix-Chunk-Unload-Queue-Issues.patch +++ b/Spigot-Server-Patches/0139-Fix-Chunk-Unload-Queue-Issues.patch @@ -1,4 +1,4 @@ -From 94237b29dd4202a034115841c7de9517822962c2 Mon Sep 17 00:00:00 2001 +From 633c1df19c75e203b8f37dc85a17453195f284ac Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 12 May 2016 02:03:56 -0400 Subject: [PATCH] Fix Chunk Unload Queue Issues @@ -9,23 +9,23 @@ has not resolved all the bugs with the changes. This patch fixes known issues and really should be applied by Spigot team. diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 1ec820f..b0453ca 100644 +index 3db2916..98f2cff 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -46,7 +46,7 @@ public class Chunk { private long w; private int x; - private ConcurrentLinkedQueue y; + private final ConcurrentLinkedQueue y; - public boolean d; -+ public boolean d;public void setShouldUnload(boolean unload) { this.d = unload; } public boolean isUnloading() { return d; } // Paper - OBFHELPER ++ public boolean d; public void setShouldUnload(boolean unload) { this.d = unload; } public boolean isUnloading() { return d; } // Paper - OBFHELPER protected gnu.trove.map.hash.TObjectIntHashMap entityCount = new gnu.trove.map.hash.TObjectIntHashMap(); // Spigot // Paper start diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 37fac92..9d0bd6f 100644 +index a57bcaf..bd44764 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java -@@ -289,6 +289,7 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -290,6 +290,7 @@ public class ChunkProviderServer implements IChunkProvider { if (chunk != null && chunk.d) { // CraftBukkit start - move unload logic to own method @@ -34,5 +34,5 @@ index 37fac92..9d0bd6f 100644 continue; } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0143-System-property-for-disabling-watchdoge.patch b/Spigot-Server-Patches/0140-System-property-for-disabling-watchdoge.patch similarity index 92% rename from Spigot-Server-Patches/0143-System-property-for-disabling-watchdoge.patch rename to Spigot-Server-Patches/0140-System-property-for-disabling-watchdoge.patch index f99ee34764..d8aceb7667 100644 --- a/Spigot-Server-Patches/0143-System-property-for-disabling-watchdoge.patch +++ b/Spigot-Server-Patches/0140-System-property-for-disabling-watchdoge.patch @@ -1,4 +1,4 @@ -From a52f37aa86e762fc7251695efa2138aeff54db44 Mon Sep 17 00:00:00 2001 +From 084c9f8e37017e84a8cb3a9acac8c457db46965b Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Thu, 12 May 2016 23:02:58 -0500 Subject: [PATCH] System property for disabling watchdoge @@ -18,5 +18,5 @@ index 3ed983c..fb57e0d 100644 Logger log = Bukkit.getServer().getLogger(); log.log( Level.SEVERE, "The server has stopped responding!" ); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0144-Optimize-EAR.patch b/Spigot-Server-Patches/0141-Optimize-EAR.patch similarity index 96% rename from Spigot-Server-Patches/0144-Optimize-EAR.patch rename to Spigot-Server-Patches/0141-Optimize-EAR.patch index f336323fad..8816a706cb 100644 --- a/Spigot-Server-Patches/0144-Optimize-EAR.patch +++ b/Spigot-Server-Patches/0141-Optimize-EAR.patch @@ -1,11 +1,11 @@ -From df7eb12dcbd7ff5062de3722781de79c441dd6d6 Mon Sep 17 00:00:00 2001 +From 31326e2e77e0f08fce209c6541d0f523eed2cd44 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 13 May 2016 01:38:06 -0400 Subject: [PATCH] Optimize EAR diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index c4ed64a..4a4d64e 100644 +index c411ce8..c8a6ff3 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -2,6 +2,8 @@ package org.spigotmc; @@ -65,5 +65,5 @@ index c4ed64a..4a4d64e 100644 } } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0145-Optimize-UserCache-Thread-Safe.patch b/Spigot-Server-Patches/0142-Optimize-UserCache-Thread-Safe.patch similarity index 94% rename from Spigot-Server-Patches/0145-Optimize-UserCache-Thread-Safe.patch rename to Spigot-Server-Patches/0142-Optimize-UserCache-Thread-Safe.patch index 36a94c2b77..28fbd3a841 100644 --- a/Spigot-Server-Patches/0145-Optimize-UserCache-Thread-Safe.patch +++ b/Spigot-Server-Patches/0142-Optimize-UserCache-Thread-Safe.patch @@ -1,4 +1,4 @@ -From ea4d053f5b63ae0f7b6a1cfc4b375eced1f7b47e Mon Sep 17 00:00:00 2001 +From c441252e14019b1cb4a583ab7bad128f7fd7260a Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 16 May 2016 20:47:41 -0400 Subject: [PATCH] Optimize UserCache / Thread Safe @@ -10,15 +10,15 @@ Additionally, move Saving of the User cache to be done async, incase the user never changed the default setting for Spigot's save on stop only. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9348ae7..807ec58 100644 +index 7446a3d..968b0ec 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -514,7 +514,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -523,7 +523,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs // Spigot start if (org.spigotmc.SpigotConfig.saveUserCacheOnStopOnly) { LOGGER.info("Saving usercache.json"); -- this.X.c(); -+ this.X.c(false); // Paper +- this.Y.c(); ++ this.Y.c(false); // Paper } // Spigot end } diff --git a/Spigot-Server-Patches/0146-Avoid-blocking-on-Network-Manager-creation.patch b/Spigot-Server-Patches/0143-Avoid-blocking-on-Network-Manager-creation.patch similarity index 96% rename from Spigot-Server-Patches/0146-Avoid-blocking-on-Network-Manager-creation.patch rename to Spigot-Server-Patches/0143-Avoid-blocking-on-Network-Manager-creation.patch index 6cfad163ec..6b49a47093 100644 --- a/Spigot-Server-Patches/0146-Avoid-blocking-on-Network-Manager-creation.patch +++ b/Spigot-Server-Patches/0143-Avoid-blocking-on-Network-Manager-creation.patch @@ -1,4 +1,4 @@ -From 3f50a73a68e5d547f039a3efe4319d66e4d9dd4d Mon Sep 17 00:00:00 2001 +From 657ccc96c1093a23903aad6575111bc6fa51bd59 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 16 May 2016 23:19:16 -0400 Subject: [PATCH] Avoid blocking on Network Manager creation @@ -6,7 +6,7 @@ Subject: [PATCH] Avoid blocking on Network Manager creation Per Paper issue 294 diff --git a/src/main/java/net/minecraft/server/ServerConnection.java b/src/main/java/net/minecraft/server/ServerConnection.java -index 5b0488a..8906d7c 100644 +index 6a71ebb..5cde4be 100644 --- a/src/main/java/net/minecraft/server/ServerConnection.java +++ b/src/main/java/net/minecraft/server/ServerConnection.java @@ -60,6 +60,17 @@ public class ServerConnection { @@ -45,5 +45,5 @@ index 5b0488a..8906d7c 100644 if ( org.spigotmc.SpigotConfig.playerShuffle > 0 && MinecraftServer.currentTick % org.spigotmc.SpigotConfig.playerShuffle == 0 ) { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0147-Optional-old-TNT-cannon-behaviors.patch b/Spigot-Server-Patches/0144-Optional-old-TNT-cannon-behaviors.patch similarity index 89% rename from Spigot-Server-Patches/0147-Optional-old-TNT-cannon-behaviors.patch rename to Spigot-Server-Patches/0144-Optional-old-TNT-cannon-behaviors.patch index e82b117105..69d2be123b 100644 --- a/Spigot-Server-Patches/0147-Optional-old-TNT-cannon-behaviors.patch +++ b/Spigot-Server-Patches/0144-Optional-old-TNT-cannon-behaviors.patch @@ -1,14 +1,14 @@ -From 0d8e31682fbfcf5dc282799bdec377e75ef83f7e Mon Sep 17 00:00:00 2001 +From caa2532ecdeb24407bbd2d4e2af544fc888fb1ac Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Sun, 22 May 2016 20:20:55 -0500 Subject: [PATCH] Optional old TNT cannon behaviors diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index f9e6cf0..781b195 100644 +index 4d6a309..2a4d1da 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -345,4 +345,12 @@ public class PaperWorldConfig { +@@ -333,4 +333,12 @@ public class PaperWorldConfig { ); } } @@ -22,7 +22,7 @@ index f9e6cf0..781b195 100644 + } } diff --git a/src/main/java/net/minecraft/server/BlockDiodeAbstract.java b/src/main/java/net/minecraft/server/BlockDiodeAbstract.java -index f422843..8abe359 100644 +index 59ee13d..40c9f18 100644 --- a/src/main/java/net/minecraft/server/BlockDiodeAbstract.java +++ b/src/main/java/net/minecraft/server/BlockDiodeAbstract.java @@ -76,6 +76,17 @@ public abstract class BlockDiodeAbstract extends BlockFacingHorizontal { @@ -31,12 +31,12 @@ index f422843..8abe359 100644 world.setAir(blockposition); + // Paper start - Old TNT cannon behaviors + if (world.paperConfig.oldCannonBehaviors) { -+ world.applyPhysics(blockposition.shift(EnumDirection.EAST), this); -+ world.applyPhysics(blockposition.shift(EnumDirection.WEST), this); -+ world.applyPhysics(blockposition.shift(EnumDirection.SOUTH), this); -+ world.applyPhysics(blockposition.shift(EnumDirection.NORTH), this); -+ world.applyPhysics(blockposition.shift(EnumDirection.DOWN), this); -+ world.applyPhysics(blockposition.shift(EnumDirection.UP), this); ++ world.applyPhysics(blockposition.shift(EnumDirection.EAST), this, false); ++ world.applyPhysics(blockposition.shift(EnumDirection.WEST), this, false); ++ world.applyPhysics(blockposition.shift(EnumDirection.SOUTH), this, false); ++ world.applyPhysics(blockposition.shift(EnumDirection.NORTH), this, false); ++ world.applyPhysics(blockposition.shift(EnumDirection.DOWN), this, false); ++ world.applyPhysics(blockposition.shift(EnumDirection.UP), this, false); + return; + } + // Paper end @@ -49,12 +49,12 @@ index f422843..8abe359 100644 if (this.d) { + // Paper start - Old TNT cannon behaviors + if (world.paperConfig.oldCannonBehaviors) { -+ world.applyPhysics(blockposition.shift(EnumDirection.EAST), this); -+ world.applyPhysics(blockposition.shift(EnumDirection.WEST), this); -+ world.applyPhysics(blockposition.shift(EnumDirection.NORTH), this); -+ world.applyPhysics(blockposition.shift(EnumDirection.SOUTH), this); -+ world.applyPhysics(blockposition.shift(EnumDirection.DOWN), this); -+ world.applyPhysics(blockposition.shift(EnumDirection.UP), this); ++ world.applyPhysics(blockposition.shift(EnumDirection.EAST), this, false); ++ world.applyPhysics(blockposition.shift(EnumDirection.WEST), this, false); ++ world.applyPhysics(blockposition.shift(EnumDirection.NORTH), this, false); ++ world.applyPhysics(blockposition.shift(EnumDirection.SOUTH), this, false); ++ world.applyPhysics(blockposition.shift(EnumDirection.DOWN), this, false); ++ world.applyPhysics(blockposition.shift(EnumDirection.UP), this, false); + return; + } + // Paper end @@ -62,10 +62,10 @@ index f422843..8abe359 100644 int i = aenumdirection.length; diff --git a/src/main/java/net/minecraft/server/BlockRedstoneTorch.java b/src/main/java/net/minecraft/server/BlockRedstoneTorch.java -index 7aa5986..7866bd9 100644 +index c7e095a..7412362 100644 --- a/src/main/java/net/minecraft/server/BlockRedstoneTorch.java +++ b/src/main/java/net/minecraft/server/BlockRedstoneTorch.java -@@ -53,6 +53,12 @@ public class BlockRedstoneTorch extends BlockTorch { +@@ -52,6 +52,12 @@ public class BlockRedstoneTorch extends BlockTorch { public void onPlace(World world, BlockPosition blockposition, IBlockData iblockdata) { if (this.isOn) { @@ -78,7 +78,7 @@ index 7aa5986..7866bd9 100644 EnumDirection[] aenumdirection = EnumDirection.values(); int i = aenumdirection.length; -@@ -67,6 +73,12 @@ public class BlockRedstoneTorch extends BlockTorch { +@@ -66,6 +72,12 @@ public class BlockRedstoneTorch extends BlockTorch { public void remove(World world, BlockPosition blockposition, IBlockData iblockdata) { if (this.isOn) { @@ -91,18 +91,18 @@ index 7aa5986..7866bd9 100644 EnumDirection[] aenumdirection = EnumDirection.values(); int i = aenumdirection.length; -@@ -79,6 +91,17 @@ public class BlockRedstoneTorch extends BlockTorch { +@@ -78,6 +90,17 @@ public class BlockRedstoneTorch extends BlockTorch { } + // Paper start - Old TNT cannon behaviors + private void shiftPositions(World world, BlockPosition blockposition) { -+ world.applyPhysics(blockposition.shift(EnumDirection.DOWN), this); -+ world.applyPhysics(blockposition.shift(EnumDirection.UP), this); -+ world.applyPhysics(blockposition.shift(EnumDirection.WEST), this); -+ world.applyPhysics(blockposition.shift(EnumDirection.EAST), this); -+ world.applyPhysics(blockposition.shift(EnumDirection.SOUTH), this); -+ world.applyPhysics(blockposition.shift(EnumDirection.NORTH), this); ++ world.applyPhysics(blockposition.shift(EnumDirection.DOWN), this, false); ++ world.applyPhysics(blockposition.shift(EnumDirection.UP), this, false); ++ world.applyPhysics(blockposition.shift(EnumDirection.WEST), this, false); ++ world.applyPhysics(blockposition.shift(EnumDirection.EAST), this, false); ++ world.applyPhysics(blockposition.shift(EnumDirection.SOUTH), this, false); ++ world.applyPhysics(blockposition.shift(EnumDirection.NORTH), this, false); + } + // Paper end + @@ -110,7 +110,7 @@ index 7aa5986..7866bd9 100644 return this.isOn && iblockdata.get(BlockRedstoneTorch.FACING) != enumdirection ? 15 : 0; } diff --git a/src/main/java/net/minecraft/server/BlockRedstoneWire.java b/src/main/java/net/minecraft/server/BlockRedstoneWire.java -index 93671ed..661c4f9 100644 +index 5a0f026..20b9465 100644 --- a/src/main/java/net/minecraft/server/BlockRedstoneWire.java +++ b/src/main/java/net/minecraft/server/BlockRedstoneWire.java @@ -20,7 +20,7 @@ public class BlockRedstoneWire extends Block { @@ -142,18 +142,17 @@ index 93671ed..661c4f9 100644 EnumDirection[] aenumdirection = EnumDirection.values(); int i1 = aenumdirection.length; -@@ -202,6 +215,17 @@ public class BlockRedstoneWire extends Block { +@@ -202,6 +215,16 @@ public class BlockRedstoneWire extends Block { private void b(World world, BlockPosition blockposition) { if (world.getType(blockposition).getBlock() == this) { - world.applyPhysics(blockposition, this); -+ // Paper start - Old TNT cannon behaviors + world.applyPhysics(blockposition, this, false); + if (world.paperConfig.oldCannonBehaviors) { -+ world.applyPhysics(blockposition.shift(EnumDirection.WEST), this); -+ world.applyPhysics(blockposition.shift(EnumDirection.EAST), this); -+ world.applyPhysics(blockposition.shift(EnumDirection.NORTH), this); -+ world.applyPhysics(blockposition.shift(EnumDirection.SOUTH), this); -+ world.applyPhysics(blockposition.shift(EnumDirection.DOWN), this); -+ world.applyPhysics(blockposition.shift(EnumDirection.UP), this); ++ world.applyPhysics(blockposition.shift(EnumDirection.WEST), this, false); ++ world.applyPhysics(blockposition.shift(EnumDirection.EAST), this, false); ++ world.applyPhysics(blockposition.shift(EnumDirection.NORTH), this, false); ++ world.applyPhysics(blockposition.shift(EnumDirection.SOUTH), this, false); ++ world.applyPhysics(blockposition.shift(EnumDirection.DOWN), this, false); ++ world.applyPhysics(blockposition.shift(EnumDirection.UP), this, false); + return; + } + // Paper end @@ -161,10 +160,10 @@ index 93671ed..661c4f9 100644 int i = aenumdirection.length; diff --git a/src/main/java/net/minecraft/server/BlockTNT.java b/src/main/java/net/minecraft/server/BlockTNT.java -index bfb27ed..b1ba434 100644 +index 6b6aa89..5cec416 100644 --- a/src/main/java/net/minecraft/server/BlockTNT.java +++ b/src/main/java/net/minecraft/server/BlockTNT.java -@@ -31,7 +31,11 @@ public class BlockTNT extends Block { +@@ -29,7 +29,11 @@ public class BlockTNT extends Block { public void wasExploded(World world, BlockPosition blockposition, Explosion explosion) { if (!world.isClientSide) { @@ -177,7 +176,7 @@ index bfb27ed..b1ba434 100644 entitytntprimed.setFuseTicks((short) (world.random.nextInt(entitytntprimed.getFuseTicks() / 4) + entitytntprimed.getFuseTicks() / 8)); world.addEntity(entitytntprimed); -@@ -45,7 +49,11 @@ public class BlockTNT extends Block { +@@ -43,7 +47,11 @@ public class BlockTNT extends Block { public void a(World world, BlockPosition blockposition, IBlockData iblockdata, EntityLiving entityliving) { if (!world.isClientSide) { if (((Boolean) iblockdata.get(BlockTNT.EXPLODE)).booleanValue()) { @@ -189,12 +188,12 @@ index bfb27ed..b1ba434 100644 + // Paper end world.addEntity(entitytntprimed); - world.a((EntityHuman) null, entitytntprimed.locX, entitytntprimed.locY, entitytntprimed.locZ, SoundEffects.gz, SoundCategory.BLOCKS, 1.0F, 1.0F); + world.a((EntityHuman) null, entitytntprimed.locX, entitytntprimed.locY, entitytntprimed.locZ, SoundEffects.gV, SoundCategory.BLOCKS, 1.0F, 1.0F); diff --git a/src/main/java/net/minecraft/server/DispenserRegistry.java b/src/main/java/net/minecraft/server/DispenserRegistry.java -index 61735bb..41bd6e5 100644 +index dbfb8ab..537408a 100644 --- a/src/main/java/net/minecraft/server/DispenserRegistry.java +++ b/src/main/java/net/minecraft/server/DispenserRegistry.java -@@ -497,7 +497,11 @@ public class DispenserRegistry { +@@ -481,7 +481,11 @@ public class DispenserRegistry { org.bukkit.block.Block block = world.getWorld().getBlockAt(isourceblock.getBlockPosition().getX(), isourceblock.getBlockPosition().getY(), isourceblock.getBlockPosition().getZ()); CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1); @@ -208,10 +207,10 @@ index 61735bb..41bd6e5 100644 world.getServer().getPluginManager().callEvent(event); } diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index abd3b7a..3c36124 100644 +index 5675757..a262eda 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -979,6 +979,12 @@ public abstract class Entity implements ICommandListener { +@@ -994,6 +994,12 @@ public abstract class Entity implements ICommandListener { } public boolean ak() { @@ -224,10 +223,10 @@ index abd3b7a..3c36124 100644 if (this.bB() instanceof EntityBoat) { this.inWater = false; } else if (this.world.a(this.getBoundingBox().grow(0.0D, -0.4000000059604645D, 0.0D).shrink(0.001D), Material.WATER, this)) { -@@ -1180,6 +1186,12 @@ public abstract class Entity implements ICommandListener { +@@ -1195,6 +1201,12 @@ public abstract class Entity implements ICommandListener { } - public double f(double d0, double d1, double d2) { + public double e(double d0, double d1, double d2) { + // Paper start - OBFHELPER + return this.getDistance(d0, d1, d2); + } @@ -237,20 +236,19 @@ index abd3b7a..3c36124 100644 double d3 = this.locX - d0; double d4 = this.locY - d1; double d5 = this.locZ - d2; -@@ -1234,6 +1246,12 @@ public abstract class Entity implements ICommandListener { +@@ -1249,6 +1261,11 @@ public abstract class Entity implements ICommandListener { } - public void g(double d0, double d1, double d2) { + public void f(double d0, double d1, double d2) { + // Paper start - OBFHELPER + this.addVelocity(d0, d1, d2); + } + + public void addVelocity(double d0, double d1, double d2) { -+ // Paper end this.motX += d0; this.motY += d1; this.motZ += d2; -@@ -2359,6 +2377,12 @@ public abstract class Entity implements ICommandListener { +@@ -2424,6 +2441,12 @@ public abstract class Entity implements ICommandListener { } public boolean bg() { @@ -264,10 +262,10 @@ index abd3b7a..3c36124 100644 } diff --git a/src/main/java/net/minecraft/server/EntityFallingBlock.java b/src/main/java/net/minecraft/server/EntityFallingBlock.java -index a1392d6..4fd4371 100644 +index 042670b..613af99 100644 --- a/src/main/java/net/minecraft/server/EntityFallingBlock.java +++ b/src/main/java/net/minecraft/server/EntityFallingBlock.java -@@ -279,4 +279,19 @@ public class EntityFallingBlock extends Entity { +@@ -280,4 +280,19 @@ public class EntityFallingBlock extends Entity { public boolean bu() { return true; } @@ -288,10 +286,10 @@ index a1392d6..4fd4371 100644 + // Paper end } diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java -index 86f3f1f..9a25219 100644 +index 25e471d..e796ade 100644 --- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java +++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java -@@ -30,6 +30,7 @@ public class EntityTNTPrimed extends Entity { +@@ -32,6 +32,7 @@ public class EntityTNTPrimed extends Entity { this.lastY = d1; this.lastZ = d2; this.source = entityliving; @@ -299,7 +297,7 @@ index 86f3f1f..9a25219 100644 } protected void i() { -@@ -122,7 +123,7 @@ public class EntityTNTPrimed extends Entity { +@@ -124,7 +125,7 @@ public class EntityTNTPrimed extends Entity { } public float getHeadHeight() { @@ -308,7 +306,7 @@ index 86f3f1f..9a25219 100644 } public void setFuseTicks(int i) { -@@ -144,4 +145,58 @@ public class EntityTNTPrimed extends Entity { +@@ -146,4 +147,58 @@ public class EntityTNTPrimed extends Entity { public int getFuseTicks() { return this.c; } @@ -368,10 +366,10 @@ index 86f3f1f..9a25219 100644 + // Paper end } diff --git a/src/main/java/net/minecraft/server/Explosion.java b/src/main/java/net/minecraft/server/Explosion.java -index 6cdc3a3..0b9bc91 100644 +index d7bc6a0..f2785d8 100644 --- a/src/main/java/net/minecraft/server/Explosion.java +++ b/src/main/java/net/minecraft/server/Explosion.java -@@ -148,9 +148,15 @@ public class Explosion { +@@ -149,9 +149,15 @@ public class Explosion { d14 = entity instanceof EntityHuman && world.paperConfig.disableExplosionKnockback ? 0 : EnchantmentProtection.a((EntityLiving) entity, d13); // Paper - Disable explosion knockback } @@ -391,5 +389,5 @@ index 6cdc3a3..0b9bc91 100644 EntityHuman entityhuman = (EntityHuman) entity; -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0148-Faster-redstone-torch-rapid-clock-removal.patch b/Spigot-Server-Patches/0145-Faster-redstone-torch-rapid-clock-removal.patch similarity index 87% rename from Spigot-Server-Patches/0148-Faster-redstone-torch-rapid-clock-removal.patch rename to Spigot-Server-Patches/0145-Faster-redstone-torch-rapid-clock-removal.patch index ae49f74203..ee82753776 100644 --- a/Spigot-Server-Patches/0148-Faster-redstone-torch-rapid-clock-removal.patch +++ b/Spigot-Server-Patches/0145-Faster-redstone-torch-rapid-clock-removal.patch @@ -1,4 +1,4 @@ -From 5ff9abfac92da57a85854903f2afbabcea87f7fd Mon Sep 17 00:00:00 2001 +From 48ac4280ce35d77584c2aaefc8067f72c0fd613f Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Mon, 23 May 2016 12:12:37 +0200 Subject: [PATCH] Faster redstone torch rapid clock removal @@ -6,10 +6,10 @@ Subject: [PATCH] Faster redstone torch rapid clock removal Only resize the the redstone torch list once, since resizing arrays / lists is costly diff --git a/src/main/java/net/minecraft/server/BlockRedstoneTorch.java b/src/main/java/net/minecraft/server/BlockRedstoneTorch.java -index 7866bd9..606f982 100644 +index 22bd94d..28fe59a 100644 --- a/src/main/java/net/minecraft/server/BlockRedstoneTorch.java +++ b/src/main/java/net/minecraft/server/BlockRedstoneTorch.java -@@ -118,9 +118,17 @@ public class BlockRedstoneTorch extends BlockTorch { +@@ -117,9 +117,17 @@ public class BlockRedstoneTorch extends BlockTorch { boolean flag = this.g(world, blockposition, iblockdata); List list = (List) BlockRedstoneTorch.g.get(world); @@ -29,7 +29,7 @@ index 7866bd9..606f982 100644 // CraftBukkit start org.bukkit.plugin.PluginManager manager = world.getServer().getPluginManager(); -@@ -204,7 +212,7 @@ public class BlockRedstoneTorch extends BlockTorch { +@@ -202,7 +210,7 @@ public class BlockRedstoneTorch extends BlockTorch { static class RedstoneUpdateInfo { BlockPosition a; @@ -39,5 +39,5 @@ index 7866bd9..606f982 100644 public RedstoneUpdateInfo(BlockPosition blockposition, long i) { this.a = blockposition; -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0149-Ensure-Chunks-never-ever-load-async.patch b/Spigot-Server-Patches/0146-Ensure-Chunks-never-ever-load-async.patch similarity index 97% rename from Spigot-Server-Patches/0149-Ensure-Chunks-never-ever-load-async.patch rename to Spigot-Server-Patches/0146-Ensure-Chunks-never-ever-load-async.patch index a9c1476eee..7204ef196e 100644 --- a/Spigot-Server-Patches/0149-Ensure-Chunks-never-ever-load-async.patch +++ b/Spigot-Server-Patches/0146-Ensure-Chunks-never-ever-load-async.patch @@ -1,4 +1,4 @@ -From 4a674c97f0d61cc35fa114b853e3175acbfc0a59 Mon Sep 17 00:00:00 2001 +From bcf573326269816e6803bf52318fe3db9a68a484 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 27 May 2016 21:41:26 -0400 Subject: [PATCH] Ensure Chunks never ever load async @@ -42,5 +42,5 @@ index b5efb9c..ef9529a 100644 return; } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0150-Add-server-name-parameter.patch b/Spigot-Server-Patches/0147-Add-server-name-parameter.patch similarity index 85% rename from Spigot-Server-Patches/0150-Add-server-name-parameter.patch rename to Spigot-Server-Patches/0147-Add-server-name-parameter.patch index 5512f8f4df..8dc15e3d85 100644 --- a/Spigot-Server-Patches/0150-Add-server-name-parameter.patch +++ b/Spigot-Server-Patches/0147-Add-server-name-parameter.patch @@ -1,14 +1,14 @@ -From 499d2f9db7b463c1d69d9c3a00053e23298f37f0 Mon Sep 17 00:00:00 2001 +From 3e15342133e1166fbbeac7862c485d1ead54849c Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Sat, 28 May 2016 16:54:03 +0200 Subject: [PATCH] Add server-name parameter diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 979adad..2aad1e8 100644 +index 11bc824..b171b0f 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -130,6 +130,14 @@ public class Main { +@@ -134,6 +134,14 @@ public class Main { .defaultsTo(new File("paper.yml")) .describedAs("Yml file"); // Paper end @@ -24,5 +24,5 @@ index 979adad..2aad1e8 100644 }; -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0151-Only-send-Dragon-Wither-Death-sounds-to-same-world.patch b/Spigot-Server-Patches/0148-Only-send-Dragon-Wither-Death-sounds-to-same-world.patch similarity index 90% rename from Spigot-Server-Patches/0151-Only-send-Dragon-Wither-Death-sounds-to-same-world.patch rename to Spigot-Server-Patches/0148-Only-send-Dragon-Wither-Death-sounds-to-same-world.patch index f83b283d1f..8d4f31d785 100644 --- a/Spigot-Server-Patches/0151-Only-send-Dragon-Wither-Death-sounds-to-same-world.patch +++ b/Spigot-Server-Patches/0148-Only-send-Dragon-Wither-Death-sounds-to-same-world.patch @@ -1,4 +1,4 @@ -From 5e508e3ae7c65b547be73ae5b1ec9d3b2b4ee2ea Mon Sep 17 00:00:00 2001 +From f7f973dee1cbc0106ca291436f986925ba58f6e7 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 31 May 2016 22:53:50 -0400 Subject: [PATCH] Only send Dragon/Wither Death sounds to same world @@ -6,11 +6,11 @@ Subject: [PATCH] Only send Dragon/Wither Death sounds to same world Also fix view distance lookup diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java -index 5c5452d..166d893 100644 +index 7eea3bb..6d3a212 100644 --- a/src/main/java/net/minecraft/server/EntityEnderDragon.java +++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java -@@ -560,8 +560,12 @@ public class EntityEnderDragon extends EntityInsentient implements IComplex, IMo - if (this.bH == 1) { +@@ -573,8 +573,12 @@ public class EntityEnderDragon extends EntityInsentient implements IComplex, IMo + if (this.bG == 1) { // CraftBukkit start - Use relative location for far away sounds // this.world.a(1028, new BlockPosition(this), 0); - int viewDistance = ((WorldServer) this.world).getServer().getViewDistance() * 16; @@ -25,10 +25,10 @@ index 5c5452d..166d893 100644 double deltaZ = this.locZ - player.locZ; double distanceSquared = deltaX * deltaX + deltaZ * deltaZ; diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java -index 48b5b2c..6749211 100644 +index 47c5362..21856be 100644 --- a/src/main/java/net/minecraft/server/EntityWither.java +++ b/src/main/java/net/minecraft/server/EntityWither.java -@@ -202,8 +202,12 @@ public class EntityWither extends EntityMonster implements IRangedEntity { +@@ -206,8 +206,12 @@ public class EntityWither extends EntityMonster implements IRangedEntity { // CraftBukkit start - Use relative location for far away sounds // this.world.a(1023, new BlockPosition(this), 0); @@ -44,5 +44,5 @@ index 48b5b2c..6749211 100644 double deltaZ = this.locZ - player.locZ; double distanceSquared = deltaX * deltaX + deltaZ * deltaZ; -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0152-Fix-FallingBlocks-being-stuck-on-fences.patch b/Spigot-Server-Patches/0149-Fix-FallingBlocks-being-stuck-on-fences.patch similarity index 89% rename from Spigot-Server-Patches/0152-Fix-FallingBlocks-being-stuck-on-fences.patch rename to Spigot-Server-Patches/0149-Fix-FallingBlocks-being-stuck-on-fences.patch index a2928fbf01..14c8989beb 100644 --- a/Spigot-Server-Patches/0152-Fix-FallingBlocks-being-stuck-on-fences.patch +++ b/Spigot-Server-Patches/0149-Fix-FallingBlocks-being-stuck-on-fences.patch @@ -1,4 +1,4 @@ -From 305e1c5af0b4945544e66903f24509905d75ad49 Mon Sep 17 00:00:00 2001 +From 2b86c572200449a630e63977abf6733c518e4be5 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Fri, 3 Jun 2016 23:13:39 +0200 Subject: [PATCH] Fix FallingBlocks being stuck on fences @@ -11,10 +11,10 @@ We now first check, if if we are already on the ground. if not, we check if the falling block is inside of the hitbox of the block at y - 1. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 781b195..029a688 100644 +index 2a4d1da..a57a397 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -353,4 +353,9 @@ public class PaperWorldConfig { +@@ -341,4 +341,9 @@ public class PaperWorldConfig { log("Old Cannon Behaviors: This feature may not be working entirely properly at the moment"); } } @@ -25,10 +25,10 @@ index 781b195..029a688 100644 + } } diff --git a/src/main/java/net/minecraft/server/BlockFalling.java b/src/main/java/net/minecraft/server/BlockFalling.java -index 8f22dab..d3a0d70 100644 +index dcdae99..3c77741 100644 --- a/src/main/java/net/minecraft/server/BlockFalling.java +++ b/src/main/java/net/minecraft/server/BlockFalling.java -@@ -71,5 +71,11 @@ public class BlockFalling extends Block { +@@ -71,6 +71,12 @@ public class BlockFalling extends Block { return block == Blocks.FIRE || material == Material.AIR || material == Material.WATER || material == Material.LAVA; } @@ -39,9 +39,10 @@ index 8f22dab..d3a0d70 100644 + // Paper end + public void a_(World world, BlockPosition blockposition) {} - } + + public void b(World world, BlockPosition blockposition) {} diff --git a/src/main/java/net/minecraft/server/EntityFallingBlock.java b/src/main/java/net/minecraft/server/EntityFallingBlock.java -index 4fd4371..dcfdd31 100644 +index 613af99..edc817a 100644 --- a/src/main/java/net/minecraft/server/EntityFallingBlock.java +++ b/src/main/java/net/minecraft/server/EntityFallingBlock.java @@ -2,7 +2,9 @@ package net.minecraft.server; @@ -54,7 +55,7 @@ index 4fd4371..dcfdd31 100644 import javax.annotation.Nullable; import org.bukkit.craftbukkit.event.CraftEventFactory; // CraftBukkit -@@ -98,10 +100,9 @@ public class EntityFallingBlock extends Entity { +@@ -97,10 +99,9 @@ public class EntityFallingBlock extends Entity { blockposition = new BlockPosition(this); if (this.onGround) { IBlockData iblockdata = this.world.getType(blockposition); @@ -67,7 +68,7 @@ index 4fd4371..dcfdd31 100644 } this.motX *= 0.699999988079071D; -@@ -158,6 +159,32 @@ public class EntityFallingBlock extends Entity { +@@ -159,6 +160,32 @@ public class EntityFallingBlock extends Entity { } } @@ -101,5 +102,5 @@ index 4fd4371..dcfdd31 100644 Block block = this.block.getBlock(); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0153-Make-entities-look-for-hoppers.patch b/Spigot-Server-Patches/0150-Make-entities-look-for-hoppers.patch similarity index 86% rename from Spigot-Server-Patches/0153-Make-entities-look-for-hoppers.patch rename to Spigot-Server-Patches/0150-Make-entities-look-for-hoppers.patch index 3034b0ac21..9678792ad5 100644 --- a/Spigot-Server-Patches/0153-Make-entities-look-for-hoppers.patch +++ b/Spigot-Server-Patches/0150-Make-entities-look-for-hoppers.patch @@ -1,4 +1,4 @@ -From 37fa1474bd50065165753e5bdc8eacec00990464 Mon Sep 17 00:00:00 2001 +From b8a3dee372701192f4254369f08f699941c83428 Mon Sep 17 00:00:00 2001 From: Techcable Date: Sat, 18 Jun 2016 01:01:37 -0500 Subject: [PATCH] Make entities look for hoppers @@ -78,10 +78,10 @@ index 0000000..aef7c2b + double getZ(); +} diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 029a688..85f9481 100644 +index a57a397..b9b0f74 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -358,4 +358,9 @@ public class PaperWorldConfig { +@@ -346,4 +346,9 @@ public class PaperWorldConfig { private void altFallingBlockOnGround() { altFallingBlockOnGround = getBoolean("use-alternate-fallingblock-onGround-detection", false); } @@ -92,19 +92,19 @@ index 029a688..85f9481 100644 + } } diff --git a/src/main/java/net/minecraft/server/AxisAlignedBB.java b/src/main/java/net/minecraft/server/AxisAlignedBB.java -index 8c64279..4445ae7 100644 +index 1eb9c2d..c88b76a 100644 --- a/src/main/java/net/minecraft/server/AxisAlignedBB.java +++ b/src/main/java/net/minecraft/server/AxisAlignedBB.java -@@ -191,6 +191,7 @@ public class AxisAlignedBB { +@@ -235,6 +235,7 @@ public class AxisAlignedBB { } } -+ public final boolean intersects(AxisAlignedBB intersecting) { return this.b(intersecting); } // Paper - OBFHELPER - public boolean b(AxisAlignedBB axisalignedbb) { ++ public final boolean intersects(AxisAlignedBB intersecting) { return this.c(intersecting); } // Paper - OBFHELPER + public boolean c(AxisAlignedBB axisalignedbb) { return this.a(axisalignedbb.a, axisalignedbb.b, axisalignedbb.c, axisalignedbb.d, axisalignedbb.e, axisalignedbb.f); } diff --git a/src/main/java/net/minecraft/server/BlockPortal.java b/src/main/java/net/minecraft/server/BlockPortal.java -index 88d267c..803019a 100644 +index 857ae9d..25d012b 100644 --- a/src/main/java/net/minecraft/server/BlockPortal.java +++ b/src/main/java/net/minecraft/server/BlockPortal.java @@ -114,6 +114,7 @@ public class BlockPortal extends BlockHalfTransparent { @@ -116,10 +116,10 @@ index 88d267c..803019a 100644 EntityPortalEnterEvent event = new EntityPortalEnterEvent(entity.getBukkitEntity(), new org.bukkit.Location(world.getWorld(), blockposition.getX(), blockposition.getY(), blockposition.getZ())); world.getServer().getPluginManager().callEvent(event); diff --git a/src/main/java/net/minecraft/server/BlockPosition.java b/src/main/java/net/minecraft/server/BlockPosition.java -index d6cc51b..5bbaa87 100644 +index 93b65cd..6c14061 100644 --- a/src/main/java/net/minecraft/server/BlockPosition.java +++ b/src/main/java/net/minecraft/server/BlockPosition.java -@@ -265,6 +265,7 @@ public class BlockPosition extends BaseBlockPosition { +@@ -282,6 +282,7 @@ public class BlockPosition extends BaseBlockPosition { super(i, j, k); } @@ -127,7 +127,7 @@ index d6cc51b..5bbaa87 100644 public static BlockPosition.PooledBlockPosition s() { return e(0, 0, 0); } -@@ -291,6 +292,7 @@ public class BlockPosition extends BaseBlockPosition { +@@ -308,6 +309,7 @@ public class BlockPosition extends BaseBlockPosition { return new BlockPosition.PooledBlockPosition(i, j, k); } @@ -135,7 +135,7 @@ index d6cc51b..5bbaa87 100644 public void t() { List list = BlockPosition.PooledBlockPosition.g; -@@ -392,6 +394,7 @@ public class BlockPosition extends BaseBlockPosition { +@@ -425,6 +427,7 @@ public class BlockPosition extends BaseBlockPosition { return this.d; } @@ -144,10 +144,10 @@ index d6cc51b..5bbaa87 100644 this.b = i; this.c = j; diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 3c36124..4039317 100644 +index a262eda..7de4b5b 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -78,6 +78,19 @@ public abstract class Entity implements ICommandListener { +@@ -79,6 +79,19 @@ public abstract class Entity implements ICommandListener { public double locX; public double locY; public double locZ; @@ -168,10 +168,10 @@ index 3c36124..4039317 100644 public double motY; public double motZ; diff --git a/src/main/java/net/minecraft/server/EntityItem.java b/src/main/java/net/minecraft/server/EntityItem.java -index 310c013..2795c1a 100644 +index 6d70253..bde1681 100644 --- a/src/main/java/net/minecraft/server/EntityItem.java +++ b/src/main/java/net/minecraft/server/EntityItem.java -@@ -6,8 +6,15 @@ import javax.annotation.Nullable; +@@ -5,8 +5,15 @@ import javax.annotation.Nullable; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.bukkit.event.player.PlayerPickupItemEvent; // CraftBukkit @@ -182,21 +182,21 @@ index 310c013..2795c1a 100644 +public class EntityItem extends Entity implements HopperPusher { + @Override + public boolean acceptItem(TileEntityHopper hopper) { -+ return TileEntityHopper.a(hopper, this); ++ return TileEntityHopper.putDropInInventory(null, hopper, this); + } +// Paper end private static final Logger b = LogManager.getLogger(); - private static final DataWatcherObject> c = DataWatcher.a(EntityItem.class, DataWatcherRegistry.f); -@@ -62,6 +69,7 @@ public class EntityItem extends Entity { + private static final DataWatcherObject c = DataWatcher.a(EntityItem.class, DataWatcherRegistry.f); +@@ -61,6 +68,7 @@ public class EntityItem extends Entity { this.die(); } else { - super.m(); + super.A_(); + if (tryPutInHopper()) return; // Paper // CraftBukkit start - Use wall time for pickup and despawn timers int elapsedTicks = MinecraftServer.currentTick - this.lastTick; if (this.pickupDelay != 32767) this.pickupDelay -= elapsedTicks; -@@ -129,6 +137,7 @@ public class EntityItem extends Entity { +@@ -148,6 +156,7 @@ public class EntityItem extends Entity { // Spigot start - copied from above @Override public void inactiveTick() { @@ -205,10 +205,10 @@ index 310c013..2795c1a 100644 int elapsedTicks = MinecraftServer.currentTick - this.lastTick; if (this.pickupDelay != 32767) this.pickupDelay -= elapsedTicks; diff --git a/src/main/java/net/minecraft/server/EntityMinecartContainer.java b/src/main/java/net/minecraft/server/EntityMinecartContainer.java -index a9b8cfd..6abf6b1 100644 +index 965aa5c..0425689 100644 --- a/src/main/java/net/minecraft/server/EntityMinecartContainer.java +++ b/src/main/java/net/minecraft/server/EntityMinecartContainer.java -@@ -6,6 +6,7 @@ import javax.annotation.Nullable; +@@ -7,6 +7,7 @@ import javax.annotation.Nullable; import java.util.List; import org.bukkit.Location; @@ -216,7 +216,7 @@ index a9b8cfd..6abf6b1 100644 import com.destroystokyo.paper.loottable.CraftLootableInventoryData; // Paper import com.destroystokyo.paper.loottable.CraftLootableInventory; // Paper import com.destroystokyo.paper.loottable.LootableInventory; // Paper -@@ -14,7 +15,25 @@ import org.bukkit.entity.HumanEntity; +@@ -15,7 +16,25 @@ import org.bukkit.entity.HumanEntity; import org.bukkit.inventory.InventoryHolder; // CraftBukkit end @@ -229,8 +229,8 @@ index a9b8cfd..6abf6b1 100644 + } + + @Override -+ public void m() { -+ super.m(); ++ public void A_() { ++ super.A_(); + tryPutInHopper(); + } + @@ -241,8 +241,8 @@ index a9b8cfd..6abf6b1 100644 + } + // Paper end - private ItemStack[] items = new ItemStack[27]; // CraftBukkit - 36 -> 27 - private boolean b = true; + private NonNullList items; + private boolean b; diff --git a/src/main/java/net/minecraft/server/IHopper.java b/src/main/java/net/minecraft/server/IHopper.java index 804215a..e830d83 100644 --- a/src/main/java/net/minecraft/server/IHopper.java @@ -261,18 +261,18 @@ index 804215a..e830d83 100644 + double G(); default double getZ() { return G(); } // Paper - OBFHELPER } diff --git a/src/main/java/net/minecraft/server/TileEntityHopper.java b/src/main/java/net/minecraft/server/TileEntityHopper.java -index a651961..1f5de89 100644 +index 4ebcf47..41cc568 100644 --- a/src/main/java/net/minecraft/server/TileEntityHopper.java +++ b/src/main/java/net/minecraft/server/TileEntityHopper.java -@@ -170,6 +170,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi +@@ -122,6 +122,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi } - public boolean m() { + private boolean o() { + mayAcceptItems = false; // Paper - at the beginning of a tick, assume we can't accept items if (this.world != null && !this.world.isClientSide) { - if (!this.o() && BlockHopper.f(this.u())) { + if (!this.J() && BlockHopper.f(this.v())) { boolean flag = false; -@@ -179,6 +180,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi +@@ -131,6 +132,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi } if (!this.r()) { @@ -280,7 +280,7 @@ index a651961..1f5de89 100644 flag = a((IHopper) this) || flag; } -@@ -195,6 +197,14 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi +@@ -146,6 +148,14 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi } } @@ -292,10 +292,10 @@ index a651961..1f5de89 100644 + } + // Paper end + - private boolean q() { - ItemStack[] aitemstack = this.items; - int i = aitemstack.length; -@@ -338,8 +348,15 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi + private boolean p() { + Iterator iterator = this.items.iterator(); + +@@ -296,8 +306,15 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi return true; } @@ -312,7 +312,7 @@ index a651961..1f5de89 100644 if (iinventory != null) { EnumDirection enumdirection = EnumDirection.DOWN; -@@ -370,8 +387,8 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi +@@ -328,8 +345,8 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi } } } @@ -323,9 +323,17 @@ index a651961..1f5de89 100644 while (iterator.hasNext()) { EntityItem entityitem = (EntityItem) iterator.next(); -@@ -535,18 +552,44 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi +@@ -393,6 +410,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi + return false; + } + ++ public static boolean putDropInInventory(IInventory iinventory, IInventory iinventory1, EntityItem entityitem) { return a(iinventory, iinventory1, entityitem); } // Paper - OBFHELPER + public static boolean a(IInventory iinventory, IInventory iinventory1, EntityItem entityitem) { + boolean flag = false; + +@@ -498,18 +516,44 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi private IInventory I() { - EnumDirection enumdirection = BlockHopper.e(this.u()); + EnumDirection enumdirection = BlockHopper.e(this.v()); - return b(this.getWorld(), this.E() + (double) enumdirection.getAdjacentX(), this.F() + (double) enumdirection.getAdjacentY(), this.G() + (double) enumdirection.getAdjacentZ()); + // Paper start - don't search for entities in push mode @@ -372,7 +380,7 @@ index a651961..1f5de89 100644 Object object = null; int i = MathHelper.floor(d0); int j = MathHelper.floor(d1); -@@ -566,7 +609,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi +@@ -529,7 +573,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi } } @@ -382,5 +390,5 @@ index a651961..1f5de89 100644 if (!list.isEmpty()) { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0155-Delay-Chunk-Unloads-based-on-Player-Movement.patch b/Spigot-Server-Patches/0151-Delay-Chunk-Unloads-based-on-Player-Movement.patch similarity index 93% rename from Spigot-Server-Patches/0155-Delay-Chunk-Unloads-based-on-Player-Movement.patch rename to Spigot-Server-Patches/0151-Delay-Chunk-Unloads-based-on-Player-Movement.patch index 25fd48199d..5d3b67b90a 100644 --- a/Spigot-Server-Patches/0155-Delay-Chunk-Unloads-based-on-Player-Movement.patch +++ b/Spigot-Server-Patches/0151-Delay-Chunk-Unloads-based-on-Player-Movement.patch @@ -1,4 +1,4 @@ -From cb8a4ef2f2cae276ed7ced8095f7722e59eb9732 Mon Sep 17 00:00:00 2001 +From 98b9b014ef0cb3adedc68bdbdb0f78588ed3603c Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 18 Jun 2016 23:22:12 -0400 Subject: [PATCH] Delay Chunk Unloads based on Player Movement @@ -17,10 +17,10 @@ This allows servers with smaller worlds who do less long distance exploring to s wasting cpu cycles on saving/unloading/reloading chunks repeatedly. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 85f9481..b4d76e5 100644 +index b9b0f74..cda516f 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -363,4 +363,13 @@ public class PaperWorldConfig { +@@ -351,4 +351,13 @@ public class PaperWorldConfig { private void isHopperPushBased() { isHopperPushBased = getBoolean("hopper.push-based", false); } @@ -35,7 +35,7 @@ index 85f9481..b4d76e5 100644 + } } diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index b0453ca..683a6dd 100644 +index 98f2cff..88437d7 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -30,6 +30,7 @@ public class Chunk { @@ -47,10 +47,10 @@ index b0453ca..683a6dd 100644 public final int locZ; private boolean m; diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 9d0bd6f..3828da7 100644 +index bd44764..7a56a64 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java -@@ -299,6 +299,19 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -300,6 +300,19 @@ public class ChunkProviderServer implements IChunkProvider { } } } @@ -108,7 +108,7 @@ index dd40e98..f109e98 100644 // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index c9d48ac..8e0b66d 100644 +index 8f6f3a0..eae9276 100644 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java @@ -479,7 +479,13 @@ public class PlayerChunkMap { @@ -127,10 +127,10 @@ index c9d48ac..8e0b66d 100644 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index e85a0a0..c28c505 100644 +index 0866f54..49b5389 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1483,7 +1483,7 @@ public class CraftWorld implements World { +@@ -1524,7 +1524,7 @@ public class CraftWorld implements World { ChunkProviderServer cps = world.getChunkProviderServer(); for (net.minecraft.server.Chunk chunk : cps.chunks.values()) { // If in use, skip it @@ -140,5 +140,5 @@ index e85a0a0..c28c505 100644 } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0156-Toggleable-Elytra-Wall-Damage.patch b/Spigot-Server-Patches/0152-Toggleable-Elytra-Wall-Damage.patch similarity index 77% rename from Spigot-Server-Patches/0156-Toggleable-Elytra-Wall-Damage.patch rename to Spigot-Server-Patches/0152-Toggleable-Elytra-Wall-Damage.patch index 5f90245417..d88b0fcdb4 100644 --- a/Spigot-Server-Patches/0156-Toggleable-Elytra-Wall-Damage.patch +++ b/Spigot-Server-Patches/0152-Toggleable-Elytra-Wall-Damage.patch @@ -1,4 +1,4 @@ -From c43b955acf98710d223232875e3b0586090c60a5 Mon Sep 17 00:00:00 2001 +From acbec2ce9a40d727cd574ede9b85e08ec2d58e31 Mon Sep 17 00:00:00 2001 From: Jadon Fowler Date: Sat, 18 Jun 2016 23:13:59 -0700 Subject: [PATCH] Toggleable Elytra Wall Damage @@ -7,10 +7,10 @@ Instead of calculating the damage taken from hitting a wall, you can disable it in the config. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index b4d76e5..fb67306 100644 +index cda516f..965edc9 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -372,4 +372,9 @@ public class PaperWorldConfig { +@@ -360,4 +360,9 @@ public class PaperWorldConfig { delayChunkUnloadsBy *= 1000; } } @@ -21,18 +21,18 @@ index b4d76e5..fb67306 100644 + } } diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index c0c60a7..8c98a19 100644 +index 1eedcb0..a875e7d 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -1615,6 +1615,7 @@ public abstract class EntityLiving extends Entity { +@@ -1686,6 +1686,7 @@ public abstract class EntityLiving extends Entity { this.motY = 0.30000001192092896D; } - } else if (this.cG()) { -+ if(world.paperConfig.elytraHitWallDamage) { // Paper start - Toggleable Elytra Wall Damage + } else if (this.cH()) { ++ if (world.paperConfig.elytraHitWallDamage) { // Paper start - Toggleable Elytra Wall Damage if (this.motY > -0.5D) { this.fallDistance = 1.0F; } -@@ -1664,6 +1665,7 @@ public abstract class EntityLiving extends Entity { +@@ -1735,6 +1736,7 @@ public abstract class EntityLiving extends Entity { this.damageEntity(DamageSource.FLY_INTO_WALL, f7); } } @@ -41,5 +41,5 @@ index c0c60a7..8c98a19 100644 if (this.onGround && !this.world.isClientSide) { if (getFlag(7) && !CraftEventFactory.callToggleGlideEvent(this, false).isCancelled()) // CraftBukkit -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0157-Fix-Double-World-Add-issues.patch b/Spigot-Server-Patches/0153-Fix-Double-World-Add-issues.patch similarity index 86% rename from Spigot-Server-Patches/0157-Fix-Double-World-Add-issues.patch rename to Spigot-Server-Patches/0153-Fix-Double-World-Add-issues.patch index 4abf498fe6..a1448fa19b 100644 --- a/Spigot-Server-Patches/0157-Fix-Double-World-Add-issues.patch +++ b/Spigot-Server-Patches/0153-Fix-Double-World-Add-issues.patch @@ -1,4 +1,4 @@ -From a0a57bded92c1e47fbd4b615262387a8e668922a Mon Sep 17 00:00:00 2001 +From 53fd3c714c6ff5f5d720290623f6713383d2c606 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 21 Jun 2016 22:54:34 -0400 Subject: [PATCH] Fix Double World Add issues @@ -8,10 +8,10 @@ Vanilla will double add Spider Jockeys to the world, so ignore already added. Also add debug if something else tries to, and abort before world gets bad state diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index 854fbd7..b672a38 100644 +index e2dd95b..ff7b406 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -@@ -523,7 +523,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { +@@ -525,7 +525,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { } public static void a(Entity entity, World world, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason reason) { @@ -21,10 +21,10 @@ index 854fbd7..b672a38 100644 Iterator iterator = entity.bx().iterator(); diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 1d47a11..f7d9a7c 100644 +index ab0656e..424ee48 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1039,6 +1039,7 @@ public abstract class World implements IBlockAccess { +@@ -1098,6 +1098,7 @@ public abstract class World implements IBlockAccess { public boolean addEntity(Entity entity, SpawnReason spawnReason) { // Changed signature, added SpawnReason org.spigotmc.AsyncCatcher.catchOp( "entity add"); // Spigot if (entity == null) return false; @@ -33,5 +33,5 @@ index 1d47a11..f7d9a7c 100644 int i = MathHelper.floor(entity.locX / 16.0D); int j = MathHelper.floor(entity.locZ / 16.0D); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0158-Fix-Old-Sign-Conversion.patch b/Spigot-Server-Patches/0154-Fix-Old-Sign-Conversion.patch similarity index 88% rename from Spigot-Server-Patches/0158-Fix-Old-Sign-Conversion.patch rename to Spigot-Server-Patches/0154-Fix-Old-Sign-Conversion.patch index 6dd67544c5..c2fec1d0d4 100644 --- a/Spigot-Server-Patches/0158-Fix-Old-Sign-Conversion.patch +++ b/Spigot-Server-Patches/0154-Fix-Old-Sign-Conversion.patch @@ -1,4 +1,4 @@ -From 85c5067d98b0e5f612563d2b0422a232f19b812e Mon Sep 17 00:00:00 2001 +From dfe457a610b086620e5d1e2dfdde0f80bc14511d Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 17 Jun 2016 20:50:11 -0400 Subject: [PATCH] Fix Old Sign Conversion @@ -9,7 +9,7 @@ Subject: [PATCH] Fix Old Sign Conversion This causes Igloos and such to render broken signs. We fix this by ignoring sign conversion for Defined Structures diff --git a/src/main/java/net/minecraft/server/DefinedStructure.java b/src/main/java/net/minecraft/server/DefinedStructure.java -index dc795bd..15c63c6 100644 +index 20e25c2..d59c6cd 100644 --- a/src/main/java/net/minecraft/server/DefinedStructure.java +++ b/src/main/java/net/minecraft/server/DefinedStructure.java @@ -203,9 +203,11 @@ public class DefinedStructure { @@ -24,7 +24,7 @@ index dc795bd..15c63c6 100644 } } } -@@ -609,7 +611,7 @@ public class DefinedStructure { +@@ -600,7 +602,7 @@ public class DefinedStructure { public IBlockData a(int i) { IBlockData iblockdata = (IBlockData) this.b.fromId(i); @@ -34,19 +34,19 @@ index dc795bd..15c63c6 100644 public Iterator iterator() { diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java -index cd39fe5..f4c84bf 100644 +index b2122a9..7545d60 100644 --- a/src/main/java/net/minecraft/server/TileEntity.java +++ b/src/main/java/net/minecraft/server/TileEntity.java -@@ -13,6 +13,7 @@ import org.bukkit.inventory.InventoryHolder; // CraftBukkit +@@ -11,6 +11,7 @@ import org.bukkit.inventory.InventoryHolder; // CraftBukkit public abstract class TileEntity { public Timing tickTimer = MinecraftTimings.getTileEntityTimings(this); // Paper + boolean isLoadingStructure = false; // Paper private static final Logger a = LogManager.getLogger(); - private static final Map> f = Maps.newHashMap(); - private static final Map, String> g = Maps.newHashMap(); + private static final RegistryMaterials> f = new RegistryMaterials(); + protected World world; diff --git a/src/main/java/net/minecraft/server/TileEntitySign.java b/src/main/java/net/minecraft/server/TileEntitySign.java -index 5694ff7..f5ba2dd 100644 +index 34ade14..242552c 100644 --- a/src/main/java/net/minecraft/server/TileEntitySign.java +++ b/src/main/java/net/minecraft/server/TileEntitySign.java @@ -93,13 +93,14 @@ public class TileEntitySign extends TileEntity { @@ -67,5 +67,5 @@ index 5694ff7..f5ba2dd 100644 try { this.lines[i] = ChatComponentUtils.filterForDisplay(icommandlistener, ichatbasecomponent, (Entity) null); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0154-Remove-the-item-from-the-correct-hand-when-spawn-egg.patch b/Spigot-Server-Patches/0154-Remove-the-item-from-the-correct-hand-when-spawn-egg.patch deleted file mode 100644 index b3946f3a39..0000000000 --- a/Spigot-Server-Patches/0154-Remove-the-item-from-the-correct-hand-when-spawn-egg.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 4920562b7fa90aae47dc8b2ede5bd9457f1f5689 Mon Sep 17 00:00:00 2001 -From: Aikar -Date: Sat, 18 Jun 2016 01:49:22 -0400 -Subject: [PATCH] Remove the item from the correct hand when spawn egg depletes - - -diff --git a/src/main/java/net/minecraft/server/EntityAgeable.java b/src/main/java/net/minecraft/server/EntityAgeable.java -index 6092346..c1e9cbf 100644 ---- a/src/main/java/net/minecraft/server/EntityAgeable.java -+++ b/src/main/java/net/minecraft/server/EntityAgeable.java -@@ -63,7 +63,7 @@ public abstract class EntityAgeable extends EntityCreature { - --itemstack.count; - // CraftBukkit start - allow less than 0 stacks as "infinite" - if (itemstack.count == 0) { -- entityhuman.inventory.setItem(entityhuman.inventory.itemInHandIndex, (ItemStack) null); -+ entityhuman.setHeldItem(enumhand, null); // Paper - } - // CraftBukkit end - } -diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 526a608..c0c60a7 100644 ---- a/src/main/java/net/minecraft/server/EntityLiving.java -+++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -1407,6 +1407,7 @@ public abstract class EntityLiving extends Entity { - } - } - -+ public void setHeldItem(EnumHand enumhand, @Nullable ItemStack itemstack) { a(enumhand, itemstack); } // Paper - OBFHELPER - public void a(EnumHand enumhand, @Nullable ItemStack itemstack) { - if (enumhand == EnumHand.MAIN_HAND) { - this.setSlot(EnumItemSlot.MAINHAND, itemstack); --- -2.9.3 - diff --git a/Spigot-Server-Patches/0159-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch b/Spigot-Server-Patches/0155-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch similarity index 92% rename from Spigot-Server-Patches/0159-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch rename to Spigot-Server-Patches/0155-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch index 9dc151457c..1172488288 100644 --- a/Spigot-Server-Patches/0159-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch +++ b/Spigot-Server-Patches/0155-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch @@ -1,4 +1,4 @@ -From 61dfedf10fd0db21e09a830ec963edc1802b0e33 Mon Sep 17 00:00:00 2001 +From db3d1547cdd512ebbb747ae3e3302d5e1ff19fb9 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Sat, 16 Jul 2016 19:11:17 -0500 Subject: [PATCH] Don't lookup game profiles that have no UUID and no name @@ -18,5 +18,5 @@ index 989758c..1c619c5 100644 GameProfile gameprofile = new GameProfile(uuid, s); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0160-More-informative-vehicle-moved-wrongly-message.patch b/Spigot-Server-Patches/0156-More-informative-vehicle-moved-wrongly-message.patch similarity index 84% rename from Spigot-Server-Patches/0160-More-informative-vehicle-moved-wrongly-message.patch rename to Spigot-Server-Patches/0156-More-informative-vehicle-moved-wrongly-message.patch index 6b8d29e65e..8bd57dfba3 100644 --- a/Spigot-Server-Patches/0160-More-informative-vehicle-moved-wrongly-message.patch +++ b/Spigot-Server-Patches/0156-More-informative-vehicle-moved-wrongly-message.patch @@ -1,14 +1,14 @@ -From 087e74ba75e93488140b390e5291d95f45c9843f Mon Sep 17 00:00:00 2001 +From 0280ebfd1743284fc42a5b8a22921a9293fade03 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Thu, 28 Jul 2016 17:58:53 -0500 Subject: [PATCH] More informative vehicle moved wrongly message diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 236062d..04ca0f4 100644 +index 9fa9ad6..052847d 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -343,7 +343,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { +@@ -342,7 +342,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { if (d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold) { // Spigot flag1 = true; @@ -18,5 +18,5 @@ index 236062d..04ca0f4 100644 entity.setLocation(d3, d4, d5, f, f1); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0161-Re-track-players-that-dismount-from-other-players.patch b/Spigot-Server-Patches/0157-Re-track-players-that-dismount-from-other-players.patch similarity index 85% rename from Spigot-Server-Patches/0161-Re-track-players-that-dismount-from-other-players.patch rename to Spigot-Server-Patches/0157-Re-track-players-that-dismount-from-other-players.patch index bf2e8a5f49..4ccc0437d7 100644 --- a/Spigot-Server-Patches/0161-Re-track-players-that-dismount-from-other-players.patch +++ b/Spigot-Server-Patches/0157-Re-track-players-that-dismount-from-other-players.patch @@ -1,14 +1,14 @@ -From 250e0bb7e863f271cd7bd1af013c356786a337bb Mon Sep 17 00:00:00 2001 +From 4ff19b3208d669d5dce08b3108f02c4a1ddebdb7 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Sun, 31 Jul 2016 16:33:03 -0500 Subject: [PATCH] Re-track players that dismount from other players diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index d084fc2..ec3a60a 100644 +index 83f3317..ee3bdcf 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java -@@ -648,6 +648,13 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -632,6 +632,13 @@ public class EntityPlayer extends EntityHuman implements ICrafting { if (entity1 != entity && this.playerConnection != null) { this.playerConnection.a(this.locX, this.locY, this.locZ, this.yaw, this.pitch); } @@ -23,5 +23,5 @@ index d084fc2..ec3a60a 100644 } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0162-Add-setting-for-proxy-online-mode-status.patch b/Spigot-Server-Patches/0158-Add-setting-for-proxy-online-mode-status.patch similarity index 92% rename from Spigot-Server-Patches/0162-Add-setting-for-proxy-online-mode-status.patch rename to Spigot-Server-Patches/0158-Add-setting-for-proxy-online-mode-status.patch index f7df3ac55c..83619a27ca 100644 --- a/Spigot-Server-Patches/0162-Add-setting-for-proxy-online-mode-status.patch +++ b/Spigot-Server-Patches/0158-Add-setting-for-proxy-online-mode-status.patch @@ -1,4 +1,4 @@ -From db400deddc2037f271ec50ed905de61f2dbbef06 Mon Sep 17 00:00:00 2001 +From ac0baf843f3321abaee0f33c7d722989dd3916ba Mon Sep 17 00:00:00 2001 From: Gabriele C Date: Fri, 5 Aug 2016 01:03:08 +0200 Subject: [PATCH] Add setting for proxy online mode status @@ -19,7 +19,7 @@ index ecf18eb..91546b6 100644 + } } diff --git a/src/main/java/net/minecraft/server/NameReferencingFileConverter.java b/src/main/java/net/minecraft/server/NameReferencingFileConverter.java -index e21a8c4..41f6300 100644 +index 2ff8a6d..52e7360 100644 --- a/src/main/java/net/minecraft/server/NameReferencingFileConverter.java +++ b/src/main/java/net/minecraft/server/NameReferencingFileConverter.java @@ -65,7 +65,8 @@ public class NameReferencingFileConverter { @@ -33,10 +33,10 @@ index e21a8c4..41f6300 100644 } else { String[] astring1 = astring; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 100142e..4fb9c5e 100644 +index 6dad363..2cb0bae 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1350,7 +1350,8 @@ public final class CraftServer implements Server { +@@ -1345,7 +1345,8 @@ public final class CraftServer implements Server { // Spigot Start GameProfile profile = null; // Only fetch an online UUID in online mode @@ -47,5 +47,5 @@ index 100142e..4fb9c5e 100644 profile = console.getUserCache().getProfile( name ); } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0163-Optimise-BlockStateEnum-hashCode-and-equals.patch b/Spigot-Server-Patches/0159-Optimise-BlockStateEnum-hashCode-and-equals.patch similarity index 96% rename from Spigot-Server-Patches/0163-Optimise-BlockStateEnum-hashCode-and-equals.patch rename to Spigot-Server-Patches/0159-Optimise-BlockStateEnum-hashCode-and-equals.patch index 028d60c031..fe6b970cc2 100644 --- a/Spigot-Server-Patches/0163-Optimise-BlockStateEnum-hashCode-and-equals.patch +++ b/Spigot-Server-Patches/0159-Optimise-BlockStateEnum-hashCode-and-equals.patch @@ -1,4 +1,4 @@ -From dfb4a18ee99b99c3de3d43e4f8d4e7926e0d05eb Mon Sep 17 00:00:00 2001 +From 64b37b622f4e10a52558313fba5a96d2d4f5c715 Mon Sep 17 00:00:00 2001 From: Alfie Cleveland Date: Fri, 19 Aug 2016 01:52:56 +0100 Subject: [PATCH] Optimise BlockStateEnum hashCode and equals @@ -58,5 +58,5 @@ index 288c52c..66c459d 100644 public static & INamable> BlockStateEnum of(String s, Class oclass) { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0164-Disable-ticking-of-snow-blocks.patch b/Spigot-Server-Patches/0160-Disable-ticking-of-snow-blocks.patch similarity index 71% rename from Spigot-Server-Patches/0164-Disable-ticking-of-snow-blocks.patch rename to Spigot-Server-Patches/0160-Disable-ticking-of-snow-blocks.patch index 6dc672e8cc..e7648cc4c7 100644 --- a/Spigot-Server-Patches/0164-Disable-ticking-of-snow-blocks.patch +++ b/Spigot-Server-Patches/0160-Disable-ticking-of-snow-blocks.patch @@ -1,14 +1,14 @@ -From 222eaff023f8aa11e1b15d48bd62702723f6e2e4 Mon Sep 17 00:00:00 2001 +From 7d402227d07286eddce588c63b10c8f69618aae4 Mon Sep 17 00:00:00 2001 From: killme Date: Tue, 30 Aug 2016 16:39:48 +0200 Subject: [PATCH] Disable ticking of snow blocks diff --git a/src/main/java/net/minecraft/server/BlockSnowBlock.java b/src/main/java/net/minecraft/server/BlockSnowBlock.java -index 1c43a37..a3b1998 100644 +index f69dc17..51924fe 100644 --- a/src/main/java/net/minecraft/server/BlockSnowBlock.java +++ b/src/main/java/net/minecraft/server/BlockSnowBlock.java -@@ -7,7 +7,7 @@ public class BlockSnowBlock extends Block { +@@ -6,7 +6,7 @@ public class BlockSnowBlock extends Block { protected BlockSnowBlock() { super(Material.SNOW_BLOCK); @@ -17,16 +17,16 @@ index 1c43a37..a3b1998 100644 this.a(CreativeModeTab.b); } -@@ -20,6 +20,8 @@ public class BlockSnowBlock extends Block { +@@ -18,6 +18,8 @@ public class BlockSnowBlock extends Block { return 4; } + // Paper start - snow blocks don't need to tick + /* public void b(World world, BlockPosition blockposition, IBlockData iblockdata, Random random) { - if (world.b(EnumSkyBlock.BLOCK, blockposition) > 11) { + if (world.getBrightness(EnumSkyBlock.BLOCK, blockposition) > 11) { this.b(world, blockposition, world.getType(blockposition), 0); -@@ -27,4 +29,6 @@ public class BlockSnowBlock extends Block { +@@ -25,4 +27,6 @@ public class BlockSnowBlock extends Block { } } @@ -34,5 +34,5 @@ index 1c43a37..a3b1998 100644 + //Paper end } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0165-Convert-new-health-to-a-float-during-set.patch b/Spigot-Server-Patches/0161-Convert-new-health-to-a-float-during-set.patch similarity index 90% rename from Spigot-Server-Patches/0165-Convert-new-health-to-a-float-during-set.patch rename to Spigot-Server-Patches/0161-Convert-new-health-to-a-float-during-set.patch index c275b14544..4c576d2381 100644 --- a/Spigot-Server-Patches/0165-Convert-new-health-to-a-float-during-set.patch +++ b/Spigot-Server-Patches/0161-Convert-new-health-to-a-float-during-set.patch @@ -1,4 +1,4 @@ -From 9bcfc25cb5b46f1eb8ed4bd6312fac4bcdab43a8 Mon Sep 17 00:00:00 2001 +From cf1eccf846f6d3b1e74979e9b2912a7b0d2cfc3c Mon Sep 17 00:00:00 2001 From: kashike Date: Thu, 1 Sep 2016 09:51:31 +0000 Subject: [PATCH] Convert new health to a float during set @@ -6,7 +6,7 @@ Subject: [PATCH] Convert new health to a float during set Convert the new health value to a float before doing any validation logic diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index b807a3f..9e19e7c 100644 +index 0493c1b..13d480f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -91,6 +91,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @@ -18,5 +18,5 @@ index b807a3f..9e19e7c 100644 // Paper - Be more informative throw new IllegalArgumentException("Health must be between 0 and " + getMaxHealth() + ", but was " + health -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0166-Fix-AIOOBE-in-inventory-handling.patch b/Spigot-Server-Patches/0162-Fix-AIOOBE-in-inventory-handling.patch similarity index 85% rename from Spigot-Server-Patches/0166-Fix-AIOOBE-in-inventory-handling.patch rename to Spigot-Server-Patches/0162-Fix-AIOOBE-in-inventory-handling.patch index 3cc2f08202..b79b0715bb 100644 --- a/Spigot-Server-Patches/0166-Fix-AIOOBE-in-inventory-handling.patch +++ b/Spigot-Server-Patches/0162-Fix-AIOOBE-in-inventory-handling.patch @@ -1,14 +1,14 @@ -From e0fe0796c36bbbe60e65f4fed48b674c1169701a Mon Sep 17 00:00:00 2001 +From 2dd71889546b21e8776df2cc1b451989acb828b2 Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Sun, 4 Sep 2016 16:35:43 -0500 Subject: [PATCH] Fix AIOOBE in inventory handling diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 04ca0f4..5cbced0 100644 +index 052847d..5f86e0a 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -1822,7 +1822,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { +@@ -1796,7 +1796,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { case CLONE: if (packetplayinwindowclick.c() == 2) { click = ClickType.MIDDLE; @@ -18,5 +18,5 @@ index 04ca0f4..5cbced0 100644 } else { Slot slot = this.player.activeContainer.getSlot(packetplayinwindowclick.b()); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0167-Configurable-packet-in-spam-threshold.patch b/Spigot-Server-Patches/0163-Configurable-packet-in-spam-threshold.patch similarity index 93% rename from Spigot-Server-Patches/0167-Configurable-packet-in-spam-threshold.patch rename to Spigot-Server-Patches/0163-Configurable-packet-in-spam-threshold.patch index b6790c3f6d..037fb05d60 100644 --- a/Spigot-Server-Patches/0167-Configurable-packet-in-spam-threshold.patch +++ b/Spigot-Server-Patches/0163-Configurable-packet-in-spam-threshold.patch @@ -1,4 +1,4 @@ -From 84581d78245fe3ec6935a2d67cfdd4c612e964e8 Mon Sep 17 00:00:00 2001 +From 285e4d9d114e3bb87f3850b36d67d9d0e30be0d5 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Sun, 11 Sep 2016 14:30:57 -0500 Subject: [PATCH] Configurable packet in spam threshold @@ -23,10 +23,10 @@ index 91546b6..211b88a 100644 + } } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 5cbced0..6ed369f 100644 +index 5f86e0a..6ed53dd 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -868,13 +868,14 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { +@@ -855,13 +855,14 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { // Spigot start - limit place/interactions private int limitedPackets; private long lastLimitedPacket = -1; diff --git a/Spigot-Server-Patches/0168-Configurable-flying-kick-messages.patch b/Spigot-Server-Patches/0164-Configurable-flying-kick-messages.patch similarity index 91% rename from Spigot-Server-Patches/0168-Configurable-flying-kick-messages.patch rename to Spigot-Server-Patches/0164-Configurable-flying-kick-messages.patch index 54ca5a0479..7bf45e8a97 100644 --- a/Spigot-Server-Patches/0168-Configurable-flying-kick-messages.patch +++ b/Spigot-Server-Patches/0164-Configurable-flying-kick-messages.patch @@ -1,4 +1,4 @@ -From 310d95004ccabc847e481ad33d4c9cb8135464ca Mon Sep 17 00:00:00 2001 +From 7ae8fc9dea13bbb435641999e91017797a427321 Mon Sep 17 00:00:00 2001 From: kashike Date: Tue, 20 Sep 2016 00:58:01 +0000 Subject: [PATCH] Configurable flying kick messages @@ -21,10 +21,10 @@ index 211b88a..3161dad 100644 + } } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index d82eec9..ef3a096 100644 +index 6ed53dd..6c1efc6 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -143,7 +143,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { +@@ -142,7 +142,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { if (this.B) { if (++this.C > 80) { PlayerConnection.LOGGER.warn("{} was kicked for floating too long!", new Object[] { this.player.getName()}); @@ -33,7 +33,7 @@ index d82eec9..ef3a096 100644 return; } } else { -@@ -162,7 +162,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { +@@ -161,7 +161,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { if (this.D && this.player.getVehicle().bw() == this.player) { if (++this.E > 80) { PlayerConnection.LOGGER.warn("{} was kicked for floating a vehicle too long!", new Object[] { this.player.getName()}); @@ -43,5 +43,5 @@ index d82eec9..ef3a096 100644 } } else { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0169-Auto-Save-Improvements.patch b/Spigot-Server-Patches/0165-Auto-Save-Improvements.patch similarity index 92% rename from Spigot-Server-Patches/0169-Auto-Save-Improvements.patch rename to Spigot-Server-Patches/0165-Auto-Save-Improvements.patch index 664ee43fed..bb965469f5 100644 --- a/Spigot-Server-Patches/0169-Auto-Save-Improvements.patch +++ b/Spigot-Server-Patches/0165-Auto-Save-Improvements.patch @@ -1,4 +1,4 @@ -From 7009c675aa0448da9b79227a32c72afccfaf79c4 Mon Sep 17 00:00:00 2001 +From 6f88b5620b63b44c056baec11dbe05479e809409 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 19 Sep 2016 23:16:39 -0400 Subject: [PATCH] Auto Save Improvements @@ -10,7 +10,7 @@ Process auto save every tick instead of once per auto tick interval, so that chu Re-introduce a cap per tick for auto save (Spigot disabled the vanilla cap) and make it configurable. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index fb67306..eacb1f6 100644 +index 965edc9..da530f9 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -2,6 +2,7 @@ package com.destroystokyo.paper; @@ -21,7 +21,7 @@ index fb67306..eacb1f6 100644 import org.bukkit.Bukkit; import org.bukkit.configuration.file.YamlConfiguration; import org.spigotmc.SpigotWorldConfig; -@@ -377,4 +378,19 @@ public class PaperWorldConfig { +@@ -365,4 +366,19 @@ public class PaperWorldConfig { private void elytraHitWallDamage() { elytraHitWallDamage = getBoolean("elytra-hit-wall-damage", true); } @@ -42,7 +42,7 @@ index fb67306..eacb1f6 100644 + } } diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 683a6dd..2314ce0 100644 +index 88437d7..9f7f32d 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -960,11 +960,9 @@ public class Chunk { @@ -60,7 +60,7 @@ index 683a6dd..2314ce0 100644 public Random a(long i) { diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 3828da7..7e53fee 100644 +index 7a56a64..5c5a56c 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -1,5 +1,6 @@ @@ -70,7 +70,7 @@ index 3828da7..7e53fee 100644 import com.google.common.collect.Lists; import com.google.common.collect.Sets; import it.unimi.dsi.fastutil.longs.Long2ObjectMap; -@@ -265,7 +266,7 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -266,7 +267,7 @@ public class ChunkProviderServer implements IChunkProvider { this.saveChunk(chunk); chunk.f(false); ++i; @@ -80,10 +80,10 @@ index 3828da7..7e53fee 100644 } } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 807ec58..b398ef1 100644 +index 968b0ec..683ace3 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -114,6 +114,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -117,6 +117,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs public final Thread primaryThread; public java.util.Queue processQueue = new java.util.concurrent.ConcurrentLinkedQueue(); public int autosavePeriod; @@ -91,7 +91,7 @@ index 807ec58..b398ef1 100644 // CraftBukkit end public MinecraftServer(OptionSet options, Proxy proxy, DataConverterManager dataconvertermanager, YggdrasilAuthenticationService yggdrasilauthenticationservice, MinecraftSessionService minecraftsessionservice, GameProfileRepository gameprofilerepository, UserCache usercache) { -@@ -751,22 +752,26 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -760,22 +761,26 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs this.q.b().a(agameprofile); } @@ -122,10 +122,10 @@ index 807ec58..b398ef1 100644 this.methodProfiler.a("tallying"); this.h[this.ticks % 100] = System.nanoTime() - i; diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index fc33575..81712ff 100644 +index 27e13e2..639f14d 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1017,8 +1017,9 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -1020,8 +1020,9 @@ public class WorldServer extends World implements IAsyncTaskHandler { ChunkProviderServer chunkproviderserver = this.getChunkProviderServer(); if (chunkproviderserver.e()) { @@ -136,7 +136,7 @@ index fc33575..81712ff 100644 if (iprogressupdate != null) { iprogressupdate.a("Saving level"); } -@@ -1027,6 +1028,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -1030,6 +1031,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { if (iprogressupdate != null) { iprogressupdate.c("Saving chunks"); } diff --git a/Spigot-Server-Patches/0170-Chunk-registration-fixes.patch b/Spigot-Server-Patches/0166-Chunk-registration-fixes.patch similarity index 76% rename from Spigot-Server-Patches/0170-Chunk-registration-fixes.patch rename to Spigot-Server-Patches/0166-Chunk-registration-fixes.patch index b971c4e5c4..d75f448c06 100644 --- a/Spigot-Server-Patches/0170-Chunk-registration-fixes.patch +++ b/Spigot-Server-Patches/0166-Chunk-registration-fixes.patch @@ -1,4 +1,4 @@ -From 20d1d0572b6d0d77e40cbc628ae09f6b4cbd4c2c Mon Sep 17 00:00:00 2001 +From 2a3e39c4d8dad45834527f5bb3300a622266ae8d Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 21 Sep 2016 22:54:28 -0400 Subject: [PATCH] Chunk registration fixes @@ -8,10 +8,10 @@ World checks and the Chunk Add logic are inconsistent on how Y > 256, < 0, is tr Keep them consistent diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index f7d9a7c..9eaab84 100644 +index 424ee48..addde05 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1761,7 +1761,7 @@ public abstract class World implements IBlockAccess { +@@ -1783,7 +1783,7 @@ public abstract class World implements IBlockAccess { } int k = MathHelper.floor(entity.locX / 16.0D); @@ -19,7 +19,7 @@ index f7d9a7c..9eaab84 100644 + int l = Math.min(15, Math.max(0, MathHelper.floor(entity.locY / 16.0D))); // Paper - stay consistent with chunk add/remove behavior int i1 = MathHelper.floor(entity.locZ / 16.0D); - if (!entity.ab || entity.ac != k || entity.ad != l || entity.ae != i1) { + if (!entity.aa || entity.ab != k || entity.ac != l || entity.ad != i1) { -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0171-Process-NMS-Data-Conversion-post-ItemMeta-on-Copy.patch b/Spigot-Server-Patches/0167-Process-NMS-Data-Conversion-post-ItemMeta-on-Copy.patch similarity index 72% rename from Spigot-Server-Patches/0171-Process-NMS-Data-Conversion-post-ItemMeta-on-Copy.patch rename to Spigot-Server-Patches/0167-Process-NMS-Data-Conversion-post-ItemMeta-on-Copy.patch index 6f470802a9..e33cd6995a 100644 --- a/Spigot-Server-Patches/0171-Process-NMS-Data-Conversion-post-ItemMeta-on-Copy.patch +++ b/Spigot-Server-Patches/0167-Process-NMS-Data-Conversion-post-ItemMeta-on-Copy.patch @@ -1,4 +1,4 @@ -From 7e706a63ea208997d90b520de7f47a0a9c5ac6b8 Mon Sep 17 00:00:00 2001 +From 20ef4d01bb477b3675c0a68d71e8850634d67ce9 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 4 May 2016 22:31:18 -0400 Subject: [PATCH] Process NMS Data Conversion post ItemMeta on Copy @@ -15,10 +15,10 @@ erasing the NBT Tag. On copy, run conversion post ItemMeta apply. diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java -index d45a9ec..a8874d2 100644 +index dbe9a9c..394a877 100644 --- a/src/main/java/net/minecraft/server/ItemStack.java +++ b/src/main/java/net/minecraft/server/ItemStack.java -@@ -53,7 +53,12 @@ public final class ItemStack { +@@ -55,13 +55,24 @@ public final class ItemStack { this(item, i, 0); } @@ -29,26 +29,27 @@ index d45a9ec..a8874d2 100644 + public ItemStack(Item item, int i, int j, boolean convert) { + // Paper end this.item = item; + this.damage = j; this.count = i; - -@@ -63,6 +68,11 @@ public final class ItemStack { - //if (this.damage < 0) { - // this.damage = 0; - //} + // CraftBukkit start - Pass to setData to do filtering + // Paper start -+ if (convert) convertData(); ++ if (convert) convertData(j); + } -+ public final void convertData() { ++ ++ public final void convertData(int data) { + // Paper end if (MinecraftServer.getServer() != null) { +- this.setData(j); ++ this.setData(data); NBTTagCompound savedStack = new NBTTagCompound(); this.save(savedStack); + MinecraftServer.getServer().getDataConverterManager().a(DataConverterTypes.ITEM_INSTANCE, savedStack); // PAIL: convert diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index 88f0292..7f77d44 100644 +index 9ae05b3..18451fd 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -@@ -45,10 +45,11 @@ public final class CraftItemStack extends ItemStack { - return null; +@@ -41,10 +41,11 @@ public final class CraftItemStack extends ItemStack { + return net.minecraft.server.ItemStack.a; } - net.minecraft.server.ItemStack stack = new net.minecraft.server.ItemStack(item, original.getAmount(), original.getDurability()); @@ -56,10 +57,10 @@ index 88f0292..7f77d44 100644 if (original.hasItemMeta()) { setItemMeta(stack, original.getItemMeta()); } -+ stack.convertData(); // Paper ++ stack.convertData(original.getDurability()); // Paper return stack; } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0172-Remove-FishingHook-reference-on-Craft-Entity-removal.patch b/Spigot-Server-Patches/0168-Remove-FishingHook-reference-on-Craft-Entity-removal.patch similarity index 92% rename from Spigot-Server-Patches/0172-Remove-FishingHook-reference-on-Craft-Entity-removal.patch rename to Spigot-Server-Patches/0168-Remove-FishingHook-reference-on-Craft-Entity-removal.patch index 908a4af184..272da4c130 100644 --- a/Spigot-Server-Patches/0172-Remove-FishingHook-reference-on-Craft-Entity-removal.patch +++ b/Spigot-Server-Patches/0168-Remove-FishingHook-reference-on-Craft-Entity-removal.patch @@ -1,4 +1,4 @@ -From 254fe9bda050a3dcdaac74d61250355f1c410470 Mon Sep 17 00:00:00 2001 +From 106fc9dcf2bf6ce78a01c8316ea056ac21fe6b6e Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 16 Jun 2016 00:17:23 -0400 Subject: [PATCH] Remove FishingHook reference on Craft Entity removal @@ -26,5 +26,5 @@ index ecfc316..3f909c1 100644 public LivingEntity _INVALID_getShooter() { return (LivingEntity) getShooter(); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0173-Auto-fix-bad-Y-levels-on-player-login.patch b/Spigot-Server-Patches/0169-Auto-fix-bad-Y-levels-on-player-login.patch similarity index 88% rename from Spigot-Server-Patches/0173-Auto-fix-bad-Y-levels-on-player-login.patch rename to Spigot-Server-Patches/0169-Auto-fix-bad-Y-levels-on-player-login.patch index 95d8e028c7..8e6bc5a28b 100644 --- a/Spigot-Server-Patches/0173-Auto-fix-bad-Y-levels-on-player-login.patch +++ b/Spigot-Server-Patches/0169-Auto-fix-bad-Y-levels-on-player-login.patch @@ -1,4 +1,4 @@ -From 92614475f61be436eb118ace870194ac18d76b61 Mon Sep 17 00:00:00 2001 +From 88454efd54140bc08bfec25fb2b0c7ebfa0e7efb Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 21 Sep 2016 23:48:39 -0400 Subject: [PATCH] Auto fix bad Y levels on player login @@ -6,7 +6,7 @@ Subject: [PATCH] Auto fix bad Y levels on player login Bring down to a saner Y level if super high, as this can cause the server to crash diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index ec3a60a..da2b5bb 100644 +index ee3bdcf..ec06d8e 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -126,6 +126,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -18,5 +18,5 @@ index ec3a60a..da2b5bb 100644 } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0174-Raise-string-limit-for-packet-serialization.patch b/Spigot-Server-Patches/0170-Raise-string-limit-for-packet-serialization.patch similarity index 83% rename from Spigot-Server-Patches/0174-Raise-string-limit-for-packet-serialization.patch rename to Spigot-Server-Patches/0170-Raise-string-limit-for-packet-serialization.patch index 8597b3fd5b..f44dc08731 100644 --- a/Spigot-Server-Patches/0174-Raise-string-limit-for-packet-serialization.patch +++ b/Spigot-Server-Patches/0170-Raise-string-limit-for-packet-serialization.patch @@ -1,4 +1,4 @@ -From b764aff15a3ec79ee2a19559650e88ef279f1f3b Mon Sep 17 00:00:00 2001 +From c8a48fee9053fddd2e1e1158075b0dc4ffba5498 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 21 Sep 2016 23:54:20 -0400 Subject: [PATCH] Raise string limit for packet serialization @@ -8,20 +8,20 @@ The default limit is possible to hit with 50 page books with color codes, causin Bump the limit up a hair to above currently seen sizes. diff --git a/src/main/java/net/minecraft/server/PacketDataSerializer.java b/src/main/java/net/minecraft/server/PacketDataSerializer.java -index b056457..662bd1e 100644 +index 7a66195..68e8c46 100644 --- a/src/main/java/net/minecraft/server/PacketDataSerializer.java +++ b/src/main/java/net/minecraft/server/PacketDataSerializer.java -@@ -298,8 +298,8 @@ public class PacketDataSerializer extends ByteBuf { +@@ -297,8 +297,8 @@ public class PacketDataSerializer extends ByteBuf { public PacketDataSerializer a(String s) { byte[] abyte = s.getBytes(Charsets.UTF_8); - if (abyte.length > 32767) { -- throw new EncoderException("String too big (was " + s.length() + " bytes encoded, max " + 32767 + ")"); +- throw new EncoderException("String too big (was " + abyte.length + " bytes encoded, max " + 32767 + ")"); + if (abyte.length > 44767) { // Paper - raise limit a bit more as normal means can trigger this + throw new EncoderException("String too big (was " + s.length() + " bytes encoded, max " + 44767 + ")"); // Paper } else { this.d(abyte.length); this.writeBytes(abyte); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0175-Disable-Vanilla-Chunk-GC.patch b/Spigot-Server-Patches/0171-Disable-Vanilla-Chunk-GC.patch similarity index 83% rename from Spigot-Server-Patches/0175-Disable-Vanilla-Chunk-GC.patch rename to Spigot-Server-Patches/0171-Disable-Vanilla-Chunk-GC.patch index 4d3b9f8c79..f89493bacd 100644 --- a/Spigot-Server-Patches/0175-Disable-Vanilla-Chunk-GC.patch +++ b/Spigot-Server-Patches/0171-Disable-Vanilla-Chunk-GC.patch @@ -1,4 +1,4 @@ -From 96cd80a98cf8702e37dcfb3b9ed6f2c1fbfa2bca Mon Sep 17 00:00:00 2001 +From ddc177a9b7773ff2f78d79d5cc92d24344a146c9 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 26 Sep 2016 01:51:30 -0400 Subject: [PATCH] Disable Vanilla Chunk GC @@ -6,10 +6,10 @@ Subject: [PATCH] Disable Vanilla Chunk GC Bukkit has its own system for this. diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 81712ff..5c07180 100644 +index 639f14d..eb05984 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1034,7 +1034,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -1037,7 +1037,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { chunkproviderserver.a(flag); timings.worldSaveChunks.stopTiming(); // Paper // CraftBukkit - ArrayList -> Collection @@ -18,7 +18,7 @@ index 81712ff..5c07180 100644 Iterator iterator = arraylist.iterator(); while (iterator.hasNext()) { -@@ -1043,7 +1043,8 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -1046,7 +1046,8 @@ public class WorldServer extends World implements IAsyncTaskHandler { if (chunk != null && !this.manager.a(chunk.locX, chunk.locZ)) { chunkproviderserver.unload(chunk); } @@ -29,5 +29,5 @@ index 81712ff..5c07180 100644 } } -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0176-Add-hit-entity-to-ProjectileHitEvent.patch b/Spigot-Server-Patches/0172-Add-hit-entity-to-ProjectileHitEvent.patch similarity index 76% rename from Spigot-Server-Patches/0176-Add-hit-entity-to-ProjectileHitEvent.patch rename to Spigot-Server-Patches/0172-Add-hit-entity-to-ProjectileHitEvent.patch index fce6a918a8..53fbe9755e 100644 --- a/Spigot-Server-Patches/0176-Add-hit-entity-to-ProjectileHitEvent.patch +++ b/Spigot-Server-Patches/0172-Add-hit-entity-to-ProjectileHitEvent.patch @@ -1,14 +1,14 @@ -From 181ebeba38bebb388ce49764af07cb1e9d56658c Mon Sep 17 00:00:00 2001 +From d61e3c6a3da9d7a3f34fce5580f222bfa92482a6 Mon Sep 17 00:00:00 2001 From: AlphaBlend Date: Wed, 21 Sep 2016 20:40:46 -0700 Subject: [PATCH] Add hit entity to ProjectileHitEvent diff --git a/src/main/java/net/minecraft/server/EntityArrow.java b/src/main/java/net/minecraft/server/EntityArrow.java -index 37cb17c..9cdc58a 100644 +index b71ebea..3021c81 100644 --- a/src/main/java/net/minecraft/server/EntityArrow.java +++ b/src/main/java/net/minecraft/server/EntityArrow.java -@@ -263,7 +263,7 @@ public abstract class EntityArrow extends Entity implements IProjectile { +@@ -264,7 +264,7 @@ public abstract class EntityArrow extends Entity implements IProjectile { protected void a(MovingObjectPosition movingobjectposition) { Entity entity = movingobjectposition.entity; @@ -18,10 +18,10 @@ index 37cb17c..9cdc58a 100644 float f = MathHelper.sqrt(this.motX * this.motX + this.motY * this.motY + this.motZ * this.motZ); int i = MathHelper.f((double) f * this.damage); diff --git a/src/main/java/net/minecraft/server/EntityFireball.java b/src/main/java/net/minecraft/server/EntityFireball.java -index 393f26e..7cd3054 100644 +index 45e5972..88372f3 100644 --- a/src/main/java/net/minecraft/server/EntityFireball.java +++ b/src/main/java/net/minecraft/server/EntityFireball.java -@@ -99,7 +99,7 @@ public abstract class EntityFireball extends Entity { +@@ -75,7 +75,7 @@ public abstract class EntityFireball extends Entity { // CraftBukkit start - Fire ProjectileHitEvent if (this.dead) { @@ -31,20 +31,20 @@ index 393f26e..7cd3054 100644 // CraftBukkit end } diff --git a/src/main/java/net/minecraft/server/EntityFishingHook.java b/src/main/java/net/minecraft/server/EntityFishingHook.java -index 9b71cdd..08a2dc0 100644 +index e0475ce..395f30b 100644 --- a/src/main/java/net/minecraft/server/EntityFishingHook.java +++ b/src/main/java/net/minecraft/server/EntityFishingHook.java -@@ -207,7 +207,7 @@ public class EntityFishingHook extends Entity { - // Paper end +@@ -234,7 +234,7 @@ public class EntityFishingHook extends Entity { + // Paper end + + if (movingobjectposition != null) { +- org.bukkit.craftbukkit.event.CraftEventFactory.callProjectileHitEvent(this); // Craftbukkit - Call event ++ org.bukkit.craftbukkit.event.CraftEventFactory.callProjectileHitEvent(this, movingobjectposition.entity); // Craftbukkit - Call event // Paper - Include entity in movingobjectposition + vec3d1 = new Vec3D(movingobjectposition.pos.x, movingobjectposition.pos.y, movingobjectposition.pos.z); + } - if (movingobjectposition != null) { -- org.bukkit.craftbukkit.event.CraftEventFactory.callProjectileHitEvent(this); // Craftbukkit - Call event -+ org.bukkit.craftbukkit.event.CraftEventFactory.callProjectileHitEvent(this, movingobjectposition.entity); // Craftbukkit - Call event // Paper - Include entity in movingobjectposition - if (movingobjectposition.entity != null) { - this.hooked = movingobjectposition.entity; - this.getDataWatcher().set(EntityFishingHook.c, Integer.valueOf(this.hooked.getId() + 1)); diff --git a/src/main/java/net/minecraft/server/EntityProjectile.java b/src/main/java/net/minecraft/server/EntityProjectile.java -index 770f130..e95cc24 100644 +index 3d5548f..0dbd66a 100644 --- a/src/main/java/net/minecraft/server/EntityProjectile.java +++ b/src/main/java/net/minecraft/server/EntityProjectile.java @@ -175,7 +175,7 @@ public abstract class EntityProjectile extends Entity implements IProjectile { @@ -57,10 +57,10 @@ index 770f130..e95cc24 100644 // CraftBukkit end } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index e39de2b..949db83 100644 +index f80856a..4ce1980 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -782,6 +782,15 @@ public class CraftEventFactory { +@@ -784,6 +784,15 @@ public class CraftEventFactory { return event; } @@ -77,5 +77,5 @@ index e39de2b..949db83 100644 ThrownExpBottle bottle = (ThrownExpBottle) entity.getBukkitEntity(); ExpBottleEvent event = new ExpBottleEvent(bottle, exp); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0177-Option-to-remove-corrupt-tile-entities.patch b/Spigot-Server-Patches/0173-Option-to-remove-corrupt-tile-entities.patch similarity index 90% rename from Spigot-Server-Patches/0177-Option-to-remove-corrupt-tile-entities.patch rename to Spigot-Server-Patches/0173-Option-to-remove-corrupt-tile-entities.patch index 97f10100de..21829be481 100644 --- a/Spigot-Server-Patches/0177-Option-to-remove-corrupt-tile-entities.patch +++ b/Spigot-Server-Patches/0173-Option-to-remove-corrupt-tile-entities.patch @@ -1,14 +1,14 @@ -From e479dcac7e3df3695921c10fab905906e393ee84 Mon Sep 17 00:00:00 2001 +From 0144aac583728865281312210b416ae4fa6430f2 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Wed, 5 Oct 2016 16:27:36 -0500 Subject: [PATCH] Option to remove corrupt tile entities diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index eacb1f6..51b34d9 100644 +index da530f9..376b9ed 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -393,4 +393,9 @@ public class PaperWorldConfig { +@@ -381,4 +381,9 @@ public class PaperWorldConfig { private void maxAutoSaveChunksPerTick() { maxAutoSaveChunksPerTick = getInt("max-auto-save-chunks-per-tick", 24); } @@ -19,7 +19,7 @@ index eacb1f6..51b34d9 100644 + } } diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 547628a..9f39530 100644 +index 9f7f32d..d850dbf 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -783,11 +783,17 @@ public class Chunk { @@ -41,5 +41,5 @@ index 547628a..9f39530 100644 if (this.j) { TileEntity tileentity = (TileEntity) this.tileEntities.remove(blockposition); -- -2.9.3 +2.10.2 diff --git a/Spigot-Server-Patches/0178-Add-EntityZapEvent.patch b/Spigot-Server-Patches/0174-Add-EntityZapEvent.patch similarity index 84% rename from Spigot-Server-Patches/0178-Add-EntityZapEvent.patch rename to Spigot-Server-Patches/0174-Add-EntityZapEvent.patch index 0eae53204d..c778935c02 100644 --- a/Spigot-Server-Patches/0178-Add-EntityZapEvent.patch +++ b/Spigot-Server-Patches/0174-Add-EntityZapEvent.patch @@ -1,14 +1,14 @@ -From d35fa192fffb96fff4945701d8aff0acc992b196 Mon Sep 17 00:00:00 2001 +From adb9ccf7805d2cdde3299522fbed2f36dab3a19a Mon Sep 17 00:00:00 2001 From: AlphaBlend Date: Sun, 16 Oct 2016 23:19:30 -0700 Subject: [PATCH] Add EntityZapEvent diff --git a/src/main/java/net/minecraft/server/EntityPig.java b/src/main/java/net/minecraft/server/EntityPig.java -index 7cee3de..2c4bd0a 100644 +index 5279a60..c5f5b57 100644 --- a/src/main/java/net/minecraft/server/EntityPig.java +++ b/src/main/java/net/minecraft/server/EntityPig.java -@@ -139,6 +139,12 @@ public class EntityPig extends EntityAnimal { +@@ -146,6 +146,12 @@ public class EntityPig extends EntityAnimal { if (!this.world.isClientSide && !this.dead) { EntityPigZombie entitypigzombie = new EntityPigZombie(this.world); @@ -22,10 +22,10 @@ index 7cee3de..2c4bd0a 100644 if (CraftEventFactory.callPigZapEvent(this, entitylightning, entitypigzombie).isCancelled()) { return; diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java -index 029b916..c3ec21a 100644 +index a2e68c5..4a6b3da 100644 --- a/src/main/java/net/minecraft/server/EntityVillager.java +++ b/src/main/java/net/minecraft/server/EntityVillager.java -@@ -566,6 +566,12 @@ public class EntityVillager extends EntityAgeable implements IMerchant, NPC { +@@ -616,6 +616,12 @@ public class EntityVillager extends EntityAgeable implements NPC, IMerchant { if (!this.world.isClientSide && !this.dead) { EntityWitch entitywitch = new EntityWitch(this.world); @@ -38,7 +38,7 @@ index 029b916..c3ec21a 100644 entitywitch.setPositionRotation(this.locX, this.locY, this.locZ, this.yaw, this.pitch); entitywitch.prepare(this.world.D(new BlockPosition(entitywitch)), (GroupDataEntity) null); entitywitch.setAI(this.hasAI()); -@@ -574,7 +580,7 @@ public class EntityVillager extends EntityAgeable implements IMerchant, NPC { +@@ -624,7 +630,7 @@ public class EntityVillager extends EntityAgeable implements NPC, IMerchant { entitywitch.setCustomNameVisible(this.getCustomNameVisible()); } @@ -48,10 +48,10 @@ index 029b916..c3ec21a 100644 } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 949db83..bff7e8d 100644 +index 4ce1980..9df2758 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -668,6 +668,14 @@ public class CraftEventFactory { +@@ -670,6 +670,14 @@ public class CraftEventFactory { return event; } @@ -64,7 +64,7 @@ index 949db83..bff7e8d 100644 + // Paper end + public static HorseJumpEvent callHorseJumpEvent(Entity horse, float power) { - HorseJumpEvent event = new HorseJumpEvent((Horse) horse.getBukkitEntity(), power); + HorseJumpEvent event = new HorseJumpEvent((AbstractHorse) horse.getBukkitEntity(), power); horse.getBukkitEntity().getServer().getPluginManager().callEvent(event); -- 2.10.2 diff --git a/Spigot-Server-Patches/0179-Don-t-load-Chunks-from-Hoppers-and-other-things.patch b/Spigot-Server-Patches/0175-Don-t-load-Chunks-from-Hoppers-and-other-things.patch similarity index 94% rename from Spigot-Server-Patches/0179-Don-t-load-Chunks-from-Hoppers-and-other-things.patch rename to Spigot-Server-Patches/0175-Don-t-load-Chunks-from-Hoppers-and-other-things.patch index 4d4c680d7d..866501820c 100644 --- a/Spigot-Server-Patches/0179-Don-t-load-Chunks-from-Hoppers-and-other-things.patch +++ b/Spigot-Server-Patches/0175-Don-t-load-Chunks-from-Hoppers-and-other-things.patch @@ -1,4 +1,4 @@ -From ee5f4518088b9d58be983ccbcd6bf6e7309ff967 Mon Sep 17 00:00:00 2001 +From 06cdbc2de896f1c2bf170e91007f5435550a0bb4 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 3 Nov 2016 20:28:12 -0400 Subject: [PATCH] Don't load Chunks from Hoppers and other things @@ -13,7 +13,7 @@ This of course is undesirable, so just return the loaded side as "primary" and treat it as a single chest if the other sides are unloaded diff --git a/src/main/java/net/minecraft/server/BlockChest.java b/src/main/java/net/minecraft/server/BlockChest.java -index a5f2fc0..71239cd 100644 +index 9d4c15f..9470dd6 100644 --- a/src/main/java/net/minecraft/server/BlockChest.java +++ b/src/main/java/net/minecraft/server/BlockChest.java @@ -339,7 +339,13 @@ public class BlockChest extends BlockTileEntity { diff --git a/Spigot-Server-Patches/0180-Prevent-Auto-Save-if-Save-Queue-is-full.patch b/Spigot-Server-Patches/0176-Prevent-Auto-Save-if-Save-Queue-is-full.patch similarity index 89% rename from Spigot-Server-Patches/0180-Prevent-Auto-Save-if-Save-Queue-is-full.patch rename to Spigot-Server-Patches/0176-Prevent-Auto-Save-if-Save-Queue-is-full.patch index 6053eb30f5..c020bc0ce0 100644 --- a/Spigot-Server-Patches/0180-Prevent-Auto-Save-if-Save-Queue-is-full.patch +++ b/Spigot-Server-Patches/0176-Prevent-Auto-Save-if-Save-Queue-is-full.patch @@ -1,4 +1,4 @@ -From de20f349b8fdc5cb057267034bb9926673706aa1 Mon Sep 17 00:00:00 2001 +From b9bf5d9d1395f456078224fede75a62bb078bd95 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 3 Nov 2016 21:52:22 -0400 Subject: [PATCH] Prevent Auto Save if Save Queue is full @@ -7,10 +7,10 @@ If the save queue already has 50 (configurable) of chunks pending, then avoid processing auto save (which would add more) diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 51b34d9..9d361cb 100644 +index 376b9ed..4ad072a 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -394,6 +394,11 @@ public class PaperWorldConfig { +@@ -382,6 +382,11 @@ public class PaperWorldConfig { maxAutoSaveChunksPerTick = getInt("max-auto-save-chunks-per-tick", 24); } @@ -23,10 +23,10 @@ index 51b34d9..9d361cb 100644 private void removeCorruptTEs() { removeCorruptTEs = getBoolean("remove-corrupt-tile-entities", false); diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 7e53fee..99afdb7 100644 +index 5c5a56c..b7afcb2 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java -@@ -253,6 +253,14 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -254,6 +254,14 @@ public class ChunkProviderServer implements IChunkProvider { int i = 0; // CraftBukkit start @@ -41,7 +41,7 @@ index 7e53fee..99afdb7 100644 Iterator iterator = this.chunks.values().iterator(); while (iterator.hasNext()) { Chunk chunk = (Chunk) iterator.next(); -@@ -266,7 +274,7 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -267,7 +275,7 @@ public class ChunkProviderServer implements IChunkProvider { this.saveChunk(chunk); chunk.f(false); ++i; @@ -51,7 +51,7 @@ index 7e53fee..99afdb7 100644 } } diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index b672a38..70e71cc 100644 +index ff7b406..2fbcf8d 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java @@ -33,6 +33,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { diff --git a/Spigot-Server-Patches/0181-Chunk-Save-Stats-Debug-Option.patch b/Spigot-Server-Patches/0177-Chunk-Save-Stats-Debug-Option.patch similarity index 91% rename from Spigot-Server-Patches/0181-Chunk-Save-Stats-Debug-Option.patch rename to Spigot-Server-Patches/0177-Chunk-Save-Stats-Debug-Option.patch index 53f2448423..51c1fbf132 100644 --- a/Spigot-Server-Patches/0181-Chunk-Save-Stats-Debug-Option.patch +++ b/Spigot-Server-Patches/0177-Chunk-Save-Stats-Debug-Option.patch @@ -1,4 +1,4 @@ -From 80c6641efa6b60e138ba25d9cdd9fdce9a45a902 Mon Sep 17 00:00:00 2001 +From 2dc0df2919355e20d84a53b3f8bd0e2ccd0bd5a5 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 4 Nov 2016 02:12:10 -0400 Subject: [PATCH] Chunk Save Stats Debug Option @@ -8,10 +8,10 @@ Adds a command line flag to enable stats on how chunk saves are processing. Stats on current queue, how many was processed and how many were queued. diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 99afdb7..3a44ad3 100644 +index b7afcb2..3b82627 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java -@@ -27,6 +27,11 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -28,6 +28,11 @@ public class ChunkProviderServer implements IChunkProvider { public final it.unimi.dsi.fastutil.longs.LongSet unloadQueue = new it.unimi.dsi.fastutil.longs.LongArraySet(); // PAIL: private -> public // Paper public final ChunkGenerator chunkGenerator; private final IChunkLoader chunkLoader; @@ -23,7 +23,7 @@ index 99afdb7..3a44ad3 100644 // Paper start protected Chunk lastChunkByPos = null; public Long2ObjectOpenHashMap chunks = new Long2ObjectOpenHashMap(8192) { -@@ -256,6 +261,30 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -257,6 +262,30 @@ public class ChunkProviderServer implements IChunkProvider { // Paper start final ChunkRegionLoader chunkLoader = (ChunkRegionLoader) world.getChunkProviderServer().chunkLoader; final int queueSize = chunkLoader.getQueueSize(); @@ -55,7 +55,7 @@ index 99afdb7..3a44ad3 100644 return false; } diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index 70e71cc..08f6f0d 100644 +index 2fbcf8d..519c527 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java @@ -33,7 +33,13 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { @@ -73,7 +73,7 @@ index 70e71cc..08f6f0d 100644 public boolean chunkExists(World world, int i, int j) { ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(i, j); -@@ -150,6 +156,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { +@@ -158,6 +164,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { synchronized (lock) { // Paper - Chunk queue improvements this.b.put(chunkcoordintpair, nbttagcompound); } @@ -81,7 +81,7 @@ index 70e71cc..08f6f0d 100644 queue.add(new QueuedChunk(chunkcoordintpair, nbttagcompound)); // Paper - Chunk queue improvements FileIOThread.a().a(this); -@@ -167,6 +174,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { +@@ -175,6 +182,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { return false; } else { ChunkCoordIntPair chunkcoordintpair = chunk.coords; // Paper - Chunk queue improvements diff --git a/Spigot-Server-Patches/0182-Filter-bad-data-from-ArmorStand-and-SpawnEgg-items.patch b/Spigot-Server-Patches/0178-Filter-bad-data-from-ArmorStand-and-SpawnEgg-items.patch similarity index 89% rename from Spigot-Server-Patches/0182-Filter-bad-data-from-ArmorStand-and-SpawnEgg-items.patch rename to Spigot-Server-Patches/0178-Filter-bad-data-from-ArmorStand-and-SpawnEgg-items.patch index 91b069b109..7e7ac38e8e 100644 --- a/Spigot-Server-Patches/0182-Filter-bad-data-from-ArmorStand-and-SpawnEgg-items.patch +++ b/Spigot-Server-Patches/0178-Filter-bad-data-from-ArmorStand-and-SpawnEgg-items.patch @@ -1,14 +1,14 @@ -From 2693dcda742dac4a8ffd686a0cd52fddd36c5449 Mon Sep 17 00:00:00 2001 +From f5ae9165b3a8817ce2613310bdd39c66b29b38f1 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Sat, 12 Nov 2016 23:25:22 -0600 Subject: [PATCH] Filter bad data from ArmorStand and SpawnEgg items diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 9d361cb..651f23e 100644 +index 4ad072a..73bf744 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -403,4 +403,12 @@ public class PaperWorldConfig { +@@ -391,4 +391,12 @@ public class PaperWorldConfig { private void removeCorruptTEs() { removeCorruptTEs = getBoolean("remove-corrupt-tile-entities", false); } @@ -22,10 +22,10 @@ index 9d361cb..651f23e 100644 + } } diff --git a/src/main/java/net/minecraft/server/EntityFallingBlock.java b/src/main/java/net/minecraft/server/EntityFallingBlock.java -index dcfdd31..abc4b5c 100644 +index edc817a..df63f8f 100644 --- a/src/main/java/net/minecraft/server/EntityFallingBlock.java +++ b/src/main/java/net/minecraft/server/EntityFallingBlock.java -@@ -250,6 +250,14 @@ public class EntityFallingBlock extends Entity { +@@ -251,6 +251,14 @@ public class EntityFallingBlock extends Entity { this.block = Block.getById(nbttagcompound.getByte("Tile") & 255).fromLegacyData(i); } @@ -41,10 +41,10 @@ index dcfdd31..abc4b5c 100644 Block block = this.block.getBlock(); diff --git a/src/main/java/net/minecraft/server/ItemMonsterEgg.java b/src/main/java/net/minecraft/server/ItemMonsterEgg.java -index 6317cba..1b3816f 100644 +index 69caabb..143b94f 100644 --- a/src/main/java/net/minecraft/server/ItemMonsterEgg.java +++ b/src/main/java/net/minecraft/server/ItemMonsterEgg.java -@@ -83,7 +83,14 @@ public class ItemMonsterEgg extends Item { +@@ -103,7 +103,14 @@ public class ItemMonsterEgg extends Item { NBTTagCompound nbttagcompound1 = entity.e(new NBTTagCompound()); UUID uuid = entity.getUniqueID(); diff --git a/scripts/importmcdev.sh b/scripts/importmcdev.sh index 13a7d13345..927f1de1a5 100755 --- a/scripts/importmcdev.sh +++ b/scripts/importmcdev.sh @@ -61,6 +61,7 @@ import EULA import EntitySquid import EntityWaterAnimal import FileIOThread +import IEntitySelector import IHopper import ItemBlock import ItemMonsterEgg diff --git a/work/BuildData b/work/BuildData index f37e6395d8..77931c01e7 160000 --- a/work/BuildData +++ b/work/BuildData @@ -1 +1 @@ -Subproject commit f37e6395d8f7d4865df27a4ab77e0c0d45de8fb9 +Subproject commit 77931c01e72ff84c004a310b121a72b52f0efdd5 diff --git a/work/Bukkit b/work/Bukkit index 570e0e6752..be7be5128d 160000 --- a/work/Bukkit +++ b/work/Bukkit @@ -1 +1 @@ -Subproject commit 570e0e67528698b67770ea12e22c82d937fd3080 +Subproject commit be7be5128d751e5c2f266b02f71b18404a0c37d7 diff --git a/work/CraftBukkit b/work/CraftBukkit index 51263e9718..f15e07b1a9 160000 --- a/work/CraftBukkit +++ b/work/CraftBukkit @@ -1 +1 @@ -Subproject commit 51263e97187a84338f89698eef187284055a682a +Subproject commit f15e07b1a9a4aedbcb77cb7776f168adcfebfa7e diff --git a/work/Spigot b/work/Spigot index de459a282d..16c940b067 160000 --- a/work/Spigot +++ b/work/Spigot @@ -1 +1 @@ -Subproject commit de459a282d9f494bbc5588b461b3e8eacd74f744 +Subproject commit 16c940b0677cc9065df920e1113c80b5a047ca32