diff --git a/Spigot-API-Patches/0003-Timings-v2.patch b/Spigot-API-Patches/0003-Timings-v2.patch index 2acdc56f3b..5cfb6b88c7 100644 --- a/Spigot-API-Patches/0003-Timings-v2.patch +++ b/Spigot-API-Patches/0003-Timings-v2.patch @@ -1,4 +1,4 @@ -From 92f2c6e98e370ef4bc1f110e8eb7a85dc11eaac9 Mon Sep 17 00:00:00 2001 +From c4e6bfe0af9a90f66cf6685af9e00d904a817b2d Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 29 Feb 2016 18:48:17 -0600 Subject: [PATCH] Timings v2 @@ -6,7 +6,7 @@ Subject: [PATCH] Timings v2 diff --git a/src/main/java/co/aikar/timings/FullServerTickHandler.java b/src/main/java/co/aikar/timings/FullServerTickHandler.java new file mode 100644 -index 000000000..98079dc0c +index 00000000..98079dc0 --- /dev/null +++ b/src/main/java/co/aikar/timings/FullServerTickHandler.java @@ -0,0 +1,82 @@ @@ -94,7 +94,7 @@ index 000000000..98079dc0c +} diff --git a/src/main/java/co/aikar/timings/NullTimingHandler.java b/src/main/java/co/aikar/timings/NullTimingHandler.java new file mode 100644 -index 000000000..8c43e2061 +index 00000000..8c43e206 --- /dev/null +++ b/src/main/java/co/aikar/timings/NullTimingHandler.java @@ -0,0 +1,61 @@ @@ -161,7 +161,7 @@ index 000000000..8c43e2061 +} diff --git a/src/main/java/co/aikar/timings/TimedEventExecutor.java b/src/main/java/co/aikar/timings/TimedEventExecutor.java new file mode 100644 -index 000000000..feddcdbd4 +index 00000000..feddcdbd --- /dev/null +++ b/src/main/java/co/aikar/timings/TimedEventExecutor.java @@ -0,0 +1,81 @@ @@ -248,7 +248,7 @@ index 000000000..feddcdbd4 +} diff --git a/src/main/java/co/aikar/timings/Timing.java b/src/main/java/co/aikar/timings/Timing.java new file mode 100644 -index 000000000..b2260104c +index 00000000..b2260104 --- /dev/null +++ b/src/main/java/co/aikar/timings/Timing.java @@ -0,0 +1,76 @@ @@ -330,7 +330,7 @@ index 000000000..b2260104c +} diff --git a/src/main/java/co/aikar/timings/TimingData.java b/src/main/java/co/aikar/timings/TimingData.java new file mode 100644 -index 000000000..f222d6b7d +index 00000000..f222d6b7 --- /dev/null +++ b/src/main/java/co/aikar/timings/TimingData.java @@ -0,0 +1,120 @@ @@ -456,7 +456,7 @@ index 000000000..f222d6b7d +} diff --git a/src/main/java/co/aikar/timings/TimingHandler.java b/src/main/java/co/aikar/timings/TimingHandler.java new file mode 100644 -index 000000000..521c985e6 +index 00000000..521c985e --- /dev/null +++ b/src/main/java/co/aikar/timings/TimingHandler.java @@ -0,0 +1,200 @@ @@ -662,7 +662,7 @@ index 000000000..521c985e6 +} diff --git a/src/main/java/co/aikar/timings/TimingHistory.java b/src/main/java/co/aikar/timings/TimingHistory.java new file mode 100644 -index 000000000..28d0954a3 +index 00000000..28d0954a --- /dev/null +++ b/src/main/java/co/aikar/timings/TimingHistory.java @@ -0,0 +1,345 @@ @@ -1013,7 +1013,7 @@ index 000000000..28d0954a3 +} diff --git a/src/main/java/co/aikar/timings/TimingHistoryEntry.java b/src/main/java/co/aikar/timings/TimingHistoryEntry.java new file mode 100644 -index 000000000..0e114eb32 +index 00000000..0e114eb3 --- /dev/null +++ b/src/main/java/co/aikar/timings/TimingHistoryEntry.java @@ -0,0 +1,55 @@ @@ -1074,7 +1074,7 @@ index 000000000..0e114eb32 +} diff --git a/src/main/java/co/aikar/timings/TimingIdentifier.java b/src/main/java/co/aikar/timings/TimingIdentifier.java new file mode 100644 -index 000000000..a7f1f44d7 +index 00000000..a7f1f44d --- /dev/null +++ b/src/main/java/co/aikar/timings/TimingIdentifier.java @@ -0,0 +1,106 @@ @@ -1186,7 +1186,7 @@ index 000000000..a7f1f44d7 +} diff --git a/src/main/java/co/aikar/timings/Timings.java b/src/main/java/co/aikar/timings/Timings.java new file mode 100644 -index 000000000..f907649ba +index 00000000..f907649b --- /dev/null +++ b/src/main/java/co/aikar/timings/Timings.java @@ -0,0 +1,284 @@ @@ -1476,7 +1476,7 @@ index 000000000..f907649ba +} diff --git a/src/main/java/co/aikar/timings/TimingsCommand.java b/src/main/java/co/aikar/timings/TimingsCommand.java new file mode 100644 -index 000000000..56b10e898 +index 00000000..56b10e89 --- /dev/null +++ b/src/main/java/co/aikar/timings/TimingsCommand.java @@ -0,0 +1,119 @@ @@ -1601,7 +1601,7 @@ index 000000000..56b10e898 +} diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java new file mode 100644 -index 000000000..df7f42595 +index 00000000..df7f4259 --- /dev/null +++ b/src/main/java/co/aikar/timings/TimingsExport.java @@ -0,0 +1,342 @@ @@ -1949,7 +1949,7 @@ index 000000000..df7f42595 +} diff --git a/src/main/java/co/aikar/timings/TimingsManager.java b/src/main/java/co/aikar/timings/TimingsManager.java new file mode 100644 -index 000000000..f63e7033c +index 00000000..f63e7033 --- /dev/null +++ b/src/main/java/co/aikar/timings/TimingsManager.java @@ -0,0 +1,187 @@ @@ -2142,7 +2142,7 @@ index 000000000..f63e7033c +} diff --git a/src/main/java/co/aikar/timings/TimingsReportListener.java b/src/main/java/co/aikar/timings/TimingsReportListener.java new file mode 100644 -index 000000000..e7c389c05 +index 00000000..e7c389c0 --- /dev/null +++ b/src/main/java/co/aikar/timings/TimingsReportListener.java @@ -0,0 +1,72 @@ @@ -2220,7 +2220,7 @@ index 000000000..e7c389c05 +} diff --git a/src/main/java/co/aikar/timings/UnsafeTimingHandler.java b/src/main/java/co/aikar/timings/UnsafeTimingHandler.java new file mode 100644 -index 000000000..5edaba128 +index 00000000..5edaba12 --- /dev/null +++ b/src/main/java/co/aikar/timings/UnsafeTimingHandler.java @@ -0,0 +1,51 @@ @@ -2277,7 +2277,7 @@ index 000000000..5edaba128 +} diff --git a/src/main/java/co/aikar/util/Counter.java b/src/main/java/co/aikar/util/Counter.java new file mode 100644 -index 000000000..23ac07f2c +index 00000000..23ac07f2 --- /dev/null +++ b/src/main/java/co/aikar/util/Counter.java @@ -0,0 +1,35 @@ @@ -2318,7 +2318,7 @@ index 000000000..23ac07f2c +} diff --git a/src/main/java/co/aikar/util/JSONUtil.java b/src/main/java/co/aikar/util/JSONUtil.java new file mode 100644 -index 000000000..962749750 +index 00000000..96274975 --- /dev/null +++ b/src/main/java/co/aikar/util/JSONUtil.java @@ -0,0 +1,129 @@ @@ -2453,7 +2453,7 @@ index 000000000..962749750 +} diff --git a/src/main/java/co/aikar/util/LoadingIntMap.java b/src/main/java/co/aikar/util/LoadingIntMap.java new file mode 100644 -index 000000000..24eae4bea +index 00000000..24eae4be --- /dev/null +++ b/src/main/java/co/aikar/util/LoadingIntMap.java @@ -0,0 +1,71 @@ @@ -2530,7 +2530,7 @@ index 000000000..24eae4bea +} diff --git a/src/main/java/co/aikar/util/LoadingMap.java b/src/main/java/co/aikar/util/LoadingMap.java new file mode 100644 -index 000000000..9a4f9dca8 +index 00000000..9a4f9dca --- /dev/null +++ b/src/main/java/co/aikar/util/LoadingMap.java @@ -0,0 +1,339 @@ @@ -2875,7 +2875,7 @@ index 000000000..9a4f9dca8 +} diff --git a/src/main/java/co/aikar/util/MRUMapCache.java b/src/main/java/co/aikar/util/MRUMapCache.java new file mode 100644 -index 000000000..df592d855 +index 00000000..df592d85 --- /dev/null +++ b/src/main/java/co/aikar/util/MRUMapCache.java @@ -0,0 +1,102 @@ @@ -2982,7 +2982,7 @@ index 000000000..df592d855 + } +} diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 58f3efe09..38e629193 100644 +index d8014f14..14e425d1 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -572,7 +572,6 @@ public final class Bukkit { @@ -2994,10 +2994,10 @@ index 58f3efe09..38e629193 100644 /** diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 23e7e4173..e2ac40dcb 100644 +index fac90a48..9d2326ca 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1178,12 +1178,27 @@ public interface Server extends PluginMessageRecipient { +@@ -1193,12 +1193,27 @@ public interface Server extends PluginMessageRecipient { // Spigot start public class Spigot { @@ -3028,7 +3028,7 @@ index 23e7e4173..e2ac40dcb 100644 * diff --git a/src/main/java/org/bukkit/command/BufferedCommandSender.java b/src/main/java/org/bukkit/command/BufferedCommandSender.java new file mode 100644 -index 000000000..fd452bce4 +index 00000000..fd452bce --- /dev/null +++ b/src/main/java/org/bukkit/command/BufferedCommandSender.java @@ -0,0 +1,18 @@ @@ -3051,7 +3051,7 @@ index 000000000..fd452bce4 + } +} diff --git a/src/main/java/org/bukkit/command/Command.java b/src/main/java/org/bukkit/command/Command.java -index 33e8681d6..db7f44289 100644 +index 33e8681d..db7f4428 100644 --- a/src/main/java/org/bukkit/command/Command.java +++ b/src/main/java/org/bukkit/command/Command.java @@ -33,7 +33,8 @@ public abstract class Command { @@ -3081,7 +3081,7 @@ index 33e8681d6..db7f44289 100644 return true; } diff --git a/src/main/java/org/bukkit/command/FormattedCommandAlias.java b/src/main/java/org/bukkit/command/FormattedCommandAlias.java -index 502578837..9c80f4640 100644 +index 50257883..9c80f464 100644 --- a/src/main/java/org/bukkit/command/FormattedCommandAlias.java +++ b/src/main/java/org/bukkit/command/FormattedCommandAlias.java @@ -9,6 +9,7 @@ public class FormattedCommandAlias extends Command { @@ -3104,7 +3104,7 @@ index 502578837..9c80f4640 100644 } diff --git a/src/main/java/org/bukkit/command/MessageCommandSender.java b/src/main/java/org/bukkit/command/MessageCommandSender.java new file mode 100644 -index 000000000..5527e7c86 +index 00000000..5527e7c8 --- /dev/null +++ b/src/main/java/org/bukkit/command/MessageCommandSender.java @@ -0,0 +1,105 @@ @@ -3214,7 +3214,7 @@ index 000000000..5527e7c86 + +} diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java -index d9183db2f..43e52a77a 100644 +index d9183db2..43e52a77 100644 --- a/src/main/java/org/bukkit/command/SimpleCommandMap.java +++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java @@ -29,7 +29,7 @@ public class SimpleCommandMap implements CommandMap { @@ -3249,7 +3249,7 @@ index d9183db2f..43e52a77a 100644 // Note: we don't return the result of target.execute as thats success / failure, we return handled (true) or not handled (false) diff --git a/src/main/java/org/bukkit/command/defaults/TimingsCommand.java b/src/main/java/org/bukkit/command/defaults/TimingsCommand.java deleted file mode 100644 -index bba914d7f..000000000 +index bba914d7..00000000 --- a/src/main/java/org/bukkit/command/defaults/TimingsCommand.java +++ /dev/null @@ -1,253 +0,0 @@ @@ -3507,7 +3507,7 @@ index bba914d7f..000000000 - // Spigot end -} diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 71fe947bc..75f21146c 100644 +index 71fe947b..75f21146 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -1551,6 +1551,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @@ -3523,10 +3523,10 @@ index 71fe947bc..75f21146c 100644 @Override diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -index 8b130abb7..80c152ba9 100644 +index 92db0663..0185934b 100644 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -@@ -293,7 +293,6 @@ public final class SimplePluginManager implements PluginManager { +@@ -294,7 +294,6 @@ public final class SimplePluginManager implements PluginManager { } } @@ -3534,7 +3534,7 @@ index 8b130abb7..80c152ba9 100644 return result.toArray(new Plugin[result.size()]); } -@@ -330,7 +329,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -331,7 +330,7 @@ public final class SimplePluginManager implements PluginManager { if (result != null) { plugins.add(result); @@ -3543,7 +3543,7 @@ index 8b130abb7..80c152ba9 100644 } return result; -@@ -356,7 +355,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -357,7 +356,7 @@ public final class SimplePluginManager implements PluginManager { * @return Plugin if it exists, otherwise null */ public synchronized Plugin getPlugin(String name) { @@ -3552,7 +3552,7 @@ index 8b130abb7..80c152ba9 100644 } public synchronized Plugin[] getPlugins() { -@@ -554,7 +553,8 @@ public final class SimplePluginManager implements PluginManager { +@@ -555,7 +554,8 @@ public final class SimplePluginManager implements PluginManager { throw new IllegalPluginAccessException("Plugin attempted to register " + event + " while not enabled"); } @@ -3562,7 +3562,7 @@ index 8b130abb7..80c152ba9 100644 getEventListeners(event).register(new TimedRegisteredListener(listener, executor, priority, plugin, ignoreCancelled)); } else { getEventListeners(event).register(new RegisteredListener(listener, executor, priority, plugin, ignoreCancelled)); -@@ -730,7 +730,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -731,7 +731,7 @@ public final class SimplePluginManager implements PluginManager { } public boolean useTimings() { @@ -3571,7 +3571,7 @@ index 8b130abb7..80c152ba9 100644 } /** -@@ -739,6 +739,6 @@ public final class SimplePluginManager implements PluginManager { +@@ -740,6 +740,6 @@ public final class SimplePluginManager implements PluginManager { * @param use True if per event timing code should be used */ public void useTimings(boolean use) { @@ -3580,7 +3580,7 @@ index 8b130abb7..80c152ba9 100644 } } diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java -index 2d4c75ab2..545945468 100644 +index 2d4c75ab..54594546 100644 --- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java +++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java @@ -41,7 +41,6 @@ import org.bukkit.plugin.PluginLoader; @@ -3629,7 +3629,7 @@ index 2d4c75ab2..545945468 100644 eventSet.add(new TimedRegisteredListener(listener, executor, eh.priority(), plugin, eh.ignoreCancelled())); } else { diff --git a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java -index 7a8abe75a..bc33ff33a 100644 +index 7a8abe75..bc33ff33 100644 --- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java +++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java @@ -23,7 +23,8 @@ import org.bukkit.plugin.PluginDescriptionFile; @@ -3643,7 +3643,7 @@ index 7a8abe75a..bc33ff33a 100644 private final Map> classes = new ConcurrentHashMap>(); private final PluginDescriptionFile description; diff --git a/src/main/java/org/bukkit/util/CachedServerIcon.java b/src/main/java/org/bukkit/util/CachedServerIcon.java -index 5ca863b36..048047067 100644 +index 5ca863b3..04804706 100644 --- a/src/main/java/org/bukkit/util/CachedServerIcon.java +++ b/src/main/java/org/bukkit/util/CachedServerIcon.java @@ -12,4 +12,6 @@ import org.bukkit.event.server.ServerListPingEvent; @@ -3655,7 +3655,7 @@ index 5ca863b36..048047067 100644 + public String getData(); // Spigot +} diff --git a/src/main/java/org/spigotmc/CustomTimingsHandler.java b/src/main/java/org/spigotmc/CustomTimingsHandler.java -index 8d982974e..e9f76006e 100644 +index 8d982974..e9f76006 100644 --- a/src/main/java/org/spigotmc/CustomTimingsHandler.java +++ b/src/main/java/org/spigotmc/CustomTimingsHandler.java @@ -1,165 +1,105 @@ diff --git a/Spigot-API-Patches/0013-Expose-server-CommandMap.patch b/Spigot-API-Patches/0013-Expose-server-CommandMap.patch index d4eee3739f..f931fb82e9 100644 --- a/Spigot-API-Patches/0013-Expose-server-CommandMap.patch +++ b/Spigot-API-Patches/0013-Expose-server-CommandMap.patch @@ -1,14 +1,14 @@ -From 06f6137e4b84d9d2a2e29b74cc652e0d66845d3a Mon Sep 17 00:00:00 2001 +From 1aea2e6ad04b50f18e972f4b30a3f2855b6108eb 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 e1ce29328..e4d945830 100644 +index 6055c801..cb7dc068 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -1420,6 +1420,17 @@ public final class Bukkit { +@@ -1437,6 +1437,17 @@ public final class Bukkit { return server.getUnsafe(); } @@ -27,7 +27,7 @@ index e1ce29328..e4d945830 100644 { return server.spigot(); diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index fea2ad6f4..29e3feb1e 100644 +index 1632af18..c4dc1de2 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -1065,6 +1065,14 @@ public interface Server extends PluginMessageRecipient { diff --git a/Spigot-API-Patches/0016-Add-exception-reporting-event.patch b/Spigot-API-Patches/0016-Add-exception-reporting-event.patch index c271b609fd..b6b0164496 100644 --- a/Spigot-API-Patches/0016-Add-exception-reporting-event.patch +++ b/Spigot-API-Patches/0016-Add-exception-reporting-event.patch @@ -1,4 +1,4 @@ -From 46d9ff00a27f92c65eb4d40037300c5f3fbc394c Mon Sep 17 00:00:00 2001 +From 89163d1e8bdffcb4edd56ad2285ce58bf5852f01 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Mon, 29 Feb 2016 20:24:35 -0600 Subject: [PATCH] Add exception reporting event @@ -6,7 +6,7 @@ Subject: [PATCH] Add exception reporting event diff --git a/src/main/java/com/destroystokyo/paper/event/server/ServerExceptionEvent.java b/src/main/java/com/destroystokyo/paper/event/server/ServerExceptionEvent.java new file mode 100644 -index 000000000..4109454a3 +index 00000000..4109454a --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/event/server/ServerExceptionEvent.java @@ -0,0 +1,37 @@ @@ -49,7 +49,7 @@ index 000000000..4109454a3 +} diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerCommandException.java b/src/main/java/com/destroystokyo/paper/exception/ServerCommandException.java new file mode 100644 -index 000000000..6fb39af04 +index 00000000..6fb39af0 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/exception/ServerCommandException.java @@ -0,0 +1,64 @@ @@ -119,7 +119,7 @@ index 000000000..6fb39af04 +} diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerEventException.java b/src/main/java/com/destroystokyo/paper/exception/ServerEventException.java new file mode 100644 -index 000000000..410b24139 +index 00000000..410b2413 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/exception/ServerEventException.java @@ -0,0 +1,52 @@ @@ -177,7 +177,7 @@ index 000000000..410b24139 +} diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerException.java b/src/main/java/com/destroystokyo/paper/exception/ServerException.java new file mode 100644 -index 000000000..c06ea3942 +index 00000000..c06ea394 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/exception/ServerException.java @@ -0,0 +1,23 @@ @@ -206,7 +206,7 @@ index 000000000..c06ea3942 +} diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerInternalException.java b/src/main/java/com/destroystokyo/paper/exception/ServerInternalException.java new file mode 100644 -index 000000000..e762ed0db +index 00000000..e762ed0d --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/exception/ServerInternalException.java @@ -0,0 +1,35 @@ @@ -247,7 +247,7 @@ index 000000000..e762ed0db +} diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerPluginEnableDisableException.java b/src/main/java/com/destroystokyo/paper/exception/ServerPluginEnableDisableException.java new file mode 100644 -index 000000000..f016ba3b1 +index 00000000..f016ba3b --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/exception/ServerPluginEnableDisableException.java @@ -0,0 +1,20 @@ @@ -274,7 +274,7 @@ index 000000000..f016ba3b1 \ No newline at end of file diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerPluginException.java b/src/main/java/com/destroystokyo/paper/exception/ServerPluginException.java new file mode 100644 -index 000000000..6defac287 +index 00000000..6defac28 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/exception/ServerPluginException.java @@ -0,0 +1,38 @@ @@ -318,7 +318,7 @@ index 000000000..6defac287 +} diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerPluginMessageException.java b/src/main/java/com/destroystokyo/paper/exception/ServerPluginMessageException.java new file mode 100644 -index 000000000..89e132525 +index 00000000..89e13252 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/exception/ServerPluginMessageException.java @@ -0,0 +1,64 @@ @@ -388,7 +388,7 @@ index 000000000..89e132525 +} diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerSchedulerException.java b/src/main/java/com/destroystokyo/paper/exception/ServerSchedulerException.java new file mode 100644 -index 000000000..2d0b2d4a9 +index 00000000..2d0b2d4a --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/exception/ServerSchedulerException.java @@ -0,0 +1,37 @@ @@ -431,7 +431,7 @@ index 000000000..2d0b2d4a9 +} diff --git a/src/main/java/com/destroystokyo/paper/exception/ServerTabCompleteException.java b/src/main/java/com/destroystokyo/paper/exception/ServerTabCompleteException.java new file mode 100644 -index 000000000..5582999fe +index 00000000..5582999f --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/exception/ServerTabCompleteException.java @@ -0,0 +1,22 @@ @@ -458,7 +458,7 @@ index 000000000..5582999fe + } +} diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java -index 43e52a77a..65ad78c48 100644 +index 43e52a77..65ad78c4 100644 --- a/src/main/java/org/bukkit/command/SimpleCommandMap.java +++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java @@ -9,6 +9,9 @@ import java.util.Iterator; @@ -499,10 +499,10 @@ index 43e52a77a..65ad78c48 100644 } diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -index 80c152ba9..b88f31ca2 100644 +index 0185934b..b7627e39 100644 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -@@ -18,6 +18,9 @@ import java.util.logging.Level; +@@ -19,6 +19,9 @@ import java.util.logging.Level; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -512,7 +512,7 @@ index 80c152ba9..b88f31ca2 100644 import org.apache.commons.lang.Validate; import org.bukkit.Server; import org.bukkit.command.Command; -@@ -401,7 +404,8 @@ public final class SimplePluginManager implements PluginManager { +@@ -402,7 +405,8 @@ public final class SimplePluginManager implements PluginManager { try { plugin.getPluginLoader().enablePlugin(plugin); } catch (Throwable ex) { @@ -522,7 +522,7 @@ index 80c152ba9..b88f31ca2 100644 } HandlerList.bakeAll(); -@@ -420,36 +424,48 @@ public final class SimplePluginManager implements PluginManager { +@@ -421,36 +425,48 @@ public final class SimplePluginManager implements PluginManager { try { plugin.getPluginLoader().disablePlugin(plugin); } catch (Throwable ex) { @@ -576,7 +576,7 @@ index 80c152ba9..b88f31ca2 100644 public void clearPlugins() { synchronized (this) { disablePlugins(); -@@ -511,7 +527,13 @@ public final class SimplePluginManager implements PluginManager { +@@ -512,7 +528,13 @@ public final class SimplePluginManager implements PluginManager { )); } } catch (Throwable ex) { @@ -592,5 +592,5 @@ index 80c152ba9..b88f31ca2 100644 } } -- -2.19.1 +2.20.1 diff --git a/Spigot-API-Patches/0024-Add-command-to-reload-permissions.yml-and-require-co.patch b/Spigot-API-Patches/0024-Add-command-to-reload-permissions.yml-and-require-co.patch index d683f97726..0304c19434 100644 --- a/Spigot-API-Patches/0024-Add-command-to-reload-permissions.yml-and-require-co.patch +++ b/Spigot-API-Patches/0024-Add-command-to-reload-permissions.yml-and-require-co.patch @@ -1,4 +1,4 @@ -From 143887eadf9d0909f4093ef48ef2207f67a07389 Mon Sep 17 00:00:00 2001 +From 04ea5b0483635c527ce9f0c79508b1f173e020c8 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 e38b16c2b..e1704ae2a 100644 +index 22704949..2d588c6b 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -1449,6 +1449,13 @@ public final class Bukkit { +@@ -1466,6 +1466,13 @@ public final class Bukkit { public static org.bukkit.command.CommandMap getCommandMap() { return server.getCommandMap(); } @@ -24,10 +24,10 @@ index e38b16c2b..e1704ae2a 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 dee814eed..89f68d58e 100644 +index f4f4f291..18e5dd48 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1264,4 +1264,6 @@ public interface Server extends PluginMessageRecipient { +@@ -1279,4 +1279,6 @@ public interface Server extends PluginMessageRecipient { Spigot spigot(); // Spigot end @@ -35,7 +35,7 @@ index dee814eed..89f68d58e 100644 + void reloadPermissions(); // Paper } diff --git a/src/main/java/org/bukkit/command/defaults/ReloadCommand.java b/src/main/java/org/bukkit/command/defaults/ReloadCommand.java -index 0ab7e295d..f331a4423 100644 +index 0ab7e295..f331a442 100644 --- a/src/main/java/org/bukkit/command/defaults/ReloadCommand.java +++ b/src/main/java/org/bukkit/command/defaults/ReloadCommand.java @@ -13,15 +13,36 @@ public class ReloadCommand extends BukkitCommand { @@ -87,10 +87,10 @@ index 0ab7e295d..f331a4423 100644 } } diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -index b88f31ca2..bd0588a20 100644 +index b7627e39..5034215a 100644 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -@@ -763,4 +763,13 @@ public final class SimplePluginManager implements PluginManager { +@@ -764,4 +764,13 @@ public final class SimplePluginManager implements PluginManager { public void useTimings(boolean use) { co.aikar.timings.Timings.setTimingsEnabled(use); // Spigot } diff --git a/Spigot-API-Patches/0038-Allow-Reloading-of-Command-Aliases.patch b/Spigot-API-Patches/0038-Allow-Reloading-of-Command-Aliases.patch index 27855eda1a..1da244b244 100644 --- a/Spigot-API-Patches/0038-Allow-Reloading-of-Command-Aliases.patch +++ b/Spigot-API-Patches/0038-Allow-Reloading-of-Command-Aliases.patch @@ -1,4 +1,4 @@ -From 91f8d92c9957a90a8f35f0459b3775b7e592b4ba Mon Sep 17 00:00:00 2001 +From 305f8749b7972506665be9ad41cdaa5fb020e60f Mon Sep 17 00:00:00 2001 From: willies952002 Date: Mon, 28 Nov 2016 10:16:39 -0500 Subject: [PATCH] Allow Reloading of Command Aliases @@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Command Aliases Reload the aliases stored in commands.yml diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index e1704ae2a..a312a662b 100644 +index 2d588c6b..5715057a 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -1456,6 +1456,15 @@ public final class Bukkit { +@@ -1473,6 +1473,15 @@ public final class Bukkit { public static void reloadPermissions() { server.reloadPermissions(); } @@ -26,10 +26,10 @@ index e1704ae2a..a312a662b 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 89f68d58e..a03591829 100644 +index 18e5dd48..259a0fbe 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1266,4 +1266,6 @@ public interface Server extends PluginMessageRecipient { +@@ -1281,4 +1281,6 @@ public interface Server extends PluginMessageRecipient { // Spigot end void reloadPermissions(); // Paper @@ -37,7 +37,7 @@ index 89f68d58e..a03591829 100644 + boolean reloadCommandAliases(); // Paper } diff --git a/src/main/java/org/bukkit/command/CommandMap.java b/src/main/java/org/bukkit/command/CommandMap.java -index 30d60247e..938959aa5 100644 +index 30d60247..938959aa 100644 --- a/src/main/java/org/bukkit/command/CommandMap.java +++ b/src/main/java/org/bukkit/command/CommandMap.java @@ -123,4 +123,13 @@ public interface CommandMap { @@ -55,7 +55,7 @@ index 30d60247e..938959aa5 100644 + // Paper end } diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java -index 65ad78c48..41e95692e 100644 +index 65ad78c4..41e95692 100644 --- a/src/main/java/org/bukkit/command/SimpleCommandMap.java +++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java @@ -279,4 +279,10 @@ public class SimpleCommandMap implements CommandMap { @@ -70,7 +70,7 @@ index 65ad78c48..41e95692e 100644 + // Paper end } diff --git a/src/main/java/org/bukkit/command/defaults/ReloadCommand.java b/src/main/java/org/bukkit/command/defaults/ReloadCommand.java -index f331a4423..a977045de 100644 +index f331a442..a977045d 100644 --- a/src/main/java/org/bukkit/command/defaults/ReloadCommand.java +++ b/src/main/java/org/bukkit/command/defaults/ReloadCommand.java @@ -13,7 +13,7 @@ public class ReloadCommand extends BukkitCommand { diff --git a/Spigot-API-Patches/0049-Add-configuration-option-to-prevent-player-names-fro.patch b/Spigot-API-Patches/0049-Add-configuration-option-to-prevent-player-names-fro.patch index f4332ee01f..e4d0225988 100644 --- a/Spigot-API-Patches/0049-Add-configuration-option-to-prevent-player-names-fro.patch +++ b/Spigot-API-Patches/0049-Add-configuration-option-to-prevent-player-names-fro.patch @@ -1,4 +1,4 @@ -From 33948f129f2c80ab0d7cc19602b603be14e730f3 Mon Sep 17 00:00:00 2001 +From d34bbb981986fda1507431108f1c315cdfd1c91d Mon Sep 17 00:00:00 2001 From: kashike Date: Fri, 9 Jun 2017 07:24:24 -0700 Subject: [PATCH] Add configuration option to prevent player names from being @@ -6,10 +6,10 @@ Subject: [PATCH] Add configuration option to prevent player names from being diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index a312a662b..41cd3dba2 100644 +index 5715057a..eb180374 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -1465,6 +1465,16 @@ public final class Bukkit { +@@ -1482,6 +1482,16 @@ public final class Bukkit { public static boolean reloadCommandAliases() { return server.reloadCommandAliases(); } @@ -27,10 +27,10 @@ index a312a662b..41cd3dba2 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 a03591829..46502ede1 100644 +index 259a0fbe..c57f81fd 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1268,4 +1268,14 @@ public interface Server extends PluginMessageRecipient { +@@ -1283,4 +1283,14 @@ public interface Server extends PluginMessageRecipient { void reloadPermissions(); // Paper boolean reloadCommandAliases(); // Paper @@ -46,7 +46,7 @@ index a03591829..46502ede1 100644 + // Paper end } diff --git a/src/main/java/org/bukkit/command/PluginCommand.java b/src/main/java/org/bukkit/command/PluginCommand.java -index 2abe1208f..c660c178c 100644 +index 2abe1208..c660c178 100644 --- a/src/main/java/org/bukkit/command/PluginCommand.java +++ b/src/main/java/org/bukkit/command/PluginCommand.java @@ -145,6 +145,7 @@ public final class PluginCommand extends Command implements PluginIdentifiableCo diff --git a/Spigot-API-Patches/0055-Basic-PlayerProfile-API.patch b/Spigot-API-Patches/0055-Basic-PlayerProfile-API.patch index 221e53f0b5..9dffdce2bd 100644 --- a/Spigot-API-Patches/0055-Basic-PlayerProfile-API.patch +++ b/Spigot-API-Patches/0055-Basic-PlayerProfile-API.patch @@ -1,4 +1,4 @@ -From ce7a08b7515e5720254f32939db266a4df6d908b Mon Sep 17 00:00:00 2001 +From ba7ca826a69db5f365c35ebf7ea2f7834f8aaa7e Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 15 Jan 2018 21:46:46 -0500 Subject: [PATCH] Basic PlayerProfile API @@ -7,7 +7,7 @@ Provides basic elements of a PlayerProfile to be used by future API/events diff --git a/src/main/java/com/destroystokyo/paper/profile/PlayerProfile.java b/src/main/java/com/destroystokyo/paper/profile/PlayerProfile.java new file mode 100644 -index 000000000..529c53760 +index 00000000..529c5376 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/profile/PlayerProfile.java @@ -0,0 +1,142 @@ @@ -155,7 +155,7 @@ index 000000000..529c53760 +} diff --git a/src/main/java/com/destroystokyo/paper/profile/ProfileProperty.java b/src/main/java/com/destroystokyo/paper/profile/ProfileProperty.java new file mode 100644 -index 000000000..d17061e66 +index 00000000..d17061e6 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/profile/ProfileProperty.java @@ -0,0 +1,72 @@ @@ -232,7 +232,7 @@ index 000000000..d17061e66 + } +} diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 41cd3dba2..f13d80cf2 100644 +index eb180374..75634a8d 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -51,6 +51,9 @@ import org.bukkit.generator.ChunkGenerator; @@ -245,7 +245,7 @@ index 41cd3dba2..f13d80cf2 100644 /** * Represents the Bukkit core, for version and Server singleton handling */ -@@ -1475,6 +1478,37 @@ public final class Bukkit { +@@ -1492,6 +1495,37 @@ public final class Bukkit { public static boolean suggestPlayerNamesWhenNullTabCompletions() { return server.suggestPlayerNamesWhenNullTabCompletions(); } @@ -284,7 +284,7 @@ index 41cd3dba2..f13d80cf2 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 46502ede1..198107081 100644 +index c57f81fd..1d1f7784 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -52,6 +52,9 @@ import org.bukkit.generator.ChunkGenerator; @@ -297,7 +297,7 @@ index 46502ede1..198107081 100644 /** * Represents a server implementation. */ -@@ -1277,5 +1280,30 @@ public interface Server extends PluginMessageRecipient { +@@ -1292,5 +1295,30 @@ public interface Server extends PluginMessageRecipient { * @return true if player names should be suggested */ boolean suggestPlayerNamesWhenNullTabCompletions(); diff --git a/Spigot-API-Patches/0099-Close-Plugin-Class-Loaders-on-Disable.patch b/Spigot-API-Patches/0099-Close-Plugin-Class-Loaders-on-Disable.patch index d6fe94f5ed..98c06ad681 100644 --- a/Spigot-API-Patches/0099-Close-Plugin-Class-Loaders-on-Disable.patch +++ b/Spigot-API-Patches/0099-Close-Plugin-Class-Loaders-on-Disable.patch @@ -1,4 +1,4 @@ -From c5d36c89c26360428075ecd830da4f65b2c2de11 Mon Sep 17 00:00:00 2001 +From 53b080c35566392e83fc231ce763897a0e9420a4 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 1 May 2018 21:33:35 -0400 Subject: [PATCH] Close Plugin Class Loaders on Disable @@ -54,10 +54,10 @@ index e5638d56..b72d5a9b 100644 * Gets a {@link Permission} from its fully qualified name * diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -index bd0588a2..cb2b0b9c 100644 +index 5034215a..d925423d 100644 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -@@ -412,17 +412,29 @@ public final class SimplePluginManager implements PluginManager { +@@ -413,17 +413,29 @@ public final class SimplePluginManager implements PluginManager { } } @@ -90,7 +90,7 @@ index bd0588a2..cb2b0b9c 100644 } catch (Throwable ex) { handlePluginException("Error occurred (in the plugin loader) while disabling " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex, plugin); // Paper -@@ -468,7 +480,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -469,7 +481,7 @@ public final class SimplePluginManager implements PluginManager { public void clearPlugins() { synchronized (this) { diff --git a/Spigot-API-Patches/0130-Remove-deadlock-risk-in-firing-async-events.patch b/Spigot-API-Patches/0130-Remove-deadlock-risk-in-firing-async-events.patch index 088440cc3d..1907af4446 100644 --- a/Spigot-API-Patches/0130-Remove-deadlock-risk-in-firing-async-events.patch +++ b/Spigot-API-Patches/0130-Remove-deadlock-risk-in-firing-async-events.patch @@ -1,4 +1,4 @@ -From 48dba594ee0744d16cbcc43439e732d9eb97795b Mon Sep 17 00:00:00 2001 +From 0c1023b2f663801604199610c741023df370b001 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 9 Sep 2018 00:32:05 -0400 Subject: [PATCH] Remove deadlock risk in firing async events @@ -16,10 +16,10 @@ which results in a hard crash. This change removes the synchronize and adds some protection around enable/disable diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -index cb2b0b9c..a7dd902f 100644 +index d925423d..59c70b8a 100644 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -@@ -385,7 +385,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -386,7 +386,7 @@ public final class SimplePluginManager implements PluginManager { * @param plugin Plugin to check * @return true if the plugin is enabled, otherwise false */ @@ -28,7 +28,7 @@ index cb2b0b9c..a7dd902f 100644 if ((plugin != null) && (plugins.contains(plugin))) { return plugin.isEnabled(); } else { -@@ -393,7 +393,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -394,7 +394,7 @@ public final class SimplePluginManager implements PluginManager { } } @@ -37,7 +37,7 @@ index cb2b0b9c..a7dd902f 100644 if (!plugin.isEnabled()) { List pluginCommands = PluginCommandYamlParser.parse(plugin); -@@ -430,7 +430,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -431,7 +431,7 @@ public final class SimplePluginManager implements PluginManager { disablePlugin(plugin, false); } @@ -46,7 +46,7 @@ index cb2b0b9c..a7dd902f 100644 // Paper end - close Classloader on disable if (plugin.isEnabled()) { try { -@@ -490,6 +490,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -491,6 +491,7 @@ public final class SimplePluginManager implements PluginManager { defaultPerms.get(false).clear(); } } @@ -54,7 +54,7 @@ index cb2b0b9c..a7dd902f 100644 /** * Calls an event with the given details. -@@ -499,22 +500,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -500,22 +501,7 @@ public final class SimplePluginManager implements PluginManager { * @param event Event details */ public void callEvent(Event event) { diff --git a/Spigot-API-Patches/0156-Add-Material-Tags.patch b/Spigot-API-Patches/0156-Add-Material-Tags.patch index 687c190649..299f39624a 100644 --- a/Spigot-API-Patches/0156-Add-Material-Tags.patch +++ b/Spigot-API-Patches/0156-Add-Material-Tags.patch @@ -1,4 +1,4 @@ -From add76949997b755d73d123817b65e0551d58f6b3 Mon Sep 17 00:00:00 2001 +From 7f7f48e6093d4bfccc6d43de03db277d08870593 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 17 Jul 2018 01:27:15 -0400 Subject: [PATCH] Add Material Tags @@ -8,10 +8,10 @@ are related to each other by a trait. diff --git a/src/main/java/com/destroystokyo/paper/MaterialSetTag.java b/src/main/java/com/destroystokyo/paper/MaterialSetTag.java new file mode 100644 -index 00000000..b4f78e07 +index 00000000..b036c374 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/MaterialSetTag.java -@@ -0,0 +1,139 @@ +@@ -0,0 +1,171 @@ +/* + * Copyright (c) 2018 Daniel Ennis (Aikar) MIT License + */ @@ -21,6 +21,7 @@ index 00000000..b4f78e07 +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; +import org.bukkit.Material; ++import org.bukkit.NamespacedKey; +import org.bukkit.Tag; +import org.bukkit.block.Block; +import org.bukkit.block.BlockState; @@ -35,18 +36,49 @@ index 00000000..b4f78e07 + +public class MaterialSetTag implements Tag { + ++ private final NamespacedKey key; + private final Set materials; + ++ /** ++ * @deprecated Use NamespacedKey version of constructor ++ */ ++ @Deprecated + public MaterialSetTag(Predicate filter) { -+ this(Stream.of(Material.values()).filter(filter).collect(Collectors.toList())); ++ this(null, Stream.of(Material.values()).filter(filter).collect(Collectors.toList())); + } + ++ /** ++ * @deprecated Use NamespacedKey version of constructor ++ */ ++ @Deprecated + public MaterialSetTag(Collection materials) { ++ this(null, materials); ++ } ++ ++ /** ++ * @deprecated Use NamespacedKey version of constructor ++ */ ++ @Deprecated ++ public MaterialSetTag(Material... materials) { ++ this(null, materials); ++ } ++ ++ public MaterialSetTag(NamespacedKey key, Predicate filter) { ++ this(key, Stream.of(Material.values()).filter(filter).collect(Collectors.toList())); ++ } ++ ++ public MaterialSetTag(NamespacedKey key, Material... materials) { ++ this(key, Lists.newArrayList(materials)); ++ } ++ ++ public MaterialSetTag(NamespacedKey key, Collection materials) { ++ this.key = key != null ? key : NamespacedKey.randomKey(); + this.materials = Sets.newEnumSet(materials, Material.class); + } + -+ public MaterialSetTag(Material... materials) { -+ this.materials = Sets.newEnumSet(Lists.newArrayList(materials), Material.class); ++ @Override ++ public NamespacedKey getKey() { ++ return key; + } + + public MaterialSetTag add(Tag... tags) { @@ -153,10 +185,10 @@ index 00000000..b4f78e07 +} diff --git a/src/main/java/com/destroystokyo/paper/MaterialTags.java b/src/main/java/com/destroystokyo/paper/MaterialTags.java new file mode 100644 -index 00000000..7a48445d +index 00000000..660191c2 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/MaterialTags.java -@@ -0,0 +1,377 @@ +@@ -0,0 +1,382 @@ +/* + * Copyright (c) 2018 Daniel Ennis (Aikar) MIT License + * @@ -183,76 +215,81 @@ index 00000000..7a48445d +package com.destroystokyo.paper; + +import org.bukkit.Material; ++import org.bukkit.NamespacedKey; +import org.bukkit.Tag; + +/** + * Represents a collection tags to identify materials that share common properties. + * Will map to minecraft for missing tags, as well as custom ones that may be useful. + */ -+@SuppressWarnings("NonFinalUtilityClass") ++@SuppressWarnings({"NonFinalUtilityClass", "unused", "WeakerAccess"}) +public class MaterialTags { + -+ public static final MaterialSetTag ARROWS = new MaterialSetTag() ++ private static NamespacedKey keyFor(String key) { ++ //noinspection deprecation ++ return new NamespacedKey("paper", key + "_settag"); ++ } ++ public static final MaterialSetTag ARROWS = new MaterialSetTag(keyFor("arrows")) + .endsWith("ARROW") + .ensureSize("ARROWS", 3); + + /** + * Cover all 16 colors of beds. + */ -+ public static final MaterialSetTag BEDS = new MaterialSetTag() ++ public static final MaterialSetTag BEDS = new MaterialSetTag(keyFor("beds")) + .endsWith("_BED") + .ensureSize("BEDS", 16); + + /** + * Covers all bucket items. + */ -+ public static final MaterialSetTag BUCKETS = new MaterialSetTag() ++ public static final MaterialSetTag BUCKETS = new MaterialSetTag(keyFor("buckets")) + .endsWith("BUCKET") + .ensureSize("BUCKETS", 8); + + /** + * Covers coal and charcoal. + */ -+ public static final MaterialSetTag COALS = new MaterialSetTag() ++ public static final MaterialSetTag COALS = new MaterialSetTag(keyFor("coals")) + .add(Material.COAL, Material.CHARCOAL); + + /** + * Covers both cobblestone wall variants. + */ -+ public static final MaterialSetTag COBBLESTONE_WALLS = new MaterialSetTag() ++ public static final MaterialSetTag COBBLESTONE_WALLS = new MaterialSetTag(keyFor("cobblestone_walls")) + .endsWith("COBBLESTONE_WALL") + .ensureSize("COBBLESTONE_WALLS", 2); + + /** + * Covers both cobblestone and mossy Cobblestone. + */ -+ public static final MaterialSetTag COBBLESTONES = new MaterialSetTag() ++ public static final MaterialSetTag COBBLESTONES = new MaterialSetTag(keyFor("cobblestones")) + .add(Material.COBBLESTONE, Material.MOSSY_COBBLESTONE); + + /** + * Covers all 16 colors of concrete. + */ -+ public static final MaterialSetTag CONCRETES = new MaterialSetTag() ++ public static final MaterialSetTag CONCRETES = new MaterialSetTag(keyFor("concretes")) + .endsWith("_CONCRETE") + .ensureSize("CONCRETES", 16); + + /** + * Covers all 16 colors of concrete powder. + */ -+ public static final MaterialSetTag CONCRETE_POWDER = new MaterialSetTag() ++ public static final MaterialSetTag CONCRETE_POWDER = new MaterialSetTag(keyFor("concrete_powder")) + .endsWith("_CONCRETE_POWDER") + .ensureSize("CONCRETE_POWDER", 16); + + /** + * Covers the two types of cooked fish. + */ -+ public static final MaterialSetTag COOKED_FISH = new MaterialSetTag() ++ public static final MaterialSetTag COOKED_FISH = new MaterialSetTag(keyFor("cooked_fish")) + .add(Material.COOKED_COD, Material.COOKED_SALMON); + + /** + * Covers all 16 dyes. + */ -+ public static final MaterialSetTag DYES = new MaterialSetTag() ++ public static final MaterialSetTag DYES = new MaterialSetTag(keyFor("dyes")) + .endsWith("_DYE") + .add(Material.BONE_MEAL, + Material.CACTUS_GREEN, @@ -267,27 +304,27 @@ index 00000000..7a48445d + /** + * Covers all 6 wood variants of gates. + */ -+ public static final MaterialSetTag FENCE_GATES = new MaterialSetTag() ++ public static final MaterialSetTag FENCE_GATES = new MaterialSetTag(keyFor("fence_gates")) + .endsWith("_GATE") + .ensureSize("FENCE_GATES", 6); + + /** + * Covers all 6 wood variants and nether brick fence. + */ -+ public static final MaterialSetTag FENCES = new MaterialSetTag() ++ public static final MaterialSetTag FENCES = new MaterialSetTag(keyFor("fences")) + .endsWith("_FENCE") + .ensureSize("FENCES", 7); + + /** + * Covers all 4 variants of fish buckets. + */ -+ public static final MaterialSetTag FISH_BUCKETS = new MaterialSetTag() ++ public static final MaterialSetTag FISH_BUCKETS = new MaterialSetTag(keyFor("fish_buckets")) + .add(Material.COD_BUCKET, Material.PUFFERFISH_BUCKET, Material.SALMON_BUCKET, Material.TROPICAL_FISH_BUCKET); + + /** + * Covers the non-colored glass and 16 stained glass (not panes). + */ -+ public static final MaterialSetTag GLASS = new MaterialSetTag() ++ public static final MaterialSetTag GLASS = new MaterialSetTag(keyFor("glass")) + .endsWith("_GLASS") + .add(Material.GLASS) + .ensureSize("GLASS", 17); @@ -295,21 +332,21 @@ index 00000000..7a48445d + /** + * Covers the non-colored glass panes and 16 stained glass panes (panes only). + */ -+ public static final MaterialSetTag GLASS_PANES = new MaterialSetTag() ++ public static final MaterialSetTag GLASS_PANES = new MaterialSetTag(keyFor("glass_panes")) + .endsWith("GLASS_PANE") + .ensureSize("GLASS_PANES", 17); + + /** + * Covers all 16 glazed terracotta blocks. + */ -+ public static final MaterialSetTag GLAZED_TERRACOTTA = new MaterialSetTag() ++ public static final MaterialSetTag GLAZED_TERRACOTTA = new MaterialSetTag(keyFor("glazed_terracotta")) + .endsWith("GLAZED_TERRACOTTA") + .ensureSize("GLAZED_TERRACOTTA", 16); + + /** + * Covers the 16 colors of stained terracotta. + */ -+ public static final MaterialSetTag STAINED_TERRACOTTA = new MaterialSetTag() ++ public static final MaterialSetTag STAINED_TERRACOTTA = new MaterialSetTag(keyFor("stained_terracotta")) + .endsWith("TERRACOTTA") + .not(Material.TERRACOTTA) + .notEndsWith("GLAZED_TERRACOTTA") @@ -318,7 +355,7 @@ index 00000000..7a48445d + /** + * Covers terracotta along with the 16 stained variants. + */ -+ public static final MaterialSetTag TERRACOTTA = new MaterialSetTag() ++ public static final MaterialSetTag TERRACOTTA = new MaterialSetTag(keyFor("terracotta")) + .endsWith("TERRACOTTA") + .ensureSize("TERRACOTTA", 33); + @@ -326,28 +363,28 @@ index 00000000..7a48445d + /** + * Covers both golden apples. + */ -+ public static final MaterialSetTag GOLDEN_APPLES = new MaterialSetTag() ++ public static final MaterialSetTag GOLDEN_APPLES = new MaterialSetTag(keyFor("golden_apples")) + .endsWith("GOLDEN_APPLE") + .ensureSize("GOLDEN_APPLES", 2); + + /** + * Covers the 3 variants of horse armor. + */ -+ public static final MaterialSetTag HORSE_ARMORS = new MaterialSetTag() ++ public static final MaterialSetTag HORSE_ARMORS = new MaterialSetTag(keyFor("horse_armors")) + .endsWith("_HORSE_ARMOR") + .ensureSize("HORSE_ARMORS", 3); + + /** + * Covers the 6 variants of infested blocks. + */ -+ public static final MaterialSetTag INFESTED_BLOCKS = new MaterialSetTag() ++ public static final MaterialSetTag INFESTED_BLOCKS = new MaterialSetTag(keyFor("infested_blocks")) + .startsWith("INFESTED_") + .ensureSize("INFESTED_BLOCKS", 6); + + /** + * Covers the 3 variants of mushroom blocks. + */ -+ public static final MaterialSetTag MUSHROOM_BLOCKS = new MaterialSetTag() ++ public static final MaterialSetTag MUSHROOM_BLOCKS = new MaterialSetTag(keyFor("mushroom_blocks")) + .endsWith("MUSHROOM_BLOCK") + .add(Material.MUSHROOM_STEM) + .ensureSize("MUSHROOM_BLOCKS", 3); @@ -355,111 +392,111 @@ index 00000000..7a48445d + /** + * Covers both mushrooms. + */ -+ public static final MaterialSetTag MUSHROOMS = new MaterialSetTag() ++ public static final MaterialSetTag MUSHROOMS = new MaterialSetTag(keyFor("mushrooms")) + .add(Material.BROWN_MUSHROOM, Material.RED_MUSHROOM); + + /** + * Covers all 12 music disc items. + */ -+ public static final MaterialSetTag MUSIC_DISCS = new MaterialSetTag() ++ public static final MaterialSetTag MUSIC_DISCS = new MaterialSetTag(keyFor("music_discs")) + .startsWith("MUSIC_DISC_") + .ensureSize("MUSIC_DISCS", 12); + + /** + * Covers all 8 ores. + */ -+ public static final MaterialSetTag ORES = new MaterialSetTag() ++ public static final MaterialSetTag ORES = new MaterialSetTag(keyFor("ores")) + .endsWith("_ORE") + .ensureSize("ORES", 8); + + /** + * Covers all piston typed items and blocks including the piston head and moving piston. + */ -+ public static final MaterialSetTag PISTONS = new MaterialSetTag() ++ public static final MaterialSetTag PISTONS = new MaterialSetTag(keyFor("pistons")) + .contains("PISTON") + .ensureSize("PISTONS", 4); + + /** + * Covers all potato items. + */ -+ public static final MaterialSetTag POTATOES = new MaterialSetTag() ++ public static final MaterialSetTag POTATOES = new MaterialSetTag(keyFor("potatoes")) + .endsWith("POTATO") + .ensureSize("POTATOES", 3); + + /** + * Covers all 6 wooden pressure plates and the 2 weighted pressure plates and 1 stone pressure plate. + */ -+ public static final MaterialSetTag PRESSURE_PLATES = new MaterialSetTag() ++ public static final MaterialSetTag PRESSURE_PLATES = new MaterialSetTag(keyFor("pressure_plates")) + .endsWith("_PRESSURE_PLATE") + .ensureSize("PRESSURE_PLATES", 9); + + /** + * Covers the 3 variants of prismarine blocks. + */ -+ public static final MaterialSetTag PRISMARINE = new MaterialSetTag() ++ public static final MaterialSetTag PRISMARINE = new MaterialSetTag(keyFor("prismarine")) + .add(Material.PRISMARINE, Material.PRISMARINE_BRICKS, Material.DARK_PRISMARINE); + + /** + * Covers the 3 variants of prismarine slabs. + */ -+ public static final MaterialSetTag PRISMARINE_SLABS = new MaterialSetTag() ++ public static final MaterialSetTag PRISMARINE_SLABS = new MaterialSetTag(keyFor("prismarine_slabs")) + .add(Material.PRISMARINE_SLAB, Material.PRISMARINE_BRICK_SLAB, Material.DARK_PRISMARINE_SLAB); + + /** + * Covers the 3 variants of prismarine stairs. + */ -+ public static final MaterialSetTag PRISMARINE_STAIRS = new MaterialSetTag() ++ public static final MaterialSetTag PRISMARINE_STAIRS = new MaterialSetTag(keyFor("prismarine_stairs")) + .add(Material.PRISMARINE_STAIRS, Material.PRISMARINE_BRICK_STAIRS, Material.DARK_PRISMARINE_STAIRS); + + /** + * Covers the 3 variants of pumpkins. + */ -+ public static final MaterialSetTag PUMPKINS = new MaterialSetTag() ++ public static final MaterialSetTag PUMPKINS = new MaterialSetTag(keyFor("pumpkins")) + .add(Material.CARVED_PUMPKIN, Material.JACK_O_LANTERN, Material.PUMPKIN); + + /** + * Covers the 4 variants of quartz blocks. + */ -+ public static final MaterialSetTag QUARTZ_BLOCKS = new MaterialSetTag() ++ public static final MaterialSetTag QUARTZ_BLOCKS = new MaterialSetTag(keyFor("quartz_blocks")) + .add(Material.QUARTZ_BLOCK, Material.QUARTZ_PILLAR, Material.CHISELED_QUARTZ_BLOCK, Material.SMOOTH_QUARTZ); + + /** + * Covers all uncooked fish items. + */ -+ public static final MaterialSetTag RAW_FISH = new MaterialSetTag() ++ public static final MaterialSetTag RAW_FISH = new MaterialSetTag(keyFor("raw_fish")) + .add(Material.COD, Material.PUFFERFISH, Material.SALMON, Material.TROPICAL_FISH); + + /** + * Covers the 4 variants of red sandstone blocks. + */ -+ public static final MaterialSetTag RED_SANDSTONES = new MaterialSetTag() ++ public static final MaterialSetTag RED_SANDSTONES = new MaterialSetTag(keyFor("red_sandstones")) + .endsWith("RED_SANDSTONE") + .ensureSize("RED_SANDSTONES", 4); + + /** + * Covers the 4 variants of sandstone blocks. + */ -+ public static final MaterialSetTag SANDSTONES = new MaterialSetTag() ++ public static final MaterialSetTag SANDSTONES = new MaterialSetTag(keyFor("sandstones")) + .add(Material.SANDSTONE, Material.CHISELED_SANDSTONE, Material.CUT_SANDSTONE, Material.SMOOTH_SANDSTONE); + + /** + * Covers sponge and wet sponge. + */ -+ public static final MaterialSetTag SPONGES = new MaterialSetTag() ++ public static final MaterialSetTag SPONGES = new MaterialSetTag(keyFor("sponges")) + .endsWith("SPONGE") + .ensureSize("SPONGES", 2); + + /** + * Covers the non-colored and 16 colored shulker boxes. + */ -+ public static final MaterialSetTag SHULKER_BOXES = new MaterialSetTag() ++ public static final MaterialSetTag SHULKER_BOXES = new MaterialSetTag(keyFor("shulker_boxes")) + .endsWith("SHULKER_BOX") + .ensureSize("SHULKER_BOXES", 17); + + /** + * Covers zombie, creeper, skeleton, dragon, and player heads. + */ -+ public static final MaterialSetTag SKULLS = new MaterialSetTag() ++ public static final MaterialSetTag SKULLS = new MaterialSetTag(keyFor("skulls")) + .endsWith("_HEAD") + .endsWith("_SKULL") + .not(Material.PISTON_HEAD) @@ -468,35 +505,35 @@ index 00000000..7a48445d + /** + * Covers all spawn egg items. + */ -+ public static final MaterialSetTag SPAWN_EGGS = new MaterialSetTag() ++ public static final MaterialSetTag SPAWN_EGGS = new MaterialSetTag(keyFor("spawn_eggs")) + .endsWith("_SPAWN_EGG") + .ensureSize("SPAWN_EGGS", 51); + + /** + * Covers all 16 colors of stained glass. + */ -+ public static final MaterialSetTag STAINED_GLASS = new MaterialSetTag() ++ public static final MaterialSetTag STAINED_GLASS = new MaterialSetTag(keyFor("stained_glass")) + .endsWith("_STAINED_GLASS") + .ensureSize("STAINED_GLASS", 16); + + /** + * Covers all 16 colors of stained glass panes. + */ -+ public static final MaterialSetTag STAINED_GLASS_PANES = new MaterialSetTag() ++ public static final MaterialSetTag STAINED_GLASS_PANES = new MaterialSetTag(keyFor("stained_glass_panes")) + .endsWith("STAINED_GLASS_PANE") + .ensureSize("STAINED_GLASS_PANES", 16); + + /** + * Covers all 7 variants of trapdoors. + */ -+ public static final MaterialSetTag TRAPDOORS = new MaterialSetTag() ++ public static final MaterialSetTag TRAPDOORS = new MaterialSetTag(keyFor("trapdoors")) + .endsWith("_TRAPDOOR") + .ensureSize("TRAPDOORS", 7); + + /** + * Covers all 6 wood variants of fences. + */ -+ public static final MaterialSetTag WOODEN_FENCES = new MaterialSetTag() ++ public static final MaterialSetTag WOODEN_FENCES = new MaterialSetTag(keyFor("wooden_fences")) + .endsWith("_FENCE") + .not(Material.NETHER_BRICK_FENCE) + .ensureSize("WOODEN_FENCES", 6); @@ -504,33 +541,33 @@ index 00000000..7a48445d + /** + * Covers all 6 wood variants of trapdoors. + */ -+ public static final MaterialSetTag WOODEN_TRAPDOORS = new MaterialSetTag() ++ public static final MaterialSetTag WOODEN_TRAPDOORS = new MaterialSetTag(keyFor("wooden_trapdoors")) + .endsWith("_TRAPDOOR") + .not(Material.IRON_TRAPDOOR) + .ensureSize("WOODEN_TRAPDOORS", 6); + -+ public static final MaterialSetTag WOODEN_GATES = new MaterialSetTag() ++ public static final MaterialSetTag WOODEN_GATES = new MaterialSetTag(keyFor("wooden_gates")) + .endsWith("_GATE") + .ensureSize("WOODEN_GATES", 6); + -+ public static final MaterialSetTag PURPUR = new MaterialSetTag() ++ public static final MaterialSetTag PURPUR = new MaterialSetTag(keyFor("purpur")) + .startsWith("PURPUR_") + .ensureSize("PURPUR", 4); + -+ public static final MaterialSetTag SIGNS = new MaterialSetTag() ++ public static final MaterialSetTag SIGNS = new MaterialSetTag(keyFor("signs")) + .add(Material.SIGN, Material.WALL_SIGN) + .ensureSize("SIGNS", 2); + -+ public static final MaterialSetTag TORCH = new MaterialSetTag() ++ public static final MaterialSetTag TORCH = new MaterialSetTag(keyFor("torch")) + .add(Material.TORCH, Material.WALL_TORCH) + .ensureSize("TORCH", 2); + -+ public static final MaterialSetTag REDSTONE_TORCH = new MaterialSetTag() ++ public static final MaterialSetTag REDSTONE_TORCH = new MaterialSetTag(keyFor("restone_torch")) + .add(Material.REDSTONE_TORCH, Material.REDSTONE_WALL_TORCH) + .ensureSize("REDSTONE_TORCH", 2); + + @SuppressWarnings("unchecked") -+ public static final MaterialSetTag COLORABLE = new MaterialSetTag() ++ public static final MaterialSetTag COLORABLE = new MaterialSetTag(keyFor("colorable")) + .add(Tag.WOOL, Tag.CARPETS).add(SHULKER_BOXES, STAINED_GLASS, STAINED_GLASS_PANES, CONCRETES, BEDS); + //.ensureSize("COLORABLE", 81); unit test don't have the vanilla item tags, so counts don't line up for real +} diff --git a/Spigot-API-Patches/0165-Make-the-default-permission-message-configurable.patch b/Spigot-API-Patches/0165-Make-the-default-permission-message-configurable.patch index 8c3499b1f5..4ce6fd19c3 100644 --- a/Spigot-API-Patches/0165-Make-the-default-permission-message-configurable.patch +++ b/Spigot-API-Patches/0165-Make-the-default-permission-message-configurable.patch @@ -1,14 +1,14 @@ -From abcb626661610f113fe89edb1e31532f751b869e Mon Sep 17 00:00:00 2001 +From c512125c7bdca9fbb124be26388fbc9bb820b91b Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sun, 18 Nov 2018 19:44:54 +0000 Subject: [PATCH] Make the default permission message configurable diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 4acaefa4c..9fab69137 100644 +index cbabd807..2ab73439 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -1493,6 +1493,14 @@ public final class Bukkit { +@@ -1510,6 +1510,14 @@ public final class Bukkit { return server.suggestPlayerNamesWhenNullTabCompletions(); } @@ -24,10 +24,10 @@ index 4acaefa4c..9fab69137 100644 * Creates a PlayerProfile for the specified uuid, with name as null * @param uuid UUID to create profile for diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index c940f6db9..ae15b0e99 100644 +index 9c5049cd..7c7725a7 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1293,6 +1293,12 @@ public interface Server extends PluginMessageRecipient { +@@ -1308,6 +1308,12 @@ public interface Server extends PluginMessageRecipient { */ boolean suggestPlayerNamesWhenNullTabCompletions(); @@ -41,7 +41,7 @@ index c940f6db9..ae15b0e99 100644 * Creates a PlayerProfile for the specified uuid, with name as null * @param uuid UUID to create profile for diff --git a/src/main/java/org/bukkit/command/Command.java b/src/main/java/org/bukkit/command/Command.java -index db7f44289..77171cd17 100644 +index db7f4428..77171cd1 100644 --- a/src/main/java/org/bukkit/command/Command.java +++ b/src/main/java/org/bukkit/command/Command.java @@ -180,7 +180,7 @@ public abstract class Command { diff --git a/Spigot-Server-Patches/0002-Paper-config-files.patch b/Spigot-Server-Patches/0002-Paper-config-files.patch index eba5bb59de..ebc2f4a3eb 100644 --- a/Spigot-Server-Patches/0002-Paper-config-files.patch +++ b/Spigot-Server-Patches/0002-Paper-config-files.patch @@ -1,4 +1,4 @@ -From 2a34f4f4307de41b1abad04baceb01d45517bb9e Mon Sep 17 00:00:00 2001 +From a5eb13cb6d15cfa42961580bceb89f8b03356609 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Mon, 29 Feb 2016 21:02:09 -0600 Subject: [PATCH] Paper config files @@ -6,7 +6,7 @@ Subject: [PATCH] Paper config files diff --git a/src/main/java/com/destroystokyo/paper/PaperCommand.java b/src/main/java/com/destroystokyo/paper/PaperCommand.java new file mode 100644 -index 000000000..961966e16 +index 0000000000..961966e169 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/PaperCommand.java @@ -0,0 +1,237 @@ @@ -249,7 +249,7 @@ index 000000000..961966e16 +} diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java new file mode 100644 -index 000000000..5586575ce +index 0000000000..5586575ce9 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java @@ -0,0 +1,184 @@ @@ -439,7 +439,7 @@ index 000000000..5586575ce +} diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java new file mode 100644 -index 000000000..a73865739 +index 0000000000..a738657394 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -0,0 +1,67 @@ @@ -511,7 +511,7 @@ index 000000000..a73865739 + } +} diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java -index 64a6a681f..ad9c00bc8 100644 +index 64a6a681fb..ad9c00bc80 100644 --- a/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java @@ -192,6 +192,15 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer @@ -531,7 +531,7 @@ index 64a6a681f..ad9c00bc8 100644 DedicatedServer.LOGGER.info("Generating keypair"); this.a(MinecraftEncryption.b()); diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 22be0e422..33229f45d 100644 +index 22be0e4225..33229f45d9 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -133,9 +133,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener { @@ -548,7 +548,7 @@ index 22be0e422..33229f45d 100644 public boolean impulse; public int portalCooldown; diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java -index ee16fac91..b8abd6363 100644 +index ee16fac91e..b8abd6363f 100644 --- a/src/main/java/net/minecraft/server/EntityTypes.java +++ b/src/main/java/net/minecraft/server/EntityTypes.java @@ -2,6 +2,8 @@ package net.minecraft.server; @@ -572,7 +572,7 @@ index ee16fac91..b8abd6363 100644 + // Paper end } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 90c54a73d..9865f7f7a 100644 +index 90c54a73d4..9865f7f7aa 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -130,6 +130,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc @@ -593,7 +593,7 @@ index 90c54a73d..9865f7f7a 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 b9f8caa80..ff9dc23c7 100644 +index a0afe05615..2bf30cd6b4 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -755,6 +755,7 @@ public final class CraftServer implements Server { @@ -620,7 +620,7 @@ index b9f8caa80..ff9dc23c7 100644 overrideAllCommandBlockCommands = commandsConfiguration.getStringList("command-block-overrides").contains("*"); ignoreVanillaPermissions = commandsConfiguration.getBoolean("ignore-vanilla-permissions"); -@@ -1993,4 +1996,26 @@ public final class CraftServer implements Server { +@@ -2012,4 +2015,26 @@ public final class CraftServer implements Server { { return spigot; } @@ -648,7 +648,7 @@ index b9f8caa80..ff9dc23c7 100644 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 8b51997fc..e9ea75579 100644 +index 5ae5b7099f..24620a8b8d 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -128,6 +128,14 @@ public class Main { @@ -667,7 +667,7 @@ index 8b51997fc..e9ea75579 100644 }; diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java -index 2578c4957..d3c2abc39 100644 +index 2578c4957f..d3c2abc398 100644 --- a/src/main/java/org/spigotmc/SpigotWorldConfig.java +++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java @@ -39,31 +39,31 @@ public class SpigotWorldConfig diff --git a/Spigot-Server-Patches/0009-Timings-v2.patch b/Spigot-Server-Patches/0009-Timings-v2.patch index 406513e39a..0624356da9 100644 --- a/Spigot-Server-Patches/0009-Timings-v2.patch +++ b/Spigot-Server-Patches/0009-Timings-v2.patch @@ -1,4 +1,4 @@ -From 1ed9f0e1531bbf28ef63667a2d958906abf1b036 Mon Sep 17 00:00:00 2001 +From 57d99a2cfab3d3e23bea53c80ba7bf1535cdf999 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 3 Mar 2016 04:00:11 -0600 Subject: [PATCH] Timings v2 @@ -6,7 +6,7 @@ Subject: [PATCH] Timings v2 diff --git a/src/main/java/co/aikar/timings/MinecraftTimings.java b/src/main/java/co/aikar/timings/MinecraftTimings.java new file mode 100644 -index 000000000..66d02e048 +index 0000000000..66d02e048b --- /dev/null +++ b/src/main/java/co/aikar/timings/MinecraftTimings.java @@ -0,0 +1,132 @@ @@ -144,7 +144,7 @@ index 000000000..66d02e048 +} diff --git a/src/main/java/co/aikar/timings/WorldTimingsHandler.java b/src/main/java/co/aikar/timings/WorldTimingsHandler.java new file mode 100644 -index 000000000..145cb274b +index 0000000000..145cb274b0 --- /dev/null +++ b/src/main/java/co/aikar/timings/WorldTimingsHandler.java @@ -0,0 +1,104 @@ @@ -253,7 +253,7 @@ index 000000000..145cb274b + } +} diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java -index c4c1877d5..1256a0d58 100644 +index c4c1877d59..1256a0d589 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java @@ -14,11 +14,14 @@ import java.util.concurrent.TimeUnit; @@ -297,7 +297,7 @@ index c4c1877d5..1256a0d58 100644 + } } diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java -index c09961be9..dbf1089ba 100644 +index c09961be9b..dbf1089bac 100644 --- a/src/main/java/net/minecraft/server/Block.java +++ b/src/main/java/net/minecraft/server/Block.java @@ -22,6 +22,15 @@ public class Block implements IMaterial { @@ -317,7 +317,7 @@ index c09961be9..dbf1089ba 100644 private final float frictionFactor; protected final BlockStateList blockStateList; diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 23dee9b56..eca1284cc 100644 +index 23dee9b563..eca1284cc3 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -854,6 +854,7 @@ public class Chunk implements IChunkAccess { @@ -337,7 +337,7 @@ index 23dee9b56..eca1284cc 100644 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/ChunkMap.java b/src/main/java/net/minecraft/server/ChunkMap.java -index df2711a5f..732c8793e 100644 +index df2711a5f8..732c8793e5 100644 --- a/src/main/java/net/minecraft/server/ChunkMap.java +++ b/src/main/java/net/minecraft/server/ChunkMap.java @@ -14,6 +14,7 @@ public class ChunkMap extends Long2ObjectOpenHashMap { @@ -357,7 +357,7 @@ index df2711a5f..732c8793e 100644 return chunk1; diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index a8cdcb7da..eb83e20d5 100644 +index a8cdcb7da8..eb83e20d50 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -88,7 +88,7 @@ public class ChunkProviderServer implements IChunkProvider { @@ -398,7 +398,7 @@ index a8cdcb7da..eb83e20d5 100644 this.chunkLoader.saveChunk(this.world, ichunkaccess, unloaded); // Spigot } catch (IOException ioexception) { diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index 8e5ce6c18..35976a26f 100644 +index 8e5ce6c181..35976a26f3 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java @@ -1,5 +1,6 @@ @@ -445,7 +445,7 @@ index 8e5ce6c18..35976a26f 100644 } diff --git a/src/main/java/net/minecraft/server/CustomFunction.java b/src/main/java/net/minecraft/server/CustomFunction.java -index 65574eb2e..bc87cfc4b 100644 +index 65574eb2e5..bc87cfc4b6 100644 --- a/src/main/java/net/minecraft/server/CustomFunction.java +++ b/src/main/java/net/minecraft/server/CustomFunction.java @@ -12,12 +12,22 @@ public class CustomFunction { @@ -472,7 +472,7 @@ index 65574eb2e..bc87cfc4b 100644 return this.b; } diff --git a/src/main/java/net/minecraft/server/CustomFunctionData.java b/src/main/java/net/minecraft/server/CustomFunctionData.java -index f28f4f3cd..6b417be1d 100644 +index f28f4f3cd3..6b417be1dd 100644 --- a/src/main/java/net/minecraft/server/CustomFunctionData.java +++ b/src/main/java/net/minecraft/server/CustomFunctionData.java @@ -100,7 +100,7 @@ public class CustomFunctionData implements ITickable, IResourcePackListener { @@ -485,7 +485,7 @@ index f28f4f3cd..6b417be1d 100644 int j = 0; CustomFunction.c[] acustomfunction_c = customfunction.b(); diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java -index ad9c00bc8..4e9ef43b4 100644 +index ad9c00bc80..4e9ef43b45 100644 --- a/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java @@ -29,7 +29,7 @@ import org.apache.logging.log4j.Level; @@ -538,7 +538,7 @@ index ad9c00bc8..4e9ef43b4 100644 return waitable.get(); } catch (java.util.concurrent.ExecutionException e) { diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index faf4d0c0d..e329c2f48 100644 +index faf4d0c0db..e329c2f48a 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -27,7 +27,8 @@ import org.bukkit.command.CommandSender; @@ -577,7 +577,7 @@ index faf4d0c0d..e329c2f48 100644 protected float ab() { diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index ed859ccf9..31bbbbd96 100644 +index ed859ccf95..31bbbbd969 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -32,7 +32,7 @@ import org.bukkit.event.entity.EntityTeleportEvent; @@ -653,7 +653,7 @@ index ed859ccf9..31bbbbd96 100644 } diff --git a/src/main/java/net/minecraft/server/EntityTracker.java b/src/main/java/net/minecraft/server/EntityTracker.java -index cd462f7df..45ab33d1a 100644 +index cd462f7dfc..45ab33d1ae 100644 --- a/src/main/java/net/minecraft/server/EntityTracker.java +++ b/src/main/java/net/minecraft/server/EntityTracker.java @@ -168,7 +168,7 @@ public class EntityTracker { @@ -684,7 +684,7 @@ index cd462f7df..45ab33d1a 100644 } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 72de40434..7e89d7158 100644 +index 72de40434f..7e89d7158b 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1,5 +1,6 @@ @@ -837,7 +837,7 @@ index 72de40434..7e89d7158 100644 this.methodProfiler.exit(); } diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index c24f4a8fe..e01222ad2 100644 +index c24f4a8fea..e01222ad2b 100644 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java @@ -1,5 +1,6 @@ @@ -929,7 +929,7 @@ index c24f4a8fe..e01222ad2 100644 } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index a2ec56bc9..da0d0cc10 100644 +index a2ec56bc90..da0d0cc10f 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -58,6 +58,7 @@ import org.bukkit.inventory.CraftingInventory; @@ -984,7 +984,7 @@ index a2ec56bc9..da0d0cc10 100644 // this.minecraftServer.getCommandDispatcher().a(this.player.getCommandListener(), s); // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/PlayerConnectionUtils.java b/src/main/java/net/minecraft/server/PlayerConnectionUtils.java -index a73947d26..596aa27fe 100644 +index a73947d261..596aa27feb 100644 --- a/src/main/java/net/minecraft/server/PlayerConnectionUtils.java +++ b/src/main/java/net/minecraft/server/PlayerConnectionUtils.java @@ -1,12 +1,19 @@ @@ -1008,7 +1008,7 @@ index a73947d26..596aa27fe 100644 throw CancelledPacketHandleException.INSTANCE; } diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 54e44cba3..3a83819d5 100644 +index 54e44cba35..3a83819d56 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -1,5 +1,6 @@ @@ -1032,7 +1032,7 @@ index 54e44cba3..3a83819d5 100644 public WhiteList getWhitelist() { diff --git a/src/main/java/net/minecraft/server/TickListServer.java b/src/main/java/net/minecraft/server/TickListServer.java -index 0da57948a..6571fc595 100644 +index 0da57948a3..6571fc5952 100644 --- a/src/main/java/net/minecraft/server/TickListServer.java +++ b/src/main/java/net/minecraft/server/TickListServer.java @@ -24,13 +24,19 @@ public class TickListServer implements TickList { @@ -1086,7 +1086,7 @@ index 0da57948a..6571fc595 100644 } diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java -index c69209497..68ac014aa 100644 +index c69209497b..68ac014aab 100644 --- a/src/main/java/net/minecraft/server/TileEntity.java +++ b/src/main/java/net/minecraft/server/TileEntity.java @@ -4,12 +4,13 @@ import javax.annotation.Nullable; @@ -1106,7 +1106,7 @@ index c69209497..68ac014aa 100644 private final TileEntityTypes e; public TileEntityTypes getTileEntityType() { return e; } // Paper - OBFHELPER protected World world; diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 9865f7f7a..a1c5375a5 100644 +index 9865f7f7aa..a1c5375a57 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -1,5 +1,6 @@ @@ -1214,7 +1214,7 @@ index 9865f7f7a..a1c5375a5 100644 public boolean a(@Nullable Entity entity, VoxelShape voxelshape) { diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index a7ae16681..5a7087c75 100644 +index a7ae16681d..5a7087c758 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -1,5 +1,6 @@ @@ -1316,10 +1316,10 @@ index a7ae16681..5a7087c75 100644 // CraftBukkit start diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index ff9dc23c7..6a2962aca 100644 +index 2bf30cd6b4..eb4d3fe069 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1966,12 +1966,31 @@ public final class CraftServer implements Server { +@@ -1985,12 +1985,31 @@ public final class CraftServer implements Server { private final Spigot spigot = new Spigot() { @@ -1353,7 +1353,7 @@ index ff9dc23c7..6a2962aca 100644 org.spigotmc.RestartCommand.restart(); diff --git a/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java b/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java deleted file mode 100644 -index 2ab4b11a8..000000000 +index 2ab4b11a8d..0000000000 --- a/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java +++ /dev/null @@ -1,173 +0,0 @@ @@ -1531,7 +1531,7 @@ index 2ab4b11a8..000000000 - } -} diff --git a/src/main/java/org/bukkit/craftbukkit/chunkio/ChunkIOProvider.java b/src/main/java/org/bukkit/craftbukkit/chunkio/ChunkIOProvider.java -index 413dd35f0..52a8c48fa 100644 +index 413dd35f06..52a8c48fa4 100644 --- a/src/main/java/org/bukkit/craftbukkit/chunkio/ChunkIOProvider.java +++ b/src/main/java/org/bukkit/craftbukkit/chunkio/ChunkIOProvider.java @@ -1,6 +1,8 @@ @@ -1567,7 +1567,7 @@ index 413dd35f0..52a8c48fa 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 753704c87..ca3393ef8 100644 +index 753704c87d..ca3393ef8f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1695,6 +1695,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -1586,7 +1586,7 @@ index 753704c87..ca3393ef8 100644 public Player.Spigot spigot() diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java -index 646128f16..d75cc42e1 100644 +index 646128f16d..d75cc42e11 100644 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java @@ -16,6 +16,7 @@ import java.util.concurrent.atomic.AtomicReference; @@ -1653,7 +1653,7 @@ index 646128f16..d75cc42e1 100644 private boolean isReady(final int currentTick) { diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java -index 3f55381c1..f32e66010 100644 +index 3f55381c15..f32e660107 100644 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java @@ -2,8 +2,8 @@ package org.bukkit.craftbukkit.scheduler; @@ -1735,7 +1735,7 @@ index 3f55381c1..f32e66010 100644 - // Spigot end } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java b/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java -index e52ef47b7..3d90b3426 100644 +index e52ef47b78..3d90b34268 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java @@ -5,6 +5,7 @@ import org.bukkit.util.CachedServerIcon; @@ -1747,7 +1747,7 @@ index e52ef47b7..3d90b3426 100644 this.value = value; } diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index c1071c92e..a99c0cea0 100644 +index c1071c92ee..a99c0cea0f 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -30,7 +30,7 @@ import net.minecraft.server.EntityWither; diff --git a/Spigot-Server-Patches/0021-Further-improve-server-tick-loop.patch b/Spigot-Server-Patches/0021-Further-improve-server-tick-loop.patch index c032ca9c50..d4b23f3052 100644 --- a/Spigot-Server-Patches/0021-Further-improve-server-tick-loop.patch +++ b/Spigot-Server-Patches/0021-Further-improve-server-tick-loop.patch @@ -1,4 +1,4 @@ -From 9f6313c8ff6c0a86ecb191030db583dd6e1b3f54 Mon Sep 17 00:00:00 2001 +From 86b00542d1bb7a615289f1618673a12d50873eea 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,7 +12,7 @@ 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 df85f35f3..7ca7b9f3a 100644 +index df85f35f37..7ca7b9f3ac 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -141,7 +141,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati @@ -161,10 +161,10 @@ index df85f35f3..7ca7b9f3a 100644 this.nextTick += 50L; // Spigot end diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index e4b686063..a6d729180 100644 +index dd07d0d146..76fb126305 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1963,6 +1963,17 @@ public final class CraftServer implements Server { +@@ -1982,6 +1982,17 @@ public final class CraftServer implements Server { return CraftMagicNumbers.INSTANCE; } @@ -183,7 +183,7 @@ index e4b686063..a6d729180 100644 { diff --git a/src/main/java/org/spigotmc/TicksPerSecondCommand.java b/src/main/java/org/spigotmc/TicksPerSecondCommand.java -index be2e31dea..6d21c3269 100644 +index be2e31deae..6d21c32692 100644 --- a/src/main/java/org/spigotmc/TicksPerSecondCommand.java +++ b/src/main/java/org/spigotmc/TicksPerSecondCommand.java @@ -1,8 +1,5 @@ diff --git a/Spigot-Server-Patches/0056-Add-exception-reporting-event.patch b/Spigot-Server-Patches/0056-Add-exception-reporting-event.patch index 725a212e74..4513197e31 100644 --- a/Spigot-Server-Patches/0056-Add-exception-reporting-event.patch +++ b/Spigot-Server-Patches/0056-Add-exception-reporting-event.patch @@ -1,4 +1,4 @@ -From 0434f2c0e787906b5cd9ec72b8a15a46079d0a73 Mon Sep 17 00:00:00 2001 +From f94a985e1f32da2033a8605b980a920c6a87d6e8 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 @@ -6,7 +6,7 @@ Subject: [PATCH] Add exception reporting event diff --git a/src/main/java/com/destroystokyo/paper/ServerSchedulerReportingWrapper.java b/src/main/java/com/destroystokyo/paper/ServerSchedulerReportingWrapper.java new file mode 100644 -index 000000000..f699ce18c +index 0000000000..f699ce18ca --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/ServerSchedulerReportingWrapper.java @@ -0,0 +1,38 @@ @@ -49,7 +49,7 @@ index 000000000..f699ce18c + } +} diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index d1b6344ce..446e464b7 100644 +index d1b6344ced..446e464b72 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -1,5 +1,6 @@ @@ -88,7 +88,7 @@ index d1b6344ce..446e464b7 100644 } } diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index c2ecc034e..1ed7c7e2c 100644 +index c2ecc034e8..1ed7c7e2c9 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -13,6 +13,7 @@ import java.util.concurrent.CompletableFuture; @@ -119,7 +119,7 @@ index c2ecc034e..1ed7c7e2c 100644 } diff --git a/src/main/java/net/minecraft/server/NameReferencingFileConverter.java b/src/main/java/net/minecraft/server/NameReferencingFileConverter.java -index 09ef8729d..bf67dbf54 100644 +index 09ef8729d9..bf67dbf54a 100644 --- a/src/main/java/net/minecraft/server/NameReferencingFileConverter.java +++ b/src/main/java/net/minecraft/server/NameReferencingFileConverter.java @@ -1,5 +1,6 @@ @@ -146,7 +146,7 @@ index 09ef8729d..bf67dbf54 100644 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/RegionFile.java b/src/main/java/net/minecraft/server/RegionFile.java -index e8d9f33c8..5b48bb0b7 100644 +index ab151a14d0..0f1c74dd33 100644 --- a/src/main/java/net/minecraft/server/RegionFile.java +++ b/src/main/java/net/minecraft/server/RegionFile.java @@ -1,5 +1,6 @@ @@ -156,7 +156,7 @@ index e8d9f33c8..5b48bb0b7 100644 import com.google.common.collect.Lists; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; -@@ -82,6 +83,7 @@ public class RegionFile { +@@ -103,6 +104,7 @@ public class RegionFile { } } catch (IOException ioexception) { ioexception.printStackTrace(); @@ -164,7 +164,7 @@ index e8d9f33c8..5b48bb0b7 100644 } } -@@ -237,6 +239,7 @@ public class RegionFile { +@@ -275,6 +277,7 @@ public class RegionFile { this.b(i, j, (int) (SystemUtils.getTimeMillis() / 1000L)); } catch (IOException ioexception) { ioexception.printStackTrace(); @@ -173,7 +173,7 @@ index e8d9f33c8..5b48bb0b7 100644 } diff --git a/src/main/java/net/minecraft/server/RegionFileCache.java b/src/main/java/net/minecraft/server/RegionFileCache.java -index c5ca89691..e507a996f 100644 +index c5ca896919..e507a996f1 100644 --- a/src/main/java/net/minecraft/server/RegionFileCache.java +++ b/src/main/java/net/minecraft/server/RegionFileCache.java @@ -1,5 +1,6 @@ @@ -192,7 +192,7 @@ index c5ca89691..e507a996f 100644 } diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java -index 6720a9648..2aa0db5c2 100644 +index 6720a9648e..2aa0db5c22 100644 --- a/src/main/java/net/minecraft/server/SpawnerCreature.java +++ b/src/main/java/net/minecraft/server/SpawnerCreature.java @@ -10,6 +10,7 @@ import org.apache.logging.log4j.LogManager; @@ -220,7 +220,7 @@ index 6720a9648..2aa0db5c2 100644 } diff --git a/src/main/java/net/minecraft/server/VillageSiege.java b/src/main/java/net/minecraft/server/VillageSiege.java -index 58122b18e..0ac1fb53a 100644 +index 58122b18eb..0ac1fb53a4 100644 --- a/src/main/java/net/minecraft/server/VillageSiege.java +++ b/src/main/java/net/minecraft/server/VillageSiege.java @@ -1,5 +1,7 @@ @@ -240,7 +240,7 @@ index 58122b18e..0ac1fb53a 100644 } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 7e1df0e5b..0684d85be 100644 +index 7e1df0e5b6..0684d85beb 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -1,6 +1,8 @@ @@ -277,7 +277,7 @@ index 7e1df0e5b..0684d85be 100644 this.tileEntityListTick.remove(tileTickPosition--); continue; diff --git a/src/main/java/net/minecraft/server/WorldPersistentData.java b/src/main/java/net/minecraft/server/WorldPersistentData.java -index 478bf4997..8d51af286 100644 +index 478bf49976..8d51af2867 100644 --- a/src/main/java/net/minecraft/server/WorldPersistentData.java +++ b/src/main/java/net/minecraft/server/WorldPersistentData.java @@ -138,6 +138,7 @@ public class WorldPersistentData { @@ -289,7 +289,7 @@ index 478bf4997..8d51af286 100644 throw throwable1; } finally { diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java -index d75cc42e1..0e9d5fe3a 100644 +index d75cc42e11..0e9d5fe3a7 100644 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java @@ -17,6 +17,9 @@ import java.util.function.Consumer; diff --git a/Spigot-Server-Patches/0062-Chunk-Save-Reattempt.patch b/Spigot-Server-Patches/0062-Chunk-Save-Reattempt.patch index fe08f8bdb2..591975e7fb 100644 --- a/Spigot-Server-Patches/0062-Chunk-Save-Reattempt.patch +++ b/Spigot-Server-Patches/0062-Chunk-Save-Reattempt.patch @@ -1,4 +1,4 @@ -From facce6d5a58636fb7f89dab9b1481bf3a815212d Mon Sep 17 00:00:00 2001 +From 3e2785e893872375e49c0565c801df502bc1a616 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/RegionFile.java b/src/main/java/net/minecraft/server/RegionFile.java -index 5b48bb0b7..ecb9c4e0f 100644 +index 0f1c74dd33..9626396745 100644 --- a/src/main/java/net/minecraft/server/RegionFile.java +++ b/src/main/java/net/minecraft/server/RegionFile.java -@@ -238,8 +238,7 @@ public class RegionFile { +@@ -276,8 +276,7 @@ public class RegionFile { this.b(i, j, (int) (SystemUtils.getTimeMillis() / 1000L)); } catch (IOException ioexception) { @@ -20,7 +20,7 @@ index 5b48bb0b7..ecb9c4e0f 100644 } diff --git a/src/main/java/net/minecraft/server/RegionFileCache.java b/src/main/java/net/minecraft/server/RegionFileCache.java -index e507a996f..5dbd1d517 100644 +index e507a996f1..5dbd1d517a 100644 --- a/src/main/java/net/minecraft/server/RegionFileCache.java +++ b/src/main/java/net/minecraft/server/RegionFileCache.java @@ -95,11 +95,29 @@ public class RegionFileCache { diff --git a/Spigot-Server-Patches/0063-Default-loading-permissions.yml-before-plugins.patch b/Spigot-Server-Patches/0063-Default-loading-permissions.yml-before-plugins.patch index 1234b03d6e..a73ad75942 100644 --- a/Spigot-Server-Patches/0063-Default-loading-permissions.yml-before-plugins.patch +++ b/Spigot-Server-Patches/0063-Default-loading-permissions.yml-before-plugins.patch @@ -1,4 +1,4 @@ -From 7a1ad987146ad3817d45fe917459d6a4dc6f814d Mon Sep 17 00:00:00 2001 +From aa5a3b7de9a8702cf53c25af2d4506a45799ec8a 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 @@ -16,7 +16,7 @@ modify that. Under the previous logic, plugins were unable (cleanly) override pe A config option has been added for those who depend on the previous behavior, but I don't expect that. diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java -index 6b3556c13..508327841 100644 +index 6b3556c13c..508327841d 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java @@ -223,4 +223,9 @@ public class PaperConfig { @@ -30,7 +30,7 @@ index 6b3556c13..508327841 100644 + } } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 5dc92cb20..b8aedaae6 100644 +index e723ba414c..c592888ee5 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -342,6 +342,7 @@ public final class CraftServer implements Server { @@ -41,15 +41,15 @@ index 5dc92cb20..b8aedaae6 100644 } Plugin[] plugins = pluginManager.getPlugins(); -@@ -359,7 +360,7 @@ public final class CraftServer implements Server { - setVanillaCommands(false); - // Spigot end +@@ -361,7 +362,7 @@ public final class CraftServer implements Server { commandMap.registerServerAliases(); -- loadCustomPermissions(); -+ if (!com.destroystokyo.paper.PaperConfig.loadPermsBeforePlugins) loadCustomPermissions(); // Paper DefaultPermissions.registerCorePermissions(); CraftDefaultPermissions.registerCorePermissions(); +- loadCustomPermissions(); ++ if (!com.destroystokyo.paper.PaperConfig.loadPermsBeforePlugins) loadCustomPermissions(); // Paper helpMap.initializeCommands(); + syncCommands(); + } -- 2.20.1 diff --git a/Spigot-Server-Patches/0064-Allow-Reloading-of-Custom-Permissions.patch b/Spigot-Server-Patches/0064-Allow-Reloading-of-Custom-Permissions.patch index c76b8d9079..15eeafd480 100644 --- a/Spigot-Server-Patches/0064-Allow-Reloading-of-Custom-Permissions.patch +++ b/Spigot-Server-Patches/0064-Allow-Reloading-of-Custom-Permissions.patch @@ -1,4 +1,4 @@ -From 7d4d7ce747cd44a4d6410c323a5298a63a0452b7 Mon Sep 17 00:00:00 2001 +From 1a6b4a1320fe548ce4755afce38b0a31049f1d65 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 b8aedaae6..b911220e7 100644 +index c592888ee5..e06eb50c5a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2073,5 +2073,23 @@ public final class CraftServer implements Server { +@@ -2092,5 +2092,23 @@ public final class CraftServer implements Server { return false; } } diff --git a/Spigot-Server-Patches/0086-Reduce-IO-ops-opening-a-new-region-file.patch b/Spigot-Server-Patches/0086-Reduce-IO-ops-opening-a-new-region-file.patch index ad42b83818..5462530b44 100644 --- a/Spigot-Server-Patches/0086-Reduce-IO-ops-opening-a-new-region-file.patch +++ b/Spigot-Server-Patches/0086-Reduce-IO-ops-opening-a-new-region-file.patch @@ -1,55 +1,38 @@ -From df54abcfdf2bbf943dbd4a193e9edcc7af8f7cdf Mon Sep 17 00:00:00 2001 +From 6411f52ac4ce53d7de71028c657dfc2e6b89e001 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 9299ab56a..407ac75aa 100644 +index 9626396745..e2d4450e90 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; - import java.io.ByteArrayOutputStream; - import java.io.DataInputStream; - import java.io.DataOutputStream; -+import java.io.EOFException; - import java.io.File; - import java.io.IOException; - import java.io.RandomAccessFile; -+import java.nio.ByteBuffer; -+import java.nio.IntBuffer; - import java.util.List; - import java.util.zip.DeflaterOutputStream; - import java.util.zip.GZIPInputStream; -@@ -65,11 +68,18 @@ public class RegionFile { - this.f.set(1, false); +@@ -71,9 +71,17 @@ public class RegionFile { this.c.seek(0L); -- int k; + int k; + // Paper Start -+ ByteBuffer header = ByteBuffer.allocate(8192); ++ java.nio.ByteBuffer header = java.nio.ByteBuffer.allocate(8192); + while (header.hasRemaining()) { -+ if (this.c.getChannel().read(header) == -1) throw new EOFException(); ++ if (this.c.getChannel().read(header) == -1) throw new java.io.EOFException(); + } + header.clear(); -+ IntBuffer headerAsInts = header.asIntBuffer(); ++ java.nio.IntBuffer headerAsInts = header.asIntBuffer(); + // Paper End -- for (j = 0; j < 1024; ++j) { + for (j = 0; j < 1024; ++j) { - k = this.c.readInt(); -- this.d[j] = k; -+ for(int j1 = 0; j1 < 1024; ++j1) { -+ int k = headerAsInts.get(); // Paper -+ this.d[j1] = k; - if (k != 0 && (k >> 8) + (k & 255) <= this.f.size()) { - for (int l = 0; l < (k & 255); ++l) { - this.f.set((k >> 8) + l, false); -@@ -78,7 +88,7 @@ public class RegionFile { ++ k = headerAsInts.get(); // Paper + this.d[j] = k; + // Spigot start + int length = k & 255; +@@ -99,7 +107,7 @@ public class RegionFile { } for (j = 0; j < 1024; ++j) { - k = this.c.readInt(); -+ int k = headerAsInts.get(); // Paper ++ k = headerAsInts.get(); // Paper this.e[j] = k; } } catch (IOException ioexception) { diff --git a/Spigot-Server-Patches/0148-Allow-Reloading-of-Command-Aliases.patch b/Spigot-Server-Patches/0148-Allow-Reloading-of-Command-Aliases.patch index 9ed720d977..0b2356e595 100644 --- a/Spigot-Server-Patches/0148-Allow-Reloading-of-Command-Aliases.patch +++ b/Spigot-Server-Patches/0148-Allow-Reloading-of-Command-Aliases.patch @@ -1,4 +1,4 @@ -From 477a9079889e96124c60a6994b2704a5b1f34ebe Mon Sep 17 00:00:00 2001 +From 5328690b007dbdf5e9e364093f620a6bf3882f45 Mon Sep 17 00:00:00 2001 From: willies952002 Date: Mon, 28 Nov 2016 10:21:52 -0500 Subject: [PATCH] Allow Reloading of Command Aliases @@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Command Aliases Reload the aliases stored in commands.yml diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index c82cca49f..85a2b6244 100644 +index 7f5dacc2ae..02d2b80b91 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2102,5 +2102,24 @@ public final class CraftServer implements Server { +@@ -2121,5 +2121,24 @@ public final class CraftServer implements Server { DefaultPermissions.registerCorePermissions(); CraftDefaultPermissions.registerCorePermissions(); } diff --git a/Spigot-Server-Patches/0177-Add-configuration-option-to-prevent-player-names-fro.patch b/Spigot-Server-Patches/0177-Add-configuration-option-to-prevent-player-names-fro.patch index c4f085c726..9cbe1482c7 100644 --- a/Spigot-Server-Patches/0177-Add-configuration-option-to-prevent-player-names-fro.patch +++ b/Spigot-Server-Patches/0177-Add-configuration-option-to-prevent-player-names-fro.patch @@ -1,4 +1,4 @@ -From cfbfa03e2f499b2b315a0129d732b0556effc00e Mon Sep 17 00:00:00 2001 +From f6ca2a412171bf4de58549ea41ea774f6bb4d382 Mon Sep 17 00:00:00 2001 From: kashike Date: Fri, 9 Jun 2017 07:24:34 -0700 Subject: [PATCH] Add configuration option to prevent player names from being @@ -6,7 +6,7 @@ Subject: [PATCH] Add configuration option to prevent player names from being diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java -index a4853e04b..0f38b1fb4 100644 +index a4853e04be..0f38b1fb4a 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java @@ -280,4 +280,9 @@ public class PaperConfig { @@ -20,10 +20,10 @@ index a4853e04b..0f38b1fb4 100644 + } } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 85a2b6244..ebfdc6213 100644 +index 02d2b80b91..e238e760a7 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2121,5 +2121,10 @@ public final class CraftServer implements Server { +@@ -2140,5 +2140,10 @@ public final class CraftServer implements Server { commandMap.registerServerAliases(); return true; } diff --git a/Spigot-Server-Patches/0184-Basic-PlayerProfile-API.patch b/Spigot-Server-Patches/0184-Basic-PlayerProfile-API.patch index b7a6675e6e..ee35bf4ef4 100644 --- a/Spigot-Server-Patches/0184-Basic-PlayerProfile-API.patch +++ b/Spigot-Server-Patches/0184-Basic-PlayerProfile-API.patch @@ -1,4 +1,4 @@ -From e9d6a257393684f269c8b612ad29935f9359196a Mon Sep 17 00:00:00 2001 +From fa4b49523d6aa9a9413d4ee4ad864e91dab1cb19 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 15 Jan 2018 22:11:48 -0500 Subject: [PATCH] Basic PlayerProfile API @@ -7,7 +7,7 @@ Establishes base extension of profile systems for future edits too diff --git a/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java b/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java new file mode 100644 -index 000000000..b151a13c1 +index 0000000000..b151a13c1b --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java @@ -0,0 +1,280 @@ @@ -293,7 +293,7 @@ index 000000000..b151a13c1 +} diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperAuthenticationService.java b/src/main/java/com/destroystokyo/paper/profile/PaperAuthenticationService.java new file mode 100644 -index 000000000..25836b975 +index 0000000000..25836b975b --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/profile/PaperAuthenticationService.java @@ -0,0 +1,30 @@ @@ -329,7 +329,7 @@ index 000000000..25836b975 +} diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java b/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java new file mode 100644 -index 000000000..3bcdb8f93 +index 0000000000..3bcdb8f93f --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java @@ -0,0 +1,17 @@ @@ -352,7 +352,7 @@ index 000000000..3bcdb8f93 +} diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java b/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java new file mode 100644 -index 000000000..4b2a67423 +index 0000000000..4b2a67423f --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java @@ -0,0 +1,29 @@ @@ -387,7 +387,7 @@ index 000000000..4b2a67423 +} diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperUserAuthentication.java b/src/main/java/com/destroystokyo/paper/profile/PaperUserAuthentication.java new file mode 100644 -index 000000000..3aceb0ea8 +index 0000000000..3aceb0ea8a --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/profile/PaperUserAuthentication.java @@ -0,0 +1,11 @@ @@ -403,7 +403,7 @@ index 000000000..3aceb0ea8 + } +} diff --git a/src/main/java/net/minecraft/server/MCUtil.java b/src/main/java/net/minecraft/server/MCUtil.java -index e1af5c488..0ef5ad116 100644 +index e1af5c4885..0ef5ad1165 100644 --- a/src/main/java/net/minecraft/server/MCUtil.java +++ b/src/main/java/net/minecraft/server/MCUtil.java @@ -1,7 +1,10 @@ @@ -429,7 +429,7 @@ index e1af5c488..0ef5ad116 100644 * Calculates distance between 2 entities * @param e1 diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e046c2e33..f5ad783c5 100644 +index e046c2e334..f5ad783c5c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1185,7 +1185,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati @@ -450,7 +450,7 @@ index e046c2e33..f5ad783c5 100644 return this.V; } diff --git a/src/main/java/net/minecraft/server/UserCache.java b/src/main/java/net/minecraft/server/UserCache.java -index 9bf2521be..059665836 100644 +index 9bf2521be6..0596658362 100644 --- a/src/main/java/net/minecraft/server/UserCache.java +++ b/src/main/java/net/minecraft/server/UserCache.java @@ -43,7 +43,7 @@ public class UserCache { @@ -486,7 +486,7 @@ index 9bf2521be..059665836 100644 private UserCacheEntry(GameProfile gameprofile, Date date) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f82ab97e6..c2e72dac2 100644 +index 6dad8fab26..ec17eaf9d7 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -164,6 +164,10 @@ import org.bukkit.event.server.ServerLoadEvent; @@ -500,7 +500,7 @@ index f82ab97e6..c2e72dac2 100644 public final class CraftServer implements Server { private final String serverName = "Paper"; // Paper private final String serverVersion; -@@ -2137,5 +2141,21 @@ public final class CraftServer implements Server { +@@ -2156,5 +2160,21 @@ public final class CraftServer implements Server { public boolean suggestPlayerNamesWhenNullTabCompletions() { return com.destroystokyo.paper.PaperConfig.suggestPlayersWhenNullTabCompletions; } diff --git a/Spigot-Server-Patches/0324-Detect-and-repair-corrupt-Region-Files.patch b/Spigot-Server-Patches/0324-Detect-and-repair-corrupt-Region-Files.patch index 69f183e502..c754f04f55 100644 --- a/Spigot-Server-Patches/0324-Detect-and-repair-corrupt-Region-Files.patch +++ b/Spigot-Server-Patches/0324-Detect-and-repair-corrupt-Region-Files.patch @@ -1,4 +1,4 @@ -From 908a2abd3dfe84cd683d79b36dcc4bfcd632393b Mon Sep 17 00:00:00 2001 +From 49d9979c5c63c62f676834076ab49026eecd4b68 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 11 Aug 2018 00:49:20 -0400 Subject: [PATCH] Detect and repair corrupt Region Files @@ -11,12 +11,12 @@ I don't know why mojang only checks for 4096, when anything less than 8192 is a But to be safe, it will attempt to back up the file. diff --git a/src/main/java/net/minecraft/server/RegionFile.java b/src/main/java/net/minecraft/server/RegionFile.java -index 407ac75aa..d3e6d755e 100644 +index e2d4450e90..c20511588d 100644 --- a/src/main/java/net/minecraft/server/RegionFile.java +++ b/src/main/java/net/minecraft/server/RegionFile.java -@@ -23,10 +23,10 @@ import javax.annotation.Nullable; - public class RegionFile { - +@@ -25,10 +25,10 @@ public class RegionFile { + private static final boolean ENABLE_EXTENDED_SAVE = Boolean.parseBoolean(System.getProperty("net.minecraft.server.RegionFile.enableExtendedSave", "true")); + // Spigot end private static final byte[] a = new byte[4096]; - private final File b; - private RandomAccessFile c; @@ -29,7 +29,7 @@ index 407ac75aa..d3e6d755e 100644 private List f; private int g; private long h; -@@ -41,7 +41,7 @@ public class RegionFile { +@@ -43,7 +43,7 @@ public class RegionFile { } this.c = new RandomAccessFile(file, "rw"); @@ -38,27 +38,48 @@ index 407ac75aa..d3e6d755e 100644 this.c.write(RegionFile.a); this.c.write(RegionFile.a); this.g += 8192; -@@ -80,16 +80,16 @@ public class RegionFile { - for(int j1 = 0; j1 < 1024; ++j1) { - int k = headerAsInts.get(); // Paper - this.d[j1] = k; -- if (k != 0 && (k >> 8) + (k & 255) <= this.f.size()) { +@@ -93,22 +93,23 @@ public class RegionFile { + this.c.seek(j * 4 + 4); // Go back to where we were + } + } +- if (k != 0 && (k >> 8) + (length) <= this.f.size()) { + if (k > 0 && (k >> 8) > 1 && (k >> 8) + (k & 255) <= this.f.size()) { // Paper >= 1 as 0/1 are the headers, and negative isnt valid - for (int l = 0; l < (k & 255); ++l) { + for (int l = 0; l < (length); ++l) { + // Spigot end this.f.set((k >> 8) + l, false); } -- } -+ } else if (k != 0) deleteChunk(j1); // Paper + } + // Spigot start +- else if (length > 0) { +- org.bukkit.Bukkit.getLogger().log(java.util.logging.Level.WARNING, "Invalid chunk: ({0}, {1}) Offset: {2} Length: {3} runs off end file. {4}", new Object[]{j % 32, (int) (j / 32), k >> 8, length, file}); ++ else if (k != 0) { // Paper ++ org.bukkit.Bukkit.getLogger().log(java.util.logging.Level.SEVERE, "Invalid chunk: ({0}, {1}) Offset: {2} Length: {3} runs off end file. {4}", new Object[]{j % 32, (int) (j / 32), k >> 8, length, file}); // Paper ++ deleteChunk(j); // Paper + } + // Spigot end } for (j = 0; j < 1024; ++j) { - int k = headerAsInts.get(); // Paper + k = headerAsInts.get(); // Paper - this.e[j] = k; + if (offsets[j] != 0) this.timestamps[j] = k; // Paper - don't set timestamp if it got 0'd above due to corruption } } catch (IOException ioexception) { ioexception.printStackTrace(); -@@ -291,6 +291,55 @@ public class RegionFile { +@@ -144,10 +145,10 @@ public class RegionFile { + int j1 = this.c.readInt(); + + if (j1 > 4096 * i1) { +- org.bukkit.Bukkit.getLogger().log(java.util.logging.Level.WARNING, "Invalid chunk: ({0}, {1}) Offset: {2} Invalid Size: {3}>{4} {5}", new Object[]{i, j, l, j1, i1 * 4096, this.b}); // Spigot ++ org.bukkit.Bukkit.getLogger().log(java.util.logging.Level.SEVERE, "Invalid chunk: ({0}, {1}) Offset: {2} Invalid Size: {3}>{4} {5}", new Object[]{i, j, l, j1, i1 * 4096, this.b}); // Spigot + return null; + } else if (j1 <= 0) { +- org.bukkit.Bukkit.getLogger().log(java.util.logging.Level.WARNING, "Invalid chunk: ({0}, {1}) Offset: {2} Invalid Size: {3} {4}", new Object[]{i, j, l, j1, this.b}); // Spigot ++ org.bukkit.Bukkit.getLogger().log(java.util.logging.Level.SEVERE, "Invalid chunk: ({0}, {1}) Offset: {2} Invalid Size: {3} {4}", new Object[]{i, j, l, j1, this.b}); // Spigot + return null; + } else { + byte b0 = this.c.readByte(); +@@ -327,6 +328,54 @@ public class RegionFile { } @@ -70,21 +91,20 @@ index 407ac75aa..d3e6d755e 100644 + int z = j1 >> 2; + int offset = (k >> 8); + int len = (k & 255); -+ org.apache.logging.log4j.Logger logger = org.apache.logging.log4j.LogManager.getLogger(); + String debug = "idx:" + + j1 + " - " + x + "," + z + " - offset: " + offset + " - len: " + len; + try { ++ timestamps[j1] = 0; ++ offsets[j1] = 0; + RandomAccessFile file = getDataFile(); + file.seek(j1 * 4); + file.writeInt(0); + // clear the timestamp + file.seek(4096 + j1 * 4); + file.writeInt(0); -+ timestamps[j1] = 0; -+ offsets[j1] = 0; -+ logger.error("Deleted corrupt chunk (" + debug + ") " + getFile().getAbsolutePath(), e); ++ org.bukkit.Bukkit.getLogger().log(java.util.logging.Level.SEVERE, "Deleted corrupt chunk (" + debug + ") " + getFile().getAbsolutePath(), e); + } catch (IOException e) { + -+ logger.error("Error deleting corrupt chunk (" + debug + ") " + getFile().getAbsolutePath(), e); ++ org.bukkit.Bukkit.getLogger().log(java.util.logging.Level.SEVERE, "Error deleting corrupt chunk (" + debug + ") " + getFile().getAbsolutePath(), e); + } + } + private boolean backedUp = false; diff --git a/Spigot-Server-Patches/0404-Make-the-default-permission-message-configurable.patch b/Spigot-Server-Patches/0404-Make-the-default-permission-message-configurable.patch index b461d847ce..a36fddf4a7 100644 --- a/Spigot-Server-Patches/0404-Make-the-default-permission-message-configurable.patch +++ b/Spigot-Server-Patches/0404-Make-the-default-permission-message-configurable.patch @@ -1,11 +1,11 @@ -From 967d384c71fbb73bfb5a500d9dccb24825dd478d Mon Sep 17 00:00:00 2001 +From 37565a2797d88b37577049d2ba7abaa802476d9a Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sun, 18 Nov 2018 19:49:56 +0000 Subject: [PATCH] Make the default permission message configurable diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java -index 07f0b4529..a7673dd49 100644 +index 07f0b45295..a7673dd49d 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java @@ -21,6 +21,7 @@ import java.util.regex.Pattern; @@ -29,10 +29,10 @@ index 07f0b4529..a7673dd49 100644 private static void savePlayerData() { savePlayerData = getBoolean("settings.save-player-data", savePlayerData); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 78adc8714..27fc7f9aa 100644 +index 59b1628e5a..8d26f8d525 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2168,6 +2168,10 @@ public final class CraftServer implements Server { +@@ -2187,6 +2187,10 @@ public final class CraftServer implements Server { return com.destroystokyo.paper.PaperConfig.suggestPlayersWhenNullTabCompletions; } diff --git a/Spigot-Server-Patches/0417-Allow-Saving-of-Oversized-Chunks.patch b/Spigot-Server-Patches/0417-Allow-Saving-of-Oversized-Chunks.patch index 2c0d261c5f..27fd946b2b 100644 --- a/Spigot-Server-Patches/0417-Allow-Saving-of-Oversized-Chunks.patch +++ b/Spigot-Server-Patches/0417-Allow-Saving-of-Oversized-Chunks.patch @@ -1,4 +1,4 @@ -From ba4afed44f76c2d0b8ba63439ecc28b6c2212d05 Mon Sep 17 00:00:00 2001 +From 5cc6dd8fc7df054e9388d7feaf9a506db71480d6 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 15 Feb 2019 01:08:19 -0500 Subject: [PATCH] Allow Saving of Oversized Chunks @@ -51,18 +51,18 @@ index 12268f87b9..e1f7e06ab2 100644 a((NBTBase) nbttagcompound, dataoutput); } diff --git a/src/main/java/net/minecraft/server/RegionFile.java b/src/main/java/net/minecraft/server/RegionFile.java -index 999adf7dc7..303c13ccd0 100644 +index c20511588d..448a903c16 100644 --- a/src/main/java/net/minecraft/server/RegionFile.java +++ b/src/main/java/net/minecraft/server/RegionFile.java -@@ -75,6 +75,7 @@ public class RegionFile { +@@ -78,6 +78,7 @@ public class RegionFile { } header.clear(); - IntBuffer headerAsInts = header.asIntBuffer(); + java.nio.IntBuffer headerAsInts = header.asIntBuffer(); + initOversizedState(); // Paper End - for(int j1 = 0; j1 < 1024; ++j1) { -@@ -99,7 +100,7 @@ public class RegionFile { + for (j = 0; j < 1024; ++j) { +@@ -119,7 +120,7 @@ public class RegionFile { } @Nullable @@ -71,7 +71,7 @@ index 999adf7dc7..303c13ccd0 100644 if (this.e(i, j)) { return null; } else { -@@ -175,8 +176,8 @@ public class RegionFile { +@@ -203,8 +204,8 @@ public class RegionFile { } @Nullable @@ -82,16 +82,18 @@ index 999adf7dc7..303c13ccd0 100644 } protected synchronized void a(int i, int j, byte[] abyte, int k) { -@@ -187,7 +188,7 @@ public class RegionFile { - int k1 = (k + 5) / 4096 + 1; +@@ -222,8 +223,9 @@ public class RegionFile { if (k1 >= 256) { -- return; -+ throw new ChunkTooLargeException(i, j, k1); // Paper - throw error instead + // Spigot start +- if (!ENABLE_EXTENDED_SAVE) return; ++ if (!USE_SPIGOT_OVERSIZED_METHOD) throw new ChunkTooLargeException(i, j, k1); // Paper - throw error instead + org.bukkit.Bukkit.getLogger().log(java.util.logging.Level.WARNING,"Large Chunk Detected: ({0}, {1}) Size: {2} {3}", new Object[]{i, j, k1, this.b}); ++ if (!ENABLE_EXTENDED_SAVE) return; + // Spigot end } - if (i1 != 0 && j1 == k1) { -@@ -338,6 +339,101 @@ public class RegionFile { +@@ -374,6 +376,109 @@ public class RegionFile { logger.error("Error backing up corrupt file" + file.getAbsolutePath(), e); } } @@ -172,6 +174,14 @@ index 999adf7dc7..303c13ccd0 100644 + + } + ++ private static final boolean USE_SPIGOT_OVERSIZED_METHOD = Boolean.getBoolean("Paper.useSpigotExtendedSaveMethod"); // Paper ++ static { ++ if (USE_SPIGOT_OVERSIZED_METHOD) { ++ org.bukkit.Bukkit.getLogger().log(java.util.logging.Level.SEVERE, "===================================="); ++ org.bukkit.Bukkit.getLogger().log(java.util.logging.Level.SEVERE, "Using Spigot Oversized Chunk save method. Warning this will result in extremely fragmented chunks, as well as making the entire region file unable to be to used in any other software but Forge or Spigot (not usable in Vanilla or CraftBukkit). Paper's method is highly recommended."); ++ org.bukkit.Bukkit.getLogger().log(java.util.logging.Level.SEVERE, "===================================="); ++ } ++ } + public class ChunkTooLargeException extends RuntimeException { + public ChunkTooLargeException(int x, int z, int sectors) { + super("Chunk " + x + "," + z + " of " + getFile().toString() + " is too large (" + sectors + "/256)"); @@ -193,7 +203,7 @@ index 999adf7dc7..303c13ccd0 100644 // Paper end class ChunkBuffer extends ByteArrayOutputStream { -@@ -351,8 +447,40 @@ public class RegionFile { +@@ -387,8 +492,40 @@ public class RegionFile { this.c = j; } @@ -237,7 +247,7 @@ index 999adf7dc7..303c13ccd0 100644 } } diff --git a/src/main/java/net/minecraft/server/RegionFileCache.java b/src/main/java/net/minecraft/server/RegionFileCache.java -index 8c8b7cbab5..50a62d6e23 100644 +index 8c8b7cbab5..a17e76d839 100644 --- a/src/main/java/net/minecraft/server/RegionFileCache.java +++ b/src/main/java/net/minecraft/server/RegionFileCache.java @@ -16,6 +16,7 @@ public class RegionFileCache { @@ -248,7 +258,7 @@ index 8c8b7cbab5..50a62d6e23 100644 public static synchronized RegionFile a(File file, int i, int j) { File file1 = new File(file, "region"); File file2 = new File(file1, "r." + (i >> 5) + "." + (j >> 5) + ".mca"); -@@ -83,6 +84,129 @@ public class RegionFileCache { +@@ -83,6 +84,125 @@ public class RegionFileCache { public static synchronized boolean hasRegionFile(File file, int i, int j) { return RegionFileCache.cache.containsKey(getRegionFileName(file, i, j)); } @@ -298,11 +308,7 @@ index 8c8b7cbab5..50a62d6e23 100644 + + regionfile.writeOversizedData(x, z, oversizedData); + } -+ } catch (Exception e) { -+ e.printStackTrace(); -+ throw e; + } -+ + } + + private static NBTTagCompound filterChunkData(NBTTagCompound chunk) { @@ -378,7 +384,7 @@ index 8c8b7cbab5..50a62d6e23 100644 // Paper End public static synchronized void a() { -@@ -108,6 +232,12 @@ public class RegionFileCache { +@@ -108,6 +228,12 @@ public class RegionFileCache { // CraftBukkit start - call sites hoisted for synchronization public static NBTTagCompound read(File file, int i, int j) throws IOException { // Paper - remove synchronization RegionFile regionfile = a(file, i, j); @@ -391,7 +397,7 @@ index 8c8b7cbab5..50a62d6e23 100644 DataInputStream datainputstream = regionfile.a(i & 31, j & 31); -@@ -121,11 +251,14 @@ public class RegionFileCache { +@@ -121,11 +247,14 @@ public class RegionFileCache { @Nullable public static void write(File file, int i, int j, NBTTagCompound nbttagcompound) throws IOException { int attempts = 0; Exception laste = null; while (attempts++ < 5) { try { // Paper diff --git a/work/Bukkit b/work/Bukkit index a88873890d..e167e549af 160000 --- a/work/Bukkit +++ b/work/Bukkit @@ -1 +1 @@ -Subproject commit a88873890da6c5ca4b424f2bc605550c8453b19f +Subproject commit e167e549afd442461df623cdb3c6ba1f2be797d9 diff --git a/work/CraftBukkit b/work/CraftBukkit index 51c118b1d7..6430d9c0ba 160000 --- a/work/CraftBukkit +++ b/work/CraftBukkit @@ -1 +1 @@ -Subproject commit 51c118b1d7f6ed9847fa853081e1eed67ddeb293 +Subproject commit 6430d9c0ba73bb5321743ba8ea842cc611e807c9 diff --git a/work/Spigot b/work/Spigot index b0f4c22b92..e5e5c7c6d4 160000 --- a/work/Spigot +++ b/work/Spigot @@ -1 +1 @@ -Subproject commit b0f4c22b92c82146214dad69ea296ab7034592d8 +Subproject commit e5e5c7c6d438c89ced4041c0d3361ae9e6bcc177