Updated Upstream (Bukkit/CraftBukkit/Spigot)

Upstream has released updates that appears to apply and compile correctly.
This update has only been PARTIALLY tested by PaperMC and as with ANY update, please do your own testing

I've tested basic region file saving as well as our oversized chunks approach.

Bukkit Changes:
e167e549 Clarify MerchantInventory#getSelectedRecipe.
3a1d5b8f Apply default permissions by registration order.
c64cc93f Make tags Keyed
ec037ed7 Added a method to get a list of tags
bfb6ef86 Introduce rotation methods to the Vector class
fc727372 Remove draft API from FluidLevelChangeEvent

CraftBukkit Changes:
6430d9c0 SPIGOT-4632: BlockState location is not fixed
14cd1688 Fix CraftInventoryMerchant#getSelectedRecipe if there is no active merchant recipe.
c24abab7 Load custom permissions after default permissions.
bc99dfe8 Make tags Keyed
6fce004f Added a method to get a list of tags

Spigot Changes:
e5e5c7c6 Allow Saving Large Chunks
e8d3881c Rebuild patches
This commit is contained in:
Aikar 2019-02-21 22:41:20 -05:00
parent 825191f069
commit 13d1abf01e
No known key found for this signature in database
GPG Key ID: 401ADFC9891FAAFE
28 changed files with 394 additions and 348 deletions

View File

@ -1,4 +1,4 @@
From 92f2c6e98e370ef4bc1f110e8eb7a85dc11eaac9 Mon Sep 17 00:00:00 2001 From c4e6bfe0af9a90f66cf6685af9e00d904a817b2d Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Mon, 29 Feb 2016 18:48:17 -0600 Date: Mon, 29 Feb 2016 18:48:17 -0600
Subject: [PATCH] Timings v2 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 diff --git a/src/main/java/co/aikar/timings/FullServerTickHandler.java b/src/main/java/co/aikar/timings/FullServerTickHandler.java
new file mode 100644 new file mode 100644
index 000000000..98079dc0c index 00000000..98079dc0
--- /dev/null --- /dev/null
+++ b/src/main/java/co/aikar/timings/FullServerTickHandler.java +++ b/src/main/java/co/aikar/timings/FullServerTickHandler.java
@@ -0,0 +1,82 @@ @@ -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 diff --git a/src/main/java/co/aikar/timings/NullTimingHandler.java b/src/main/java/co/aikar/timings/NullTimingHandler.java
new file mode 100644 new file mode 100644
index 000000000..8c43e2061 index 00000000..8c43e206
--- /dev/null --- /dev/null
+++ b/src/main/java/co/aikar/timings/NullTimingHandler.java +++ b/src/main/java/co/aikar/timings/NullTimingHandler.java
@@ -0,0 +1,61 @@ @@ -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 diff --git a/src/main/java/co/aikar/timings/TimedEventExecutor.java b/src/main/java/co/aikar/timings/TimedEventExecutor.java
new file mode 100644 new file mode 100644
index 000000000..feddcdbd4 index 00000000..feddcdbd
--- /dev/null --- /dev/null
+++ b/src/main/java/co/aikar/timings/TimedEventExecutor.java +++ b/src/main/java/co/aikar/timings/TimedEventExecutor.java
@@ -0,0 +1,81 @@ @@ -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 diff --git a/src/main/java/co/aikar/timings/Timing.java b/src/main/java/co/aikar/timings/Timing.java
new file mode 100644 new file mode 100644
index 000000000..b2260104c index 00000000..b2260104
--- /dev/null --- /dev/null
+++ b/src/main/java/co/aikar/timings/Timing.java +++ b/src/main/java/co/aikar/timings/Timing.java
@@ -0,0 +1,76 @@ @@ -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 diff --git a/src/main/java/co/aikar/timings/TimingData.java b/src/main/java/co/aikar/timings/TimingData.java
new file mode 100644 new file mode 100644
index 000000000..f222d6b7d index 00000000..f222d6b7
--- /dev/null --- /dev/null
+++ b/src/main/java/co/aikar/timings/TimingData.java +++ b/src/main/java/co/aikar/timings/TimingData.java
@@ -0,0 +1,120 @@ @@ -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 diff --git a/src/main/java/co/aikar/timings/TimingHandler.java b/src/main/java/co/aikar/timings/TimingHandler.java
new file mode 100644 new file mode 100644
index 000000000..521c985e6 index 00000000..521c985e
--- /dev/null --- /dev/null
+++ b/src/main/java/co/aikar/timings/TimingHandler.java +++ b/src/main/java/co/aikar/timings/TimingHandler.java
@@ -0,0 +1,200 @@ @@ -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 diff --git a/src/main/java/co/aikar/timings/TimingHistory.java b/src/main/java/co/aikar/timings/TimingHistory.java
new file mode 100644 new file mode 100644
index 000000000..28d0954a3 index 00000000..28d0954a
--- /dev/null --- /dev/null
+++ b/src/main/java/co/aikar/timings/TimingHistory.java +++ b/src/main/java/co/aikar/timings/TimingHistory.java
@@ -0,0 +1,345 @@ @@ -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 diff --git a/src/main/java/co/aikar/timings/TimingHistoryEntry.java b/src/main/java/co/aikar/timings/TimingHistoryEntry.java
new file mode 100644 new file mode 100644
index 000000000..0e114eb32 index 00000000..0e114eb3
--- /dev/null --- /dev/null
+++ b/src/main/java/co/aikar/timings/TimingHistoryEntry.java +++ b/src/main/java/co/aikar/timings/TimingHistoryEntry.java
@@ -0,0 +1,55 @@ @@ -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 diff --git a/src/main/java/co/aikar/timings/TimingIdentifier.java b/src/main/java/co/aikar/timings/TimingIdentifier.java
new file mode 100644 new file mode 100644
index 000000000..a7f1f44d7 index 00000000..a7f1f44d
--- /dev/null --- /dev/null
+++ b/src/main/java/co/aikar/timings/TimingIdentifier.java +++ b/src/main/java/co/aikar/timings/TimingIdentifier.java
@@ -0,0 +1,106 @@ @@ -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 diff --git a/src/main/java/co/aikar/timings/Timings.java b/src/main/java/co/aikar/timings/Timings.java
new file mode 100644 new file mode 100644
index 000000000..f907649ba index 00000000..f907649b
--- /dev/null --- /dev/null
+++ b/src/main/java/co/aikar/timings/Timings.java +++ b/src/main/java/co/aikar/timings/Timings.java
@@ -0,0 +1,284 @@ @@ -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 diff --git a/src/main/java/co/aikar/timings/TimingsCommand.java b/src/main/java/co/aikar/timings/TimingsCommand.java
new file mode 100644 new file mode 100644
index 000000000..56b10e898 index 00000000..56b10e89
--- /dev/null --- /dev/null
+++ b/src/main/java/co/aikar/timings/TimingsCommand.java +++ b/src/main/java/co/aikar/timings/TimingsCommand.java
@@ -0,0 +1,119 @@ @@ -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 diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java
new file mode 100644 new file mode 100644
index 000000000..df7f42595 index 00000000..df7f4259
--- /dev/null --- /dev/null
+++ b/src/main/java/co/aikar/timings/TimingsExport.java +++ b/src/main/java/co/aikar/timings/TimingsExport.java
@@ -0,0 +1,342 @@ @@ -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 diff --git a/src/main/java/co/aikar/timings/TimingsManager.java b/src/main/java/co/aikar/timings/TimingsManager.java
new file mode 100644 new file mode 100644
index 000000000..f63e7033c index 00000000..f63e7033
--- /dev/null --- /dev/null
+++ b/src/main/java/co/aikar/timings/TimingsManager.java +++ b/src/main/java/co/aikar/timings/TimingsManager.java
@@ -0,0 +1,187 @@ @@ -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 diff --git a/src/main/java/co/aikar/timings/TimingsReportListener.java b/src/main/java/co/aikar/timings/TimingsReportListener.java
new file mode 100644 new file mode 100644
index 000000000..e7c389c05 index 00000000..e7c389c0
--- /dev/null --- /dev/null
+++ b/src/main/java/co/aikar/timings/TimingsReportListener.java +++ b/src/main/java/co/aikar/timings/TimingsReportListener.java
@@ -0,0 +1,72 @@ @@ -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 diff --git a/src/main/java/co/aikar/timings/UnsafeTimingHandler.java b/src/main/java/co/aikar/timings/UnsafeTimingHandler.java
new file mode 100644 new file mode 100644
index 000000000..5edaba128 index 00000000..5edaba12
--- /dev/null --- /dev/null
+++ b/src/main/java/co/aikar/timings/UnsafeTimingHandler.java +++ b/src/main/java/co/aikar/timings/UnsafeTimingHandler.java
@@ -0,0 +1,51 @@ @@ -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 diff --git a/src/main/java/co/aikar/util/Counter.java b/src/main/java/co/aikar/util/Counter.java
new file mode 100644 new file mode 100644
index 000000000..23ac07f2c index 00000000..23ac07f2
--- /dev/null --- /dev/null
+++ b/src/main/java/co/aikar/util/Counter.java +++ b/src/main/java/co/aikar/util/Counter.java
@@ -0,0 +1,35 @@ @@ -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 diff --git a/src/main/java/co/aikar/util/JSONUtil.java b/src/main/java/co/aikar/util/JSONUtil.java
new file mode 100644 new file mode 100644
index 000000000..962749750 index 00000000..96274975
--- /dev/null --- /dev/null
+++ b/src/main/java/co/aikar/util/JSONUtil.java +++ b/src/main/java/co/aikar/util/JSONUtil.java
@@ -0,0 +1,129 @@ @@ -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 diff --git a/src/main/java/co/aikar/util/LoadingIntMap.java b/src/main/java/co/aikar/util/LoadingIntMap.java
new file mode 100644 new file mode 100644
index 000000000..24eae4bea index 00000000..24eae4be
--- /dev/null --- /dev/null
+++ b/src/main/java/co/aikar/util/LoadingIntMap.java +++ b/src/main/java/co/aikar/util/LoadingIntMap.java
@@ -0,0 +1,71 @@ @@ -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 diff --git a/src/main/java/co/aikar/util/LoadingMap.java b/src/main/java/co/aikar/util/LoadingMap.java
new file mode 100644 new file mode 100644
index 000000000..9a4f9dca8 index 00000000..9a4f9dca
--- /dev/null --- /dev/null
+++ b/src/main/java/co/aikar/util/LoadingMap.java +++ b/src/main/java/co/aikar/util/LoadingMap.java
@@ -0,0 +1,339 @@ @@ -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 diff --git a/src/main/java/co/aikar/util/MRUMapCache.java b/src/main/java/co/aikar/util/MRUMapCache.java
new file mode 100644 new file mode 100644
index 000000000..df592d855 index 00000000..df592d85
--- /dev/null --- /dev/null
+++ b/src/main/java/co/aikar/util/MRUMapCache.java +++ b/src/main/java/co/aikar/util/MRUMapCache.java
@@ -0,0 +1,102 @@ @@ -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 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 --- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java
@@ -572,7 +572,6 @@ public final class Bukkit { @@ -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 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 --- a/src/main/java/org/bukkit/Server.java
+++ b/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 // Spigot start
public class Spigot 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 diff --git a/src/main/java/org/bukkit/command/BufferedCommandSender.java b/src/main/java/org/bukkit/command/BufferedCommandSender.java
new file mode 100644 new file mode 100644
index 000000000..fd452bce4 index 00000000..fd452bce
--- /dev/null --- /dev/null
+++ b/src/main/java/org/bukkit/command/BufferedCommandSender.java +++ b/src/main/java/org/bukkit/command/BufferedCommandSender.java
@@ -0,0 +1,18 @@ @@ -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 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 --- a/src/main/java/org/bukkit/command/Command.java
+++ b/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 { @@ -33,7 +33,8 @@ public abstract class Command {
@ -3081,7 +3081,7 @@ index 33e8681d6..db7f44289 100644
return true; return true;
} }
diff --git a/src/main/java/org/bukkit/command/FormattedCommandAlias.java b/src/main/java/org/bukkit/command/FormattedCommandAlias.java 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 --- a/src/main/java/org/bukkit/command/FormattedCommandAlias.java
+++ b/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 { @@ -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 diff --git a/src/main/java/org/bukkit/command/MessageCommandSender.java b/src/main/java/org/bukkit/command/MessageCommandSender.java
new file mode 100644 new file mode 100644
index 000000000..5527e7c86 index 00000000..5527e7c8
--- /dev/null --- /dev/null
+++ b/src/main/java/org/bukkit/command/MessageCommandSender.java +++ b/src/main/java/org/bukkit/command/MessageCommandSender.java
@@ -0,0 +1,105 @@ @@ -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 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 --- a/src/main/java/org/bukkit/command/SimpleCommandMap.java
+++ b/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 { @@ -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) // 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 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 deleted file mode 100644
index bba914d7f..000000000 index bba914d7..00000000
--- a/src/main/java/org/bukkit/command/defaults/TimingsCommand.java --- a/src/main/java/org/bukkit/command/defaults/TimingsCommand.java
+++ /dev/null +++ /dev/null
@@ -1,253 +0,0 @@ @@ -1,253 +0,0 @@
@ -3507,7 +3507,7 @@ index bba914d7f..000000000
- // Spigot end - // Spigot end
-} -}
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java 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 --- a/src/main/java/org/bukkit/entity/Player.java
+++ b/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 @@ -1551,6 +1551,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@ -3523,10 +3523,10 @@ index 71fe947bc..75f21146c 100644
@Override @Override
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java 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 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/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()]); 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) { if (result != null) {
plugins.add(result); plugins.add(result);
@ -3543,7 +3543,7 @@ index 8b130abb7..80c152ba9 100644
} }
return result; 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 * @return Plugin if it exists, otherwise null
*/ */
public synchronized Plugin getPlugin(String name) { public synchronized Plugin getPlugin(String name) {
@ -3552,7 +3552,7 @@ index 8b130abb7..80c152ba9 100644
} }
public synchronized Plugin[] getPlugins() { 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"); 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)); getEventListeners(event).register(new TimedRegisteredListener(listener, executor, priority, plugin, ignoreCancelled));
} else { } else {
getEventListeners(event).register(new RegisteredListener(listener, executor, priority, plugin, ignoreCancelled)); 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() { 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 * @param use True if per event timing code should be used
*/ */
public void useTimings(boolean use) { 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 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 --- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/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; @@ -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())); eventSet.add(new TimedRegisteredListener(listener, executor, eh.priority(), plugin, eh.ignoreCancelled()));
} else { } else {
diff --git a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java 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 --- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
+++ b/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; @@ -23,7 +23,8 @@ import org.bukkit.plugin.PluginDescriptionFile;
@ -3643,7 +3643,7 @@ index 7a8abe75a..bc33ff33a 100644
private final Map<String, Class<?>> classes = new ConcurrentHashMap<String, Class<?>>(); private final Map<String, Class<?>> classes = new ConcurrentHashMap<String, Class<?>>();
private final PluginDescriptionFile description; private final PluginDescriptionFile description;
diff --git a/src/main/java/org/bukkit/util/CachedServerIcon.java b/src/main/java/org/bukkit/util/CachedServerIcon.java 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 --- a/src/main/java/org/bukkit/util/CachedServerIcon.java
+++ b/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; @@ -12,4 +12,6 @@ import org.bukkit.event.server.ServerListPingEvent;
@ -3655,7 +3655,7 @@ index 5ca863b36..048047067 100644
+ public String getData(); // Spigot + public String getData(); // Spigot
+} +}
diff --git a/src/main/java/org/spigotmc/CustomTimingsHandler.java b/src/main/java/org/spigotmc/CustomTimingsHandler.java 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 --- a/src/main/java/org/spigotmc/CustomTimingsHandler.java
+++ b/src/main/java/org/spigotmc/CustomTimingsHandler.java +++ b/src/main/java/org/spigotmc/CustomTimingsHandler.java
@@ -1,165 +1,105 @@ @@ -1,165 +1,105 @@

View File

@ -1,14 +1,14 @@
From 06f6137e4b84d9d2a2e29b74cc652e0d66845d3a Mon Sep 17 00:00:00 2001 From 1aea2e6ad04b50f18e972f4b30a3f2855b6108eb Mon Sep 17 00:00:00 2001
From: kashike <kashike@vq.lc> From: kashike <kashike@vq.lc>
Date: Mon, 29 Feb 2016 19:48:59 -0600 Date: Mon, 29 Feb 2016 19:48:59 -0600
Subject: [PATCH] Expose server CommandMap Subject: [PATCH] Expose server CommandMap
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java 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 --- a/src/main/java/org/bukkit/Bukkit.java
+++ b/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(); return server.getUnsafe();
} }
@ -27,7 +27,7 @@ index e1ce29328..e4d945830 100644
{ {
return server.spigot(); return server.spigot();
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java 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 --- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java
@@ -1065,6 +1065,14 @@ public interface Server extends PluginMessageRecipient { @@ -1065,6 +1065,14 @@ public interface Server extends PluginMessageRecipient {

View File

@ -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 <zach.brown@destroystokyo.com> From: Zach Brown <zach.brown@destroystokyo.com>
Date: Mon, 29 Feb 2016 20:24:35 -0600 Date: Mon, 29 Feb 2016 20:24:35 -0600
Subject: [PATCH] Add exception reporting event 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 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 new file mode 100644
index 000000000..4109454a3 index 00000000..4109454a
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/event/server/ServerExceptionEvent.java +++ b/src/main/java/com/destroystokyo/paper/event/server/ServerExceptionEvent.java
@@ -0,0 +1,37 @@ @@ -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 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 new file mode 100644
index 000000000..6fb39af04 index 00000000..6fb39af0
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/exception/ServerCommandException.java +++ b/src/main/java/com/destroystokyo/paper/exception/ServerCommandException.java
@@ -0,0 +1,64 @@ @@ -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 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 new file mode 100644
index 000000000..410b24139 index 00000000..410b2413
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/exception/ServerEventException.java +++ b/src/main/java/com/destroystokyo/paper/exception/ServerEventException.java
@@ -0,0 +1,52 @@ @@ -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 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 new file mode 100644
index 000000000..c06ea3942 index 00000000..c06ea394
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/exception/ServerException.java +++ b/src/main/java/com/destroystokyo/paper/exception/ServerException.java
@@ -0,0 +1,23 @@ @@ -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 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 new file mode 100644
index 000000000..e762ed0db index 00000000..e762ed0d
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/exception/ServerInternalException.java +++ b/src/main/java/com/destroystokyo/paper/exception/ServerInternalException.java
@@ -0,0 +1,35 @@ @@ -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 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 new file mode 100644
index 000000000..f016ba3b1 index 00000000..f016ba3b
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/exception/ServerPluginEnableDisableException.java +++ b/src/main/java/com/destroystokyo/paper/exception/ServerPluginEnableDisableException.java
@@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
@ -274,7 +274,7 @@ index 000000000..f016ba3b1
\ No newline at end of file \ 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 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 new file mode 100644
index 000000000..6defac287 index 00000000..6defac28
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/exception/ServerPluginException.java +++ b/src/main/java/com/destroystokyo/paper/exception/ServerPluginException.java
@@ -0,0 +1,38 @@ @@ -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 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 new file mode 100644
index 000000000..89e132525 index 00000000..89e13252
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/exception/ServerPluginMessageException.java +++ b/src/main/java/com/destroystokyo/paper/exception/ServerPluginMessageException.java
@@ -0,0 +1,64 @@ @@ -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 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 new file mode 100644
index 000000000..2d0b2d4a9 index 00000000..2d0b2d4a
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/exception/ServerSchedulerException.java +++ b/src/main/java/com/destroystokyo/paper/exception/ServerSchedulerException.java
@@ -0,0 +1,37 @@ @@ -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 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 new file mode 100644
index 000000000..5582999fe index 00000000..5582999f
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/exception/ServerTabCompleteException.java +++ b/src/main/java/com/destroystokyo/paper/exception/ServerTabCompleteException.java
@@ -0,0 +1,22 @@ @@ -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 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 --- a/src/main/java/org/bukkit/command/SimpleCommandMap.java
+++ b/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; @@ -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 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 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/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.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -512,7 +512,7 @@ index 80c152ba9..b88f31ca2 100644
import org.apache.commons.lang.Validate; import org.apache.commons.lang.Validate;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.command.Command; 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 { try {
plugin.getPluginLoader().enablePlugin(plugin); plugin.getPluginLoader().enablePlugin(plugin);
} catch (Throwable ex) { } catch (Throwable ex) {
@ -522,7 +522,7 @@ index 80c152ba9..b88f31ca2 100644
} }
HandlerList.bakeAll(); HandlerList.bakeAll();
@@ -420,36 +424,48 @@ public final class SimplePluginManager implements PluginManager { @@ -421,36 +425,48 @@ public final class SimplePluginManager implements PluginManager {
try { try {
plugin.getPluginLoader().disablePlugin(plugin); plugin.getPluginLoader().disablePlugin(plugin);
} catch (Throwable ex) { } catch (Throwable ex) {
@ -576,7 +576,7 @@ index 80c152ba9..b88f31ca2 100644
public void clearPlugins() { public void clearPlugins() {
synchronized (this) { synchronized (this) {
disablePlugins(); disablePlugins();
@@ -511,7 +527,13 @@ public final class SimplePluginManager implements PluginManager { @@ -512,7 +528,13 @@ public final class SimplePluginManager implements PluginManager {
)); ));
} }
} catch (Throwable ex) { } catch (Throwable ex) {
@ -592,5 +592,5 @@ index 80c152ba9..b88f31ca2 100644
} }
} }
-- --
2.19.1 2.20.1

View File

@ -1,4 +1,4 @@
From 143887eadf9d0909f4093ef48ef2207f67a07389 Mon Sep 17 00:00:00 2001 From 04ea5b0483635c527ce9f0c79508b1f173e020c8 Mon Sep 17 00:00:00 2001
From: William <admin@domnian.com> From: William <admin@domnian.com>
Date: Fri, 18 Mar 2016 03:28:07 -0400 Date: Fri, 18 Mar 2016 03:28:07 -0400
Subject: [PATCH] Add command to reload permissions.yml and require confirm to 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 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 --- a/src/main/java/org/bukkit/Bukkit.java
+++ b/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() { public static org.bukkit.command.CommandMap getCommandMap() {
return server.getCommandMap(); return server.getCommandMap();
} }
@ -24,10 +24,10 @@ index e38b16c2b..e1704ae2a 100644
public static Server.Spigot spigot() public static Server.Spigot spigot()
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java 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 --- a/src/main/java/org/bukkit/Server.java
+++ b/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 spigot();
// Spigot end // Spigot end
@ -35,7 +35,7 @@ index dee814eed..89f68d58e 100644
+ void reloadPermissions(); // Paper + 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 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 --- a/src/main/java/org/bukkit/command/defaults/ReloadCommand.java
+++ b/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 { @@ -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 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 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/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) { public void useTimings(boolean use) {
co.aikar.timings.Timings.setTimingsEnabled(use); // Spigot co.aikar.timings.Timings.setTimingsEnabled(use); // Spigot
} }

View File

@ -1,4 +1,4 @@
From 91f8d92c9957a90a8f35f0459b3775b7e592b4ba Mon Sep 17 00:00:00 2001 From 305f8749b7972506665be9ad41cdaa5fb020e60f Mon Sep 17 00:00:00 2001
From: willies952002 <admin@domnian.com> From: willies952002 <admin@domnian.com>
Date: Mon, 28 Nov 2016 10:16:39 -0500 Date: Mon, 28 Nov 2016 10:16:39 -0500
Subject: [PATCH] Allow Reloading of Command Aliases 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 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 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 --- a/src/main/java/org/bukkit/Bukkit.java
+++ b/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() { public static void reloadPermissions() {
server.reloadPermissions(); server.reloadPermissions();
} }
@ -26,10 +26,10 @@ index e1704ae2a..a312a662b 100644
public static Server.Spigot spigot() public static Server.Spigot spigot()
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java 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 --- a/src/main/java/org/bukkit/Server.java
+++ b/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 // Spigot end
void reloadPermissions(); // Paper void reloadPermissions(); // Paper
@ -37,7 +37,7 @@ index 89f68d58e..a03591829 100644
+ boolean reloadCommandAliases(); // Paper + boolean reloadCommandAliases(); // Paper
} }
diff --git a/src/main/java/org/bukkit/command/CommandMap.java b/src/main/java/org/bukkit/command/CommandMap.java 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 --- a/src/main/java/org/bukkit/command/CommandMap.java
+++ b/src/main/java/org/bukkit/command/CommandMap.java +++ b/src/main/java/org/bukkit/command/CommandMap.java
@@ -123,4 +123,13 @@ public interface CommandMap { @@ -123,4 +123,13 @@ public interface CommandMap {
@ -55,7 +55,7 @@ index 30d60247e..938959aa5 100644
+ // Paper end + // Paper end
} }
diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java 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 --- a/src/main/java/org/bukkit/command/SimpleCommandMap.java
+++ b/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 { @@ -279,4 +279,10 @@ public class SimpleCommandMap implements CommandMap {
@ -70,7 +70,7 @@ index 65ad78c48..41e95692e 100644
+ // Paper end + // Paper end
} }
diff --git a/src/main/java/org/bukkit/command/defaults/ReloadCommand.java b/src/main/java/org/bukkit/command/defaults/ReloadCommand.java 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 --- a/src/main/java/org/bukkit/command/defaults/ReloadCommand.java
+++ b/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 { @@ -13,7 +13,7 @@ public class ReloadCommand extends BukkitCommand {

View File

@ -1,4 +1,4 @@
From 33948f129f2c80ab0d7cc19602b603be14e730f3 Mon Sep 17 00:00:00 2001 From d34bbb981986fda1507431108f1c315cdfd1c91d Mon Sep 17 00:00:00 2001
From: kashike <kashike@vq.lc> From: kashike <kashike@vq.lc>
Date: Fri, 9 Jun 2017 07:24:24 -0700 Date: Fri, 9 Jun 2017 07:24:24 -0700
Subject: [PATCH] Add configuration option to prevent player names from being 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 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 --- a/src/main/java/org/bukkit/Bukkit.java
+++ b/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() { public static boolean reloadCommandAliases() {
return server.reloadCommandAliases(); return server.reloadCommandAliases();
} }
@ -27,10 +27,10 @@ index a312a662b..41cd3dba2 100644
public static Server.Spigot spigot() public static Server.Spigot spigot()
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java 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 --- a/src/main/java/org/bukkit/Server.java
+++ b/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 void reloadPermissions(); // Paper
boolean reloadCommandAliases(); // Paper boolean reloadCommandAliases(); // Paper
@ -46,7 +46,7 @@ index a03591829..46502ede1 100644
+ // Paper end + // Paper end
} }
diff --git a/src/main/java/org/bukkit/command/PluginCommand.java b/src/main/java/org/bukkit/command/PluginCommand.java 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 --- a/src/main/java/org/bukkit/command/PluginCommand.java
+++ b/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 @@ -145,6 +145,7 @@ public final class PluginCommand extends Command implements PluginIdentifiableCo

View File

@ -1,4 +1,4 @@
From ce7a08b7515e5720254f32939db266a4df6d908b Mon Sep 17 00:00:00 2001 From ba7ca826a69db5f365c35ebf7ea2f7834f8aaa7e Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Mon, 15 Jan 2018 21:46:46 -0500 Date: Mon, 15 Jan 2018 21:46:46 -0500
Subject: [PATCH] Basic PlayerProfile API 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 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 new file mode 100644
index 000000000..529c53760 index 00000000..529c5376
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/profile/PlayerProfile.java +++ b/src/main/java/com/destroystokyo/paper/profile/PlayerProfile.java
@@ -0,0 +1,142 @@ @@ -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 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 new file mode 100644
index 000000000..d17061e66 index 00000000..d17061e6
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/profile/ProfileProperty.java +++ b/src/main/java/com/destroystokyo/paper/profile/ProfileProperty.java
@@ -0,0 +1,72 @@ @@ -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 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 --- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java
@@ -51,6 +51,9 @@ import org.bukkit.generator.ChunkGenerator; @@ -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 * 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() { public static boolean suggestPlayerNamesWhenNullTabCompletions() {
return server.suggestPlayerNamesWhenNullTabCompletions(); return server.suggestPlayerNamesWhenNullTabCompletions();
} }
@ -284,7 +284,7 @@ index 41cd3dba2..f13d80cf2 100644
public static Server.Spigot spigot() public static Server.Spigot spigot()
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java 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 --- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java
@@ -52,6 +52,9 @@ import org.bukkit.generator.ChunkGenerator; @@ -52,6 +52,9 @@ import org.bukkit.generator.ChunkGenerator;
@ -297,7 +297,7 @@ index 46502ede1..198107081 100644
/** /**
* Represents a server implementation. * 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 * @return true if player names should be suggested
*/ */
boolean suggestPlayerNamesWhenNullTabCompletions(); boolean suggestPlayerNamesWhenNullTabCompletions();

View File

@ -1,4 +1,4 @@
From c5d36c89c26360428075ecd830da4f65b2c2de11 Mon Sep 17 00:00:00 2001 From 53b080c35566392e83fc231ce763897a0e9420a4 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Tue, 1 May 2018 21:33:35 -0400 Date: Tue, 1 May 2018 21:33:35 -0400
Subject: [PATCH] Close Plugin Class Loaders on Disable 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 * 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 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 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/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) { } catch (Throwable ex) {
handlePluginException("Error occurred (in the plugin loader) while disabling " handlePluginException("Error occurred (in the plugin loader) while disabling "
+ plugin.getDescription().getFullName() + " (Is it up to date?)", ex, plugin); // Paper + 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() { public void clearPlugins() {
synchronized (this) { synchronized (this) {

View File

@ -1,4 +1,4 @@
From 48dba594ee0744d16cbcc43439e732d9eb97795b Mon Sep 17 00:00:00 2001 From 0c1023b2f663801604199610c741023df370b001 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Sun, 9 Sep 2018 00:32:05 -0400 Date: Sun, 9 Sep 2018 00:32:05 -0400
Subject: [PATCH] Remove deadlock risk in firing async events 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 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 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 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/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 * @param plugin Plugin to check
* @return true if the plugin is enabled, otherwise false * @return true if the plugin is enabled, otherwise false
*/ */
@ -28,7 +28,7 @@ index cb2b0b9c..a7dd902f 100644
if ((plugin != null) && (plugins.contains(plugin))) { if ((plugin != null) && (plugins.contains(plugin))) {
return plugin.isEnabled(); return plugin.isEnabled();
} else { } 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()) { if (!plugin.isEnabled()) {
List<Command> pluginCommands = PluginCommandYamlParser.parse(plugin); List<Command> 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); disablePlugin(plugin, false);
} }
@ -46,7 +46,7 @@ index cb2b0b9c..a7dd902f 100644
// Paper end - close Classloader on disable // Paper end - close Classloader on disable
if (plugin.isEnabled()) { if (plugin.isEnabled()) {
try { 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(); defaultPerms.get(false).clear();
} }
} }
@ -54,7 +54,7 @@ index cb2b0b9c..a7dd902f 100644
/** /**
* Calls an event with the given details. * 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 * @param event Event details
*/ */
public void callEvent(Event event) { public void callEvent(Event event) {

View File

@ -1,4 +1,4 @@
From add76949997b755d73d123817b65e0551d58f6b3 Mon Sep 17 00:00:00 2001 From 7f7f48e6093d4bfccc6d43de03db277d08870593 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Tue, 17 Jul 2018 01:27:15 -0400 Date: Tue, 17 Jul 2018 01:27:15 -0400
Subject: [PATCH] Add Material Tags 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 diff --git a/src/main/java/com/destroystokyo/paper/MaterialSetTag.java b/src/main/java/com/destroystokyo/paper/MaterialSetTag.java
new file mode 100644 new file mode 100644
index 00000000..b4f78e07 index 00000000..b036c374
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/MaterialSetTag.java +++ 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 + * 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.Lists;
+import com.google.common.collect.Sets; +import com.google.common.collect.Sets;
+import org.bukkit.Material; +import org.bukkit.Material;
+import org.bukkit.NamespacedKey;
+import org.bukkit.Tag; +import org.bukkit.Tag;
+import org.bukkit.block.Block; +import org.bukkit.block.Block;
+import org.bukkit.block.BlockState; +import org.bukkit.block.BlockState;
@ -35,18 +36,49 @@ index 00000000..b4f78e07
+ +
+public class MaterialSetTag implements Tag<Material> { +public class MaterialSetTag implements Tag<Material> {
+ +
+ private final NamespacedKey key;
+ private final Set<Material> materials; + private final Set<Material> materials;
+ +
+ /**
+ * @deprecated Use NamespacedKey version of constructor
+ */
+ @Deprecated
+ public MaterialSetTag(Predicate<Material> filter) { + public MaterialSetTag(Predicate<Material> 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<Material> materials) { + public MaterialSetTag(Collection<Material> materials) {
+ this(null, materials);
+ }
+
+ /**
+ * @deprecated Use NamespacedKey version of constructor
+ */
+ @Deprecated
+ public MaterialSetTag(Material... materials) {
+ this(null, materials);
+ }
+
+ public MaterialSetTag(NamespacedKey key, Predicate<Material> 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<Material> materials) {
+ this.key = key != null ? key : NamespacedKey.randomKey();
+ this.materials = Sets.newEnumSet(materials, Material.class); + this.materials = Sets.newEnumSet(materials, Material.class);
+ } + }
+ +
+ public MaterialSetTag(Material... materials) { + @Override
+ this.materials = Sets.newEnumSet(Lists.newArrayList(materials), Material.class); + public NamespacedKey getKey() {
+ return key;
+ } + }
+ +
+ public MaterialSetTag add(Tag<Material>... tags) { + public MaterialSetTag add(Tag<Material>... 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 diff --git a/src/main/java/com/destroystokyo/paper/MaterialTags.java b/src/main/java/com/destroystokyo/paper/MaterialTags.java
new file mode 100644 new file mode 100644
index 00000000..7a48445d index 00000000..660191c2
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/MaterialTags.java +++ 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 + * Copyright (c) 2018 Daniel Ennis (Aikar) MIT License
+ * + *
@ -183,76 +215,81 @@ index 00000000..7a48445d
+package com.destroystokyo.paper; +package com.destroystokyo.paper;
+ +
+import org.bukkit.Material; +import org.bukkit.Material;
+import org.bukkit.NamespacedKey;
+import org.bukkit.Tag; +import org.bukkit.Tag;
+ +
+/** +/**
+ * Represents a collection tags to identify materials that share common properties. + * 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. + * 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 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") + .endsWith("ARROW")
+ .ensureSize("ARROWS", 3); + .ensureSize("ARROWS", 3);
+ +
+ /** + /**
+ * Cover all 16 colors of beds. + * Cover all 16 colors of beds.
+ */ + */
+ public static final MaterialSetTag BEDS = new MaterialSetTag() + public static final MaterialSetTag BEDS = new MaterialSetTag(keyFor("beds"))
+ .endsWith("_BED") + .endsWith("_BED")
+ .ensureSize("BEDS", 16); + .ensureSize("BEDS", 16);
+ +
+ /** + /**
+ * Covers all bucket items. + * Covers all bucket items.
+ */ + */
+ public static final MaterialSetTag BUCKETS = new MaterialSetTag() + public static final MaterialSetTag BUCKETS = new MaterialSetTag(keyFor("buckets"))
+ .endsWith("BUCKET") + .endsWith("BUCKET")
+ .ensureSize("BUCKETS", 8); + .ensureSize("BUCKETS", 8);
+ +
+ /** + /**
+ * Covers coal and charcoal. + * 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); + .add(Material.COAL, Material.CHARCOAL);
+ +
+ /** + /**
+ * Covers both cobblestone wall variants. + * 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") + .endsWith("COBBLESTONE_WALL")
+ .ensureSize("COBBLESTONE_WALLS", 2); + .ensureSize("COBBLESTONE_WALLS", 2);
+ +
+ /** + /**
+ * Covers both cobblestone and mossy Cobblestone. + * 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); + .add(Material.COBBLESTONE, Material.MOSSY_COBBLESTONE);
+ +
+ /** + /**
+ * Covers all 16 colors of concrete. + * Covers all 16 colors of concrete.
+ */ + */
+ public static final MaterialSetTag CONCRETES = new MaterialSetTag() + public static final MaterialSetTag CONCRETES = new MaterialSetTag(keyFor("concretes"))
+ .endsWith("_CONCRETE") + .endsWith("_CONCRETE")
+ .ensureSize("CONCRETES", 16); + .ensureSize("CONCRETES", 16);
+ +
+ /** + /**
+ * Covers all 16 colors of concrete powder. + * 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") + .endsWith("_CONCRETE_POWDER")
+ .ensureSize("CONCRETE_POWDER", 16); + .ensureSize("CONCRETE_POWDER", 16);
+ +
+ /** + /**
+ * Covers the two types of cooked fish. + * 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); + .add(Material.COOKED_COD, Material.COOKED_SALMON);
+ +
+ /** + /**
+ * Covers all 16 dyes. + * Covers all 16 dyes.
+ */ + */
+ public static final MaterialSetTag DYES = new MaterialSetTag() + public static final MaterialSetTag DYES = new MaterialSetTag(keyFor("dyes"))
+ .endsWith("_DYE") + .endsWith("_DYE")
+ .add(Material.BONE_MEAL, + .add(Material.BONE_MEAL,
+ Material.CACTUS_GREEN, + Material.CACTUS_GREEN,
@ -267,27 +304,27 @@ index 00000000..7a48445d
+ /** + /**
+ * Covers all 6 wood variants of gates. + * 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") + .endsWith("_GATE")
+ .ensureSize("FENCE_GATES", 6); + .ensureSize("FENCE_GATES", 6);
+ +
+ /** + /**
+ * Covers all 6 wood variants and nether brick fence. + * 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") + .endsWith("_FENCE")
+ .ensureSize("FENCES", 7); + .ensureSize("FENCES", 7);
+ +
+ /** + /**
+ * Covers all 4 variants of fish buckets. + * 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); + .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). + * 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") + .endsWith("_GLASS")
+ .add(Material.GLASS) + .add(Material.GLASS)
+ .ensureSize("GLASS", 17); + .ensureSize("GLASS", 17);
@ -295,21 +332,21 @@ index 00000000..7a48445d
+ /** + /**
+ * Covers the non-colored glass panes and 16 stained glass panes (panes only). + * 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") + .endsWith("GLASS_PANE")
+ .ensureSize("GLASS_PANES", 17); + .ensureSize("GLASS_PANES", 17);
+ +
+ /** + /**
+ * Covers all 16 glazed terracotta blocks. + * 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") + .endsWith("GLAZED_TERRACOTTA")
+ .ensureSize("GLAZED_TERRACOTTA", 16); + .ensureSize("GLAZED_TERRACOTTA", 16);
+ +
+ /** + /**
+ * Covers the 16 colors of stained terracotta. + * 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") + .endsWith("TERRACOTTA")
+ .not(Material.TERRACOTTA) + .not(Material.TERRACOTTA)
+ .notEndsWith("GLAZED_TERRACOTTA") + .notEndsWith("GLAZED_TERRACOTTA")
@ -318,7 +355,7 @@ index 00000000..7a48445d
+ /** + /**
+ * Covers terracotta along with the 16 stained variants. + * 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") + .endsWith("TERRACOTTA")
+ .ensureSize("TERRACOTTA", 33); + .ensureSize("TERRACOTTA", 33);
+ +
@ -326,28 +363,28 @@ index 00000000..7a48445d
+ /** + /**
+ * Covers both golden apples. + * 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") + .endsWith("GOLDEN_APPLE")
+ .ensureSize("GOLDEN_APPLES", 2); + .ensureSize("GOLDEN_APPLES", 2);
+ +
+ /** + /**
+ * Covers the 3 variants of horse armor. + * 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") + .endsWith("_HORSE_ARMOR")
+ .ensureSize("HORSE_ARMORS", 3); + .ensureSize("HORSE_ARMORS", 3);
+ +
+ /** + /**
+ * Covers the 6 variants of infested blocks. + * 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_") + .startsWith("INFESTED_")
+ .ensureSize("INFESTED_BLOCKS", 6); + .ensureSize("INFESTED_BLOCKS", 6);
+ +
+ /** + /**
+ * Covers the 3 variants of mushroom blocks. + * 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") + .endsWith("MUSHROOM_BLOCK")
+ .add(Material.MUSHROOM_STEM) + .add(Material.MUSHROOM_STEM)
+ .ensureSize("MUSHROOM_BLOCKS", 3); + .ensureSize("MUSHROOM_BLOCKS", 3);
@ -355,111 +392,111 @@ index 00000000..7a48445d
+ /** + /**
+ * Covers both mushrooms. + * 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); + .add(Material.BROWN_MUSHROOM, Material.RED_MUSHROOM);
+ +
+ /** + /**
+ * Covers all 12 music disc items. + * 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_") + .startsWith("MUSIC_DISC_")
+ .ensureSize("MUSIC_DISCS", 12); + .ensureSize("MUSIC_DISCS", 12);
+ +
+ /** + /**
+ * Covers all 8 ores. + * Covers all 8 ores.
+ */ + */
+ public static final MaterialSetTag ORES = new MaterialSetTag() + public static final MaterialSetTag ORES = new MaterialSetTag(keyFor("ores"))
+ .endsWith("_ORE") + .endsWith("_ORE")
+ .ensureSize("ORES", 8); + .ensureSize("ORES", 8);
+ +
+ /** + /**
+ * Covers all piston typed items and blocks including the piston head and moving piston. + * 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") + .contains("PISTON")
+ .ensureSize("PISTONS", 4); + .ensureSize("PISTONS", 4);
+ +
+ /** + /**
+ * Covers all potato items. + * Covers all potato items.
+ */ + */
+ public static final MaterialSetTag POTATOES = new MaterialSetTag() + public static final MaterialSetTag POTATOES = new MaterialSetTag(keyFor("potatoes"))
+ .endsWith("POTATO") + .endsWith("POTATO")
+ .ensureSize("POTATOES", 3); + .ensureSize("POTATOES", 3);
+ +
+ /** + /**
+ * Covers all 6 wooden pressure plates and the 2 weighted pressure plates and 1 stone pressure plate. + * 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") + .endsWith("_PRESSURE_PLATE")
+ .ensureSize("PRESSURE_PLATES", 9); + .ensureSize("PRESSURE_PLATES", 9);
+ +
+ /** + /**
+ * Covers the 3 variants of prismarine blocks. + * 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); + .add(Material.PRISMARINE, Material.PRISMARINE_BRICKS, Material.DARK_PRISMARINE);
+ +
+ /** + /**
+ * Covers the 3 variants of prismarine slabs. + * 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); + .add(Material.PRISMARINE_SLAB, Material.PRISMARINE_BRICK_SLAB, Material.DARK_PRISMARINE_SLAB);
+ +
+ /** + /**
+ * Covers the 3 variants of prismarine stairs. + * 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); + .add(Material.PRISMARINE_STAIRS, Material.PRISMARINE_BRICK_STAIRS, Material.DARK_PRISMARINE_STAIRS);
+ +
+ /** + /**
+ * Covers the 3 variants of pumpkins. + * 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); + .add(Material.CARVED_PUMPKIN, Material.JACK_O_LANTERN, Material.PUMPKIN);
+ +
+ /** + /**
+ * Covers the 4 variants of quartz blocks. + * 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); + .add(Material.QUARTZ_BLOCK, Material.QUARTZ_PILLAR, Material.CHISELED_QUARTZ_BLOCK, Material.SMOOTH_QUARTZ);
+ +
+ /** + /**
+ * Covers all uncooked fish items. + * 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); + .add(Material.COD, Material.PUFFERFISH, Material.SALMON, Material.TROPICAL_FISH);
+ +
+ /** + /**
+ * Covers the 4 variants of red sandstone blocks. + * 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") + .endsWith("RED_SANDSTONE")
+ .ensureSize("RED_SANDSTONES", 4); + .ensureSize("RED_SANDSTONES", 4);
+ +
+ /** + /**
+ * Covers the 4 variants of sandstone blocks. + * 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); + .add(Material.SANDSTONE, Material.CHISELED_SANDSTONE, Material.CUT_SANDSTONE, Material.SMOOTH_SANDSTONE);
+ +
+ /** + /**
+ * Covers sponge and wet sponge. + * Covers sponge and wet sponge.
+ */ + */
+ public static final MaterialSetTag SPONGES = new MaterialSetTag() + public static final MaterialSetTag SPONGES = new MaterialSetTag(keyFor("sponges"))
+ .endsWith("SPONGE") + .endsWith("SPONGE")
+ .ensureSize("SPONGES", 2); + .ensureSize("SPONGES", 2);
+ +
+ /** + /**
+ * Covers the non-colored and 16 colored shulker boxes. + * 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") + .endsWith("SHULKER_BOX")
+ .ensureSize("SHULKER_BOXES", 17); + .ensureSize("SHULKER_BOXES", 17);
+ +
+ /** + /**
+ * Covers zombie, creeper, skeleton, dragon, and player heads. + * 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("_HEAD")
+ .endsWith("_SKULL") + .endsWith("_SKULL")
+ .not(Material.PISTON_HEAD) + .not(Material.PISTON_HEAD)
@ -468,35 +505,35 @@ index 00000000..7a48445d
+ /** + /**
+ * Covers all spawn egg items. + * 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") + .endsWith("_SPAWN_EGG")
+ .ensureSize("SPAWN_EGGS", 51); + .ensureSize("SPAWN_EGGS", 51);
+ +
+ /** + /**
+ * Covers all 16 colors of stained glass. + * 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") + .endsWith("_STAINED_GLASS")
+ .ensureSize("STAINED_GLASS", 16); + .ensureSize("STAINED_GLASS", 16);
+ +
+ /** + /**
+ * Covers all 16 colors of stained glass panes. + * 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") + .endsWith("STAINED_GLASS_PANE")
+ .ensureSize("STAINED_GLASS_PANES", 16); + .ensureSize("STAINED_GLASS_PANES", 16);
+ +
+ /** + /**
+ * Covers all 7 variants of trapdoors. + * Covers all 7 variants of trapdoors.
+ */ + */
+ public static final MaterialSetTag TRAPDOORS = new MaterialSetTag() + public static final MaterialSetTag TRAPDOORS = new MaterialSetTag(keyFor("trapdoors"))
+ .endsWith("_TRAPDOOR") + .endsWith("_TRAPDOOR")
+ .ensureSize("TRAPDOORS", 7); + .ensureSize("TRAPDOORS", 7);
+ +
+ /** + /**
+ * Covers all 6 wood variants of fences. + * 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") + .endsWith("_FENCE")
+ .not(Material.NETHER_BRICK_FENCE) + .not(Material.NETHER_BRICK_FENCE)
+ .ensureSize("WOODEN_FENCES", 6); + .ensureSize("WOODEN_FENCES", 6);
@ -504,33 +541,33 @@ index 00000000..7a48445d
+ /** + /**
+ * Covers all 6 wood variants of trapdoors. + * 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") + .endsWith("_TRAPDOOR")
+ .not(Material.IRON_TRAPDOOR) + .not(Material.IRON_TRAPDOOR)
+ .ensureSize("WOODEN_TRAPDOORS", 6); + .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") + .endsWith("_GATE")
+ .ensureSize("WOODEN_GATES", 6); + .ensureSize("WOODEN_GATES", 6);
+ +
+ public static final MaterialSetTag PURPUR = new MaterialSetTag() + public static final MaterialSetTag PURPUR = new MaterialSetTag(keyFor("purpur"))
+ .startsWith("PURPUR_") + .startsWith("PURPUR_")
+ .ensureSize("PURPUR", 4); + .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) + .add(Material.SIGN, Material.WALL_SIGN)
+ .ensureSize("SIGNS", 2); + .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) + .add(Material.TORCH, Material.WALL_TORCH)
+ .ensureSize("TORCH", 2); + .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) + .add(Material.REDSTONE_TORCH, Material.REDSTONE_WALL_TORCH)
+ .ensureSize("REDSTONE_TORCH", 2); + .ensureSize("REDSTONE_TORCH", 2);
+ +
+ @SuppressWarnings("unchecked") + @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); + .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 + //.ensureSize("COLORABLE", 81); unit test don't have the vanilla item tags, so counts don't line up for real
+} +}

View File

@ -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 <theboyetronic@gmail.com> From: Shane Freeder <theboyetronic@gmail.com>
Date: Sun, 18 Nov 2018 19:44:54 +0000 Date: Sun, 18 Nov 2018 19:44:54 +0000
Subject: [PATCH] Make the default permission message configurable 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 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 --- a/src/main/java/org/bukkit/Bukkit.java
+++ b/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(); return server.suggestPlayerNamesWhenNullTabCompletions();
} }
@ -24,10 +24,10 @@ index 4acaefa4c..9fab69137 100644
* Creates a PlayerProfile for the specified uuid, with name as null * Creates a PlayerProfile for the specified uuid, with name as null
* @param uuid UUID to create profile for * @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 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 --- a/src/main/java/org/bukkit/Server.java
+++ b/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(); boolean suggestPlayerNamesWhenNullTabCompletions();
@ -41,7 +41,7 @@ index c940f6db9..ae15b0e99 100644
* Creates a PlayerProfile for the specified uuid, with name as null * Creates a PlayerProfile for the specified uuid, with name as null
* @param uuid UUID to create profile for * @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 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 --- a/src/main/java/org/bukkit/command/Command.java
+++ b/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 { @@ -180,7 +180,7 @@ public abstract class Command {

View File

@ -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 <zach.brown@destroystokyo.com> From: Zach Brown <zach.brown@destroystokyo.com>
Date: Mon, 29 Feb 2016 21:02:09 -0600 Date: Mon, 29 Feb 2016 21:02:09 -0600
Subject: [PATCH] Paper config files 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 diff --git a/src/main/java/com/destroystokyo/paper/PaperCommand.java b/src/main/java/com/destroystokyo/paper/PaperCommand.java
new file mode 100644 new file mode 100644
index 000000000..961966e16 index 0000000000..961966e169
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/PaperCommand.java +++ b/src/main/java/com/destroystokyo/paper/PaperCommand.java
@@ -0,0 +1,237 @@ @@ -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 diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
new file mode 100644 new file mode 100644
index 000000000..5586575ce index 0000000000..5586575ce9
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -0,0 +1,184 @@ @@ -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 diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
new file mode 100644 new file mode 100644
index 000000000..a73865739 index 0000000000..a738657394
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -0,0 +1,67 @@ @@ -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 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 --- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/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 @@ -192,6 +192,15 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@ -531,7 +531,7 @@ index 64a6a681f..ad9c00bc8 100644
DedicatedServer.LOGGER.info("Generating keypair"); DedicatedServer.LOGGER.info("Generating keypair");
this.a(MinecraftEncryption.b()); this.a(MinecraftEncryption.b());
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java 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 --- a/src/main/java/net/minecraft/server/Entity.java
+++ b/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 { @@ -133,9 +133,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener {
@ -548,7 +548,7 @@ index 22be0e422..33229f45d 100644
public boolean impulse; public boolean impulse;
public int portalCooldown; public int portalCooldown;
diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java 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 --- a/src/main/java/net/minecraft/server/EntityTypes.java
+++ b/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; @@ -2,6 +2,8 @@ package net.minecraft.server;
@ -572,7 +572,7 @@ index ee16fac91..b8abd6363 100644
+ // Paper end + // Paper end
} }
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java 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 --- a/src/main/java/net/minecraft/server/World.java
+++ b/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 @@ -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.world = new CraftWorld((WorldServer) this, gen, env);
this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit 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 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 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/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 { @@ -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("*"); overrideAllCommandBlockCommands = commandsConfiguration.getStringList("command-block-overrides").contains("*");
ignoreVanillaPermissions = commandsConfiguration.getBoolean("ignore-vanilla-permissions"); 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; return spigot;
} }
@ -648,7 +648,7 @@ index b9f8caa80..ff9dc23c7 100644
+ // Paper end + // Paper end
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java 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 --- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -128,6 +128,14 @@ public class Main { @@ -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 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 --- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java +++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
@@ -39,31 +39,31 @@ public class SpigotWorldConfig @@ -39,31 +39,31 @@ public class SpigotWorldConfig

View File

@ -1,4 +1,4 @@
From 1ed9f0e1531bbf28ef63667a2d958906abf1b036 Mon Sep 17 00:00:00 2001 From 57d99a2cfab3d3e23bea53c80ba7bf1535cdf999 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Thu, 3 Mar 2016 04:00:11 -0600 Date: Thu, 3 Mar 2016 04:00:11 -0600
Subject: [PATCH] Timings v2 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 diff --git a/src/main/java/co/aikar/timings/MinecraftTimings.java b/src/main/java/co/aikar/timings/MinecraftTimings.java
new file mode 100644 new file mode 100644
index 000000000..66d02e048 index 0000000000..66d02e048b
--- /dev/null --- /dev/null
+++ b/src/main/java/co/aikar/timings/MinecraftTimings.java +++ b/src/main/java/co/aikar/timings/MinecraftTimings.java
@@ -0,0 +1,132 @@ @@ -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 diff --git a/src/main/java/co/aikar/timings/WorldTimingsHandler.java b/src/main/java/co/aikar/timings/WorldTimingsHandler.java
new file mode 100644 new file mode 100644
index 000000000..145cb274b index 0000000000..145cb274b0
--- /dev/null --- /dev/null
+++ b/src/main/java/co/aikar/timings/WorldTimingsHandler.java +++ b/src/main/java/co/aikar/timings/WorldTimingsHandler.java
@@ -0,0 +1,104 @@ @@ -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 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 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/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; @@ -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 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 --- a/src/main/java/net/minecraft/server/Block.java
+++ b/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 { @@ -22,6 +22,15 @@ public class Block implements IMaterial {
@ -317,7 +317,7 @@ index c09961be9..dbf1089ba 100644
private final float frictionFactor; private final float frictionFactor;
protected final BlockStateList<Block, IBlockData> blockStateList; protected final BlockStateList<Block, IBlockData> blockStateList;
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java 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 --- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/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 { @@ -854,6 +854,7 @@ public class Chunk implements IChunkAccess {
@ -337,7 +337,7 @@ index 23dee9b56..eca1284cc 100644
} }
// CraftBukkit end // CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/ChunkMap.java b/src/main/java/net/minecraft/server/ChunkMap.java 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 --- a/src/main/java/net/minecraft/server/ChunkMap.java
+++ b/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<Chunk> { @@ -14,6 +14,7 @@ public class ChunkMap extends Long2ObjectOpenHashMap<Chunk> {
@ -357,7 +357,7 @@ index df2711a5f..732c8793e 100644
return chunk1; return chunk1;
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java 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 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/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 { @@ -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 this.chunkLoader.saveChunk(this.world, ichunkaccess, unloaded); // Spigot
} catch (IOException ioexception) { } catch (IOException ioexception) {
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java 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 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
@@ -1,5 +1,6 @@ @@ -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 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 --- a/src/main/java/net/minecraft/server/CustomFunction.java
+++ b/src/main/java/net/minecraft/server/CustomFunction.java +++ b/src/main/java/net/minecraft/server/CustomFunction.java
@@ -12,12 +12,22 @@ public class CustomFunction { @@ -12,12 +12,22 @@ public class CustomFunction {
@ -472,7 +472,7 @@ index 65574eb2e..bc87cfc4b 100644
return this.b; return this.b;
} }
diff --git a/src/main/java/net/minecraft/server/CustomFunctionData.java b/src/main/java/net/minecraft/server/CustomFunctionData.java 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 --- a/src/main/java/net/minecraft/server/CustomFunctionData.java
+++ b/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 { @@ -100,7 +100,7 @@ public class CustomFunctionData implements ITickable, IResourcePackListener {
@ -485,7 +485,7 @@ index f28f4f3cd..6b417be1d 100644
int j = 0; int j = 0;
CustomFunction.c[] acustomfunction_c = customfunction.b(); 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 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 --- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/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; @@ -29,7 +29,7 @@ import org.apache.logging.log4j.Level;
@ -538,7 +538,7 @@ index ad9c00bc8..4e9ef43b4 100644
return waitable.get(); return waitable.get();
} catch (java.util.concurrent.ExecutionException e) { } 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 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 --- a/src/main/java/net/minecraft/server/Entity.java
+++ b/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; @@ -27,7 +27,8 @@ import org.bukkit.command.CommandSender;
@ -577,7 +577,7 @@ index faf4d0c0d..e329c2f48 100644
protected float ab() { protected float ab() {
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java 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 --- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/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; @@ -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 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 --- a/src/main/java/net/minecraft/server/EntityTracker.java
+++ b/src/main/java/net/minecraft/server/EntityTracker.java +++ b/src/main/java/net/minecraft/server/EntityTracker.java
@@ -168,7 +168,7 @@ public class EntityTracker { @@ -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 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 --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
@ -837,7 +837,7 @@ index 72de40434..7e89d7158 100644
this.methodProfiler.exit(); this.methodProfiler.exit();
} }
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java 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 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
@@ -1,5 +1,6 @@ @@ -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 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 --- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/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; @@ -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); // this.minecraftServer.getCommandDispatcher().a(this.player.getCommandListener(), s);
// CraftBukkit end // CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/PlayerConnectionUtils.java b/src/main/java/net/minecraft/server/PlayerConnectionUtils.java 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 --- a/src/main/java/net/minecraft/server/PlayerConnectionUtils.java
+++ b/src/main/java/net/minecraft/server/PlayerConnectionUtils.java +++ b/src/main/java/net/minecraft/server/PlayerConnectionUtils.java
@@ -1,12 +1,19 @@ @@ -1,12 +1,19 @@
@ -1008,7 +1008,7 @@ index a73947d26..596aa27fe 100644
throw CancelledPacketHandleException.INSTANCE; throw CancelledPacketHandleException.INSTANCE;
} }
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java 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 --- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
@ -1032,7 +1032,7 @@ index 54e44cba3..3a83819d5 100644
public WhiteList getWhitelist() { public WhiteList getWhitelist() {
diff --git a/src/main/java/net/minecraft/server/TickListServer.java b/src/main/java/net/minecraft/server/TickListServer.java 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 --- a/src/main/java/net/minecraft/server/TickListServer.java
+++ b/src/main/java/net/minecraft/server/TickListServer.java +++ b/src/main/java/net/minecraft/server/TickListServer.java
@@ -24,13 +24,19 @@ public class TickListServer<T> implements TickList<T> { @@ -24,13 +24,19 @@ public class TickListServer<T> implements TickList<T> {
@ -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 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 --- a/src/main/java/net/minecraft/server/TileEntity.java
+++ b/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; @@ -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 private final TileEntityTypes<?> e; public TileEntityTypes getTileEntityType() { return e; } // Paper - OBFHELPER
protected World world; protected World world;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java 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 --- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java
@@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
@ -1214,7 +1214,7 @@ index 9865f7f7a..a1c5375a5 100644
public boolean a(@Nullable Entity entity, VoxelShape voxelshape) { 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 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 --- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
@ -1316,10 +1316,10 @@ index a7ae16681..5a7087c75 100644
// CraftBukkit start // CraftBukkit start
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java 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 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/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() private final Spigot spigot = new Spigot()
{ {
@ -1353,7 +1353,7 @@ index ff9dc23c7..6a2962aca 100644
org.spigotmc.RestartCommand.restart(); org.spigotmc.RestartCommand.restart();
diff --git a/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java b/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java diff --git a/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java b/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java
deleted file mode 100644 deleted file mode 100644
index 2ab4b11a8..000000000 index 2ab4b11a8d..0000000000
--- a/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java --- a/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java
+++ /dev/null +++ /dev/null
@@ -1,173 +0,0 @@ @@ -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 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 --- a/src/main/java/org/bukkit/craftbukkit/chunkio/ChunkIOProvider.java
+++ b/src/main/java/org/bukkit/craftbukkit/chunkio/ChunkIOProvider.java +++ b/src/main/java/org/bukkit/craftbukkit/chunkio/ChunkIOProvider.java
@@ -1,6 +1,8 @@ @@ -1,6 +1,8 @@
@ -1567,7 +1567,7 @@ index 413dd35f0..52a8c48fa 100644
public void callStage3(QueuedChunk queuedChunk, Chunk chunk, Runnable runnable) throws RuntimeException { 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 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 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/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 { @@ -1695,6 +1695,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@ -1586,7 +1586,7 @@ index 753704c87..ca3393ef8 100644
public Player.Spigot spigot() 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 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 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
+++ b/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; @@ -16,6 +16,7 @@ import java.util.concurrent.atomic.AtomicReference;
@ -1653,7 +1653,7 @@ index 646128f16..d75cc42e1 100644
private boolean isReady(final int currentTick) { 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 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 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java
+++ b/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; @@ -2,8 +2,8 @@ package org.bukkit.craftbukkit.scheduler;
@ -1735,7 +1735,7 @@ index 3f55381c1..f32e66010 100644
- // Spigot end - // Spigot end
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java b/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java 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 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java
+++ b/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; @@ -5,6 +5,7 @@ import org.bukkit.util.CachedServerIcon;
@ -1747,7 +1747,7 @@ index e52ef47b7..3d90b3426 100644
this.value = value; this.value = value;
} }
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java 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 --- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -30,7 +30,7 @@ import net.minecraft.server.EntityWither; @@ -30,7 +30,7 @@ import net.minecraft.server.EntityWither;

View File

@ -1,4 +1,4 @@
From 9f6313c8ff6c0a86ecb191030db583dd6e1b3f54 Mon Sep 17 00:00:00 2001 From 86b00542d1bb7a615289f1618673a12d50873eea Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Tue, 1 Mar 2016 23:09:29 -0600 Date: Tue, 1 Mar 2016 23:09:29 -0600
Subject: [PATCH] Further improve server tick loop 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 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 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 --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/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 @@ -141,7 +141,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
@ -161,10 +161,10 @@ index df85f35f3..7ca7b9f3a 100644
this.nextTick += 50L; this.nextTick += 50L;
// Spigot end // Spigot end
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java 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 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/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; 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 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 --- a/src/main/java/org/spigotmc/TicksPerSecondCommand.java
+++ b/src/main/java/org/spigotmc/TicksPerSecondCommand.java +++ b/src/main/java/org/spigotmc/TicksPerSecondCommand.java
@@ -1,8 +1,5 @@ @@ -1,8 +1,5 @@

View File

@ -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 <joe@ibj.io> From: Joseph Hirschfeld <joe@ibj.io>
Date: Thu, 3 Mar 2016 03:15:41 -0600 Date: Thu, 3 Mar 2016 03:15:41 -0600
Subject: [PATCH] Add exception reporting event 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 diff --git a/src/main/java/com/destroystokyo/paper/ServerSchedulerReportingWrapper.java b/src/main/java/com/destroystokyo/paper/ServerSchedulerReportingWrapper.java
new file mode 100644 new file mode 100644
index 000000000..f699ce18c index 0000000000..f699ce18ca
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/ServerSchedulerReportingWrapper.java +++ b/src/main/java/com/destroystokyo/paper/ServerSchedulerReportingWrapper.java
@@ -0,0 +1,38 @@ @@ -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 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 --- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -1,5 +1,6 @@ @@ -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 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 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/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; @@ -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 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 --- a/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
+++ b/src/main/java/net/minecraft/server/NameReferencingFileConverter.java +++ b/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
@@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
@ -146,7 +146,7 @@ index 09ef8729d..bf67dbf54 100644
} }
// CraftBukkit end // CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/RegionFile.java b/src/main/java/net/minecraft/server/RegionFile.java 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 --- a/src/main/java/net/minecraft/server/RegionFile.java
+++ b/src/main/java/net/minecraft/server/RegionFile.java +++ b/src/main/java/net/minecraft/server/RegionFile.java
@@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
@ -156,7 +156,7 @@ index e8d9f33c8..5b48bb0b7 100644
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import java.io.BufferedInputStream; import java.io.BufferedInputStream;
import java.io.BufferedOutputStream; import java.io.BufferedOutputStream;
@@ -82,6 +83,7 @@ public class RegionFile { @@ -103,6 +104,7 @@ public class RegionFile {
} }
} catch (IOException ioexception) { } catch (IOException ioexception) {
ioexception.printStackTrace(); 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)); this.b(i, j, (int) (SystemUtils.getTimeMillis() / 1000L));
} catch (IOException ioexception) { } catch (IOException ioexception) {
ioexception.printStackTrace(); 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 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 --- a/src/main/java/net/minecraft/server/RegionFileCache.java
+++ b/src/main/java/net/minecraft/server/RegionFileCache.java +++ b/src/main/java/net/minecraft/server/RegionFileCache.java
@@ -1,5 +1,6 @@ @@ -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 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 --- a/src/main/java/net/minecraft/server/SpawnerCreature.java
+++ b/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; @@ -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 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 --- a/src/main/java/net/minecraft/server/VillageSiege.java
+++ b/src/main/java/net/minecraft/server/VillageSiege.java +++ b/src/main/java/net/minecraft/server/VillageSiege.java
@@ -1,5 +1,7 @@ @@ -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 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 --- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java
@@ -1,6 +1,8 @@ @@ -1,6 +1,8 @@
@ -277,7 +277,7 @@ index 7e1df0e5b..0684d85be 100644
this.tileEntityListTick.remove(tileTickPosition--); this.tileEntityListTick.remove(tileTickPosition--);
continue; continue;
diff --git a/src/main/java/net/minecraft/server/WorldPersistentData.java b/src/main/java/net/minecraft/server/WorldPersistentData.java 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 --- a/src/main/java/net/minecraft/server/WorldPersistentData.java
+++ b/src/main/java/net/minecraft/server/WorldPersistentData.java +++ b/src/main/java/net/minecraft/server/WorldPersistentData.java
@@ -138,6 +138,7 @@ public class WorldPersistentData { @@ -138,6 +138,7 @@ public class WorldPersistentData {
@ -289,7 +289,7 @@ index 478bf4997..8d51af286 100644
throw throwable1; throw throwable1;
} finally { } finally {
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java 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 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
+++ b/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; @@ -17,6 +17,9 @@ import java.util.function.Consumer;

View File

@ -1,4 +1,4 @@
From facce6d5a58636fb7f89dab9b1481bf3a815212d Mon Sep 17 00:00:00 2001 From 3e2785e893872375e49c0565c801df502bc1a616 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Mon, 4 Mar 2013 23:46:10 -0500 Date: Mon, 4 Mar 2013 23:46:10 -0500
Subject: [PATCH] Chunk Save Reattempt 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. 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 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 --- a/src/main/java/net/minecraft/server/RegionFile.java
+++ b/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)); this.b(i, j, (int) (SystemUtils.getTimeMillis() / 1000L));
} catch (IOException ioexception) { } 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 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 --- a/src/main/java/net/minecraft/server/RegionFileCache.java
+++ b/src/main/java/net/minecraft/server/RegionFileCache.java +++ b/src/main/java/net/minecraft/server/RegionFileCache.java
@@ -95,11 +95,29 @@ public class RegionFileCache { @@ -95,11 +95,29 @@ public class RegionFileCache {

View File

@ -1,4 +1,4 @@
From 7a1ad987146ad3817d45fe917459d6a4dc6f814d Mon Sep 17 00:00:00 2001 From aa5a3b7de9a8702cf53c25af2d4506a45799ec8a Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Fri, 18 Mar 2016 13:17:38 -0400 Date: Fri, 18 Mar 2016 13:17:38 -0400
Subject: [PATCH] Default loading permissions.yml before plugins 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. 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 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 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -223,4 +223,9 @@ public class PaperConfig { @@ -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 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 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/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 { @@ -342,6 +342,7 @@ public final class CraftServer implements Server {
@ -41,15 +41,15 @@ index 5dc92cb20..b8aedaae6 100644
} }
Plugin[] plugins = pluginManager.getPlugins(); Plugin[] plugins = pluginManager.getPlugins();
@@ -359,7 +360,7 @@ public final class CraftServer implements Server { @@ -361,7 +362,7 @@ public final class CraftServer implements Server {
setVanillaCommands(false);
// Spigot end
commandMap.registerServerAliases(); commandMap.registerServerAliases();
- loadCustomPermissions();
+ if (!com.destroystokyo.paper.PaperConfig.loadPermsBeforePlugins) loadCustomPermissions(); // Paper
DefaultPermissions.registerCorePermissions(); DefaultPermissions.registerCorePermissions();
CraftDefaultPermissions.registerCorePermissions(); CraftDefaultPermissions.registerCorePermissions();
- loadCustomPermissions();
+ if (!com.destroystokyo.paper.PaperConfig.loadPermsBeforePlugins) loadCustomPermissions(); // Paper
helpMap.initializeCommands(); helpMap.initializeCommands();
syncCommands();
}
-- --
2.20.1 2.20.1

View File

@ -1,4 +1,4 @@
From 7d4d7ce747cd44a4d6410c323a5298a63a0452b7 Mon Sep 17 00:00:00 2001 From 1a6b4a1320fe548ce4755afce38b0a31049f1d65 Mon Sep 17 00:00:00 2001
From: William <admin@domnian.com> From: William <admin@domnian.com>
Date: Fri, 18 Mar 2016 03:30:17 -0400 Date: Fri, 18 Mar 2016 03:30:17 -0400
Subject: [PATCH] Allow Reloading of Custom Permissions 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 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 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 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/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; return false;
} }
} }

View File

@ -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 <antony@cyberiantiger.org> From: Antony Riley <antony@cyberiantiger.org>
Date: Tue, 29 Mar 2016 06:56:23 +0300 Date: Tue, 29 Mar 2016 06:56:23 +0300
Subject: [PATCH] Reduce IO ops opening a new region file. 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 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 --- a/src/main/java/net/minecraft/server/RegionFile.java
+++ b/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; @@ -71,9 +71,17 @@ public class RegionFile {
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);
this.c.seek(0L); this.c.seek(0L);
- int k; int k;
+ // Paper Start + // Paper Start
+ ByteBuffer header = ByteBuffer.allocate(8192); + java.nio.ByteBuffer header = java.nio.ByteBuffer.allocate(8192);
+ while (header.hasRemaining()) { + 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(); + header.clear();
+ IntBuffer headerAsInts = header.asIntBuffer(); + java.nio.IntBuffer headerAsInts = header.asIntBuffer();
+ // Paper End + // Paper End
- for (j = 0; j < 1024; ++j) { for (j = 0; j < 1024; ++j) {
- k = this.c.readInt(); - k = this.c.readInt();
- this.d[j] = k; + k = headerAsInts.get(); // Paper
+ for(int j1 = 0; j1 < 1024; ++j1) { this.d[j] = k;
+ int k = headerAsInts.get(); // Paper // Spigot start
+ this.d[j1] = k; int length = k & 255;
if (k != 0 && (k >> 8) + (k & 255) <= this.f.size()) { @@ -99,7 +107,7 @@ public class RegionFile {
for (int l = 0; l < (k & 255); ++l) {
this.f.set((k >> 8) + l, false);
@@ -78,7 +88,7 @@ public class RegionFile {
} }
for (j = 0; j < 1024; ++j) { for (j = 0; j < 1024; ++j) {
- k = this.c.readInt(); - k = this.c.readInt();
+ int k = headerAsInts.get(); // Paper + k = headerAsInts.get(); // Paper
this.e[j] = k; this.e[j] = k;
} }
} catch (IOException ioexception) { } catch (IOException ioexception) {

View File

@ -1,4 +1,4 @@
From 477a9079889e96124c60a6994b2704a5b1f34ebe Mon Sep 17 00:00:00 2001 From 5328690b007dbdf5e9e364093f620a6bf3882f45 Mon Sep 17 00:00:00 2001
From: willies952002 <admin@domnian.com> From: willies952002 <admin@domnian.com>
Date: Mon, 28 Nov 2016 10:21:52 -0500 Date: Mon, 28 Nov 2016 10:21:52 -0500
Subject: [PATCH] Allow Reloading of Command Aliases 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 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 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 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/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(); DefaultPermissions.registerCorePermissions();
CraftDefaultPermissions.registerCorePermissions(); CraftDefaultPermissions.registerCorePermissions();
} }

View File

@ -1,4 +1,4 @@
From cfbfa03e2f499b2b315a0129d732b0556effc00e Mon Sep 17 00:00:00 2001 From f6ca2a412171bf4de58549ea41ea774f6bb4d382 Mon Sep 17 00:00:00 2001
From: kashike <kashike@vq.lc> From: kashike <kashike@vq.lc>
Date: Fri, 9 Jun 2017 07:24:34 -0700 Date: Fri, 9 Jun 2017 07:24:34 -0700
Subject: [PATCH] Add configuration option to prevent player names from being 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 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 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -280,4 +280,9 @@ public class PaperConfig { @@ -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 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 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/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(); commandMap.registerServerAliases();
return true; return true;
} }

View File

@ -1,4 +1,4 @@
From e9d6a257393684f269c8b612ad29935f9359196a Mon Sep 17 00:00:00 2001 From fa4b49523d6aa9a9413d4ee4ad864e91dab1cb19 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Mon, 15 Jan 2018 22:11:48 -0500 Date: Mon, 15 Jan 2018 22:11:48 -0500
Subject: [PATCH] Basic PlayerProfile API 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 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 new file mode 100644
index 000000000..b151a13c1 index 0000000000..b151a13c1b
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java +++ b/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java
@@ -0,0 +1,280 @@ @@ -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 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 new file mode 100644
index 000000000..25836b975 index 0000000000..25836b975b
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/profile/PaperAuthenticationService.java +++ b/src/main/java/com/destroystokyo/paper/profile/PaperAuthenticationService.java
@@ -0,0 +1,30 @@ @@ -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 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 new file mode 100644
index 000000000..3bcdb8f93 index 0000000000..3bcdb8f93f
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java +++ b/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java
@@ -0,0 +1,17 @@ @@ -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 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 new file mode 100644
index 000000000..4b2a67423 index 0000000000..4b2a67423f
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java +++ b/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java
@@ -0,0 +1,29 @@ @@ -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 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 new file mode 100644
index 000000000..3aceb0ea8 index 0000000000..3aceb0ea8a
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/profile/PaperUserAuthentication.java +++ b/src/main/java/com/destroystokyo/paper/profile/PaperUserAuthentication.java
@@ -0,0 +1,11 @@ @@ -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 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 --- a/src/main/java/net/minecraft/server/MCUtil.java
+++ b/src/main/java/net/minecraft/server/MCUtil.java +++ b/src/main/java/net/minecraft/server/MCUtil.java
@@ -1,7 +1,10 @@ @@ -1,7 +1,10 @@
@ -429,7 +429,7 @@ index e1af5c488..0ef5ad116 100644
* Calculates distance between 2 entities * Calculates distance between 2 entities
* @param e1 * @param e1
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java 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 --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/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 @@ -1185,7 +1185,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
@ -450,7 +450,7 @@ index e046c2e33..f5ad783c5 100644
return this.V; return this.V;
} }
diff --git a/src/main/java/net/minecraft/server/UserCache.java b/src/main/java/net/minecraft/server/UserCache.java 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 --- a/src/main/java/net/minecraft/server/UserCache.java
+++ b/src/main/java/net/minecraft/server/UserCache.java +++ b/src/main/java/net/minecraft/server/UserCache.java
@@ -43,7 +43,7 @@ public class UserCache { @@ -43,7 +43,7 @@ public class UserCache {
@ -486,7 +486,7 @@ index 9bf2521be..059665836 100644
private UserCacheEntry(GameProfile gameprofile, Date date) { 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 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 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/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; @@ -164,6 +164,10 @@ import org.bukkit.event.server.ServerLoadEvent;
@ -500,7 +500,7 @@ index f82ab97e6..c2e72dac2 100644
public final class CraftServer implements Server { public final class CraftServer implements Server {
private final String serverName = "Paper"; // Paper private final String serverName = "Paper"; // Paper
private final String serverVersion; 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() { public boolean suggestPlayerNamesWhenNullTabCompletions() {
return com.destroystokyo.paper.PaperConfig.suggestPlayersWhenNullTabCompletions; return com.destroystokyo.paper.PaperConfig.suggestPlayersWhenNullTabCompletions;
} }

View File

@ -1,4 +1,4 @@
From 908a2abd3dfe84cd683d79b36dcc4bfcd632393b Mon Sep 17 00:00:00 2001 From 49d9979c5c63c62f676834076ab49026eecd4b68 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Sat, 11 Aug 2018 00:49:20 -0400 Date: Sat, 11 Aug 2018 00:49:20 -0400
Subject: [PATCH] Detect and repair corrupt Region Files 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. 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 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 --- a/src/main/java/net/minecraft/server/RegionFile.java
+++ b/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; @@ -25,10 +25,10 @@ public class RegionFile {
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 static final byte[] a = new byte[4096];
- private final File b; - private final File b;
- private RandomAccessFile c; - private RandomAccessFile c;
@ -29,7 +29,7 @@ index 407ac75aa..d3e6d755e 100644
private List<Boolean> f; private List<Boolean> f;
private int g; private int g;
private long h; private long h;
@@ -41,7 +41,7 @@ public class RegionFile { @@ -43,7 +43,7 @@ public class RegionFile {
} }
this.c = new RandomAccessFile(file, "rw"); 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.c.write(RegionFile.a); this.c.write(RegionFile.a);
this.g += 8192; this.g += 8192;
@@ -80,16 +80,16 @@ public class RegionFile { @@ -93,22 +93,23 @@ public class RegionFile {
for(int j1 = 0; j1 < 1024; ++j1) { this.c.seek(j * 4 + 4); // Go back to where we were
int k = headerAsInts.get(); // Paper }
this.d[j1] = k; }
- if (k != 0 && (k >> 8) + (k & 255) <= this.f.size()) { - 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 + 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); 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) { for (j = 0; j < 1024; ++j) {
int k = headerAsInts.get(); // Paper k = headerAsInts.get(); // Paper
- this.e[j] = k; - 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 + 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) { } catch (IOException ioexception) {
ioexception.printStackTrace(); 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 z = j1 >> 2;
+ int offset = (k >> 8); + int offset = (k >> 8);
+ int len = (k & 255); + 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; + String debug = "idx:" + + j1 + " - " + x + "," + z + " - offset: " + offset + " - len: " + len;
+ try { + try {
+ timestamps[j1] = 0;
+ offsets[j1] = 0;
+ RandomAccessFile file = getDataFile(); + RandomAccessFile file = getDataFile();
+ file.seek(j1 * 4); + file.seek(j1 * 4);
+ file.writeInt(0); + file.writeInt(0);
+ // clear the timestamp + // clear the timestamp
+ file.seek(4096 + j1 * 4); + file.seek(4096 + j1 * 4);
+ file.writeInt(0); + file.writeInt(0);
+ timestamps[j1] = 0; + org.bukkit.Bukkit.getLogger().log(java.util.logging.Level.SEVERE, "Deleted corrupt chunk (" + debug + ") " + getFile().getAbsolutePath(), e);
+ offsets[j1] = 0;
+ logger.error("Deleted corrupt chunk (" + debug + ") " + getFile().getAbsolutePath(), e);
+ } catch (IOException 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; + private boolean backedUp = false;

View File

@ -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 <theboyetronic@gmail.com> From: Shane Freeder <theboyetronic@gmail.com>
Date: Sun, 18 Nov 2018 19:49:56 +0000 Date: Sun, 18 Nov 2018 19:49:56 +0000
Subject: [PATCH] Make the default permission message configurable 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 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 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/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; @@ -21,6 +21,7 @@ import java.util.regex.Pattern;
@ -29,10 +29,10 @@ index 07f0b4529..a7673dd49 100644
private static void savePlayerData() { private static void savePlayerData() {
savePlayerData = getBoolean("settings.save-player-data", 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 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 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/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; return com.destroystokyo.paper.PaperConfig.suggestPlayersWhenNullTabCompletions;
} }

View File

@ -1,4 +1,4 @@
From ba4afed44f76c2d0b8ba63439ecc28b6c2212d05 Mon Sep 17 00:00:00 2001 From 5cc6dd8fc7df054e9388d7feaf9a506db71480d6 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Fri, 15 Feb 2019 01:08:19 -0500 Date: Fri, 15 Feb 2019 01:08:19 -0500
Subject: [PATCH] Allow Saving of Oversized Chunks Subject: [PATCH] Allow Saving of Oversized Chunks
@ -51,18 +51,18 @@ index 12268f87b9..e1f7e06ab2 100644
a((NBTBase) nbttagcompound, dataoutput); a((NBTBase) nbttagcompound, dataoutput);
} }
diff --git a/src/main/java/net/minecraft/server/RegionFile.java b/src/main/java/net/minecraft/server/RegionFile.java 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 --- a/src/main/java/net/minecraft/server/RegionFile.java
+++ b/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(); header.clear();
IntBuffer headerAsInts = header.asIntBuffer(); java.nio.IntBuffer headerAsInts = header.asIntBuffer();
+ initOversizedState(); + initOversizedState();
// Paper End // Paper End
for(int j1 = 0; j1 < 1024; ++j1) { for (j = 0; j < 1024; ++j) {
@@ -99,7 +100,7 @@ public class RegionFile { @@ -119,7 +120,7 @@ public class RegionFile {
} }
@Nullable @Nullable
@ -71,7 +71,7 @@ index 999adf7dc7..303c13ccd0 100644
if (this.e(i, j)) { if (this.e(i, j)) {
return null; return null;
} else { } else {
@@ -175,8 +176,8 @@ public class RegionFile { @@ -203,8 +204,8 @@ public class RegionFile {
} }
@Nullable @Nullable
@ -82,16 +82,18 @@ index 999adf7dc7..303c13ccd0 100644
} }
protected synchronized void a(int i, int j, byte[] abyte, int k) { protected synchronized void a(int i, int j, byte[] abyte, int k) {
@@ -187,7 +188,7 @@ public class RegionFile { @@ -222,8 +223,9 @@ public class RegionFile {
int k1 = (k + 5) / 4096 + 1;
if (k1 >= 256) { if (k1 >= 256) {
- return; // Spigot start
+ throw new ChunkTooLargeException(i, j, k1); // Paper - throw error instead - 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) { @@ -374,6 +376,109 @@ public class RegionFile {
@@ -338,6 +339,101 @@ public class RegionFile {
logger.error("Error backing up corrupt file" + file.getAbsolutePath(), e); 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 class ChunkTooLargeException extends RuntimeException {
+ public ChunkTooLargeException(int x, int z, int sectors) { + public ChunkTooLargeException(int x, int z, int sectors) {
+ super("Chunk " + x + "," + z + " of " + getFile().toString() + " is too large (" + sectors + "/256)"); + super("Chunk " + x + "," + z + " of " + getFile().toString() + " is too large (" + sectors + "/256)");
@ -193,7 +203,7 @@ index 999adf7dc7..303c13ccd0 100644
// Paper end // Paper end
class ChunkBuffer extends ByteArrayOutputStream { class ChunkBuffer extends ByteArrayOutputStream {
@@ -351,8 +447,40 @@ public class RegionFile { @@ -387,8 +492,40 @@ public class RegionFile {
this.c = j; 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 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 --- a/src/main/java/net/minecraft/server/RegionFileCache.java
+++ b/src/main/java/net/minecraft/server/RegionFileCache.java +++ b/src/main/java/net/minecraft/server/RegionFileCache.java
@@ -16,6 +16,7 @@ public class RegionFileCache { @@ -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) { public static synchronized RegionFile a(File file, int i, int j) {
File file1 = new File(file, "region"); File file1 = new File(file, "region");
File file2 = new File(file1, "r." + (i >> 5) + "." + (j >> 5) + ".mca"); 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) { public static synchronized boolean hasRegionFile(File file, int i, int j) {
return RegionFileCache.cache.containsKey(getRegionFileName(file, i, j)); return RegionFileCache.cache.containsKey(getRegionFileName(file, i, j));
} }
@ -298,11 +308,7 @@ index 8c8b7cbab5..50a62d6e23 100644
+ +
+ regionfile.writeOversizedData(x, z, oversizedData); + regionfile.writeOversizedData(x, z, oversizedData);
+ } + }
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw e;
+ } + }
+
+ } + }
+ +
+ private static NBTTagCompound filterChunkData(NBTTagCompound chunk) { + private static NBTTagCompound filterChunkData(NBTTagCompound chunk) {
@ -378,7 +384,7 @@ index 8c8b7cbab5..50a62d6e23 100644
// Paper End // Paper End
public static synchronized void a() { 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 // CraftBukkit start - call sites hoisted for synchronization
public static NBTTagCompound read(File file, int i, int j) throws IOException { // Paper - remove synchronization public static NBTTagCompound read(File file, int i, int j) throws IOException { // Paper - remove synchronization
RegionFile regionfile = a(file, i, j); RegionFile regionfile = a(file, i, j);
@ -391,7 +397,7 @@ index 8c8b7cbab5..50a62d6e23 100644
DataInputStream datainputstream = regionfile.a(i & 31, j & 31); DataInputStream datainputstream = regionfile.a(i & 31, j & 31);
@@ -121,11 +251,14 @@ public class RegionFileCache { @@ -121,11 +247,14 @@ public class RegionFileCache {
@Nullable @Nullable
public static void write(File file, int i, int j, NBTTagCompound nbttagcompound) throws IOException { 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 int attempts = 0; Exception laste = null; while (attempts++ < 5) { try { // Paper

@ -1 +1 @@
Subproject commit a88873890da6c5ca4b424f2bc605550c8453b19f Subproject commit e167e549afd442461df623cdb3c6ba1f2be797d9

@ -1 +1 @@
Subproject commit 51c118b1d7f6ed9847fa853081e1eed67ddeb293 Subproject commit 6430d9c0ba73bb5321743ba8ea842cc611e807c9

@ -1 +1 @@
Subproject commit b0f4c22b92c82146214dad69ea296ab7034592d8 Subproject commit e5e5c7c6d438c89ced4041c0d3361ae9e6bcc177