Merge branch 'ver/1.16'

This brings 1.16 back to master. 1.15 is still supported currently.
This commit is contained in:
Aikar 2020-07-04 19:03:06 -04:00
commit 6ff90880f5
No known key found for this signature in database
GPG Key ID: 401ADFC9891FAAFE
676 changed files with 8821 additions and 9108 deletions

View File

@ -10,7 +10,7 @@
<groupId>com.destroystokyo.paper</groupId>
<artifactId>paper-mojangapi</artifactId>
<version>1.15.2-R0.1-SNAPSHOT</version>
<version>1.16.1-R0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Paper-MojangAPI</name>

View File

@ -36,11 +36,28 @@ How To (Plugin Developers)
<dependency>
<groupId>com.destroystokyo.paper</groupId>
<artifactId>paper-api</artifactId>
<version>1.15.2-R0.1-SNAPSHOT</version>
<version>1.16.1-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependency>
```
**Or alternatively, with Gradle:**
* Repository:
```groovy
repositories {
maven {
url 'https://papermc.io/repo/repository/maven-public/'
}
}
```
* Artifact:
```groovy
dependencies {
compileOnly 'com.destroystokyo.paper:paper-api:1.16.1-R0.1-SNAPSHOT'
}
```
How To (Compiling Jar From Source)
------
To compile Paper, you need JDK 8, maven, and an internet connection.

8
SHIT_TO_CHECK.md Normal file
View File

@ -0,0 +1,8 @@
# Shit to check
* Mini: "Optimize World Server Map": Figure out how to fill PaperWorldMap, it needs a dim key which doesnt exist anymore?
* Mini: "MC-50319": fix if still works
* Make sure the flat bedrock setting doesn't do anything stupid
* Check DataBits foreach
* lighting is bork (load chunk, fly away, come back, everything or parts are black)
* chunk generation seems slow with a lot of it happening

View File

@ -5,7 +5,7 @@ Subject: [PATCH] POM changes
diff --git a/pom.xml b/pom.xml
index 186405ba1914b2b384896c61770c225b50091401..9975ba9ae19f6217bec206fee247fac1a30d58fc 100644
index 274fd7d65ed48af7c4c055db0f99d1637f1af88f..14383eb14c5f3893edc7c76db90881d1abd4b675 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2,34 +2,28 @@
@ -22,7 +22,7 @@ index 186405ba1914b2b384896c61770c225b50091401..9975ba9ae19f6217bec206fee247fac1
- <artifactId>spigot-api</artifactId>
+ <groupId>com.destroystokyo.paper</groupId>
+ <artifactId>paper-api</artifactId>
<version>1.15.2-R0.1-SNAPSHOT</version>
<version>1.16.1-R0.1-SNAPSHOT</version>
<packaging>jar</packaging>
- <name>Spigot-API</name>
@ -85,14 +85,7 @@ index 186405ba1914b2b384896c61770c225b50091401..9975ba9ae19f6217bec206fee247fac1
<!-- bundled with Minecraft, should be kept in sync -->
<dependency>
<groupId>com.google.guava</groupId>
@@ -107,12 +119,13 @@
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-tree</artifactId>
- <version>7.3.1</version>
+ <version>8.0.1</version> <!-- Paper -->
<scope>test</scope>
</dependency>
@@ -113,6 +125,7 @@
</dependencies>
<build>
@ -111,7 +104,7 @@ index 186405ba1914b2b384896c61770c225b50091401..9975ba9ae19f6217bec206fee247fac1
<dependencies>
<!-- we need our custom version as it fixes some bugs on case sensitive file systems -->
<dependency>
@@ -180,6 +189,7 @@
@@ -185,6 +194,7 @@
</excludes>
</filter>
</filters>

View File

@ -6,7 +6,7 @@ Subject: [PATCH] Add FastUtil to Bukkit
Doesn't expose to plugins, just allows Paper-API to use it for optimization
diff --git a/pom.xml b/pom.xml
index 9975ba9ae19f6217bec206fee247fac1a30d58fc..e8d9982bdbf9f66a54db16bf920e8106b81b034f 100644
index 14383eb14c5f3893edc7c76db90881d1abd4b675..ae9179d4e3ea5608dfb9a5677de7c59c403450cc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -49,6 +49,12 @@

View File

@ -2778,10 +2778,10 @@ index 0000000000000000000000000000000000000000..5989ee21297935651b0edd44b8239e65
+ }
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index ae21e0f97d3d078e3b9ce9f60590c20e5012396e..755869366e7546fa8aefe7d7a1a602bab91a458c 100644
index c1ecd19dd062276f5680b903309efce194559ae9..0b6ff0fe323397bb257f55bd2db21eba4ccc50f7 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -618,7 +618,6 @@ public final class Bukkit {
@@ -640,7 +640,6 @@ public final class Bukkit {
*/
public static void reload() {
server.reload();
@ -2790,10 +2790,10 @@ index ae21e0f97d3d078e3b9ce9f60590c20e5012396e..755869366e7546fa8aefe7d7a1a602ba
/**
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index f6fb72fab398ae8ca8b746154ff3c8fcad378faf..fad4e929264e2be534d3c4a90a5d557fd6c5807b 100644
index 5a99e36393f885003569977461923a9f6fa23402..113536d4c86a5aa863c4db2416caa41ca6bc55c0 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -1300,6 +1300,26 @@ public interface Server extends PluginMessageRecipient {
@@ -1328,6 +1328,26 @@ public interface Server extends PluginMessageRecipient {
throw new UnsupportedOperationException("Not supported yet.");
}
@ -3358,10 +3358,10 @@ index 2a145d851ce30360aa39549745bd87590c034584..00000000000000000000000000000000
- // Spigot end
-}
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 92bafd6365313390326ea12fb815c62463f4d0fc..bfbe775fcd631b12975c0aaae8c82156b81c9614 100644
index 0859d2bc226c4abf21ac1dc28f35ebe805046d89..39d196992bbcc263fa4bcd46c6187ba7b8adb935 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -1329,6 +1329,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1369,6 +1369,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @NotNull net.md_5.bungee.api.chat.BaseComponent... components) {
throw new UnsupportedOperationException("Not supported yet.");
}
@ -3374,7 +3374,7 @@ index 92bafd6365313390326ea12fb815c62463f4d0fc..bfbe775fcd631b12975c0aaae8c82156
@NotNull
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
index ec77d7be69a8213c91d05bd3beabdd4fc664afa4..c548911c4b4fad495e4b321ea47455ec65c68255 100644
index 62d0017362204070465c8ff72e5c2ca07501f558..745eaa8f2f2ff83536301db8ca47a8af30df7a73 100644
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
@@ -358,7 +358,6 @@ public final class SimplePluginManager implements PluginManager {
@ -3434,7 +3434,7 @@ index ec77d7be69a8213c91d05bd3beabdd4fc664afa4..c548911c4b4fad495e4b321ea47455ec
}
}
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index df8a5dcbe3345abf7be53d7ebb81d13b33c86511..50a51394f71579b71c3875e4dc8c71abc23ae246 100644
index 7b9ad3834c9c81220c74a16f1e66fb4da512e9f6..b6d739ca8ad8ebd4b1be7ebd129f9a7ae16b2a2a 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -53,7 +53,6 @@ public final class JavaPluginLoader implements PluginLoader {

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Player affects spawning API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index bfbe775fcd631b12975c0aaae8c82156b81c9614..41cb8b3770d787eb0e12be191984e7767cc004e1 100644
index 39d196992bbcc263fa4bcd46c6187ba7b8adb935..4f3a2189b42a2909f152ed1e33f79f431c6b903c 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -1231,6 +1231,22 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1271,6 +1271,22 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@NotNull
public String getLocale();

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Add getTPS method
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 755869366e7546fa8aefe7d7a1a602bab91a458c..6c3aa418589903925d92d48a79f9f3d2461f78d7 100644
index 0b6ff0fe323397bb257f55bd2db21eba4ccc50f7..15543603c168623572b1a26e41eb20058770784d 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -1369,6 +1369,17 @@ public final class Bukkit {
@@ -1401,6 +1401,17 @@ public final class Bukkit {
return server.getEntity(uuid);
}
@ -27,10 +27,10 @@ index 755869366e7546fa8aefe7d7a1a602bab91a458c..6c3aa418589903925d92d48a79f9f3d2
* Get the advancement specified by this key.
*
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index fad4e929264e2be534d3c4a90a5d557fd6c5807b..f0dba56dcd8adb50725356810d316e74527939d8 100644
index 113536d4c86a5aa863c4db2416caa41ca6bc55c0..3af00d77f9015f2eccab3047676b70c1af68daa7 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -1148,6 +1148,16 @@ public interface Server extends PluginMessageRecipient {
@@ -1176,6 +1176,16 @@ public interface Server extends PluginMessageRecipient {
@Nullable
Entity getEntity(@NotNull UUID uuid);

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Entity Origin API
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
index 6b550dda2a107d08553544261f26c08b6cdfa648..4e4445d186303c06906fea68a867cc7985c69ba2 100644
index 05a507fec7b5ba091608c39e2231ee64c085e790..d2fa3628a3825b2226292bf6974866557abf799e 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -598,4 +598,16 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
@@ -599,4 +599,16 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
@Override
Spigot spigot();
// Spigot end

View File

@ -55,7 +55,7 @@ index 0000000000000000000000000000000000000000..2a2651299e8dc631938ba4b4078dc694
+ }
+}
diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java
index 26dbc2a761108d6aad056a786cb5146c63b7ad3d..98df287bcb1462fa42b7d4a706a68d36927fbc1c 100644
index 945b8b030d1b2a13afc0c4efad76997eb7bf00ba..1b6d737046646c102b0d519ab3f67c3fbd503979 100644
--- a/src/main/java/org/bukkit/UnsafeValues.java
+++ b/src/main/java/org/bukkit/UnsafeValues.java
@@ -77,5 +77,12 @@ public interface UnsafeValues {

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Add player view distance API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 41cb8b3770d787eb0e12be191984e7767cc004e1..a985431e5d69e2837dae5c3284b0252ace04992a 100644
index 4f3a2189b42a2909f152ed1e33f79f431c6b903c..babf70ad97413112f57ae1380f09a74e51975ff5 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -1245,6 +1245,20 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1285,6 +1285,20 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param affects Whether the player can affect mob spawning
*/
public void setAffectsSpawning(boolean affects);

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Automatically disable plugins that fail to load
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index 50a51394f71579b71c3875e4dc8c71abc23ae246..5cc37eeedab8437db82791dd95cef4e387c124b3 100644
index b6d739ca8ad8ebd4b1be7ebd129f9a7ae16b2a2a..c8497cb3021f584a885f4cb21c3be576ce0935a7 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -344,6 +344,10 @@ public final class JavaPluginLoader implements PluginLoader {

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Expose server CommandMap
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 6c3aa418589903925d92d48a79f9f3d2461f78d7..6b951d5adf9a665fd8bf8560a3fd7deb14897b34 100644
index 15543603c168623572b1a26e41eb20058770784d..b46222ed2822fea563585462e43ee73ba2bb9b37 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -1543,6 +1543,19 @@ public final class Bukkit {
@@ -1575,6 +1575,19 @@ public final class Bukkit {
return server.getUnsafe();
}
@ -29,10 +29,10 @@ index 6c3aa418589903925d92d48a79f9f3d2461f78d7..6b951d5adf9a665fd8bf8560a3fd7deb
public static Server.Spigot spigot() {
return server.spigot();
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index f0dba56dcd8adb50725356810d316e74527939d8..af21bb1aa133c6ab119f23c098d17a5bc4e9cd47 100644
index 3af00d77f9015f2eccab3047676b70c1af68daa7..d3c498ad0e7681422ef2117be41c6603ebce0e0a 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -1158,6 +1158,15 @@ public interface Server extends PluginMessageRecipient {
@@ -1186,6 +1186,15 @@ public interface Server extends PluginMessageRecipient {
public double[] getTPS();
// Paper end

View File

@ -6,7 +6,7 @@ Subject: [PATCH] Graduate bungeecord chat API from spigot subclasses
Change Javadoc to be accurate
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 6b951d5adf9a665fd8bf8560a3fd7deb14897b34..39423f3a689a69de666537603e97d50244827f64 100644
index b46222ed2822fea563585462e43ee73ba2bb9b37..7b1978a258cbf74983dc2512092653ed4ff64e98 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -274,6 +274,26 @@ public final class Bukkit {
@ -37,7 +37,7 @@ index 6b951d5adf9a665fd8bf8560a3fd7deb14897b34..39423f3a689a69de666537603e97d502
* Gets the name of the update folder. The update folder is used to safely
* update plugins at the right moment on a plugin load.
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index af21bb1aa133c6ab119f23c098d17a5bc4e9cd47..b09d010853a67db16787d9e764f1e2949cb33050 100644
index d3c498ad0e7681422ef2117be41c6603ebce0e0a..e3385abec44c603201aa37e3b3180cf88d378b52 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -225,6 +225,26 @@ public interface Server extends PluginMessageRecipient {
@ -68,10 +68,10 @@ index af21bb1aa133c6ab119f23c098d17a5bc4e9cd47..b09d010853a67db16787d9e764f1e294
* Gets the name of the update folder. The update folder is used to safely
* update plugins at the right moment on a plugin load.
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index a985431e5d69e2837dae5c3284b0252ace04992a..dd6adedb63c0a51dab92879b199a8d284472f270 100644
index babf70ad97413112f57ae1380f09a74e51975ff5..296aca8a5da6aa2a61988c9915df4d95279815a5 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -441,6 +441,38 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -481,6 +481,38 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public void sendMap(@NotNull MapView map);

View File

@ -384,7 +384,7 @@ index 0000000000000000000000000000000000000000..4fe18540f77143ee7cd7e94d3aa279ae
+ }
+}
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index dd6adedb63c0a51dab92879b199a8d284472f270..3d07467a4ba39aa7c59abb49d12b094c872251da 100644
index 296aca8a5da6aa2a61988c9915df4d95279815a5..eab4e326392efa93dd9acd086755a97616c79c39 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -1,6 +1,7 @@
@ -395,7 +395,7 @@ index dd6adedb63c0a51dab92879b199a8d284472f270..3d07467a4ba39aa7c59abb49d12b094c
import org.bukkit.DyeColor;
import org.bukkit.Effect;
import org.bukkit.GameMode;
@@ -471,6 +472,116 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -511,6 +512,116 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
public default void sendMessage(net.md_5.bungee.api.ChatMessageType position, net.md_5.bungee.api.chat.BaseComponent... components) {
spigot().sendMessage(position, components);
}

View File

@ -506,7 +506,7 @@ index f020cb04eba27a2e70fc7cf799ebbfb434b9d974..adfc7aae2c0f49bbcdd358e83b04a0cf
}
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
index c548911c4b4fad495e4b321ea47455ec65c68255..9a5fe8ca4ad9415055f3a71b62064d9e79b8e644 100644
index 745eaa8f2f2ff83536301db8ca47a8af30df7a73..d0fec44d2546290091649879450761ce08514fcb 100644
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
@@ -23,6 +23,10 @@ import java.util.WeakHashMap;

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Add methods for working with arrows stuck in living entities
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
index 203d135f156aa78f4daf497831399f4fdab41d5f..52541e496bd85e041a96fd5858acbb9bddbb8196 100644
index 8744f2e5fdf47200d433d708fcd9d9aaded56c0c..5b0c95ab7372c7accd190b9052b587637106c4af 100644
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
@@ -531,4 +531,19 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
@@ -552,4 +552,19 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
* @param <T> the type of the passed value
*/
<T> void setMemory(@NotNull MemoryKey<T> memoryKey, @Nullable T memoryValue);

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Complete resource pack API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 3d07467a4ba39aa7c59abb49d12b094c872251da..9e62987cbd36074923ade7c9dea0e418cfb9c2bc 100644
index eab4e326392efa93dd9acd086755a97616c79c39..bc9ff9b4a475d8b108b54f2d4a99199379b1c63d 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -981,7 +981,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1021,7 +1021,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @throws IllegalArgumentException Thrown if the URL is null.
* @throws IllegalArgumentException Thrown if the URL is too long. The
* length restriction is an implementation specific arbitrary value.
@ -18,7 +18,7 @@ index 3d07467a4ba39aa7c59abb49d12b094c872251da..9e62987cbd36074923ade7c9dea0e418
public void setResourcePack(@NotNull String url);
/**
@@ -1419,6 +1421,62 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1459,6 +1461,62 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public void openBook(@NotNull ItemStack book);

View File

@ -6,11 +6,11 @@ Subject: [PATCH] Use ASM for event executors.
Uses method handles for private or static methods.
diff --git a/pom.xml b/pom.xml
index e8d9982bdbf9f66a54db16bf920e8106b81b034f..661d109f7c5b78587c68f32d47029c6d2fe7604d 100644
index ae9179d4e3ea5608dfb9a5677de7c59c403450cc..a7064cc7810cd3567111a1594bd316663d516dca 100644
--- a/pom.xml
+++ b/pom.xml
@@ -128,6 +128,17 @@
<version>8.0.1</version> <!-- Paper -->
<version>8.0.1</version>
<scope>test</scope>
</dependency>
+ <!-- ASM -->
@ -412,7 +412,7 @@ index a850f0780de05463fc0d3f9e15ff7f19d88b2aed..9026e108ccd3a88aee1267ee275137be
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index 5cc37eeedab8437db82791dd95cef4e387c124b3..e72cbde4b3225cbf17d8a9b275e0ffcaa6d86c19 100644
index c8497cb3021f584a885f4cb21c3be576ce0935a7..5be6460e8eb81381c7e305cb7ab6b77c0c7a8fe5 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -300,21 +300,7 @@ public final class JavaPluginLoader implements PluginLoader {

View File

@ -6,10 +6,10 @@ Subject: [PATCH] Add command to reload permissions.yml and require confirm to
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 39423f3a689a69de666537603e97d50244827f64..423fecf5411c05a55f22951437ff77af4bd29318 100644
index 7b1978a258cbf74983dc2512092653ed4ff64e98..a0473d6b5339513f10749c0498b2ef5a0d710b14 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -1574,6 +1574,13 @@ public final class Bukkit {
@@ -1606,6 +1606,13 @@ public final class Bukkit {
public static org.bukkit.command.CommandMap getCommandMap() {
return server.getCommandMap();
}
@ -24,10 +24,10 @@ index 39423f3a689a69de666537603e97d50244827f64..423fecf5411c05a55f22951437ff77af
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index b09d010853a67db16787d9e764f1e2949cb33050..38d7da7378f9dc387ce9b52f1527db929901670e 100644
index e3385abec44c603201aa37e3b3180cf88d378b52..a13c5014e0815d1de0bab184ea365bc6f97dcd8f 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -1388,4 +1388,6 @@ public interface Server extends PluginMessageRecipient {
@@ -1416,4 +1416,6 @@ public interface Server extends PluginMessageRecipient {
@NotNull
Spigot spigot();
// Spigot end
@ -85,7 +85,7 @@ index 50cc311be7904cc8fc6070a21c8e4de3a489fd20..c62da4131b17e66892678e8b618fb9ba
}
}
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
index 9a5fe8ca4ad9415055f3a71b62064d9e79b8e644..8ddaf9c2e63b382533d7f8929023c364ff3a8f9d 100644
index d0fec44d2546290091649879450761ce08514fcb..8b33d914d29897c0276f9e2e7ce83bd2c316d5e2 100644
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
@@ -894,4 +894,13 @@ public final class SimplePluginManager implements PluginManager {

View File

@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Command Aliases
Reload the aliases stored in commands.yml
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 423fecf5411c05a55f22951437ff77af4bd29318..0ec517701677a844c72b065e0ce453a0408102a5 100644
index a0473d6b5339513f10749c0498b2ef5a0d710b14..6f2b67774a989ade2ec8acafd9f5288d51fb2102 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -1581,6 +1581,15 @@ public final class Bukkit {
@@ -1613,6 +1613,15 @@ public final class Bukkit {
public static void reloadPermissions() {
server.reloadPermissions();
}
@ -26,10 +26,10 @@ index 423fecf5411c05a55f22951437ff77af4bd29318..0ec517701677a844c72b065e0ce453a0
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index 38d7da7378f9dc387ce9b52f1527db929901670e..93bb91fad3a27632f2d6d02f1e08ddbca6152a43 100644
index a13c5014e0815d1de0bab184ea365bc6f97dcd8f..339463eb75e3cb4a9d025892835d54b6ce76c478 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -1390,4 +1390,6 @@ public interface Server extends PluginMessageRecipient {
@@ -1418,4 +1418,6 @@ public interface Server extends PluginMessageRecipient {
// Spigot end
void reloadPermissions(); // Paper

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Add String based Action Bar API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 9e62987cbd36074923ade7c9dea0e418cfb9c2bc..6f3ab730b3196ae0cb4b3c2fb8976dcefafc1d4d 100644
index bc9ff9b4a475d8b108b54f2d4a99199379b1c63d..3166d4809f12e55f53670a84e69f420ee3ee792b 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -443,6 +443,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -483,6 +483,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
public void sendMap(@NotNull MapView map);
// Paper start
@ -35,7 +35,7 @@ index 9e62987cbd36074923ade7c9dea0e418cfb9c2bc..6f3ab730b3196ae0cb4b3c2fb8976dce
/**
* Sends the component to the player
*
@@ -466,9 +486,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -506,9 +526,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
/**
* Sends an array of components as a single message to the specified screen position of this player
*
@ -47,7 +47,7 @@ index 9e62987cbd36074923ade7c9dea0e418cfb9c2bc..6f3ab730b3196ae0cb4b3c2fb8976dce
public default void sendMessage(net.md_5.bungee.api.ChatMessageType position, net.md_5.bungee.api.chat.BaseComponent... components) {
spigot().sendMessage(position, components);
}
@@ -1544,9 +1566,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1584,9 +1606,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
/**
* Sends the component to the specified screen position of this player
*
@ -59,7 +59,7 @@ index 9e62987cbd36074923ade7c9dea0e418cfb9c2bc..6f3ab730b3196ae0cb4b3c2fb8976dce
public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @NotNull net.md_5.bungee.api.chat.BaseComponent component) {
throw new UnsupportedOperationException("Not supported yet.");
}
@@ -1554,9 +1578,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1594,9 +1618,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
/**
* Sends an array of components as a single message to the specified screen position of this player
*

View File

@ -7,32 +7,22 @@ Get the Entity being boosted
Get the firework launcher
diff --git a/src/main/java/org/bukkit/entity/Firework.java b/src/main/java/org/bukkit/entity/Firework.java
index f844d5aa983f1d4718c9f22da80b0eed113547b1..e8c04c1383ec6dd53f30727db4e910ca17fbae5d 100644
index 05e86cb9d826cdf14490fa649348d46c51adbfdb..d616d5941b3c7b85e350e845901da798601b9a3c 100644
--- a/src/main/java/org/bukkit/entity/Firework.java
+++ b/src/main/java/org/bukkit/entity/Firework.java
@@ -3,6 +3,9 @@ package org.bukkit.entity;
import org.bukkit.inventory.meta.FireworkMeta;
import org.jetbrains.annotations.NotNull;
+import java.util.UUID;
+import org.jetbrains.annotations.Nullable;
+
public interface Firework extends Entity {
/**
@@ -43,4 +46,15 @@ public interface Firework extends Entity {
@@ -43,4 +43,15 @@ public interface Firework extends Projectile {
* @param shotAtAngle the new shotAtAngle
*/
void setShotAtAngle(boolean shotAtAngle);
+
+ // Paper start
+ @Nullable
+ public UUID getSpawningEntity();
+ @org.jetbrains.annotations.Nullable
+ public java.util.UUID getSpawningEntity();
+ /**
+ * If this firework is boosting an entity, return it
+ * @return The entity being boosted
+ */
+ @Nullable
+ @org.jetbrains.annotations.Nullable
+ public LivingEntity getBoostedEntity();
+ // Paper end
}

View File

@ -7,7 +7,7 @@ Provides counts without the ineffeciency of using .getEntities().size()
which creates copy of the collections.
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index cd8a09576a99f03f5ef9926d55fa3a1193ba0da6..808c3b4a4f494e05542f29324db655ee6166021e 100644
index c79e083a97b849f9cdd3f9646c4f2892976b2a55..480386b2405953c3a06958a9728b38371d75662b 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -40,6 +40,33 @@ import org.jetbrains.annotations.Nullable;

View File

@ -6,10 +6,10 @@ Subject: [PATCH] Add configuration option to prevent player names from being
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 0ec517701677a844c72b065e0ce453a0408102a5..ded9df9a31fb9ac847a60b4eba182ac487252aca 100644
index 6f2b67774a989ade2ec8acafd9f5288d51fb2102..c5b6e5fa0cfd876733b2010494ad7bbeafc789f8 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -1590,6 +1590,16 @@ public final class Bukkit {
@@ -1622,6 +1622,16 @@ public final class Bukkit {
public static boolean reloadCommandAliases() {
return server.reloadCommandAliases();
}
@ -27,10 +27,10 @@ index 0ec517701677a844c72b065e0ce453a0408102a5..ded9df9a31fb9ac847a60b4eba182ac4
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index 93bb91fad3a27632f2d6d02f1e08ddbca6152a43..112098f9bab1b091538d74f558113830c8cdce90 100644
index 339463eb75e3cb4a9d025892835d54b6ce76c478..457007005f9ff5f6818c559635379a2e698fc4d7 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -1392,4 +1392,14 @@ public interface Server extends PluginMessageRecipient {
@@ -1420,4 +1420,14 @@ public interface Server extends PluginMessageRecipient {
void reloadPermissions(); // Paper
boolean reloadCommandAliases(); // Paper

View File

@ -6,10 +6,10 @@ Subject: [PATCH] Fix upstream javadoc warnings and errors
Upstream still refuses to use Java 8 with the API so they are likely unaware these are even issues.
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 808c3b4a4f494e05542f29324db655ee6166021e..3b027f67c1763ee0a4f7b02490d3cee1c3eff369 100644
index 480386b2405953c3a06958a9728b38371d75662b..55d114e3a17ea623ecc0d9fa87b14c3ffc65e6be 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -2009,6 +2009,7 @@ public interface World extends PluginMessageRecipient, Metadatable {
@@ -2077,6 +2077,7 @@ public interface World extends PluginMessageRecipient, Metadatable {
* @param count the number of particles
* @param data the data to use for the particle or null,
* the type of this depends on {@link Particle#getDataType()}
@ -17,7 +17,7 @@ index 808c3b4a4f494e05542f29324db655ee6166021e..3b027f67c1763ee0a4f7b02490d3cee1
*/
public <T> void spawnParticle(@NotNull Particle particle, @NotNull Location location, int count, @Nullable T data);
@@ -2025,6 +2026,7 @@ public interface World extends PluginMessageRecipient, Metadatable {
@@ -2093,6 +2094,7 @@ public interface World extends PluginMessageRecipient, Metadatable {
* @param count the number of particles
* @param data the data to use for the particle or null,
* the type of this depends on {@link Particle#getDataType()}
@ -25,7 +25,7 @@ index 808c3b4a4f494e05542f29324db655ee6166021e..3b027f67c1763ee0a4f7b02490d3cee1
*/
public <T> void spawnParticle(@NotNull Particle particle, double x, double y, double z, int count, @Nullable T data);
@@ -2075,6 +2077,7 @@ public interface World extends PluginMessageRecipient, Metadatable {
@@ -2143,6 +2145,7 @@ public interface World extends PluginMessageRecipient, Metadatable {
* @param offsetZ the maximum random offset on the Z axis
* @param data the data to use for the particle or null,
* the type of this depends on {@link Particle#getDataType()}
@ -33,7 +33,7 @@ index 808c3b4a4f494e05542f29324db655ee6166021e..3b027f67c1763ee0a4f7b02490d3cee1
*/
public <T> void spawnParticle(@NotNull Particle particle, @NotNull Location location, int count, double offsetX, double offsetY, double offsetZ, @Nullable T data);
@@ -2095,6 +2098,7 @@ public interface World extends PluginMessageRecipient, Metadatable {
@@ -2163,6 +2166,7 @@ public interface World extends PluginMessageRecipient, Metadatable {
* @param offsetZ the maximum random offset on the Z axis
* @param data the data to use for the particle or null,
* the type of this depends on {@link Particle#getDataType()}
@ -41,7 +41,7 @@ index 808c3b4a4f494e05542f29324db655ee6166021e..3b027f67c1763ee0a4f7b02490d3cee1
*/
public <T> void spawnParticle(@NotNull Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, @Nullable T data);
@@ -2151,6 +2155,7 @@ public interface World extends PluginMessageRecipient, Metadatable {
@@ -2219,6 +2223,7 @@ public interface World extends PluginMessageRecipient, Metadatable {
* particle used (normally speed)
* @param data the data to use for the particle or null,
* the type of this depends on {@link Particle#getDataType()}
@ -49,7 +49,7 @@ index 808c3b4a4f494e05542f29324db655ee6166021e..3b027f67c1763ee0a4f7b02490d3cee1
*/
public <T> void spawnParticle(@NotNull Particle particle, @NotNull Location location, int count, double offsetX, double offsetY, double offsetZ, double extra, @Nullable T data);
@@ -2173,6 +2178,7 @@ public interface World extends PluginMessageRecipient, Metadatable {
@@ -2241,6 +2246,7 @@ public interface World extends PluginMessageRecipient, Metadatable {
* particle used (normally speed)
* @param data the data to use for the particle or null,
* the type of this depends on {@link Particle#getDataType()}
@ -57,7 +57,7 @@ index 808c3b4a4f494e05542f29324db655ee6166021e..3b027f67c1763ee0a4f7b02490d3cee1
*/
public <T> void spawnParticle(@NotNull Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, @Nullable T data);
@@ -2196,6 +2202,7 @@ public interface World extends PluginMessageRecipient, Metadatable {
@@ -2264,6 +2270,7 @@ public interface World extends PluginMessageRecipient, Metadatable {
* @param force whether to send the particle to players within an extended
* range and encourage their client to render it regardless of
* settings
@ -65,7 +65,7 @@ index 808c3b4a4f494e05542f29324db655ee6166021e..3b027f67c1763ee0a4f7b02490d3cee1
*/
public <T> void spawnParticle(@NotNull Particle particle, @NotNull Location location, int count, double offsetX, double offsetY, double offsetZ, double extra, @Nullable T data, boolean force);
@@ -2221,6 +2228,7 @@ public interface World extends PluginMessageRecipient, Metadatable {
@@ -2289,6 +2296,7 @@ public interface World extends PluginMessageRecipient, Metadatable {
* @param force whether to send the particle to players within an extended
* range and encourage their client to render it regardless of
* settings
@ -86,10 +86,10 @@ index c2096b5344d48d855d031538ec32e0154bd9054d..bca9d3659f6fceeca4b7fecbc7034d6f
<T> void setParticle(@NotNull Particle particle, @Nullable T data);
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 6f3ab730b3196ae0cb4b3c2fb8976dcefafc1d4d..cb7d9f055193618c8a7e80796c2ba52651baca55 100644
index 3166d4809f12e55f53670a84e69f420ee3ee792b..4f419c7b07d771019ab2906d609772cc0f080b23 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -458,7 +458,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -498,7 +498,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*
* Use supplied alternative character to the section symbol to represent legacy color codes.
*
@ -98,7 +98,7 @@ index 6f3ab730b3196ae0cb4b3c2fb8976dcefafc1d4d..cb7d9f055193618c8a7e80796c2ba526
* @param message The message to send
*/
public void sendActionBar(char alternateChar, @NotNull String message);
@@ -525,6 +525,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -565,6 +565,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
/**
* Update the subtitle of titles displayed to the player
*
@ -106,7 +106,7 @@ index 6f3ab730b3196ae0cb4b3c2fb8976dcefafc1d4d..cb7d9f055193618c8a7e80796c2ba526
* @deprecated Use {@link #updateTitle(Title)}
*/
@Deprecated
@@ -533,6 +534,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -573,6 +574,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
/**
* Update the subtitle of titles displayed to the player
*
@ -114,7 +114,7 @@ index 6f3ab730b3196ae0cb4b3c2fb8976dcefafc1d4d..cb7d9f055193618c8a7e80796c2ba526
* @deprecated Use {@link #updateTitle(Title)}
*/
@Deprecated
@@ -541,6 +543,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -581,6 +583,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
/**
* Show the given title to the player, along with the last subtitle set, using the last set times
*
@ -122,7 +122,7 @@ index 6f3ab730b3196ae0cb4b3c2fb8976dcefafc1d4d..cb7d9f055193618c8a7e80796c2ba526
* @deprecated Use {@link #sendTitle(Title)} or {@link #updateTitle(Title)}
*/
@Deprecated
@@ -549,6 +552,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -589,6 +592,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
/**
* Show the given title to the player, along with the last subtitle set, using the last set times
*
@ -130,7 +130,7 @@ index 6f3ab730b3196ae0cb4b3c2fb8976dcefafc1d4d..cb7d9f055193618c8a7e80796c2ba526
* @deprecated Use {@link #sendTitle(Title)} or {@link #updateTitle(Title)}
*/
@Deprecated
@@ -1198,6 +1202,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1238,6 +1242,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param count the number of particles
* @param data the data to use for the particle or null,
* the type of this depends on {@link Particle#getDataType()}
@ -138,7 +138,7 @@ index 6f3ab730b3196ae0cb4b3c2fb8976dcefafc1d4d..cb7d9f055193618c8a7e80796c2ba526
*/
public <T> void spawnParticle(@NotNull Particle particle, @NotNull Location location, int count, @Nullable T data);
@@ -1214,6 +1219,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1254,6 +1259,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param count the number of particles
* @param data the data to use for the particle or null,
* the type of this depends on {@link Particle#getDataType()}
@ -146,7 +146,7 @@ index 6f3ab730b3196ae0cb4b3c2fb8976dcefafc1d4d..cb7d9f055193618c8a7e80796c2ba526
*/
public <T> void spawnParticle(@NotNull Particle particle, double x, double y, double z, int count, @Nullable T data);
@@ -1264,6 +1270,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1304,6 +1310,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param offsetZ the maximum random offset on the Z axis
* @param data the data to use for the particle or null,
* the type of this depends on {@link Particle#getDataType()}
@ -154,7 +154,7 @@ index 6f3ab730b3196ae0cb4b3c2fb8976dcefafc1d4d..cb7d9f055193618c8a7e80796c2ba526
*/
public <T> void spawnParticle(@NotNull Particle particle, @NotNull Location location, int count, double offsetX, double offsetY, double offsetZ, @Nullable T data);
@@ -1284,6 +1291,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1324,6 +1331,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param offsetZ the maximum random offset on the Z axis
* @param data the data to use for the particle or null,
* the type of this depends on {@link Particle#getDataType()}
@ -162,7 +162,7 @@ index 6f3ab730b3196ae0cb4b3c2fb8976dcefafc1d4d..cb7d9f055193618c8a7e80796c2ba526
*/
public <T> void spawnParticle(@NotNull Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, @Nullable T data);
@@ -1340,6 +1348,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1380,6 +1388,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* particle used (normally speed)
* @param data the data to use for the particle or null,
* the type of this depends on {@link Particle#getDataType()}
@ -170,7 +170,7 @@ index 6f3ab730b3196ae0cb4b3c2fb8976dcefafc1d4d..cb7d9f055193618c8a7e80796c2ba526
*/
public <T> void spawnParticle(@NotNull Particle particle, @NotNull Location location, int count, double offsetX, double offsetY, double offsetZ, double extra, @Nullable T data);
@@ -1362,6 +1371,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1402,6 +1411,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* particle used (normally speed)
* @param data the data to use for the particle or null,
* the type of this depends on {@link Particle#getDataType()}

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Item#canEntityPickup
diff --git a/src/main/java/org/bukkit/entity/Item.java b/src/main/java/org/bukkit/entity/Item.java
index 00c58c1d94b4822e7e26029cab23cf1964613db5..cb9e9f369e041cd9e5835cac7909db482295083c 100644
index 4f0caf5a7084f2be1ce1a4b49318e78597b45846..ae3880491682067d4c5baef0a8c90b1036d67ac0 100644
--- a/src/main/java/org/bukkit/entity/Item.java
+++ b/src/main/java/org/bukkit/entity/Item.java
@@ -37,4 +37,20 @@ public interface Item extends Entity {
@@ -36,4 +36,20 @@ public interface Item extends Entity {
* @param delay New delay
*/
public void setPickupDelay(int delay);

View File

@ -267,10 +267,10 @@ index 0000000000000000000000000000000000000000..7b3b6ef533d32169fbeca389bd61cfc6
+ }
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index ded9df9a31fb9ac847a60b4eba182ac487252aca..5d4fb5b9d55bfbe6bc9a9082b5cb85aa9ee86de2 100644
index c5b6e5fa0cfd876733b2010494ad7bbeafc789f8..d27405a8cfa590c13f5a3976c74c05655ae1f93d 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -1600,6 +1600,40 @@ public final class Bukkit {
@@ -1632,6 +1632,40 @@ public final class Bukkit {
public static boolean suggestPlayerNamesWhenNullTabCompletions() {
return server.suggestPlayerNamesWhenNullTabCompletions();
}
@ -312,10 +312,10 @@ index ded9df9a31fb9ac847a60b4eba182ac487252aca..5d4fb5b9d55bfbe6bc9a9082b5cb85aa
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index 112098f9bab1b091538d74f558113830c8cdce90..6778ac8e5a16eb20574732acb0cc0038ec286467 100644
index 457007005f9ff5f6818c559635379a2e698fc4d7..24922e5699241e29bc615dcffadce21c89f6ff35 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -1401,5 +1401,33 @@ public interface Server extends PluginMessageRecipient {
@@ -1429,5 +1429,33 @@ public interface Server extends PluginMessageRecipient {
* @return true if player names should be suggested
*/
boolean suggestPlayerNamesWhenNullTabCompletions();

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Shoulder Entities Release API
diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java
index a7f08bb1c0778d99f06abfd15bb4a1a8bef6d502..3adff676c85a6648fc85a088e12ea524f4567b12 100644
index abe3d91428c4a5f7e3c6fec51faf973b76896dc3..babda8f047ab134223651ddcc8e4eb8d6682a031 100644
--- a/src/main/java/org/bukkit/entity/HumanEntity.java
+++ b/src/main/java/org/bukkit/entity/HumanEntity.java
@@ -324,6 +324,26 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
@@ -300,6 +300,26 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
*/
public int getExpToLevel();

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Entity#fromMobSpawner()
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
index 4e4445d186303c06906fea68a867cc7985c69ba2..e2952209d5e98ad507628bed4fbefc3aede6045f 100644
index d2fa3628a3825b2226292bf6974866557abf799e..15e9ecd898b27d87a2d4f05c5b22de7c1b9a260c 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -609,5 +609,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
@@ -610,5 +610,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
*/
@Nullable
Location getOrigin();

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Make /plugins list alphabetical
diff --git a/src/main/java/org/bukkit/command/defaults/PluginsCommand.java b/src/main/java/org/bukkit/command/defaults/PluginsCommand.java
index bcb576a4271b1ec7b1cfe6f83cf161b7d89ed2e5..a1071e3178a298f3fc1d6c960f4d8a6d3a3d0277 100644
index e8a7f435fb30da3506b2b4fa8c5675c829edc105..4a75997f93f5c33f19200994562aaff99bdd422f 100644
--- a/src/main/java/org/bukkit/command/defaults/PluginsCommand.java
+++ b/src/main/java/org/bukkit/command/defaults/PluginsCommand.java
@@ -3,6 +3,9 @@ package org.bukkit.command.defaults;
@ -18,7 +18,7 @@ index bcb576a4271b1ec7b1cfe6f83cf161b7d89ed2e5..a1071e3178a298f3fc1d6c960f4d8a6d
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
@@ -34,23 +37,32 @@ public class PluginsCommand extends BukkitCommand {
@@ -49,24 +52,33 @@ public class PluginsCommand extends BukkitCommand {
@NotNull
private String getPluginList() {
@ -26,12 +26,12 @@ index bcb576a4271b1ec7b1cfe6f83cf161b7d89ed2e5..a1071e3178a298f3fc1d6c960f4d8a6d
- Plugin[] plugins = Bukkit.getPluginManager().getPlugins();
+ // Paper start
+ TreeMap<String, Plugin> plugins = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
+
- for (Plugin plugin : plugins) {
+ for (Plugin plugin : Bukkit.getPluginManager().getPlugins()) {
+ plugins.put(plugin.getDescription().getName(), plugin);
+ }
- for (Plugin plugin : plugins) {
+
+ StringBuilder pluginList = new StringBuilder();
+ for (Map.Entry<String, Plugin> entry : plugins.entrySet()) {
if (pluginList.length() > 0) {
@ -56,4 +56,5 @@ index bcb576a4271b1ec7b1cfe6f83cf161b7d89ed2e5..a1071e3178a298f3fc1d6c960f4d8a6d
+ return "(" + plugins.size() + "): " + pluginList.toString();
+ // Paper end
}
}
// Spigot start

View File

@ -5,10 +5,10 @@ Subject: [PATCH] LivingEntity#setKiller
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
index 52541e496bd85e041a96fd5858acbb9bddbb8196..ae712e76d961137a35b70dd3f3fbb33dddf37f0a 100644
index 5b0c95ab7372c7accd190b9052b587637106c4af..f0018823e17fab49e0167ece1c8c9eda2d562b87 100644
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
@@ -250,6 +250,15 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
@@ -251,6 +251,15 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
@Nullable
public Player getKiller();

View File

@ -14,11 +14,11 @@ it without having to shade it in the plugin and going through
several layers of logging abstraction.
diff --git a/pom.xml b/pom.xml
index 661d109f7c5b78587c68f32d47029c6d2fe7604d..20c473f521e50df57065d3644398f9db777c1a24 100644
index a7064cc7810cd3567111a1594bd316663d516dca..dfc7c2f351c895a7378b13f88ca8efcaaf38d478 100644
--- a/pom.xml
+++ b/pom.xml
@@ -109,6 +109,13 @@
<version>18.0.0</version>
<version>19.0.0</version>
<scope>provided</scope>
</dependency>
+ <!-- Paper - Add SLF4J -->

View File

@ -57,7 +57,7 @@ index 0000000000000000000000000000000000000000..7b2af1bd72dfbcf4e962a982940fc49b
+
+}
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index cb7d9f055193618c8a7e80796c2ba52651baca55..9398f303f191c57ee3e2bd33f205a881be6543f4 100644
index 4f419c7b07d771019ab2906d609772cc0f080b23..2079395c29854ec7e751d210a05f329f31ebb8ad 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -30,7 +30,7 @@ import org.jetbrains.annotations.Nullable;

View File

@ -9,7 +9,7 @@ on the real tile entity.
This is useful for where performance is needed
diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java
index 8a48572e92e311de8c799ae608c5bee681ac91a5..8154093df6f6d4180485cecf98da3af26219eab8 100644
index 2ff77abef2b25c839ddd524aa29afbc4e49d0c31..633733d7c914cf6ae988f727d644c8f2be408b02 100644
--- a/src/main/java/org/bukkit/block/Block.java
+++ b/src/main/java/org/bukkit/block/Block.java
@@ -269,6 +269,16 @@ public interface Block extends Metadatable {

View File

@ -10,10 +10,10 @@ of giving the player experience points.
Both an API To standalone mend, and apply mending logic to .giveExp has been added.
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 9398f303f191c57ee3e2bd33f205a881be6543f4..8a67375dedf9ef91216a431d87e1e6a90c6787d8 100644
index 2079395c29854ec7e751d210a05f329f31ebb8ad..444a495e53d1be036f7a1bda89bedf438be913c1 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -690,12 +690,33 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -730,12 +730,33 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public void resetPlayerWeather();

View File

@ -6,7 +6,7 @@ Subject: [PATCH] Ability to change PlayerProfile in AsyncPreLoginEvent
This will allow you to change the players name or skin on login.
diff --git a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java
index c8384da69af61e1970f254a3a9c206ee81d7a989..10292e59257d1c33cf4800d38bc24f6b35f75de1 100644
index c8384da69af61e1970f254a3a9c206ee81d7a989..16352c7dab042c5042020a06208270200f576c02 100644
--- a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java
+++ b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java
@@ -2,6 +2,9 @@ package org.bukkit.event.player;

View File

@ -6,7 +6,7 @@ Subject: [PATCH] Player.setPlayerProfile API
This can be useful for changing name or skins after a player has logged in.
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 8a67375dedf9ef91216a431d87e1e6a90c6787d8..8fe402336c2fe8d3f4d803f73b24d4848cdb3c69 100644
index 444a495e53d1be036f7a1bda89bedf438be913c1..505078ce7fa5fce981d26d07e61fc1e12fbed67a 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2,6 +2,7 @@ package org.bukkit.entity;
@ -17,7 +17,7 @@ index 8a67375dedf9ef91216a431d87e1e6a90c6787d8..8fe402336c2fe8d3f4d803f73b24d484
import org.bukkit.DyeColor;
import org.bukkit.Effect;
import org.bukkit.GameMode;
@@ -1528,6 +1529,20 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1568,6 +1569,20 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* was {@link org.bukkit.event.player.PlayerResourcePackStatusEvent.Status#SUCCESSFULLY_LOADED}
*/
boolean hasResourcePack();

View File

@ -9,10 +9,10 @@ In Offline Mode, will return an Offline UUID
This is a more performant way to obtain a UUID for a name than loading an OfflinePlayer
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 5d4fb5b9d55bfbe6bc9a9082b5cb85aa9ee86de2..f5fac807cce22819cba5878a6e2664f0f82f1ae3 100644
index d27405a8cfa590c13f5a3976c74c05655ae1f93d..4b6b1bce3a728d74f8b791efd2d981e907e202bc 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -467,6 +467,20 @@ public final class Bukkit {
@@ -489,6 +489,20 @@ public final class Bukkit {
return server.getPlayer(id);
}
@ -34,10 +34,10 @@ index 5d4fb5b9d55bfbe6bc9a9082b5cb85aa9ee86de2..f5fac807cce22819cba5878a6e2664f0
* Gets the plugin manager for interfacing with plugins.
*
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index 6778ac8e5a16eb20574732acb0cc0038ec286467..11fffc514ed1f0b00b09c0cdb5272ea79340972c 100644
index 24922e5699241e29bc615dcffadce21c89f6ff35..a2420771ca49acc08826ca60fcda7495c80cf1d5 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -396,6 +396,18 @@ public interface Server extends PluginMessageRecipient {
@@ -416,6 +416,18 @@ public interface Server extends PluginMessageRecipient {
@Nullable
public Player getPlayer(@NotNull UUID id);

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Add method to open already placed sign
diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java
index 3adff676c85a6648fc85a088e12ea524f4567b12..2d413d720c828c7f334abde7eb02935317e2fd17 100644
index babda8f047ab134223651ddcc8e4eb8d6682a031..dd7b08f985d8ac41fdce8241a3cd2c84c1555ab3 100644
--- a/src/main/java/org/bukkit/entity/HumanEntity.java
+++ b/src/main/java/org/bukkit/entity/HumanEntity.java
@@ -468,4 +468,13 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
@@ -461,4 +461,13 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
*/
@Deprecated
public void setShoulderEntityRight(@Nullable Entity entity);

View File

@ -74,7 +74,7 @@ index 58313929f81509030216a0e5e3869da63e11108e..6cf05fed701c67a2c797a4e0839c7958
/**
* Checks if this player is whitelisted or not
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 8fe402336c2fe8d3f4d803f73b24d4848cdb3c69..c37d7fca014fb0f325574a33ef4ccba67db7fe49 100644
index 505078ce7fa5fce981d26d07e61fc1e12fbed67a..2441b714d343b963c43c9f8827550e683be4a93d 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3,6 +3,10 @@ package org.bukkit.entity;
@ -88,7 +88,7 @@ index 8fe402336c2fe8d3f4d803f73b24d4848cdb3c69..c37d7fca014fb0f325574a33ef4ccba6
import org.bukkit.DyeColor;
import org.bukkit.Effect;
import org.bukkit.GameMode;
@@ -444,6 +448,162 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -484,6 +488,162 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
public void sendMap(@NotNull MapView map);
// Paper start

View File

@ -6,7 +6,7 @@ Subject: [PATCH] Additional world.getNearbyEntities API's
Provides more methods to get nearby entities, and filter by types and predicates
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 3b027f67c1763ee0a4f7b02490d3cee1c3eff369..fbe7e76c0f3122dd47c7ca4562b5ac3577a71ffc 100644
index 55d114e3a17ea623ecc0d9fa87b14c3ffc65e6be..c422cfa1b599bc4c158dea178e5677c4b4545d99 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -1,6 +1,9 @@
@ -277,7 +277,7 @@ index 3b027f67c1763ee0a4f7b02490d3cee1c3eff369..fbe7e76c0f3122dd47c7ca4562b5ac35
* Get a list of all players in this World
*
diff --git a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java
index 6c09ea6c61bdeb6149c8f2f23f15b2abb543e66e..76c4a1a6e0c0e72b0f3f75d06f179c07f863e143 100644
index 16352c7dab042c5042020a06208270200f576c02..e5b811229830e4d55b08ab18bedec1494ff342ac 100644
--- a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java
+++ b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java
@@ -42,8 +42,7 @@ public class AsyncPlayerPreLoginEvent extends Event {

View File

@ -493,10 +493,10 @@ index 0000000000000000000000000000000000000000..06f1602f5b327705f726d0a99dd6b95e
+ }
+}
diff --git a/src/main/java/org/bukkit/Particle.java b/src/main/java/org/bukkit/Particle.java
index 49467ac70a5ff6e31a8c5c3ec92de3c65fee2284..d2ceb07c727ab898e4ef1b502f9544817ce3bda6 100644
index b32de827cf8d1780861c271b4215276fdaab7165..1020002ff7127877db2d7e096f2c521751bf13a7 100644
--- a/src/main/java/org/bukkit/Particle.java
+++ b/src/main/java/org/bukkit/Particle.java
@@ -96,6 +96,17 @@ public enum Particle {
@@ -106,6 +106,17 @@ public enum Particle {
return dataType;
}
@ -515,10 +515,10 @@ index 49467ac70a5ff6e31a8c5c3ec92de3c65fee2284..d2ceb07c727ab898e4ef1b502f954481
* Options which can be applied to redstone dust particles - a particle
* color and size.
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index fbe7e76c0f3122dd47c7ca4562b5ac3577a71ffc..085c7a42c3e758770d5883e3cddf896ac6b7645b 100644
index c422cfa1b599bc4c158dea178e5677c4b4545d99..6e311dd8f1105c28be7259855e0b19ae182badfd 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -2433,7 +2433,57 @@ public interface World extends PluginMessageRecipient, Metadatable {
@@ -2501,7 +2501,57 @@ public interface World extends PluginMessageRecipient, Metadatable {
* the type of this depends on {@link Particle#getDataType()}
* @param <T> Type
*/

View File

@ -53,7 +53,7 @@ index 41e26451fe12d8e6e0ef73c85731b24b4e3f200c..86cc5025ad98f7a752c51713b7cd6a39
* Gets a {@link Permission} from its fully qualified name
*
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
index 8ddaf9c2e63b382533d7f8929023c364ff3a8f9d..8bb24f734f0bbb5df37dff2f376a450b8be9be28 100644
index 8b33d914d29897c0276f9e2e7ce83bd2c316d5e2..a7393d2830b95d7167121b02066a3f357cee6085 100644
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
@@ -492,17 +492,28 @@ public final class SimplePluginManager implements PluginManager {
@ -97,7 +97,7 @@ index 8ddaf9c2e63b382533d7f8929023c364ff3a8f9d..8bb24f734f0bbb5df37dff2f376a450b
lookupNames.clear();
dependencyGraph = GraphBuilder.directed().build();
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index e72cbde4b3225cbf17d8a9b275e0ffcaa6d86c19..32ec68b489ab1933b4375a339c77c05a3e235202 100644
index 5be6460e8eb81381c7e305cb7ab6b77c0c7a8fe5..bef88a6e2e6f7071401a3af0aec31e62aa265566 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -331,7 +331,7 @@ public final class JavaPluginLoader implements PluginLoader {

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Make shield blocking delay configurable
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
index ae712e76d961137a35b70dd3f3fbb33dddf37f0a..896b1971c86410ccc62353e44bfe5a449f8a0c97 100644
index f0018823e17fab49e0167ece1c8c9eda2d562b87..3c02de9ebca92ba03beb1dd3c04a32c745e9ea8e 100644
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
@@ -554,5 +554,19 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
@@ -575,5 +575,19 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
* @param arrows Number of arrows to stick in this entity
*/
void setArrowsStuck(int arrows);

View File

@ -106,7 +106,7 @@ index 4cf22afc3c1f1cc19b6e5350043431215908a612..ac3c8eef58872c2de840a4b7ba7d77c2
* Returns a list of entities within a bounding box centered around a Location.
*
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 085c7a42c3e758770d5883e3cddf896ac6b7645b..08985f77dce71ebd76510be873043e34ac34a821 100644
index 6e311dd8f1105c28be7259855e0b19ae182badfd..4cbea0cc7b2594ebbc555edb00a86dac6d293f91 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -1354,6 +1354,88 @@ public interface World extends PluginMessageRecipient, Metadatable {

View File

@ -6,10 +6,10 @@ Subject: [PATCH] LivingEntity Hand Raised/Item Use API
How long an entity has raised hands to charge an attack or use an item
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
index 896b1971c86410ccc62353e44bfe5a449f8a0c97..4af8e680dbcd3e0bc1ed692146b72fecbf7735ba 100644
index 3c02de9ebca92ba03beb1dd3c04a32c745e9ea8e..5f8a544574bbc095f2b2c06ccbf887d17af93475 100644
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
@@ -11,6 +11,7 @@ import org.bukkit.attribute.Attributable;
@@ -12,6 +12,7 @@ import org.bukkit.attribute.Attributable;
import org.bukkit.block.Block;
import org.bukkit.entity.memory.MemoryKey;
import org.bukkit.inventory.EntityEquipment;
@ -17,7 +17,7 @@ index 896b1971c86410ccc62353e44bfe5a449f8a0c97..4af8e680dbcd3e0bc1ed692146b72fec
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.projectiles.ProjectileSource;
@@ -568,5 +569,32 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
@@ -589,5 +590,32 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
* @param delay Delay in ticks
*/
void setShieldBlockingDelay(int delay);

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Add World.getEntity(UUID) API
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 08985f77dce71ebd76510be873043e34ac34a821..889756b1c8d5e413a6ebe3623e128a737f88d48c 100644
index 4cbea0cc7b2594ebbc555edb00a86dac6d293f91..2e52059cdf2431baac09db521b02fbc4c594eb60 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -914,6 +914,17 @@ public interface World extends PluginMessageRecipient, Metadatable {

View File

@ -7,10 +7,10 @@ Allows you to determine why an inventory was closed, enabling plugin developers
to "confirm" things based on if it was player triggered close or not.
diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java
index 2d413d720c828c7f334abde7eb02935317e2fd17..79569a329aa19ed954b9b65b78ef5d6d313501a1 100644
index dd7b08f985d8ac41fdce8241a3cd2c84c1555ab3..2668196e04a7de245c63b4b74f0d056784ef0736 100644
--- a/src/main/java/org/bukkit/entity/HumanEntity.java
+++ b/src/main/java/org/bukkit/entity/HumanEntity.java
@@ -152,6 +152,15 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
@@ -153,6 +153,15 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
*/
public void closeInventory();

View File

@ -6,7 +6,7 @@ Subject: [PATCH] Entity#getChunk API
Get the chunk the entity is currently registered to
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
index e2952209d5e98ad507628bed4fbefc3aede6045f..a8dbf282d0a8fb57f4719b9e95199894d8d3324c 100644
index 15e9ecd898b27d87a2d4f05c5b22de7c1b9a260c..d9922f0777d018f1e6c5673b9fc907fde3fbfa8d 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -3,6 +3,7 @@ package org.bukkit.entity;
@ -17,7 +17,7 @@ index e2952209d5e98ad507628bed4fbefc3aede6045f..a8dbf282d0a8fb57f4719b9e95199894
import org.bukkit.EntityEffect;
import org.bukkit.Location;
import org.bukkit.Nameable;
@@ -616,5 +617,13 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
@@ -617,5 +618,13 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
* @return True if entity spawned from a mob spawner
*/
boolean fromMobSpawner();

View File

@ -7,7 +7,7 @@ Not here to name and shame, only so server admins can be aware of which
plugins have and haven't been updated.
diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java
index 98df287bcb1462fa42b7d4a706a68d36927fbc1c..6f5601639c472db62120bab8d903620ee87f7e5c 100644
index 1b6d737046646c102b0d519ab3f67c3fbd503979..541e28a9bece0beb0c2cf02c39030840b758c6e6 100644
--- a/src/main/java/org/bukkit/UnsafeValues.java
+++ b/src/main/java/org/bukkit/UnsafeValues.java
@@ -84,5 +84,11 @@ public interface UnsafeValues {
@ -23,10 +23,10 @@ index 98df287bcb1462fa42b7d4a706a68d36927fbc1c..6f5601639c472db62120bab8d903620e
// Paper end
}
diff --git a/src/main/java/org/bukkit/command/defaults/PluginsCommand.java b/src/main/java/org/bukkit/command/defaults/PluginsCommand.java
index a1071e3178a298f3fc1d6c960f4d8a6d3a3d0277..3dcecf3a543646327c277ee2698106159b2cbc84 100644
index 4a75997f93f5c33f19200994562aaff99bdd422f..665211cb1bb27d228a43342ebca0f60e0b7f6c4b 100644
--- a/src/main/java/org/bukkit/command/defaults/PluginsCommand.java
+++ b/src/main/java/org/bukkit/command/defaults/PluginsCommand.java
@@ -59,7 +59,13 @@ public class PluginsCommand extends BukkitCommand {
@@ -74,7 +74,13 @@ public class PluginsCommand extends BukkitCommand {
pluginList.append(plugin.isEnabled() ? ChatColor.GREEN : ChatColor.RED);
@ -42,7 +42,7 @@ index a1071e3178a298f3fc1d6c960f4d8a6d3a3d0277..3dcecf3a543646327c277ee269810615
return "(" + plugins.size() + "): " + pluginList.toString();
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index 32ec68b489ab1933b4375a339c77c05a3e235202..8ff228ced356eb509b93abb7a0d3d9a26dd3e057 100644
index bef88a6e2e6f7071401a3af0aec31e62aa265566..de44d850d7b3ab3e528eb6f2de375a6c3e0e5cf9 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -315,7 +315,14 @@ public final class JavaPluginLoader implements PluginLoader {

View File

@ -16,7 +16,7 @@ which results in a hard crash.
This change removes the synchronize and adds some protection around enable/disable
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
index a8dbf282d0a8fb57f4719b9e95199894d8d3324c..b4069dbf31587786da39f5e387a71b7bc6a5d0ae 100644
index d9922f0777d018f1e6c5673b9fc907fde3fbfa8d..f3dc2f7f45bea1a91171339a5d19461735845aee 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -28,7 +28,7 @@ import org.jetbrains.annotations.Nullable;
@ -29,7 +29,7 @@ index a8dbf282d0a8fb57f4719b9e95199894d8d3324c..b4069dbf31587786da39f5e387a71b7b
*
* @return a new copy of Location containing the position of this entity
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
index 8bb24f734f0bbb5df37dff2f376a450b8be9be28..8355f9f0eb1b554bf6cfd3883afd2bdd2bf8c357 100644
index a7393d2830b95d7167121b02066a3f357cee6085..a1a805004941d67abb0b9aa1721e0370c45b5289 100644
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
@@ -462,7 +462,7 @@ public final class SimplePluginManager implements PluginManager {

View File

@ -44,7 +44,7 @@ index 95e485eea693e7648e63d198c8591d89e02e6755..0bbef14a9fc2a3ec03b4db59c8d8e1ee
* Gets the world containing this chunk
*
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 889756b1c8d5e413a6ebe3623e128a737f88d48c..e5b76d59fdcc85344cf3932b38ab096155d2eec3 100644
index 2e52059cdf2431baac09db521b02fbc4c594eb60..fe8b255aeb46e30d0a954dcd0e3e6ac29b4fd33d 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -207,6 +207,22 @@ public interface World extends PluginMessageRecipient, Metadatable {

View File

@ -8,7 +8,7 @@ Adds API's to load or generate chunks asynchronously.
Also adds utility methods to Entity to teleport asynchronously.
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index e5b76d59fdcc85344cf3932b38ab096155d2eec3..8fe496ad8f566183e2280582d00c3b7751f06d75 100644
index fe8b255aeb46e30d0a954dcd0e3e6ac29b4fd33d..eef7750fdebb4fbd156d729e4cc87f7b3d0a2ad4 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -221,6 +221,467 @@ public interface World extends PluginMessageRecipient, Metadatable {
@ -480,10 +480,10 @@ index e5b76d59fdcc85344cf3932b38ab096155d2eec3..8fe496ad8f566183e2280582d00c3b77
/**
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
index b4069dbf31587786da39f5e387a71b7bc6a5d0ae..b8e8a425a84a562ccd8431d30e39145a662c4180 100644
index f3dc2f7f45bea1a91171339a5d19461735845aee..4a7b4112192f317b2feed9dfa7713155183578b6 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -155,6 +155,33 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
@@ -156,6 +156,33 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
*/
public boolean teleport(@NotNull Entity destination, @NotNull TeleportCause cause);

View File

@ -48,7 +48,7 @@ index f87ecd0a753b0f730ee33c0dd699b7388e8c6697..07e532cde37255ffb2db368453bb69ee
* @return A new location where X/Y/Z are the center of the block
*/
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 8fe496ad8f566183e2280582d00c3b7751f06d75..08aebaedce935faa1a2c54c5abc02b85896df216 100644
index eef7750fdebb4fbd156d729e4cc87f7b3d0a2ad4..656615290c3378a853ea298d0a3b5f8d28c6a177 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -90,6 +90,38 @@ public interface World extends PluginMessageRecipient, Metadatable {
@ -91,7 +91,7 @@ index 8fe496ad8f566183e2280582d00c3b7751f06d75..08aebaedce935faa1a2c54c5abc02b85
* Gets the highest non-empty (impassable) coordinate at the given
* coordinates.
diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java
index 8154093df6f6d4180485cecf98da3af26219eab8..41f6b849186346f9a4e254122d2448a7ea8e0ee9 100644
index 633733d7c914cf6ae988f727d644c8f2be408b02..d7c7df85228c01529e266ffdd3b3bcdc9ed35774 100644
--- a/src/main/java/org/bukkit/block/Block.java
+++ b/src/main/java/org/bukkit/block/Block.java
@@ -153,6 +153,72 @@ public interface Block extends Metadatable {

View File

@ -34,7 +34,7 @@ index 07e532cde37255ffb2db368453bb69ee0a410931..6e1a1124a6e528c1a94ccb1d09bc5dcc
/**
* Sets the position of this Location and returns itself
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 08aebaedce935faa1a2c54c5abc02b85896df216..42b91634a131f8705cbde96b6068d5881a393fb7 100644
index 656615290c3378a853ea298d0a3b5f8d28c6a177..40dd88b538e9d9f7684f65415cf18e9b416e28de 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -254,6 +254,17 @@ public interface World extends PluginMessageRecipient, Metadatable {

View File

@ -65,10 +65,10 @@ index 0000000000000000000000000000000000000000..18a96dbb01d3b34476652264b2d6be37
+ }
+}
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
index 4af8e680dbcd3e0bc1ed692146b72fecbf7735ba..5e9ca6f3d5aac2d119808eb03cfc00367306f5e4 100644
index 5f8a544574bbc095f2b2c06ccbf887d17af93475..c75ce8435ddef6502df1a57ca4b95186259a2a41 100644
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
@@ -81,6 +81,77 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
@@ -82,6 +82,77 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
@NotNull
public Block getTargetBlock(@Nullable Set<Material> transparent, int maxDistance);

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Expose attack cooldown methods for Player
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index c37d7fca014fb0f325574a33ef4ccba67db7fe49..3600b4c84058713616a6448c1175a7d1ba74fd7b 100644
index 2441b714d343b963c43c9f8827550e683be4a93d..dec87413b5c22c95524a1b1f70fdd1ef016a6791 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -1703,6 +1703,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1743,6 +1743,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param profile The new profile to use
*/
void setPlayerProfile(@NotNull PlayerProfile profile);

View File

@ -5,18 +5,18 @@ Subject: [PATCH] Material API additions
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
index 57b0d98121cea592dded31165e5e70f6b3bbdaa5..b89fc2dc0b186b99f76d9bf8b1f5daad3e211dfb 100644
index cedb719856573a9284443626d8823201125c895d..3a8438fb674006a5cbfd977a1cd016117691f0ee 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
@@ -82,6 +82,7 @@ import org.jetbrains.annotations.Nullable;
@@ -85,6 +85,7 @@ import org.jetbrains.annotations.Nullable;
/**
* An enum of all material IDs accepted by the official server and client
*/
+@SuppressWarnings({"DeprecatedIsStillUsed", "deprecation"}) // Paper
public enum Material implements Keyed {
//<editor-fold desc="Materials" defaultstate="collapsed">
ACACIA_BOAT(27326, 1),
@@ -3306,6 +3307,22 @@ public enum Material implements Keyed {
AIR(9648, 0),
@@ -3563,6 +3564,22 @@ public enum Material implements Keyed {
}
}

View File

@ -204,10 +204,10 @@ index 0000000000000000000000000000000000000000..c91ea2a0679a7f3a5627b5a008e0b39d
+}
diff --git a/src/main/java/com/destroystokyo/paper/MaterialTags.java b/src/main/java/com/destroystokyo/paper/MaterialTags.java
new file mode 100644
index 0000000000000000000000000000000000000000..88556fdb6fa8f21355c49a77d5f4638216fbf156
index 0000000000000000000000000000000000000000..e72fc52240015051fe58b246fcf5c014f3330f0a
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/MaterialTags.java
@@ -0,0 +1,374 @@
@@ -0,0 +1,410 @@
+/*
+ * Copyright (c) 2018 Daniel Ennis (Aikar) MIT License
+ *
@ -253,7 +253,7 @@ index 0000000000000000000000000000000000000000..88556fdb6fa8f21355c49a77d5f46382
+ .ensureSize("ARROWS", 3);
+
+ /**
+ * Cover all 16 colors of beds.
+ * Covers all colors of beds.
+ */
+ public static final MaterialSetTag BEDS = new MaterialSetTag(keyFor("beds"))
+ .endsWith("_BED")
@ -286,14 +286,14 @@ index 0000000000000000000000000000000000000000..88556fdb6fa8f21355c49a77d5f46382
+ .add(Material.COBBLESTONE, Material.MOSSY_COBBLESTONE);
+
+ /**
+ * Covers all 16 colors of concrete.
+ * Covers all colors of concrete.
+ */
+ public static final MaterialSetTag CONCRETES = new MaterialSetTag(keyFor("concretes"))
+ .endsWith("_CONCRETE")
+ .ensureSize("CONCRETES", 16);
+
+ /**
+ * Covers all 16 colors of concrete powder.
+ * Covers all colors of concrete powder.
+ */
+ public static final MaterialSetTag CONCRETE_POWDER = new MaterialSetTag(keyFor("concrete_powder"))
+ .endsWith("_CONCRETE_POWDER")
@ -306,28 +306,28 @@ index 0000000000000000000000000000000000000000..88556fdb6fa8f21355c49a77d5f46382
+ .add(Material.COOKED_COD, Material.COOKED_SALMON);
+
+ /**
+ * Covers all 16 dyes.
+ * Covers all dyes.
+ */
+ public static final MaterialSetTag DYES = new MaterialSetTag(keyFor("dyes"))
+ .endsWith("_DYE")
+ .ensureSize("DYES", 16);
+
+ /**
+ * Covers all 6 wood variants of gates.
+ * Covers all variants of gates.
+ */
+ public static final MaterialSetTag FENCE_GATES = new MaterialSetTag(keyFor("fence_gates"))
+ .endsWith("_GATE")
+ .ensureSize("FENCE_GATES", 6);
+ .ensureSize("FENCE_GATES", 8);
+
+ /**
+ * Covers all 6 wood variants and nether brick fence.
+ * Covers all variants of fences.
+ */
+ public static final MaterialSetTag FENCES = new MaterialSetTag(keyFor("fences"))
+ .endsWith("_FENCE")
+ .ensureSize("FENCES", 7);
+ .ensureSize("FENCES", 9);
+
+ /**
+ * Covers all 4 variants of fish buckets.
+ * Covers all variants of fish buckets.
+ */
+ 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);
@ -341,21 +341,21 @@ index 0000000000000000000000000000000000000000..88556fdb6fa8f21355c49a77d5f46382
+ .ensureSize("GLASS", 17);
+
+ /**
+ * Covers the non-colored glass panes and 16 stained glass panes (panes only).
+ * Covers the non-colored glass panes and stained glass panes (panes only).
+ */
+ public static final MaterialSetTag GLASS_PANES = new MaterialSetTag(keyFor("glass_panes"))
+ .endsWith("GLASS_PANE")
+ .ensureSize("GLASS_PANES", 17);
+
+ /**
+ * Covers all 16 glazed terracotta blocks.
+ * Covers all glazed terracotta blocks.
+ */
+ public static final MaterialSetTag GLAZED_TERRACOTTA = new MaterialSetTag(keyFor("glazed_terracotta"))
+ .endsWith("GLAZED_TERRACOTTA")
+ .ensureSize("GLAZED_TERRACOTTA", 16);
+
+ /**
+ * Covers the 16 colors of stained terracotta.
+ * Covers the colors of stained terracotta.
+ */
+ public static final MaterialSetTag STAINED_TERRACOTTA = new MaterialSetTag(keyFor("stained_terracotta"))
+ .endsWith("TERRACOTTA")
@ -364,7 +364,7 @@ index 0000000000000000000000000000000000000000..88556fdb6fa8f21355c49a77d5f46382
+ .ensureSize("STAINED_TERRACOTTA", 16);
+
+ /**
+ * Covers terracotta along with the 16 stained variants.
+ * Covers terracotta along with the stained variants.
+ */
+ public static final MaterialSetTag TERRACOTTA = new MaterialSetTag(keyFor("terracotta"))
+ .endsWith("TERRACOTTA")
@ -379,21 +379,21 @@ index 0000000000000000000000000000000000000000..88556fdb6fa8f21355c49a77d5f46382
+ .ensureSize("GOLDEN_APPLES", 2);
+
+ /**
+ * Covers the 3 variants of horse armor.
+ * Covers the variants of horse armor.
+ */
+ public static final MaterialSetTag HORSE_ARMORS = new MaterialSetTag(keyFor("horse_armors"))
+ .endsWith("_HORSE_ARMOR")
+ .ensureSize("HORSE_ARMORS", 4);
+
+ /**
+ * Covers the 6 variants of infested blocks.
+ * Covers the variants of infested blocks.
+ */
+ public static final MaterialSetTag INFESTED_BLOCKS = new MaterialSetTag(keyFor("infested_blocks"))
+ .startsWith("INFESTED_")
+ .ensureSize("INFESTED_BLOCKS", 6);
+
+ /**
+ * Covers the 3 variants of mushroom blocks.
+ * Covers the variants of mushroom blocks.
+ */
+ public static final MaterialSetTag MUSHROOM_BLOCKS = new MaterialSetTag(keyFor("mushroom_blocks"))
+ .endsWith("MUSHROOM_BLOCK")
@ -401,24 +401,24 @@ index 0000000000000000000000000000000000000000..88556fdb6fa8f21355c49a77d5f46382
+ .ensureSize("MUSHROOM_BLOCKS", 3);
+
+ /**
+ * Covers both mushrooms.
+ * Covers all mushrooms.
+ */
+ public static final MaterialSetTag MUSHROOMS = new MaterialSetTag(keyFor("mushrooms"))
+ .add(Material.BROWN_MUSHROOM, Material.RED_MUSHROOM);
+
+ /**
+ * Covers all 12 music disc items.
+ * Covers all music disc items.
+ */
+ public static final MaterialSetTag MUSIC_DISCS = new MaterialSetTag(keyFor("music_discs"))
+ .startsWith("MUSIC_DISC_")
+ .ensureSize("MUSIC_DISCS", 12);
+ .startsWith("MUSIC_DISC_");
+
+ /**
+ * Covers all 8 ores.
+ * Covers all ores.
+ */
+ public static final MaterialSetTag ORES = new MaterialSetTag(keyFor("ores"))
+ .add(Material.ANCIENT_DEBRIS)
+ .endsWith("_ORE")
+ .ensureSize("ORES", 8);
+ .ensureSize("ORES", 10);
+
+ /**
+ * Covers all piston typed items and blocks including the piston head and moving piston.
@ -435,38 +435,38 @@ index 0000000000000000000000000000000000000000..88556fdb6fa8f21355c49a77d5f46382
+ .ensureSize("POTATOES", 3);
+
+ /**
+ * Covers all 6 wooden pressure plates and the 2 weighted pressure plates and 1 stone pressure plate.
+ * Covers all wooden pressure plates and the weighted pressure plates and the stone pressure plate.
+ */
+ public static final MaterialSetTag PRESSURE_PLATES = new MaterialSetTag(keyFor("pressure_plates"))
+ .endsWith("_PRESSURE_PLATE")
+ .ensureSize("PRESSURE_PLATES", 9);
+ .ensureSize("PRESSURE_PLATES", 12);
+
+ /**
+ * Covers the 3 variants of prismarine blocks.
+ * Covers the variants of prismarine blocks.
+ */
+ public static final MaterialSetTag PRISMARINE = new MaterialSetTag(keyFor("prismarine"))
+ .add(Material.PRISMARINE, Material.PRISMARINE_BRICKS, Material.DARK_PRISMARINE);
+
+ /**
+ * Covers the 3 variants of prismarine slabs.
+ * Covers the variants of prismarine slabs.
+ */
+ public static final MaterialSetTag PRISMARINE_SLABS = new MaterialSetTag(keyFor("prismarine_slabs"))
+ .add(Material.PRISMARINE_SLAB, Material.PRISMARINE_BRICK_SLAB, Material.DARK_PRISMARINE_SLAB);
+
+ /**
+ * Covers the 3 variants of prismarine stairs.
+ * Covers the variants of prismarine stairs.
+ */
+ public static final MaterialSetTag PRISMARINE_STAIRS = new MaterialSetTag(keyFor("prismarine_stairs"))
+ .add(Material.PRISMARINE_STAIRS, Material.PRISMARINE_BRICK_STAIRS, Material.DARK_PRISMARINE_STAIRS);
+
+ /**
+ * Covers the 3 variants of pumpkins.
+ * Covers the variants of pumpkins.
+ */
+ public static final MaterialSetTag PUMPKINS = new MaterialSetTag(keyFor("pumpkins"))
+ .add(Material.CARVED_PUMPKIN, Material.JACK_O_LANTERN, Material.PUMPKIN);
+
+ /**
+ * Covers the 4 variants of quartz blocks.
+ * Covers the variants of quartz blocks.
+ */
+ 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);
@ -478,14 +478,14 @@ index 0000000000000000000000000000000000000000..88556fdb6fa8f21355c49a77d5f46382
+ .add(Material.COD, Material.PUFFERFISH, Material.SALMON, Material.TROPICAL_FISH);
+
+ /**
+ * Covers the 4 variants of red sandstone blocks.
+ * Covers the variants of red sandstone blocks.
+ */
+ public static final MaterialSetTag RED_SANDSTONES = new MaterialSetTag(keyFor("red_sandstones"))
+ .endsWith("RED_SANDSTONE")
+ .ensureSize("RED_SANDSTONES", 4);
+
+ /**
+ * Covers the 4 variants of sandstone blocks.
+ * Covers the variants of sandstone blocks.
+ */
+ public static final MaterialSetTag SANDSTONES = new MaterialSetTag(keyFor("sandstones"))
+ .add(Material.SANDSTONE, Material.CHISELED_SANDSTONE, Material.CUT_SANDSTONE, Material.SMOOTH_SANDSTONE);
@ -498,7 +498,7 @@ index 0000000000000000000000000000000000000000..88556fdb6fa8f21355c49a77d5f46382
+ .ensureSize("SPONGES", 2);
+
+ /**
+ * Covers the non-colored and 16 colored shulker boxes.
+ * Covers the non-colored and colored shulker boxes.
+ */
+ public static final MaterialSetTag SHULKER_BOXES = new MaterialSetTag(keyFor("shulker_boxes"))
+ .endsWith("SHULKER_BOX")
@ -518,65 +518,101 @@ index 0000000000000000000000000000000000000000..88556fdb6fa8f21355c49a77d5f46382
+ */
+ public static final MaterialSetTag SPAWN_EGGS = new MaterialSetTag(keyFor("spawn_eggs"))
+ .endsWith("_SPAWN_EGG")
+ .ensureSize("SPAWN_EGGS", 59);
+ .ensureSize("SPAWN_EGGS", 63);
+
+ /**
+ * Covers all 16 colors of stained glass.
+ * Covers all colors of stained glass.
+ */
+ public static final MaterialSetTag STAINED_GLASS = new MaterialSetTag(keyFor("stained_glass"))
+ .endsWith("_STAINED_GLASS")
+ .ensureSize("STAINED_GLASS", 16);
+
+ /**
+ * Covers all 16 colors of stained glass panes.
+ * Covers all colors of stained glass panes.
+ */
+ public static final MaterialSetTag STAINED_GLASS_PANES = new MaterialSetTag(keyFor("stained_glass_panes"))
+ .endsWith("STAINED_GLASS_PANE")
+ .ensureSize("STAINED_GLASS_PANES", 16);
+
+ /**
+ * Covers all 7 variants of trapdoors.
+ * Covers all variants of trapdoors.
+ */
+ public static final MaterialSetTag TRAPDOORS = new MaterialSetTag(keyFor("trapdoors"))
+ .endsWith("_TRAPDOOR")
+ .ensureSize("TRAPDOORS", 7);
+ .ensureSize("TRAPDOORS", 9);
+
+ /**
+ * Covers all 6 wood variants of fences.
+ * Covers all wood variants of fences.
+ */
+ public static final MaterialSetTag WOODEN_FENCES = new MaterialSetTag(keyFor("wooden_fences"))
+ .endsWith("_FENCE")
+ .not(Material.NETHER_BRICK_FENCE)
+ .ensureSize("WOODEN_FENCES", 6);
+ .ensureSize("WOODEN_FENCES", 8);
+
+ /**
+ * Covers all 6 wood variants of trapdoors.
+ * Covers all wood variants of trapdoors.
+ */
+ public static final MaterialSetTag WOODEN_TRAPDOORS = new MaterialSetTag(keyFor("wooden_trapdoors"))
+ .endsWith("_TRAPDOOR")
+ .not(Material.IRON_TRAPDOOR)
+ .ensureSize("WOODEN_TRAPDOORS", 6);
+ .ensureSize("WOODEN_TRAPDOORS", 8);
+
+ /**
+ * Covers the wood variants of gates.
+ */
+ public static final MaterialSetTag WOODEN_GATES = new MaterialSetTag(keyFor("wooden_gates"))
+ .endsWith("_GATE")
+ .ensureSize("WOODEN_GATES", 6);
+ .ensureSize("WOODEN_GATES", 8);
+
+ /**
+ * Covers the variants of purpur.
+ */
+ public static final MaterialSetTag PURPUR = new MaterialSetTag(keyFor("purpur"))
+ .startsWith("PURPUR_")
+ .ensureSize("PURPUR", 4);
+
+ /**
+ * Covers the variants of signs.
+ */
+ public static final MaterialSetTag SIGNS = new MaterialSetTag(keyFor("signs"))
+ .endsWith("_SIGN")
+ .ensureSize("SIGNS", 12);
+ .ensureSize("SIGNS", 16);
+
+ /**
+ * Covers the variants of a regular torch.
+ */
+ public static final MaterialSetTag TORCH = new MaterialSetTag(keyFor("torch"))
+ .add(Material.TORCH, Material.WALL_TORCH)
+ .ensureSize("TORCH", 2);
+
+ /**
+ * Covers the variants of a redstone torch.
+ */
+ public static final MaterialSetTag REDSTONE_TORCH = new MaterialSetTag(keyFor("restone_torch"))
+ .add(Material.REDSTONE_TORCH, Material.REDSTONE_WALL_TORCH)
+ .ensureSize("REDSTONE_TORCH", 2);
+
+ /**
+ * Covers the variants of a soul torch.
+ */
+ public static final MaterialSetTag SOUL_TORCH = new MaterialSetTag(keyFor("soul_torch"))
+ .add(Material.SOUL_TORCH, Material.SOUL_WALL_TORCH)
+ .ensureSize("SOUL_TORCH", 2);
+
+ /**
+ * Covers the variants of torches.
+ */
+ public static final MaterialSetTag TORCHES = new MaterialSetTag(keyFor("torches"))
+ .add(TORCH, REDSTONE_TORCH, SOUL_TORCH)
+ .ensureSize("TORCHES", 6);
+
+ /**
+ * Covers the variants of lanterns.
+ */
+ public static final MaterialSetTag LANTERNS = new MaterialSetTag(keyFor("lanterns"))
+ .add(Material.LANTERN, Material.SOUL_LANTERN)
+ .ensureSize("LANTERNS", 2);
+
+ @SuppressWarnings("unchecked")
+ public static final MaterialSetTag COLORABLE = new MaterialSetTag(keyFor("colorable"))
+ .add(Tag.WOOL, Tag.CARPETS).add(SHULKER_BOXES, STAINED_GLASS, STAINED_GLASS_PANES, CONCRETES, BEDS);

View File

@ -49,10 +49,10 @@ index 0000000000000000000000000000000000000000..f52644fab1522bdf83ff4f489e9805b2
+ }
+}
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
index 5e9ca6f3d5aac2d119808eb03cfc00367306f5e4..deab505250145e795ef14537c5d453c1703f80aa 100644
index c75ce8435ddef6502df1a57ca4b95186259a2a41..cda3ab0924b27bcd3ccfec4b0eb19ef1c24f18fb 100644
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
@@ -150,6 +150,50 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
@@ -151,6 +151,50 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
*/
@Nullable
public com.destroystokyo.paper.block.TargetBlockInfo getTargetBlockInfo(int maxDistance, @NotNull com.destroystokyo.paper.block.TargetBlockInfo.FluidMode fluidMode);

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Add sun related API
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 42b91634a131f8705cbde96b6068d5881a393fb7..f9a5ea4fcdb87e741cf04b47d469e05f8a786155 100644
index 40dd88b538e9d9f7684f65415cf18e9b416e28de..8d951577c0797d299951f7fd2448121710f07e6b 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -1755,6 +1755,16 @@ public interface World extends PluginMessageRecipient, Metadatable {

View File

@ -6,21 +6,22 @@ Subject: [PATCH] Implement getters and setters for EntityItem owner and
diff --git a/src/main/java/org/bukkit/entity/Item.java b/src/main/java/org/bukkit/entity/Item.java
index cb9e9f369e041cd9e5835cac7909db482295083c..a15f70ff4ef74e9e14fcc03850c477557b15285c 100644
index ae3880491682067d4c5baef0a8c90b1036d67ac0..acd80d812fe88dee3978d19b24149e9fe0ac596b 100644
--- a/src/main/java/org/bukkit/entity/Item.java
+++ b/src/main/java/org/bukkit/entity/Item.java
@@ -4,6 +4,10 @@ import org.bukkit.inventory.ItemStack;
@@ -3,6 +3,11 @@ package org.bukkit.entity;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+// Paper start
+import org.jetbrains.annotations.Nullable;
+import java.util.UUID;
+// Paper end
+
/**
* Represents a dropped item.
*/
@@ -52,5 +56,35 @@ public interface Item extends Entity {
@@ -51,5 +56,35 @@ public interface Item extends Entity {
* @param canMobPickup True to allow non-player entity pickup
*/
public void setCanMobPickup(boolean canMobPickup);

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Make the default permission message configurable
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index f5fac807cce22819cba5878a6e2664f0f82f1ae3..e83f0852d187524a0068a81875323b01e3fd5cbd 100644
index 4b6b1bce3a728d74f8b791efd2d981e907e202bc..e372ca2339bc25d6110bf95e159703630acca215 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -1615,6 +1615,15 @@ public final class Bukkit {
@@ -1647,6 +1647,15 @@ public final class Bukkit {
return server.suggestPlayerNamesWhenNullTabCompletions();
}
@ -25,10 +25,10 @@ index f5fac807cce22819cba5878a6e2664f0f82f1ae3..e83f0852d187524a0068a81875323b01
* Creates a PlayerProfile for the specified uuid, with name as null
* @param uuid UUID to create profile for
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index 11fffc514ed1f0b00b09c0cdb5272ea79340972c..fa855cacec894a0efb254e8a9729a9787464f17d 100644
index a2420771ca49acc08826ca60fcda7495c80cf1d5..8bbb2efe835b575733b560fe5e2b824e1a859d09 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -1414,6 +1414,13 @@ public interface Server extends PluginMessageRecipient {
@@ -1442,6 +1442,13 @@ public interface Server extends PluginMessageRecipient {
*/
boolean suggestPlayerNamesWhenNullTabCompletions();

View File

@ -10,10 +10,10 @@ persistenting Living Entity, SPAWNER for spawners,
or DEFAULT since data was not stored.
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
index b8e8a425a84a562ccd8431d30e39145a662c4180..3f0f38031000a4eda25584d069939f40fbfb026b 100644
index 4a7b4112192f317b2feed9dfa7713155183578b6..d4c776f32caf0491670175a79584c73dd2c7fcca 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -652,5 +652,11 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
@@ -653,5 +653,11 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
*/
@NotNull
Chunk getChunk();

View File

@ -9,10 +9,10 @@ a ton of noise to plugin developers.
These do not help plugin developers if they bring moise noise than value.
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index e83f0852d187524a0068a81875323b01e3fd5cbd..6658c12b87472a7fa58a6ca70ab0189083e75242 100644
index e372ca2339bc25d6110bf95e159703630acca215..12603c91046abf1ab58e8b797904b2cdafa7c9af 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -1211,7 +1211,7 @@ public final class Bukkit {
@@ -1243,7 +1243,7 @@ public final class Bukkit {
*
* @return the scoreboard manager or null if no worlds are loaded.
*/
@ -21,7 +21,7 @@ index e83f0852d187524a0068a81875323b01e3fd5cbd..6658c12b87472a7fa58a6ca70ab01890
public static ScoreboardManager getScoreboardManager() {
return server.getScoreboardManager();
}
@@ -1508,7 +1508,7 @@ public final class Bukkit {
@@ -1540,7 +1540,7 @@ public final class Bukkit {
* @param clazz the class of the tag entries
* @return the tag or null
*/
@ -62,10 +62,10 @@ index 6e1a1124a6e528c1a94ccb1d09bc5dccf056b0b8..77d9cd0a1f54b5eb233eddbcff1bfa76
if (this.world == null) {
return null;
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index fa855cacec894a0efb254e8a9729a9787464f17d..df37b9ee57ff8cd194401719bc48f868d6b1ee7e 100644
index 8bbb2efe835b575733b560fe5e2b824e1a859d09..b46644bc97122814f80a44e6ff0b848f4cf132b7 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -1014,7 +1014,7 @@ public interface Server extends PluginMessageRecipient {
@@ -1042,7 +1042,7 @@ public interface Server extends PluginMessageRecipient {
*
* @return the scoreboard manager or null if no worlds are loaded.
*/
@ -74,7 +74,7 @@ index fa855cacec894a0efb254e8a9729a9787464f17d..df37b9ee57ff8cd194401719bc48f868
ScoreboardManager getScoreboardManager();
/**
@@ -1284,7 +1284,7 @@ public interface Server extends PluginMessageRecipient {
@@ -1312,7 +1312,7 @@ public interface Server extends PluginMessageRecipient {
* @param clazz the class of the tag entries
* @return the tag or null
*/

View File

@ -89,7 +89,7 @@ index 77d9cd0a1f54b5eb233eddbcff1bfa76bc182e9a..5904750329a5c7061de6e4fe32335b0d
* Creates explosion at this location with given power
*
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index f9a5ea4fcdb87e741cf04b47d469e05f8a786155..0a5865d85dfc28cb68f753878608b12afd74bc99 100644
index 8d951577c0797d299951f7fd2448121710f07e6b..90e41bead6a51ab1f272af806c396d8411a96eb7 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -160,6 +160,87 @@ public interface World extends PluginMessageRecipient, Metadatable {

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Expose the internal current tick
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 6658c12b87472a7fa58a6ca70ab0189083e75242..b997340686e86e05847bedcbf125e070c569b90a 100644
index 12603c91046abf1ab58e8b797904b2cdafa7c9af..6a0fee5e81e4d97b624af2718595b63e4d7a95b2 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -1657,6 +1657,10 @@ public final class Bukkit {
@@ -1689,6 +1689,10 @@ public final class Bukkit {
public static com.destroystokyo.paper.profile.PlayerProfile createProfile(@Nullable UUID uuid, @Nullable String name) {
return server.createProfile(uuid, name);
}
@ -20,10 +20,10 @@ index 6658c12b87472a7fa58a6ca70ab0189083e75242..b997340686e86e05847bedcbf125e070
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index df37b9ee57ff8cd194401719bc48f868d6b1ee7e..80f9abdca71bba79cbf09035cfd5534e41002a27 100644
index b46644bc97122814f80a44e6ff0b848f4cf132b7..ea6c86c8979ea6253b00c99b4f9cfcd1621beff0 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -1448,5 +1448,12 @@ public interface Server extends PluginMessageRecipient {
@@ -1476,5 +1476,12 @@ public interface Server extends PluginMessageRecipient {
*/
@NotNull
com.destroystokyo.paper.profile.PlayerProfile createProfile(@Nullable UUID uuid, @Nullable String name);

View File

@ -57,10 +57,10 @@ index 0000000000000000000000000000000000000000..f0067c2e953d18e1a33536980071ba3f
+ }
+}
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
index deab505250145e795ef14537c5d453c1703f80aa..7f73e4b92bc7456477d054e69e93e5602d88a8fa 100644
index cda3ab0924b27bcd3ccfec4b0eb19ef1c24f18fb..a60523cc9c05396ce5c3ebabd231f3ca374c3efe 100644
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
@@ -711,5 +711,25 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
@@ -732,5 +732,25 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
* @return Whether or not this entity is using or charging an attack (Bow pulled back, drinking potion, eating food)
*/
boolean isHandRaised();

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Add tick times API
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index b997340686e86e05847bedcbf125e070c569b90a..c3c2d9c6b546459a614b5fdf5ec3debf4ebcabcf 100644
index 6a0fee5e81e4d97b624af2718595b63e4d7a95b2..eb2fb4cdc4e7585017acfce0198bb0746d2255cc 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -1412,6 +1412,25 @@ public final class Bukkit {
@@ -1444,6 +1444,25 @@ public final class Bukkit {
public static double[] getTPS() {
return server.getTPS();
}
@ -35,10 +35,10 @@ index b997340686e86e05847bedcbf125e070c569b90a..c3c2d9c6b546459a614b5fdf5ec3debf
/**
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index 80f9abdca71bba79cbf09035cfd5534e41002a27..bfa83c9bb4d5f1ff4591e80fd38942d6c88cf960 100644
index ea6c86c8979ea6253b00c99b4f9cfcd1621beff0..8cb38856d85e9239a132234fdc6af88f3adfe5b7 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -1188,6 +1188,21 @@ public interface Server extends PluginMessageRecipient {
@@ -1216,6 +1216,21 @@ public interface Server extends PluginMessageRecipient {
*/
@NotNull
public double[] getTPS();

View File

@ -6,10 +6,10 @@ Subject: [PATCH] Expose MinecraftServer#isRunning
This allows for plugins to detect if the server is actually turning off in onDisable rather than just plugins reloading.
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index c3c2d9c6b546459a614b5fdf5ec3debf4ebcabcf..ea3e5d6fa56a7ff259a9ce55a8e31d3921768b8b 100644
index eb2fb4cdc4e7585017acfce0198bb0746d2255cc..600334831293793840511992048c43bff1febc24 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -1680,6 +1680,15 @@ public final class Bukkit {
@@ -1712,6 +1712,15 @@ public final class Bukkit {
public static int getCurrentTick() {
return server.getCurrentTick();
}
@ -26,10 +26,10 @@ index c3c2d9c6b546459a614b5fdf5ec3debf4ebcabcf..ea3e5d6fa56a7ff259a9ce55a8e31d39
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index bfa83c9bb4d5f1ff4591e80fd38942d6c88cf960..9ceaac0e859e347b07fa9f4c6507a73deb280670 100644
index 8cb38856d85e9239a132234fdc6af88f3adfe5b7..f44a582e954625a12b19d4e142865e5d3154edd5 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -1470,5 +1470,12 @@ public interface Server extends PluginMessageRecipient {
@@ -1498,5 +1498,12 @@ public interface Server extends PluginMessageRecipient {
* @return Current tick
*/
int getCurrentTick();

View File

@ -11,7 +11,7 @@ errors.
This isn't an issue on Spigot
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
index 8355f9f0eb1b554bf6cfd3883afd2bdd2bf8c357..4931bc86d44cd697d458d6e365c3b8030ea8285d 100644
index a1a805004941d67abb0b9aa1721e0370c45b5289..26685f59b235ea5b4c4fb7ae21acb5149edaa2b3 100644
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
@@ -591,7 +591,7 @@ public final class SimplePluginManager implements PluginManager {

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Make JavaPluginLoader thread-safe
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index 8ff228ced356eb509b93abb7a0d3d9a26dd3e057..ba2c5c6eee6fc9f7c96c3ab304d8a1fc759ccd77 100644
index de44d850d7b3ab3e528eb6f2de375a6c3e0e5cf9..9d1f7cdf12029c8198792fd299f92be476040222 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -52,6 +52,8 @@ public final class JavaPluginLoader implements PluginLoader {

View File

@ -176,7 +176,7 @@ index 0000000000000000000000000000000000000000..f7f171c4ee0b8339b2f8fbe82442d65f
+ }
+}
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 3600b4c84058713616a6448c1175a7d1ba74fd7b..787bb144b5918ef1e46d69cb72b84128d2b678f3 100644
index dec87413b5c22c95524a1b1f70fdd1ef016a6791..2eb3121386e3bc5ccdd74726a7c4b5f832ec5aea 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -1,6 +1,7 @@
@ -187,7 +187,7 @@ index 3600b4c84058713616a6448c1175a7d1ba74fd7b..787bb144b5918ef1e46d69cb72b84128
import com.destroystokyo.paper.Title; // Paper
import com.destroystokyo.paper.profile.PlayerProfile; // Paper
import java.util.Date; // Paper
@@ -1723,6 +1724,12 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1763,6 +1764,12 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* Reset the cooldown counter to 0, effectively starting the cooldown period.
*/
void resetCooldown();

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Expose game version
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index ea3e5d6fa56a7ff259a9ce55a8e31d3921768b8b..95ad0122605b40e28352fa6205528eeb5c453a50 100644
index 600334831293793840511992048c43bff1febc24..c0421b5a09c25ad4f23387b8b0e035871a9d367b 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -118,6 +118,18 @@ public final class Bukkit {
@ -28,7 +28,7 @@ index ea3e5d6fa56a7ff259a9ce55a8e31d3921768b8b..95ad0122605b40e28352fa6205528eeb
* Gets a view of all currently logged in players. This {@linkplain
* Collections#unmodifiableCollection(Collection) view} is a reused
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index 9ceaac0e859e347b07fa9f4c6507a73deb280670..c3fb1c27187b5283e2fd5c2b894bbc889a48544d 100644
index f44a582e954625a12b19d4e142865e5d3154edd5..0ad848c42039eeed64cc0b8372d3a9331e61d286 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -97,6 +97,16 @@ public interface Server extends PluginMessageRecipient {

View File

@ -227,10 +227,10 @@ index 0000000000000000000000000000000000000000..e21f7574763dd4f13794f91bbef192ef
+}
diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
new file mode 100644
index 0000000000000000000000000000000000000000..d23ad96ee436ae57231bbf88eed19487dec06780
index 0000000000000000000000000000000000000000..d7f1b2c84aebe8ed04084b9249ed08d5e52a6ecd
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
@@ -0,0 +1,198 @@
@@ -0,0 +1,208 @@
+package com.destroystokyo.paper.entity.ai;
+
+import com.destroystokyo.paper.entity.RangedEntity;
@ -319,7 +319,15 @@ index 0000000000000000000000000000000000000000..d23ad96ee436ae57231bbf88eed19487
+ GoalKey<Phantom> PHANTOM_ATTACK_STRATEGY = GoalKey.of(Phantom.class, NamespacedKey.minecraft("phantom_attack_strategy"));
+ GoalKey<Phantom> PHANTOM_CIRCLE_AROUND_ANCHOR = GoalKey.of(Phantom.class, NamespacedKey.minecraft("phantom_circle_around_anchor"));
+ GoalKey<Phantom> PHANTOM_SWEEP_ATTACK = GoalKey.of(Phantom.class, NamespacedKey.minecraft("phantom_sweep_attack"));
+ /**
+ * @deprecated removed in 1.16
+ */
+ @Deprecated
+ GoalKey<PigZombie> ANGER = GoalKey.of(PigZombie.class, NamespacedKey.minecraft("anger"));
+ /**
+ * @deprecated removed in 1.16
+ */
+ @Deprecated
+ GoalKey<PigZombie> ANGER_OTHER = GoalKey.of(PigZombie.class, NamespacedKey.minecraft("anger_other"));
+ GoalKey<PolarBear> POLARBEAR_ATTACK_PLAYERS = GoalKey.of(PolarBear.class, NamespacedKey.minecraft("polarbear_attack_players"));
+ GoalKey<PolarBear> POLARBEAR_HURT_BY = GoalKey.of(PolarBear.class, NamespacedKey.minecraft("polarbear_hurt_by"));
@ -428,12 +436,14 @@ index 0000000000000000000000000000000000000000..d23ad96ee436ae57231bbf88eed19487
+ GoalKey<Creature> WATER = GoalKey.of(Creature.class, NamespacedKey.minecraft("water"));
+ GoalKey<Dolphin> WATER_JUMP = GoalKey.of(Dolphin.class, NamespacedKey.minecraft("water_jump"));
+ GoalKey<Zombie> ZOMBIE_ATTACK = GoalKey.of(Zombie.class, NamespacedKey.minecraft("zombie_attack"));
+ GoalKey<Creature> STROLL_VILLAGE_GOLEM = GoalKey.of(Creature.class, NamespacedKey.minecraft("stroll_village_golem"));
+ GoalKey<Mob> UNIVERSAL_ANGER_RESET = GoalKey.of(Mob.class, NamespacedKey.minecraft("universal_anger_reset"));
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 95ad0122605b40e28352fa6205528eeb5c453a50..a9c10228eeeaac89361c695a5ab90161b6358ca1 100644
index c0421b5a09c25ad4f23387b8b0e035871a9d367b..329e2dd1c057788d6bb5a1adc7ee9282820e927d 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -1701,6 +1701,16 @@ public final class Bukkit {
@@ -1733,6 +1733,16 @@ public final class Bukkit {
public static boolean isStopping() {
return server.isStopping();
}
@ -451,10 +461,10 @@ index 95ad0122605b40e28352fa6205528eeb5c453a50..a9c10228eeeaac89361c695a5ab90161
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index c3fb1c27187b5283e2fd5c2b894bbc889a48544d..cc06492f46ba5776221cd2614c1dcd8f33cc8faf 100644
index 0ad848c42039eeed64cc0b8372d3a9331e61d286..b464cc1a70aca3450a5de84a657a1e069a1a8ab6 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -1487,5 +1487,13 @@ public interface Server extends PluginMessageRecipient {
@@ -1515,5 +1515,13 @@ public interface Server extends PluginMessageRecipient {
* @return true if server is in the process of being shutdown
*/
boolean isStopping();

View File

@ -5,10 +5,10 @@ Subject: [PATCH] World view distance api
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 0a5865d85dfc28cb68f753878608b12afd74bc99..be4d6ca8e8ec4c2e6643eaecc19f11466e14658c 100644
index 90e41bead6a51ab1f272af806c396d8411a96eb7..71c1e93ea15f0a926a9ad822d09a076f8b800988 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -3275,6 +3275,34 @@ public interface World extends PluginMessageRecipient, Metadatable {
@@ -3343,6 +3343,34 @@ public interface World extends PluginMessageRecipient, Metadatable {
int getViewDistance();
// Spigot end

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Spawn Reason API
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index be4d6ca8e8ec4c2e6643eaecc19f11466e14658c..9518da825ed752c5a477ca9132de50f923f9192d 100644
index 71c1e93ea15f0a926a9ad822d09a076f8b800988..75c9225bd07b4c4b6dcd702c52294a7637eb6884 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -1,6 +1,8 @@

View File

@ -8,13 +8,14 @@ Adds a new method to fetch the location of a player's bed without generating any
getPotentialBedLocation - Gets the last known location of a player's bed. This does not preform any check if the bed is still valid and does not load any chunks.
diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java
index 79569a329aa19ed954b9b65b78ef5d6d313501a1..c0d38f5a39610cbc523d210b76f17fa17c0d7e62 100644
index 2668196e04a7de245c63b4b74f0d056784ef0736..d3998c61af0c5fb1189ae7829e8cdfbef0cd3f97 100644
--- a/src/main/java/org/bukkit/entity/HumanEntity.java
+++ b/src/main/java/org/bukkit/entity/HumanEntity.java
@@ -248,6 +248,18 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
@Nullable
public Location getBedSpawnLocation();
@@ -240,6 +240,19 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
*/
public int getSleepTicks();
+
+ // Paper start - Potential bed api
+ /**
+ * Gets the Location of the player's bed, null if they have not slept
@ -28,5 +29,5 @@ index 79569a329aa19ed954b9b65b78ef5d6d313501a1..c0d38f5a39610cbc523d210b76f17fa1
+ // Paper end
+
/**
* Sets the Location where the player will spawn at their bed.
*
* Attempts to make the entity sleep at the given location.
* <br>

View File

@ -25,7 +25,7 @@ The patch in general terms just loads the class in the plugin's jar
before it starts looking elsewhere for it.
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index ba2c5c6eee6fc9f7c96c3ab304d8a1fc759ccd77..528ceeb22c55f23259340c29e3c4ed5ece89a118 100644
index 9d1f7cdf12029c8198792fd299f92be476040222..384edf9890dfbd1cddfdcac4db1ebe9a4d761f78 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -50,6 +50,7 @@ import org.yaml.snakeyaml.error.YAMLException;

View File

@ -6,7 +6,7 @@ Subject: [PATCH] Add Raw Byte ItemStack Serialization
Serializes using NBT which is safer for server data migrations than bukkits format.
diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java
index 6f5601639c472db62120bab8d903620ee87f7e5c..70d95e89a050632b2b0e2f477d3c286a3e8db1bd 100644
index 541e28a9bece0beb0c2cf02c39030840b758c6e6..d3ec5084e33dff038d54cdd2aeb703a3eb25f7a7 100644
--- a/src/main/java/org/bukkit/UnsafeValues.java
+++ b/src/main/java/org/bukkit/UnsafeValues.java
@@ -90,5 +90,9 @@ public interface UnsafeValues {

View File

@ -0,0 +1,77 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: MiniDigger <admin@minidigger.me>
Date: Sat, 6 Jun 2020 18:13:16 +0200
Subject: [PATCH] Support components in ItemMeta
diff --git a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java
index 7e0b1d363829031075b6822d7b35ccde9fc05da9..5db838cab09888c3b3537e122e0e381a78e1dbb7 100644
--- a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java
+++ b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java
@@ -42,6 +42,18 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste
@NotNull
String getDisplayName();
+ // Paper start
+ /**
+ * Gets the display name that is set.
+ * <p>
+ * Plugins should check that hasDisplayName() returns <code>true</code>
+ * before calling this method.
+ *
+ * @return the display name that is set
+ */
+ @NotNull
+ net.md_5.bungee.api.chat.BaseComponent[] getDisplayNameComponent();
+ // Paper end
/**
* Sets the display name.
*
@@ -49,6 +61,14 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste
*/
void setDisplayName(@Nullable String name);
+ // Paper start
+ /**
+ * Sets the display name.
+ *
+ * @param component the name component to set
+ */
+ void setDisplayNameComponent(@Nullable net.md_5.bungee.api.chat.BaseComponent[] component);
+ // Paper end
/**
* Checks for existence of a localized name.
*
@@ -92,6 +112,17 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste
@Nullable
List<String> getLore();
+ /**
+ * Gets the lore that is set.
+ * <p>
+ * Plugins should check if hasLore() returns <code>true</code> before
+ * calling this method.
+ *
+ * @return a list of lore that is set
+ */
+ @Nullable
+ List<net.md_5.bungee.api.chat.BaseComponent[]> getLoreComponents();
+
/**
* Sets the lore for this item.
* Removes lore when given null.
@@ -100,6 +131,14 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste
*/
void setLore(@Nullable List<String> lore);
+ /**
+ * Sets the lore for this item.
+ * Removes lore when given null.
+ *
+ * @param lore the lore that will be set
+ */
+ void setLoreComponents(@Nullable List<net.md_5.bungee.api.chat.BaseComponent[]> lore);
+
/**
* Checks for existence of custom model data.
* <p>

View File

@ -5,7 +5,7 @@ Subject: [PATCH] POM Changes
diff --git a/pom.xml b/pom.xml
index 9fc92e347f24a0210a9190513e93cba3b6772557..3554314526b3f33ad02df2adfd42d45118d75526 100644
index db08e98c60084b16ee18455ce014a6ea305f89c5..52834690de9f07c9c4838dbef50031567c1a72dc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,15 +1,14 @@
@ -16,7 +16,7 @@ index 9fc92e347f24a0210a9190513e93cba3b6772557..3554314526b3f33ad02df2adfd42d451
- <artifactId>spigot</artifactId>
+ <artifactId>paper</artifactId>
<packaging>jar</packaging>
<version>1.15.2-R0.1-SNAPSHOT</version>
<version>1.16.1-R0.1-SNAPSHOT</version>
- <name>Spigot</name>
- <url>https://www.spigotmc.org/</url>
+ <name>Paper</name>
@ -27,7 +27,7 @@ index 9fc92e347f24a0210a9190513e93cba3b6772557..3554314526b3f33ad02df2adfd42d451
+ <!-- <skipTests>true</skipTests> Paper - This [was] not going to end well -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<api.version>unknown</api.version>
<minecraft.version>1.15.2</minecraft.version>
<minecraft.version>1.16.1</minecraft.version>
@@ -19,16 +18,22 @@
</properties>
@ -56,7 +56,7 @@ index 9fc92e347f24a0210a9190513e93cba3b6772557..3554314526b3f33ad02df2adfd42d451
<scope>compile</scope>
</dependency>
@@ -50,6 +55,17 @@
<version>7.3.1</version>
<version>8.0.1</version>
<scope>compile</scope>
</dependency>
+ <dependency>
@ -190,18 +190,18 @@ index 9fc92e347f24a0210a9190513e93cba3b6772557..3554314526b3f33ad02df2adfd42d451
<!-- we need our custom version as it fixes some bugs on case sensitive file systems -->
<dependency>
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 91e2d0b9d9f698f54b49636944a6282adcff5b4b..3fb78997d8c4d913770a9a6a35f34e2c61b896fa 100644
index 4ac80c20ba970a2078fe62c452e7fdfb8ad0b46e..a5c4b7f28f13f0aad4712912f60ba5fc6785539a 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -186,7 +186,7 @@ public class Main {
}
if (false && Main.class.getPackage().getImplementationVendor() != null && System.getProperty("IReallyKnowWhatIAmDoingISwear") == null) {
if (Main.class.getPackage().getImplementationVendor() != null && System.getProperty("IReallyKnowWhatIAmDoingISwear") == null) {
- Date buildDate = new Date(Integer.parseInt(Main.class.getPackage().getImplementationVendor()) * 1000L);
+ Date buildDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").parse(Main.class.getPackage().getImplementationVendor()); // Paper
Calendar deadline = Calendar.getInstance();
deadline.add(Calendar.DAY_OF_YEAR, -21);
deadline.add(Calendar.DAY_OF_YEAR, -3);
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
index 93046379d0cefd5d3236fc59e698809acdc18f80..674096cab190d62622f9947853b056f57d43a2a5 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java

View File

@ -268,10 +268,10 @@ index 0000000000000000000000000000000000000000..41c79650b169b87fbc70cf502438a545
+}
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..273cdb598b3606b962dcc92564c84ad351b7a74f
index 0000000000000000000000000000000000000000..68d3cb02dbfdc9d6f9d3682a2659c9430b50c490
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -0,0 +1,184 @@
@@ -0,0 +1,185 @@
+package com.destroystokyo.paper;
+
+import com.google.common.base.Throwables;
@ -291,6 +291,7 @@ index 0000000000000000000000000000000000000000..273cdb598b3606b962dcc92564c84ad3
+import net.minecraft.server.MinecraftServer;
+import org.bukkit.Bukkit;
+import org.bukkit.command.Command;
+import org.bukkit.configuration.ConfigurationSection;
+import org.bukkit.configuration.InvalidConfigurationException;
+import org.bukkit.configuration.file.YamlConfiguration;
+
@ -530,10 +531,10 @@ index 0000000000000000000000000000000000000000..a738657394bcccd859ef260a801736d4
+ }
+}
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
index 87c4b4c6b7793808308c0bfab957f9fd6425f452..beb6b63fa483f0a7b29f5403bebf7ee47b27cd29 100644
index 062a82c37723b7f032103ba2904877ae79b1ae01..5585b5646b5f3650aa3b795be06f920699a85403 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -270,15 +270,15 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -273,15 +273,15 @@ public class ChunkProviderServer extends IChunkProvider {
}
}
@ -543,27 +544,27 @@ index 87c4b4c6b7793808308c0bfab957f9fd6425f452..beb6b63fa483f0a7b29f5403bebf7ee4
+ @Override public boolean a(Entity entity) {
long i = ChunkCoordIntPair.pair(MathHelper.floor(entity.locX()) >> 4, MathHelper.floor(entity.locZ()) >> 4);
return this.a(i, PlayerChunk::b);
return this.a(i, (Function<PlayerChunk, CompletableFuture<Either<Chunk, PlayerChunk.Failure>>>) PlayerChunk::b); // CraftBukkit - decompile error
}
- @Override
- public boolean a(ChunkCoordIntPair chunkcoordintpair) {
+ public final boolean isEntityTickingChunk(ChunkCoordIntPair chunkcoordintpair) { return this.a(chunkcoordintpair); } // Paper - OBFHELPER
+ @Override public boolean a(ChunkCoordIntPair chunkcoordintpair) {
return this.a(chunkcoordintpair.pair(), PlayerChunk::b);
return this.a(chunkcoordintpair.pair(), (Function<PlayerChunk, CompletableFuture<Either<Chunk, PlayerChunk.Failure>>>) PlayerChunk::b); // CraftBukkit - decompile error
}
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index 136d1b50f1cfe71aa5ce1495d9ffdf4a3cbd5aac..9eed98e3796be6d49dc51af9038a7376c94edeee 100644
index 27e6872c675647d7e61040b76183dac4e347a40c..aa68eb71b131c1d529ded6c651621cfab071b3c4 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -170,6 +170,15 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
org.spigotmc.SpigotConfig.init((File) options.valueOf("spigot-settings"));
@@ -148,6 +148,15 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
org.spigotmc.SpigotConfig.init((java.io.File) options.valueOf("spigot-settings"));
org.spigotmc.SpigotConfig.registerCommands();
// Spigot end
+ // Paper start
+ try {
+ com.destroystokyo.paper.PaperConfig.init((File) options.valueOf("paper-settings"));
+ com.destroystokyo.paper.PaperConfig.init((java.io.File) options.valueOf("paper-settings"));
+ } catch (Exception e) {
+ DedicatedServer.LOGGER.error("Unable to load server configuration", e);
+ return false;
@ -571,14 +572,14 @@ index 136d1b50f1cfe71aa5ce1495d9ffdf4a3cbd5aac..9eed98e3796be6d49dc51af9038a7376
+ com.destroystokyo.paper.PaperConfig.registerCommands();
+ // Paper end
this.setSpawnAnimals(dedicatedserverproperties.spawnAnimals);
this.setSpawnNPCs(dedicatedserverproperties.spawnNpcs);
this.setPVP(dedicatedserverproperties.pvp);
this.setAllowFlight(dedicatedserverproperties.allowFlight);
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 9fddbae24c7cb7b24e3899714ced1375b928654f..f4863852b04c5fa55b79acabe40ce59909b9bbbd 100644
index 4ee11b6fbbb49b1f52fe2cf64f77c1bdd2fd3907..51499ef45faa2bba5f180ee333c09af73d3b708e 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -135,9 +135,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener {
private static final DataWatcherObject<Boolean> aC = DataWatcher.a(Entity.class, DataWatcherRegistry.i);
private static final DataWatcherObject<Boolean> aA = DataWatcher.a(Entity.class, DataWatcherRegistry.i);
protected static final DataWatcherObject<EntityPose> POSE = DataWatcher.a(Entity.class, DataWatcherRegistry.s);
public boolean inChunk;
- public int chunkX;
@ -587,23 +588,23 @@ index 9fddbae24c7cb7b24e3899714ced1375b928654f..f4863852b04c5fa55b79acabe40ce599
+ public int chunkX; public int getChunkX() { return chunkX; } // Paper - OBFHELPER
+ public int chunkY; public int getChunkY() { return chunkY; } // Paper - OBFHELPER
+ public int chunkZ; public int getChunkZ() { return chunkZ; } // Paper - OBFHELPER
private boolean aB;
public long Z;
public long aa;
public long ab;
diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java
index 158cc1beb2d6b00642d025a5dd6797c4a20464bd..29e776ca19621b93d5b295d12f0576e6980cf11a 100644
index 62f62c2c98fbaff163d9079091e6f39db2d77fa0..484e78746aa62bb0b12968165bf8e056b27152f3 100644
--- a/src/main/java/net/minecraft/server/EntityTypes.java
+++ b/src/main/java/net/minecraft/server/EntityTypes.java
@@ -3,6 +3,7 @@ package net.minecraft.server;
import com.mojang.datafixers.DataFixUtils;
import java.util.Collections;
@@ -2,6 +2,7 @@ package net.minecraft.server;
import com.google.common.collect.ImmutableSet;
import java.util.Optional;
+import java.util.Set; // Paper
import java.util.UUID;
import java.util.function.Function;
import java.util.stream.Stream;
@@ -435,4 +436,10 @@ public class EntityTypes<T extends Entity> {
return new EntityTypes<>(this.a, this.b, this.c, this.d, this.e, this.f, this.g);
@@ -463,4 +464,10 @@ public class EntityTypes<T extends Entity> {
return new EntityTypes<>(this.a, this.b, this.d, this.e, this.f, this.g, this.c, this.j, this.h, this.i);
}
}
+
@ -614,10 +615,10 @@ index 158cc1beb2d6b00642d025a5dd6797c4a20464bd..29e776ca19621b93d5b295d12f0576e6
+ // Paper end
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index ad43b48073f5d59e6f6b5b2ec3de8cc9f03f9956..2e1eabba14a3757d03fd90741651001e78c6322f 100644
index d5e1da2eeea7c06289f52509af844df59e8a29b2..63d3d43f74bed94cd03aa3b7254e66302be861d5 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -70,6 +70,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -77,6 +77,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
public boolean populating;
public final org.spigotmc.SpigotWorldConfig spigotConfig; // Spigot
@ -626,27 +627,27 @@ index ad43b48073f5d59e6f6b5b2ec3de8cc9f03f9956..2e1eabba14a3757d03fd90741651001e
public final SpigotTimings.WorldTimingsHandler timings; // Spigot
public static BlockPosition lastPhysicsProblem; // Spigot
private org.spigotmc.TickLimiter entityLimiter;
@@ -90,6 +92,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -93,6 +95,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
protected World(WorldData worlddata, DimensionManager dimensionmanager, BiFunction<World, WorldProvider, IChunkProvider> bifunction, GameProfilerFiller gameprofilerfiller, boolean flag, org.bukkit.generator.ChunkGenerator gen, org.bukkit.World.Environment env) {
this.spigotConfig = new org.spigotmc.SpigotWorldConfig( worlddata.getName() ); // Spigot
protected World(WorldDataMutable worlddatamutable, ResourceKey<World> resourcekey, ResourceKey<DimensionManager> resourcekey1, DimensionManager dimensionmanager, Supplier<GameProfilerFiller> supplier, boolean flag, boolean flag1, long i, org.bukkit.generator.ChunkGenerator gen, org.bukkit.World.Environment env) {
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((WorldDataServer) worlddatamutable).getName()); // Spigot
+ this.paperConfig = new com.destroystokyo.paper.PaperWorldConfig(worlddata.getName(), this.spigotConfig); // Paper
this.generator = gen;
this.world = new CraftWorld((WorldServer) this, gen, env);
this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index be30f6bf6a978dfe14af1aca1099cb9a6f7ab443..ad1dcf53040695a1b3194efa92b549172bea56ec 100644
index d05c57ce64b7d880ffd7dbd387d56f05f05cd3f0..239fa2404859d233161764cceec5cd0fc37899b9 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -769,6 +769,7 @@ public final class CraftServer implements Server {
@@ -803,6 +803,7 @@ public final class CraftServer implements Server {
}
org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot
+ com.destroystokyo.paper.PaperConfig.init((File) console.options.valueOf("paper-settings")); // Paper
for (WorldServer world : console.getWorlds()) {
world.worldData.setDifficulty(config.difficulty);
world.worldDataServer.setDifficulty(config.difficulty);
world.setSpawnFlags(config.spawnMonsters, config.spawnAnimals);
@@ -796,6 +797,7 @@ public final class CraftServer implements Server {
@@ -836,6 +837,7 @@ public final class CraftServer implements Server {
world.ticksPerAmbientSpawns = this.getTicksPerAmbientSpawns();
}
world.spigotConfig.init(); // Spigot
@ -654,7 +655,7 @@ index be30f6bf6a978dfe14af1aca1099cb9a6f7ab443..ad1dcf53040695a1b3194efa92b54917
}
pluginManager.clearPlugins();
@@ -803,6 +805,7 @@ public final class CraftServer implements Server {
@@ -843,6 +845,7 @@ public final class CraftServer implements Server {
resetRecipes();
reloadData();
org.spigotmc.SpigotConfig.registerCommands(); // Spigot
@ -662,7 +663,7 @@ index be30f6bf6a978dfe14af1aca1099cb9a6f7ab443..ad1dcf53040695a1b3194efa92b54917
overrideAllCommandBlockCommands = commandsConfiguration.getStringList("command-block-overrides").contains("*");
ignoreVanillaPermissions = commandsConfiguration.getBoolean("ignore-vanilla-permissions");
@@ -2000,4 +2003,35 @@ public final class CraftServer implements Server {
@@ -2079,4 +2082,35 @@ public final class CraftServer implements Server {
{
return spigot;
}
@ -699,7 +700,7 @@ index be30f6bf6a978dfe14af1aca1099cb9a6f7ab443..ad1dcf53040695a1b3194efa92b54917
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 3fb78997d8c4d913770a9a6a35f34e2c61b896fa..daa65aaf8c9616e5e058f3337fc4fc0895d13364 100644
index a5c4b7f28f13f0aad4712912f60ba5fc6785539a..3d15661eb1f15f74213ecb7e8eceb1f231ad2c1c 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -129,6 +129,14 @@ public class Main {
@ -718,7 +719,7 @@ index 3fb78997d8c4d913770a9a6a35f34e2c61b896fa..daa65aaf8c9616e5e058f3337fc4fc08
};
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
index a52cbba6e681bc96a15a3eea62831a1628f921a7..98ed975a6241395b6119d5b3a62d24329aa1f05b 100644
index 0005d4226467cc25b55f9863eb5b7aaeb4dd6917..5c394d26e2d2dbc5d65e38c1273b7e5d02464f3a 100644
--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
@@ -39,36 +39,36 @@ public class SpigotWorldConfig

View File

@ -49,111 +49,224 @@ index a3afe60b0d85cf90bf7a170dc0a0b61a796381a7..85f799a713db0c822d46b689010f9f6b
} else {
System.arraycopy(this.b, 0, au, 0, this.c);
if (au.length > this.c) {
diff --git a/src/main/java/net/minecraft/server/BehaviorFindPosition.java b/src/main/java/net/minecraft/server/BehaviorFindPosition.java
index 37006ec1bbb8fa285257edacdf337591595852a2..35eb3a5a61145e94d5b0c77c0eb13bfa46fac23b 100644
--- a/src/main/java/net/minecraft/server/BehaviorFindPosition.java
+++ b/src/main/java/net/minecraft/server/BehaviorFindPosition.java
@@ -53,7 +53,7 @@ public class BehaviorFindPosition extends Behavior<EntityCreature> {
villageplace.a(this.a.c(), (blockposition1) -> {
return blockposition1.equals(blockposition);
}, blockposition, 1);
- entitycreature.getBehaviorController().setMemory(this.b, (Object) GlobalPos.create(worldserver.getWorldProvider().getDimensionManager(), blockposition));
+ entitycreature.getBehaviorController().setMemory(this.b, GlobalPos.create(worldserver.getWorldProvider().getDimensionManager(), blockposition));
PacketDebug.c(worldserver, blockposition);
});
} else if (this.f < 5) {
diff --git a/src/main/java/net/minecraft/server/BiomeBase.java b/src/main/java/net/minecraft/server/BiomeBase.java
index 960dce23072bbb5fad36760677f0fe2efb661552..253890e53702f9ba1c6628cc860a4ca10756626a 100644
index 6c2ed9c1b8567abcdb11bdc3dbaeed217a2f61e7..ae0ac8d383ca11a683465d8c83a8b8a66e567079 100644
--- a/src/main/java/net/minecraft/server/BiomeBase.java
+++ b/src/main/java/net/minecraft/server/BiomeBase.java
@@ -54,7 +54,7 @@ public abstract class BiomeBase {
@@ -26,76 +26,31 @@ import org.apache.logging.log4j.Logger;
public class BiomeBase {
public static final Logger LOGGER = LogManager.getLogger();
- public static final Codec<BiomeBase> b = RecordCodecBuilder.create((instance) -> {
- RecordCodecBuilder recordcodecbuilder = BiomeBase.Precipitation.d.fieldOf("precipitation").forGetter((biomebase) -> {
- return biomebase.o;
- });
- RecordCodecBuilder recordcodecbuilder1 = BiomeBase.Geography.r.fieldOf("category").forGetter((biomebase) -> {
- return biomebase.n;
- });
- RecordCodecBuilder recordcodecbuilder2 = Codec.FLOAT.fieldOf("depth").forGetter((biomebase) -> {
- return biomebase.h;
- });
- RecordCodecBuilder recordcodecbuilder3 = Codec.FLOAT.fieldOf("scale").forGetter((biomebase) -> {
- return biomebase.i;
- });
- RecordCodecBuilder recordcodecbuilder4 = Codec.FLOAT.fieldOf("temperature").forGetter((biomebase) -> {
- return biomebase.j;
- });
- RecordCodecBuilder recordcodecbuilder5 = Codec.FLOAT.fieldOf("downfall").forGetter((biomebase) -> {
- return biomebase.k;
- });
- RecordCodecBuilder recordcodecbuilder6 = BiomeFog.a.fieldOf("effects").forGetter((biomebase) -> {
- return biomebase.p;
- });
- RecordCodecBuilder recordcodecbuilder7 = Codec.INT.fieldOf("sky_color").forGetter((biomebase) -> {
- return biomebase.t;
- });
- RecordCodecBuilder recordcodecbuilder8 = WorldGenSurfaceComposite.a.fieldOf("surface_builder").forGetter((biomebase) -> {
- return biomebase.m;
- });
- Codec codec = WorldGenStage.Features.c;
- Codec codec1 = WorldGenCarverWrapper.a.listOf();
- Logger logger = BiomeBase.LOGGER;
-
- logger.getClass();
- RecordCodecBuilder recordcodecbuilder9 = Codec.simpleMap(codec, codec1.promotePartial(SystemUtils.a("Carver: ", logger::error)), INamable.a(WorldGenStage.Features.values())).fieldOf("carvers").forGetter((biomebase) -> {
- return biomebase.q;
- });
-
- codec1 = WorldGenStage.Decoration.k;
- Codec codec2 = WorldGenFeatureConfigured.b.listOf();
- Logger logger1 = BiomeBase.LOGGER;
-
- logger1.getClass();
- RecordCodecBuilder recordcodecbuilder10 = Codec.simpleMap(codec1, codec2.promotePartial(SystemUtils.a("Feature: ", logger1::error)), INamable.a(WorldGenStage.Decoration.values())).fieldOf("features").forGetter((biomebase) -> {
- return biomebase.r;
- });
-
- codec2 = StructureFeature.a.listOf();
- logger1 = BiomeBase.LOGGER;
- logger1.getClass();
- RecordCodecBuilder recordcodecbuilder11 = codec2.promotePartial(SystemUtils.a("Structure start: ", logger1::error)).fieldOf("starts").forGetter((biomebase) -> {
- return (List) biomebase.u.values().stream().sorted(Comparator.comparing((structurefeature) -> {
- return IRegistry.STRUCTURE_FEATURE.getKey(structurefeature.b);
- })).collect(Collectors.toList());
- });
- Codec codec3 = EnumCreatureType.g;
- Codec codec4 = BiomeBase.BiomeMeta.b.listOf();
- Logger logger2 = BiomeBase.LOGGER;
-
- logger2.getClass();
- return instance.group(recordcodecbuilder, recordcodecbuilder1, recordcodecbuilder2, recordcodecbuilder3, recordcodecbuilder4, recordcodecbuilder5, recordcodecbuilder6, recordcodecbuilder7, recordcodecbuilder8, recordcodecbuilder9, recordcodecbuilder10, recordcodecbuilder11, Codec.simpleMap(codec3, codec4.promotePartial(SystemUtils.a("Spawn data: ", logger2::error)), INamable.a(EnumCreatureType.values())).fieldOf("spawners").forGetter((biomebase) -> {
- return biomebase.v;
- }), BiomeBase.d.a.listOf().fieldOf("climate_parameters").forGetter((biomebase) -> {
- return biomebase.x;
- }), Codec.STRING.optionalFieldOf("parent").forGetter((biomebase) -> {
- return Optional.ofNullable(biomebase.l);
- })).apply(instance, BiomeBase::new);
+ // Paper decompile error - Spigots stupid decompiler
+ public static final Codec<BiomeBase> b = RecordCodecBuilder.create(i -> {
+ Codec k1 = WorldGenStage.Decoration.k; // Erase type - WorldGenstage.Decoration has wrong type
+ return i.group(
+ Precipitation.d.fieldOf("precipitation").forGetter(biome -> biome.o),
+ Geography.r.fieldOf("category").forGetter(biome -> biome.n),
+ Codec.FLOAT.fieldOf("depth").forGetter(biome -> biome.h),
+ Codec.FLOAT.fieldOf("scale").forGetter(biome -> biome.i),
+ Codec.FLOAT.fieldOf("temperature").forGetter(biome -> biome.j),
+ Codec.FLOAT.fieldOf("downfall").forGetter(biome -> biome.k),
+ BiomeFog.a.fieldOf("effects").forGetter(biome -> biome.p),
+ Codec.INT.fieldOf("sky_color").forGetter(biome -> biome.t),
+ WorldGenSurfaceComposite.a.fieldOf("surface_builder").forGetter(biome -> biome.m),
+ Codec.simpleMap(WorldGenStage.Features.c, WorldGenCarverWrapper.a.listOf().promotePartial(SystemUtils.a("Carver: ", LOGGER::error)), INamable.a(WorldGenStage.Features.values())).fieldOf("carvers").forGetter(biome -> biome.q),
+ Codec.simpleMap((Codec<WorldGenStage.Decoration>) k1, WorldGenFeatureConfigured.b.listOf().promotePartial(SystemUtils.a("Feature: ", LOGGER::error)), INamable.a(WorldGenStage.Decoration.values())).fieldOf("features").forGetter(biome -> biome.r),
+ StructureFeature.a.listOf().promotePartial(SystemUtils.a("Structure start: ", LOGGER::error)).fieldOf("starts").forGetter(biome -> biome.u.values().stream().sorted(Comparator.comparing(cf -> IRegistry.STRUCTURE_FEATURE.getKey(cf.b))).collect(Collectors.toList())),
+ Codec.simpleMap(EnumCreatureType.g, BiomeMeta.b.listOf().promotePartial(SystemUtils.a("Spawn data: ", LOGGER::error)), INamable.a(EnumCreatureType.values())).fieldOf("spawners").forGetter(biome -> biome.v),
+ d.a.listOf().fieldOf("climate_parameters").forGetter(biome -> biome.x),
+ Codec.STRING.optionalFieldOf("parent").forGetter(biome -> Optional.ofNullable(biome.l))
+ ).apply(i, BiomeBase::new);
+ // Paper end
});
public static final Set<BiomeBase> c = Sets.newHashSet();
- public static final RegistryBlockID<BiomeBase> d = new RegistryBlockID<>();
- protected static final NoiseGenerator3 e = new NoiseGenerator3(new SeededRandom(1234L), ImmutableList.of(0));
+ public static final RegistryBlockID<BiomeBase> reg = new RegistryBlockID<>(); // Paper - decompile error - rename
+ protected static final NoiseGenerator3 NOISE_GENERATOR_3 = new NoiseGenerator3(new SeededRandom(1234L), ImmutableList.of(0)); // Paper - decompile error - rename
public static final NoiseGenerator3 f = new NoiseGenerator3(new SeededRandom(2345L), ImmutableList.of(0));
@Nullable
protected String g;
@@ -130,7 +85,7 @@ public class BiomeBase {
@Nullable
public static BiomeBase a(BiomeBase biomebase) {
- return (BiomeBase) BiomeBase.c.fromId(IRegistry.BIOME.a((Object) biomebase));
+ return (BiomeBase) BiomeBase.c.fromId(IRegistry.BIOME.a(biomebase)); // Paper - decompile fix
- return (BiomeBase) BiomeBase.d.fromId(IRegistry.BIOME.a((Object) biomebase));
+ return (BiomeBase) BiomeBase.reg.fromId(IRegistry.BIOME.a(biomebase)); // Paper - decompile fix / rename
}
public static <C extends WorldGenCarverConfiguration> WorldGenCarverWrapper<C> a(WorldGenCarverAbstract<C> worldgencarverabstract, C c0) {
@@ -236,7 +236,7 @@ public abstract class BiomeBase {
@@ -197,7 +152,7 @@ public class BiomeBase {
}, Function.identity()));
this.v = map2;
this.x = list1;
- this.l = (String) optional.orElse((Object) null);
+ this.l = (String) optional.orElse(null); // Paper - decompile fix
Stream stream = map1.values().stream().flatMap(Collection::stream).filter((worldgenfeatureconfigured) -> {
return worldgenfeatureconfigured.d == WorldGenerator.DECORATED_FLOWER;
});
@@ -250,7 +205,7 @@ public class BiomeBase {
@Nullable
public <C extends WorldGenFeatureConfiguration> C b(StructureGenerator<C> structuregenerator) {
- return (WorldGenFeatureConfiguration) this.t.get(structuregenerator);
+ return (C) this.t.get(structuregenerator); // Paper - decompile fix
}
protected float a(BlockPosition blockposition) {
if (blockposition.getY() > 64) {
- float f = (float) (BiomeBase.e.a((double) ((float) blockposition.getX() / 8.0F), (double) ((float) blockposition.getZ() / 8.0F), false) * 4.0D);
+ float f = (float) (BiomeBase.NOISE_GENERATOR_3.a((double) ((float) blockposition.getX() / 8.0F), (double) ((float) blockposition.getZ() / 8.0F), false) * 4.0D); // Paper - decompile error - rename
public List<WorldGenFeatureConfigured<?, ?>> g() {
diff --git a/src/main/java/net/minecraft/server/BlockDataAbstract.java b/src/main/java/net/minecraft/server/BlockDataAbstract.java
index ab03b556823a3daee07cc6a57112d01ee52b677f..1cf97cefc9d113583214f340e72b35d5560d1e5d 100644
--- a/src/main/java/net/minecraft/server/BlockDataAbstract.java
+++ b/src/main/java/net/minecraft/server/BlockDataAbstract.java
@@ -29,7 +29,7 @@ public abstract class BlockDataAbstract<O, S> implements IBlockDataHolder<S> {
}
private <T extends Comparable<T>> String a(IBlockState<T> iblockstate, Comparable<?> comparable) {
- return iblockstate.a(comparable);
+ return iblockstate.a((T) comparable); // Paper - decompiler fix
}
};
protected final O a;
@@ -42,11 +42,11 @@ public abstract class BlockDataAbstract<O, S> implements IBlockDataHolder<S> {
}
public <T extends Comparable<T>> S a(IBlockState<T> iblockstate) {
- return this.set(iblockstate, (Comparable) a(iblockstate.getValues(), this.get(iblockstate)));
+ return this.set(iblockstate, a(iblockstate.getValues(), this.get(iblockstate))); // Paper - decompile fix
}
protected static <T> T a(Collection<T> collection, T t0) {
- Iterator iterator = collection.iterator();
+ Iterator<T> iterator = collection.iterator(); // Paper - decompiler fix
do {
if (!iterator.hasNext()) {
@@ -89,7 +89,7 @@ public abstract class BlockDataAbstract<O, S> implements IBlockDataHolder<S> {
if (comparable == null) {
throw new IllegalArgumentException("Cannot get property " + iblockstate + " as it does not exist in " + this.a);
return this.getTemperature() - (f + (float) blockposition.getY() - 64.0F) * 0.05F / 30.0F;
} else {
- return (Comparable) iblockstate.b().cast(comparable);
+ return iblockstate.b().cast(comparable); // Paper - decompiler fix
}
diff --git a/src/main/java/net/minecraft/server/BiomeFrozenDeepOcean.java b/src/main/java/net/minecraft/server/BiomeFrozenDeepOcean.java
index 2ac69bf2ae5cbb763fc95c948725373a5c9b95b3..fdc66fc1e3440b6678a1318e9a109f2b41bc8847 100644
--- a/src/main/java/net/minecraft/server/BiomeFrozenDeepOcean.java
+++ b/src/main/java/net/minecraft/server/BiomeFrozenDeepOcean.java
@@ -58,7 +58,7 @@ public class BiomeFrozenDeepOcean extends BiomeBase {
}
@@ -100,7 +100,7 @@ public abstract class BlockDataAbstract<O, S> implements IBlockDataHolder<S> {
if (comparable == null) {
throw new IllegalArgumentException("Cannot set property " + iblockstate + " as it does not exist in " + this.a);
} else if (comparable == v0) {
- return this;
+ return (S) this; // Paper - decompiler fix
if (blockposition.getY() > 64) {
- float f1 = (float) (BiomeFrozenDeepOcean.e.a((double) ((float) blockposition.getX() / 8.0F), (double) ((float) blockposition.getZ() / 8.0F), false) * 4.0D);
+ float f1 = (float) (BiomeFrozenDeepOcean.NOISE_GENERATOR_3.a((double) ((float) blockposition.getX() / 8.0F), (double) ((float) blockposition.getZ() / 8.0F), false) * 4.0D); // Paper - rename
return f - (f1 + (float) blockposition.getY() - 64.0F) * 0.05F / 30.0F;
} else {
S s0 = this.e.get(iblockstate, v0);
diff --git a/src/main/java/net/minecraft/server/BiomeFrozenOcean.java b/src/main/java/net/minecraft/server/BiomeFrozenOcean.java
index 0d0ccaec8c497c9d222c7593684ed2d913d1881e..4b18e29ccb0cb15568367abb507b844011bd7f80 100644
--- a/src/main/java/net/minecraft/server/BiomeFrozenOcean.java
+++ b/src/main/java/net/minecraft/server/BiomeFrozenOcean.java
@@ -57,7 +57,7 @@ public final class BiomeFrozenOcean extends BiomeBase {
}
if (blockposition.getY() > 64) {
- float f1 = (float) (BiomeFrozenOcean.e.a((double) ((float) blockposition.getX() / 8.0F), (double) ((float) blockposition.getZ() / 8.0F), false) * 4.0D);
+ float f1 = (float) (BiomeFrozenOcean.NOISE_GENERATOR_3.a((double) ((float) blockposition.getX() / 8.0F), (double) ((float) blockposition.getZ() / 8.0F), false) * 4.0D); // Paper - rename
return f - (f1 + (float) blockposition.getY() - 64.0F) * 0.05F / 30.0F;
} else {
diff --git a/src/main/java/net/minecraft/server/Biomes.java b/src/main/java/net/minecraft/server/Biomes.java
index 0aa66addb2cb472b2ab90000d3f0e0f967353e0f..eaa527f4fe289a9492b12591154a60e5aa045252 100644
--- a/src/main/java/net/minecraft/server/Biomes.java
+++ b/src/main/java/net/minecraft/server/Biomes.java
@@ -88,7 +88,7 @@ public abstract class Biomes {
private static BiomeBase a(int i, String s, BiomeBase biomebase) {
IRegistry.a(IRegistry.BIOME, i, s, biomebase);
if (biomebase.b()) {
- BiomeBase.d.a(biomebase, IRegistry.BIOME.a(IRegistry.BIOME.get(new MinecraftKey(biomebase.l))));
+ BiomeBase.reg.a(biomebase, IRegistry.BIOME.a(IRegistry.BIOME.get(new MinecraftKey(biomebase.l))));
}
return biomebase;
diff --git a/src/main/java/net/minecraft/server/BlockPosition.java b/src/main/java/net/minecraft/server/BlockPosition.java
index e40f9c153b4f1f8f11ea467e6bd8e670959282d6..c88a62f6b72a8851b95587bb49c898569d74e0c6 100644
index 8eb94bcb605f882c9ce096fc758df5e3ae3ab28d..886b43e2b8f21c358b4d6785c677f14c91d191f3 100644
--- a/src/main/java/net/minecraft/server/BlockPosition.java
+++ b/src/main/java/net/minecraft/server/BlockPosition.java
@@ -57,12 +57,12 @@ public class BlockPosition extends BaseBlockPosition implements MinecraftSeriali
OfInt ofint = dynamic.asIntStream().spliterator();
int[] aint = new int[3];
@@ -220,8 +220,8 @@ public class BlockPosition extends BaseBlockPosition {
};
}
- if (ofint.tryAdvance((i) -> {
+ if (ofint.tryAdvance((Consumer<? super Integer>) (i) -> { // Paper - decomile fix
aint[0] = i;
- }) && ofint.tryAdvance((i) -> {
+ }) && ofint.tryAdvance((Consumer<? super Integer>) (i) -> { // Paper - decompile fix
aint[1] = i;
})) {
- ofint.tryAdvance((i) -> {
+ ofint.tryAdvance((Consumer<? super Integer>) (i) -> { // Paper - decompile fix
aint[2] = i;
});
- public static Iterable<BlockPosition> a(BlockPosition blockposition, int i, int j, int k) {
- int l = i + j + k;
+ public static Iterable<BlockPosition> a(BlockPosition blockposition, int p_i, int p_j, int p_k) { // Paper - decompile issues - variable name conflicts to inner class field refs
+ int l_decompiled = p_i + p_j + p_k; // Paper - decompile issues
int i1 = blockposition.getX();
int j1 = blockposition.getY();
int k1 = blockposition.getZ();
@@ -249,15 +249,15 @@ public class BlockPosition extends BaseBlockPosition {
++this.l;
if (this.l > this.j) {
++this.i;
- if (this.i > l) {
+ if (this.i > l_decompiled) { // Paper - use proper l above (first line of this method)
return (BlockPosition) this.endOfData();
}
- this.j = Math.min(i, this.i);
+ this.j = Math.min(p_i, this.i); // Paper - decompile issues
this.l = -this.j;
}
- this.k = Math.min(j, this.i - Math.abs(this.l));
+ this.k = Math.min(p_j, this.i - Math.abs(this.l)); // Paper - decompile issues
this.m = -this.k;
}
@@ -265,7 +265,7 @@ public class BlockPosition extends BaseBlockPosition {
int i2 = this.m;
int j2 = this.i - Math.abs(l1) - Math.abs(i2);
- if (j2 <= k) {
+ if (j2 <= p_k) { // Paper - decompile issues
this.n = j2 != 0;
blockposition_mutableblockposition = this.h.d(i1 + l1, j1 + i2, k1 + j2);
}
diff --git a/src/main/java/net/minecraft/server/BlockStateEnum.java b/src/main/java/net/minecraft/server/BlockStateEnum.java
index 28cfbaae287653d21e06f0017396b937e99fc3ad..1486d460c8ec3d117b4dc3d28b2c3f1b632e187b 100644
index 771841e08591955e61c7bcc5b09c8457652c1b9c..8162c11d14b8e88c2b572f9ddf6b7a15977047f8 100644
--- a/src/main/java/net/minecraft/server/BlockStateEnum.java
+++ b/src/main/java/net/minecraft/server/BlockStateEnum.java
@@ -20,10 +20,10 @@ public class BlockStateEnum<T extends Enum<T> & INamable> extends BlockState<T>
@@ -20,10 +20,10 @@ public class BlockStateEnum<T extends Enum<T> & INamable> extends IBlockState<T>
protected BlockStateEnum(String s, Class<T> oclass, Collection<T> collection) {
super(s, oclass);
this.a = ImmutableSet.copyOf(collection);
@ -166,24 +279,11 @@ index 28cfbaae287653d21e06f0017396b937e99fc3ad..1486d460c8ec3d117b4dc3d28b2c3f1b
String s1 = ((INamable) t0).getName();
if (this.b.containsKey(s1)) {
diff --git a/src/main/java/net/minecraft/server/ChunkStatus.java b/src/main/java/net/minecraft/server/ChunkStatus.java
index 68a601bac587294b46a79be6df7ee4e6e38e5f28..efdf611e66ffd782291de749d8a48f3bf08f2129 100644
--- a/src/main/java/net/minecraft/server/ChunkStatus.java
+++ b/src/main/java/net/minecraft/server/ChunkStatus.java
@@ -84,7 +84,7 @@ public class ChunkStatus {
return (CompletableFuture) function.apply(ichunkaccess);
});
private static final List<ChunkStatus> q = ImmutableList.of(ChunkStatus.FULL, ChunkStatus.FEATURES, ChunkStatus.LIQUID_CARVERS, ChunkStatus.STRUCTURE_STARTS, ChunkStatus.STRUCTURE_STARTS, ChunkStatus.STRUCTURE_STARTS, ChunkStatus.STRUCTURE_STARTS, ChunkStatus.STRUCTURE_STARTS, ChunkStatus.STRUCTURE_STARTS, ChunkStatus.STRUCTURE_STARTS, ChunkStatus.STRUCTURE_STARTS);
- private static final IntList r = (IntList) SystemUtils.a((Object) (new IntArrayList(a().size())), (intarraylist) -> {
+ private static final IntList r = (IntList) SystemUtils.a((new IntArrayList(a().size())), (java.util.function.Consumer<IntArrayList>)(IntArrayList intarraylist) -> { // Paper - decompile fix
int i = 0;
for (int j = a().size() - 1; j >= 0; --j) {
diff --git a/src/main/java/net/minecraft/server/CraftingManager.java b/src/main/java/net/minecraft/server/CraftingManager.java
index ca9ed573914558d51318c713b14665480efdc5bf..f0d7a91fa06632d5731e277a9199aa9804d3a96a 100644
index fbb708f5f7e4d2da9d96b595498da436b088a408..f27c7041cdc2f062f0abb222b02026194ab33c60 100644
--- a/src/main/java/net/minecraft/server/CraftingManager.java
+++ b/src/main/java/net/minecraft/server/CraftingManager.java
@@ -63,7 +63,7 @@ public class CraftingManager extends ResourceDataJson {
@@ -64,7 +64,7 @@ public class CraftingManager extends ResourceDataJson {
}
this.recipes = (Map) map1.entrySet().stream().collect(ImmutableMap.toImmutableMap(Entry::getKey, (entry1) -> {
@ -193,7 +293,7 @@ index ca9ed573914558d51318c713b14665480efdc5bf..f0d7a91fa06632d5731e277a9199aa98
CraftingManager.LOGGER.info("Loaded {} recipes", map1.size());
}
diff --git a/src/main/java/net/minecraft/server/EntityVindicator.java b/src/main/java/net/minecraft/server/EntityVindicator.java
index 7d44348c78b0e468cef5c137d3a69aeb5704d881..73ecdd22ea1157abe00795d90c3e7b748650dbc8 100644
index 4ab6e82a1415c40f3e2eee7414bf7de97f53b420..9c152b79164710d3d4175d0acbc9548d61390097 100644
--- a/src/main/java/net/minecraft/server/EntityVindicator.java
+++ b/src/main/java/net/minecraft/server/EntityVindicator.java
@@ -25,7 +25,7 @@ public class EntityVindicator extends EntityIllagerAbstract {
@ -205,21 +305,8 @@ index 7d44348c78b0e468cef5c137d3a69aeb5704d881..73ecdd22ea1157abe00795d90c3e7b74
this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true));
this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityVillagerAbstract.class, true));
this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityIronGolem.class, true));
diff --git a/src/main/java/net/minecraft/server/Fluid.java b/src/main/java/net/minecraft/server/Fluid.java
index 035f05e82769445f213c225a731db6d95626f6cd..7c9ba128620f54c9cd691d350d1ee225d867fe70 100644
--- a/src/main/java/net/minecraft/server/Fluid.java
+++ b/src/main/java/net/minecraft/server/Fluid.java
@@ -74,7 +74,7 @@ public interface Fluid extends IBlockDataHolder<Fluid> {
if (immutablemap.isEmpty()) {
object = dynamicops.createMap(ImmutableMap.of(dynamicops.createString("Name"), dynamicops.createString(IRegistry.FLUID.getKey(fluid.getType()).toString())));
} else {
- object = dynamicops.createMap(ImmutableMap.of(dynamicops.createString("Name"), dynamicops.createString(IRegistry.FLUID.getKey(fluid.getType()).toString()), dynamicops.createString("Properties"), dynamicops.createMap((Map) immutablemap.entrySet().stream().map((entry) -> {
+ object = dynamicops.createMap(ImmutableMap.of(dynamicops.createString("Name"), dynamicops.createString(IRegistry.FLUID.getKey(fluid.getType()).toString()), dynamicops.createString("Properties"), dynamicops.createMap(immutablemap.entrySet().stream().map((entry) -> { // Paper - decompile fix
return Pair.of(dynamicops.createString(((IBlockState) entry.getKey()).a()), dynamicops.createString(IBlockDataHolder.b((IBlockState) entry.getKey(), (Comparable) entry.getValue())));
}).collect(Collectors.toMap(Pair::getFirst, Pair::getSecond)))));
}
diff --git a/src/main/java/net/minecraft/server/IAsyncTaskHandler.java b/src/main/java/net/minecraft/server/IAsyncTaskHandler.java
index 447f6a55b619402447b5cf4db9b22ea8cfc7d51d..1890c760f9ffd7628d6ae3db40c36f5272379227 100644
index 8886cedfe8809fe4711b5f2451e3e6456d2a6513..b77a0f0c2ee30df44b113aa6c8d4fa9206d3e2ba 100644
--- a/src/main/java/net/minecraft/server/IAsyncTaskHandler.java
+++ b/src/main/java/net/minecraft/server/IAsyncTaskHandler.java
@@ -55,7 +55,7 @@ public abstract class IAsyncTaskHandler<R extends Runnable> implements Mailbox<R
@ -248,68 +335,32 @@ index 447f6a55b619402447b5cf4db9b22ea8cfc7d51d..1890c760f9ffd7628d6ae3db40c36f52
return true;
}
}
diff --git a/src/main/java/net/minecraft/server/IBlockData.java b/src/main/java/net/minecraft/server/IBlockData.java
index 3be9efd22c1cc659265a80c843b543ca771505d3..3a1ad2346b4cae833de90dafb716c56e6e2f606d 100644
--- a/src/main/java/net/minecraft/server/IBlockData.java
+++ b/src/main/java/net/minecraft/server/IBlockData.java
@@ -281,12 +281,12 @@ public class IBlockData extends BlockDataAbstract<Block, IBlockData> implements
diff --git a/src/main/java/net/minecraft/server/IBlockState.java b/src/main/java/net/minecraft/server/IBlockState.java
index 88f1f201240ef0479c4f0f93f4caca454bbe7e9e..d63a4e4916ed5f5d901be0f4dd2c13cf66239055 100644
--- a/src/main/java/net/minecraft/server/IBlockState.java
+++ b/src/main/java/net/minecraft/server/IBlockState.java
@@ -16,12 +16,10 @@ public abstract class IBlockState<T extends Comparable<T>> {
private final Codec<IBlockState.a<T>> e;
public static <T> Dynamic<T> a(DynamicOps<T> dynamicops, IBlockData iblockdata) {
ImmutableMap<IBlockState<?>, Comparable<?>> immutablemap = iblockdata.getStateMap();
- Object object;
+ T object; // Paper - decompile fix
if (immutablemap.isEmpty()) {
object = dynamicops.createMap(ImmutableMap.of(dynamicops.createString("Name"), dynamicops.createString(IRegistry.BLOCK.getKey(iblockdata.getBlock()).toString())));
} else {
- object = dynamicops.createMap(ImmutableMap.of(dynamicops.createString("Name"), dynamicops.createString(IRegistry.BLOCK.getKey(iblockdata.getBlock()).toString()), dynamicops.createString("Properties"), dynamicops.createMap((Map) immutablemap.entrySet().stream().map((entry) -> {
+ object = dynamicops.createMap(ImmutableMap.of(dynamicops.createString("Name"), dynamicops.createString(IRegistry.BLOCK.getKey(iblockdata.getBlock()).toString()), dynamicops.createString("Properties"), dynamicops.createMap(immutablemap.entrySet().stream().map((entry) -> { // Paper - decompile fix
return Pair.of(dynamicops.createString(((IBlockState) entry.getKey()).a()), dynamicops.createString(IBlockDataHolder.b((IBlockState) entry.getKey(), (Comparable) entry.getValue())));
}).collect(Collectors.toMap(Pair::getFirst, Pair::getSecond)))));
protected IBlockState(String s, Class<T> oclass) {
- this.d = Codec.STRING.comapFlatMap((s1) -> {
- return (DataResult) this.b(s1).map(DataResult::success).orElseGet(() -> {
- return DataResult.error("Unable to read property: " + this + " with value: " + s1);
- });
- }, this::a);
- this.e = this.d.xmap(this::b, IBlockState.a::b);
+ this.d = Codec.STRING.comapFlatMap((s1) -> this.b(s1).map(DataResult::success).orElseGet(() -> { // Paper - decompile error
+ return DataResult.error("Unable to read property: " + this + " with value: " + s1);
+ }), this::a);
+ this.e = this.d.xmap(this::b, (IBlockState.a<T> param) -> param.b()); // Paper - decompile fix
this.a = oclass;
this.b = s;
}
@@ -348,9 +348,9 @@ public class IBlockData extends BlockDataAbstract<Block, IBlockData> implements
if (!iblockdata.o()) {
this.f = null;
} else {
- this.f = new VoxelShape[IBlockData.a.a.length];
+ this.f = new VoxelShape[a.length]; // Paper - decompile fix
VoxelShape voxelshape = block.i(iblockdata, BlockAccessAir.INSTANCE, BlockPosition.ZERO);
- EnumDirection[] aenumdirection = IBlockData.a.a;
+ EnumDirection[] aenumdirection = a; // Paper - decompile fix
i = aenumdirection.length;
@@ -366,7 +366,7 @@ public class IBlockData extends BlockDataAbstract<Block, IBlockData> implements
return this.g.b(enumdirection_enumaxis) < 0.0D || this.g.c(enumdirection_enumaxis) > 1.0D;
});
this.i = new boolean[6];
- EnumDirection[] aenumdirection1 = IBlockData.a.a;
+ EnumDirection[] aenumdirection1 = a; // Paper - decompile fix
int k = aenumdirection1.length;
for (i = 0; i < k; ++i) {
diff --git a/src/main/java/net/minecraft/server/IEntityAccess.java b/src/main/java/net/minecraft/server/IEntityAccess.java
index 534e70671a624e58ed98df9dd62bd7f5ffdf91af..d5c284cdd10d33f5f1b7f456d6a384a44eafb139 100644
index 2517b70ddeb985ae7d708c6a1708b42c6a67dd00..c469b5db81fb040fc27cd2e4f7cd61797f56a62d 100644
--- a/src/main/java/net/minecraft/server/IEntityAccess.java
+++ b/src/main/java/net/minecraft/server/IEntityAccess.java
@@ -47,7 +47,7 @@ public interface IEntityAccess {
return Stream.empty();
} else {
AxisAlignedBB axisalignedbb1 = axisalignedbb.g(1.0E-7D);
- Stream stream = this.getEntities(entity, axisalignedbb1).stream().filter((entity1) -> {
+ Stream<AxisAlignedBB> stream = this.getEntities(entity, axisalignedbb1).stream().filter((entity1) -> { // Paper - decompile fix
return !set.contains(entity1);
}).filter((entity1) -> {
return entity == null || !entity.isSameVehicle(entity1);
@@ -55,7 +55,6 @@ public interface IEntityAccess {
return Stream.of(entity1.au(), entity == null ? null : entity.j(entity1));
}).filter(Objects::nonNull);
- axisalignedbb1.getClass();
return stream.filter(axisalignedbb1::c).map(VoxelShapes::a);
}
}
@@ -157,22 +156,22 @@ public interface IEntityAccess {
@@ -150,22 +150,22 @@ public interface IEntityAccess {
@Nullable
default <T extends EntityLiving> T a(Class<? extends T> oclass, PathfinderTargetCondition pathfindertargetcondition, @Nullable EntityLiving entityliving, double d0, double d1, double d2, AxisAlignedBB axisalignedbb) {
@ -336,7 +387,7 @@ index 534e70671a624e58ed98df9dd62bd7f5ffdf91af..d5c284cdd10d33f5f1b7f456d6a384a4
if (pathfindertargetcondition.a(entityliving, t1)) {
double d4 = t1.g(d0, d1, d2);
@@ -205,10 +204,10 @@ public interface IEntityAccess {
@@ -198,10 +198,10 @@ public interface IEntityAccess {
default <T extends EntityLiving> List<T> a(Class<? extends T> oclass, PathfinderTargetCondition pathfindertargetcondition, EntityLiving entityliving, AxisAlignedBB axisalignedbb) {
List<T> list = this.a(oclass, axisalignedbb, (Predicate) null);
List<T> list1 = Lists.newArrayList();
@ -350,45 +401,34 @@ index 534e70671a624e58ed98df9dd62bd7f5ffdf91af..d5c284cdd10d33f5f1b7f456d6a384a4
if (pathfindertargetcondition.a(entityliving, t0)) {
list1.add(t0);
diff --git a/src/main/java/net/minecraft/server/IOWorker.java b/src/main/java/net/minecraft/server/IOWorker.java
index a986f2912fc04a7fdd49d648cbcd570464597937..c5658c0779b0e0d51fd4921456b6fef0711d7be3 100644
index c5a95f51ba43b94fd07f8df6576f45c3dd0216a3..38ccfd78639a85abcefb915c5c231be5881cebc1 100644
--- a/src/main/java/net/minecraft/server/IOWorker.java
+++ b/src/main/java/net/minecraft/server/IOWorker.java
@@ -46,7 +46,7 @@ public class IOWorker implements AutoCloseable {
if (throwable != null) {
completablefuture.completeExceptionally(throwable);
} else {
- completablefuture.complete((Object) null);
+ completablefuture.complete(null); // Paper - Decompile fix
@@ -83,7 +83,7 @@ public class IOWorker implements AutoCloseable {
return this.a(() -> {
try {
this.d.a();
- return Either.left((Object) null);
+ return Either.left(null); // Paper - decompile error
} catch (Exception exception) {
IOWorker.LOGGER.warn("Failed to synchronized chunks", exception);
return Either.right(exception);
@@ -117,13 +117,13 @@ public class IOWorker implements AutoCloseable {
}
});
@@ -106,7 +106,7 @@ public class IOWorker implements AutoCloseable {
}));
private void c() {
- this.c.a((Object) (new PairedQueue.b(IOWorker.Priority.LOW.ordinal(), this::b)));
+ this.c.a((new PairedQueue.b(IOWorker.Priority.LOW.ordinal(), this::b))); // Paper - decompile error
}
completablefuture1.whenComplete((object, throwable) -> {
- completablefuture.complete((Object) null);
+ completablefuture.complete(null); // Paper - decompile fix
});
};
});
@@ -165,7 +165,7 @@ public class IOWorker implements AutoCloseable {
private void a(ChunkCoordIntPair chunkcoordintpair, IOWorker.a ioworker_a) {
try {
this.e.write(chunkcoordintpair, ioworker_a.a);
this.d.write(chunkcoordintpair, ioworker_a.a);
- ioworker_a.b.complete((Object) null);
+ ioworker_a.b.complete(null); // Paper - decompile fix
} catch (Exception exception) {
IOWorker.LOGGER.error("Failed to store chunk {}", chunkcoordintpair, exception);
ioworker_a.b.completeExceptionally(exception);
@@ -176,7 +176,7 @@ public class IOWorker implements AutoCloseable {
private void g() {
try {
this.e.close();
- this.h.complete((Object) null);
+ this.h.complete(null); // Paper - decompile fix
} catch (Exception exception) {
IOWorker.LOGGER.error("Failed to close storage", exception);
this.h.completeExceptionally(exception);
diff --git a/src/main/java/net/minecraft/server/LightEngineStorageSky.java b/src/main/java/net/minecraft/server/LightEngineStorageSky.java
index 1e1f7ec6e6e6fc698a8a5118ce21321d104dc5eb..75d9065b32731dc635d9d09c48fb9643172381a9 100644
--- a/src/main/java/net/minecraft/server/LightEngineStorageSky.java
@ -407,18 +447,9 @@ index 1e1f7ec6e6e6fc698a8a5118ce21321d104dc5eb..75d9065b32731dc635d9d09c48fb9643
++k;
if (k >= l) {
diff --git a/src/main/java/net/minecraft/server/LightEngineThreaded.java b/src/main/java/net/minecraft/server/LightEngineThreaded.java
index ef315377579ca425ecb8d41aaf59eb1dd5b39e12..8776799de033f02b0f87e9ea7e4a4ce912e94dd4 100644
index 8b1f9116afd92b13426eb0e97066297705d202fb..a9dc8466278f9ec2becbcb643e6e1c973df72b82 100644
--- a/src/main/java/net/minecraft/server/LightEngineThreaded.java
+++ b/src/main/java/net/minecraft/server/LightEngineThreaded.java
@@ -110,7 +110,7 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable {
}
private void a(int i, int j, IntSupplier intsupplier, LightEngineThreaded.Update lightenginethreaded_update, Runnable runnable) {
- this.e.a((Object) ChunkTaskQueueSorter.a(() -> {
+ this.e.a(ChunkTaskQueueSorter.a(() -> { // Paper - decompile error
this.c.add(Pair.of(lightenginethreaded_update, runnable));
if (this.c.size() >= this.f) {
this.b();
@@ -167,7 +167,7 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable {
public void queueUpdate() {
@ -428,24 +459,37 @@ index ef315377579ca425ecb8d41aaf59eb1dd5b39e12..8776799de033f02b0f87e9ea7e4a4ce9
this.b();
this.g.set(false);
}));
diff --git a/src/main/java/net/minecraft/server/LootEntryAbstract.java b/src/main/java/net/minecraft/server/LootEntryAbstract.java
index 8cc8c60d3297a4ed98f3950a3971d83499ad1dfa..788078c209b8bcbd551cf0a52eb6172928d7b5f9 100644
--- a/src/main/java/net/minecraft/server/LootEntryAbstract.java
+++ b/src/main/java/net/minecraft/server/LootEntryAbstract.java
@@ -36,7 +36,7 @@ public abstract class LootEntryAbstract implements LootEntryChildren {
// CraftBukkit start
@Override
- public final void a(JsonObject jsonobject, T t0, JsonSerializationContext jsonserializationcontext) {
+ public void a(JsonObject jsonobject, T t0, JsonSerializationContext jsonserializationcontext) { // Paper - remove final
if (!org.apache.commons.lang3.ArrayUtils.isEmpty(t0.d)) {
jsonobject.add("conditions", jsonserializationcontext.serialize(t0.d));
}
diff --git a/src/main/java/net/minecraft/server/LootItemFunctionExplorationMap.java b/src/main/java/net/minecraft/server/LootItemFunctionExplorationMap.java
index fa11b2fc6364dc6fb6a951e092ea01f5e74c2c1d..5fe0da76bd172c2c552b2dd210e89be214c4385c 100644
index 3aa5cc4281cdba8738890e9ffd5c7a129e60c310..32a98e758b9df48005ddc5283eacdc5123a32c39 100644
--- a/src/main/java/net/minecraft/server/LootItemFunctionExplorationMap.java
+++ b/src/main/java/net/minecraft/server/LootItemFunctionExplorationMap.java
@@ -69,7 +69,7 @@ public class LootItemFunctionExplorationMap extends LootItemFunctionConditional
}
@@ -73,7 +73,7 @@ public class LootItemFunctionExplorationMap extends LootItemFunctionConditional
public b() {}
public void a(JsonObject jsonobject, LootItemFunctionExplorationMap lootitemfunctionexplorationmap, JsonSerializationContext jsonserializationcontext) {
- super.a(jsonobject, (LootItemFunctionConditional) lootitemfunctionexplorationmap, jsonserializationcontext);
+ super.a(jsonobject, lootitemfunctionexplorationmap, jsonserializationcontext); // Paper - decompile fix
if (!lootitemfunctionexplorationmap.d.equals("Buried_Treasure")) {
jsonobject.add("destination", jsonserializationcontext.serialize(lootitemfunctionexplorationmap.d));
if (!lootitemfunctionexplorationmap.e.equals(LootItemFunctionExplorationMap.a)) {
jsonobject.add("destination", jsonserializationcontext.serialize(lootitemfunctionexplorationmap.e.i()));
}
diff --git a/src/main/java/net/minecraft/server/LootSelectorEntry.java b/src/main/java/net/minecraft/server/LootSelectorEntry.java
index 59bb53543113660cd2514350a24a4908a8464f24..3ed6a1e785f68c4bb6c5afe024c43150915968a3 100644
index 998101592723abb26c91d1f92e98be1cf24c954d..ee9069c744df63cbb7f21dd9d28d6d554593674c 100644
--- a/src/main/java/net/minecraft/server/LootSelectorEntry.java
+++ b/src/main/java/net/minecraft/server/LootSelectorEntry.java
@@ -125,7 +125,7 @@ public abstract class LootSelectorEntry extends LootEntryAbstract {
@@ -123,7 +123,7 @@ public abstract class LootSelectorEntry extends LootEntryAbstract {
@Override
public T b(LootItemFunction.a lootitemfunction_a) {
this.c.add(lootitemfunction_a.b());
@ -454,7 +498,7 @@ index 59bb53543113660cd2514350a24a4908a8464f24..3ed6a1e785f68c4bb6c5afe024c43150
}
protected LootItemFunction[] a() {
@@ -134,12 +134,12 @@ public abstract class LootSelectorEntry extends LootEntryAbstract {
@@ -132,12 +132,12 @@ public abstract class LootSelectorEntry extends LootEntryAbstract {
public T a(int i) {
this.a = i;
@ -469,6 +513,22 @@ index 59bb53543113660cd2514350a24a4908a8464f24..3ed6a1e785f68c4bb6c5afe024c43150
}
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index ea3685df509101f3fed8b07088baef3ffdb4b85a..5e2dff9a30615b5580710f872a92ab9f07fca6cf 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1549,9 +1549,9 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
ResourcePackRepository resourcepackrepository = this.resourcePackRepository;
this.resourcePackRepository.getClass();
- return stream.map(resourcepackrepository::a).filter(Objects::nonNull).map(ResourcePackLoader::d).collect(ImmutableList.toImmutableList()); // CraftBukkit - decompile error
+ return stream.<ResourcePackLoader>map(resourcepackrepository::a).filter(Objects::nonNull).map(ResourcePackLoader::d).collect(ImmutableList.toImmutableList()); // CraftBukkit - decompile error // Paper - decompile error
}, this).thenCompose((immutablelist) -> {
- return DataPackResources.a(immutablelist, this.j() ? CommandDispatcher.ServerType.DEDICATED : CommandDispatcher.ServerType.INTEGRATED, this.h(), this.executorService, this);
+ return DataPackResources.a((List<IResourcePack>) immutablelist, this.j() ? CommandDispatcher.ServerType.DEDICATED : CommandDispatcher.ServerType.INTEGRATED, this.h(), this.executorService, this); // Paper - decompile error
}).thenAcceptAsync((datapackresources) -> {
this.dataPackResources.close();
this.dataPackResources = datapackresources;
diff --git a/src/main/java/net/minecraft/server/NBTBase.java b/src/main/java/net/minecraft/server/NBTBase.java
index 829a7ae0a2b77205fb8e8c5754d0d4333afa224d..8b9e47b4c7f5dc464fa617a59583df9e30a54045 100644
--- a/src/main/java/net/minecraft/server/NBTBase.java
@ -482,8 +542,29 @@ index 829a7ae0a2b77205fb8e8c5754d0d4333afa224d..8b9e47b4c7f5dc464fa617a59583df9e
default String asString() {
return this.toString();
diff --git a/src/main/java/net/minecraft/server/NBTCompressedStreamTools.java b/src/main/java/net/minecraft/server/NBTCompressedStreamTools.java
index db66d4ac7dc1bede8b674cd9ad8f56dd989b6693..c9be8c7f40917056091f63d36311a10d6302acbb 100644
--- a/src/main/java/net/minecraft/server/NBTCompressedStreamTools.java
+++ b/src/main/java/net/minecraft/server/NBTCompressedStreamTools.java
@@ -11,6 +11,7 @@ import java.io.InputStream;
import java.io.OutputStream;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
+import io.netty.buffer.ByteBufInputStream; // Paper
public class NBTCompressedStreamTools {
@@ -75,7 +76,7 @@ public class NBTCompressedStreamTools {
public static NBTTagCompound a(DataInput datainput, NBTReadLimiter nbtreadlimiter) throws IOException {
// Spigot start
- if ( datainput instanceof io.netty.buffer.ByteBufInputStream )
+ if ( datainput instanceof ByteBufInputStream) // Paper
{
datainput = new DataInputStream(new org.spigotmc.LimitStream((InputStream) datainput, nbtreadlimiter));
}
diff --git a/src/main/java/net/minecraft/server/NBTTagList.java b/src/main/java/net/minecraft/server/NBTTagList.java
index 22035b6c0b76687404e4df92f5796dbf244c50bc..5406f4c40f86e74f8ed4e7e986b23d19141ddc30 100644
index b8bb5027ecccfc9b664145a1bfe3755f1a8af3eb..ad8a506bb430b26fe147a657a2f826daf9bf4d45 100644
--- a/src/main/java/net/minecraft/server/NBTTagList.java
+++ b/src/main/java/net/minecraft/server/NBTTagList.java
@@ -51,7 +51,7 @@ public class NBTTagList extends NBTList<NBTBase> {
@ -517,31 +598,6 @@ index 8471920b8b92f0bbd0d3ee827e1b0a120f405f6c..e9c405fb5376c5733b9b0191cd530917
});
}
diff --git a/src/main/java/net/minecraft/server/RegionFileSection.java b/src/main/java/net/minecraft/server/RegionFileSection.java
index 737afc7d71f415e942602efb4bd91fba6c6baa72..db9f0196bda4c987de6cf63eea437b7154d47b57 100644
--- a/src/main/java/net/minecraft/server/RegionFileSection.java
+++ b/src/main/java/net/minecraft/server/RegionFileSection.java
@@ -83,9 +83,9 @@ public class RegionFileSection<R extends MinecraftSerializable> implements AutoC
Optional<R> optional = this.d(i);
if (optional.isPresent()) {
- return (MinecraftSerializable) optional.get();
+ return optional.get(); // Paper - decompile fix
} else {
- R r0 = (MinecraftSerializable) this.f.apply(() -> {
+ R r0 = this.f.apply(() -> { // Paper - decompile fix
this.a(i);
});
@@ -124,7 +124,7 @@ public class RegionFileSection<R extends MinecraftSerializable> implements AutoC
for (int l = 0; l < 16; ++l) {
long i1 = SectionPosition.a(chunkcoordintpair, l).v();
Optional<R> optional = optionaldynamic.get(Integer.toString(l)).get().map((dynamic2) -> {
- return (MinecraftSerializable) this.e.apply(() -> {
+ return this.e.apply(() -> { // Paper - decompile fix
this.a(i1);
}, dynamic2);
});
diff --git a/src/main/java/net/minecraft/server/RegistryBlockID.java b/src/main/java/net/minecraft/server/RegistryBlockID.java
index 7f89562e90ede1bdd06b71c0798d986ccbb7886e..4efcb8b595750891b421e524812542f0f67e9f3f 100644
--- a/src/main/java/net/minecraft/server/RegistryBlockID.java
@ -556,7 +612,7 @@ index 7f89562e90ede1bdd06b71c0798d986ccbb7886e..4efcb8b595750891b421e524812542f0
this.c.set(i, t0);
diff --git a/src/main/java/net/minecraft/server/RegistryID.java b/src/main/java/net/minecraft/server/RegistryID.java
index 4cb78c6a3feb15eb15f76f967e724829655e8617..e15d286710ed66a01bfb6b60f8735b837efb3fd7 100644
index 2dc20b5c930c6845af41b35d69cdb03db639d63e..6cdd4d46d987132c3c241800b5d59cee2dfa25e2 100644
--- a/src/main/java/net/minecraft/server/RegistryID.java
+++ b/src/main/java/net/minecraft/server/RegistryID.java
@@ -17,9 +17,9 @@ public class RegistryID<K> implements Registry<K> {
@ -571,7 +627,7 @@ index 4cb78c6a3feb15eb15f76f967e724829655e8617..e15d286710ed66a01bfb6b60f8735b83
}
public int getId(@Nullable K k0) {
@@ -55,9 +55,9 @@ public class RegistryID<K> implements Registry<K> {
@@ -59,9 +59,9 @@ public class RegistryID<K> implements Registry<K> {
K[] ak = this.b;
int[] aint = this.c;
@ -583,11 +639,24 @@ index 4cb78c6a3feb15eb15f76f967e724829655e8617..e15d286710ed66a01bfb6b60f8735b83
this.e = 0;
this.f = 0;
diff --git a/src/main/java/net/minecraft/server/StructureGenerator.java b/src/main/java/net/minecraft/server/StructureGenerator.java
index 68510457b527e61bf60bf1e7dfd664578172c00a..eefad79a01de61eff5e0bd3f709bfda030ebe20d 100644
--- a/src/main/java/net/minecraft/server/StructureGenerator.java
+++ b/src/main/java/net/minecraft/server/StructureGenerator.java
@@ -42,7 +42,7 @@ public abstract class StructureGenerator<C extends WorldGenFeatureConfiguration>
private static <F extends StructureGenerator<?>> F a(String s, F f0, WorldGenStage.Decoration worldgenstage_decoration) {
StructureGenerator.a.put(s.toLowerCase(Locale.ROOT), f0);
StructureGenerator.u.put(f0, worldgenstage_decoration);
- return (StructureGenerator) IRegistry.a(IRegistry.STRUCTURE_FEATURE, s.toLowerCase(Locale.ROOT), (Object) f0);
+ return (F) IRegistry.<StructureGenerator<?>>a(IRegistry.STRUCTURE_FEATURE, s.toLowerCase(Locale.ROOT), f0); // Paper - decomp fix
}
public StructureGenerator(Codec<C> codec) {
diff --git a/src/main/java/net/minecraft/server/SystemUtils.java b/src/main/java/net/minecraft/server/SystemUtils.java
index 8534585eb17cd46f1e392d8f09bb671abe27ef52..7b92ecfff94e3c4a69269139ebed75fc59bbd4f1 100644
index a1a5460e429356b52a75037c809cec85bd99084a..80ee8d196436e271833503a0e123401d1b3314a9 100644
--- a/src/main/java/net/minecraft/server/SystemUtils.java
+++ b/src/main/java/net/minecraft/server/SystemUtils.java
@@ -45,8 +45,8 @@ public class SystemUtils {
@@ -55,8 +55,8 @@ public class SystemUtils {
return Collectors.toMap(Entry::getKey, Entry::getValue);
}
@ -598,7 +667,7 @@ index 8534585eb17cd46f1e392d8f09bb671abe27ef52..7b92ecfff94e3c4a69269139ebed75fc
}
public static String a(String s, @Nullable MinecraftKey minecraftkey) {
@@ -168,8 +168,8 @@ public class SystemUtils {
@@ -224,8 +224,8 @@ public class SystemUtils {
public static <T> T b(Iterable<T> iterable, @Nullable T t0) {
Iterator<T> iterator = iterable.iterator();
@ -609,16 +678,16 @@ index 8534585eb17cd46f1e392d8f09bb671abe27ef52..7b92ecfff94e3c4a69269139ebed75fc
for (object1 = null; iterator.hasNext(); object1 = object) {
object = iterator.next();
@@ -194,7 +194,7 @@ public class SystemUtils {
@@ -250,7 +250,7 @@ public class SystemUtils {
}
public static <K> Strategy<K> i() {
public static <K> Strategy<K> k() {
- return SystemUtils.IdentityHashingStrategy.INSTANCE;
+ return (Strategy<K>) SystemUtils.IdentityHashingStrategy.INSTANCE; // Paper - decompile fix
}
public static <V> CompletableFuture<List<V>> b(List<? extends CompletableFuture<? extends V>> list) {
@@ -205,7 +205,7 @@ public class SystemUtils {
@@ -261,7 +261,7 @@ public class SystemUtils {
list.forEach((completablefuture1) -> {
int i = list1.size();
@ -628,10 +697,10 @@ index 8534585eb17cd46f1e392d8f09bb671abe27ef52..7b92ecfff94e3c4a69269139ebed75fc
if (throwable != null) {
completablefuture.completeExceptionally(throwable);
diff --git a/src/main/java/net/minecraft/server/ThreadedMailbox.java b/src/main/java/net/minecraft/server/ThreadedMailbox.java
index 8dbb33e749a282ab1e41bfdc616a22744dc7b162..8082569022384a3ba03fb4a6f1ae12b443598dcb 100644
index b64fc6e3dc8f628ead2c243baa48f2872bd8da0c..35f4d2d9591e625ab0bbeab7b606761e74965eec 100644
--- a/src/main/java/net/minecraft/server/ThreadedMailbox.java
+++ b/src/main/java/net/minecraft/server/ThreadedMailbox.java
@@ -83,7 +83,7 @@ public class ThreadedMailbox<T> implements Mailbox<T>, AutoCloseable, Runnable {
@@ -99,7 +99,7 @@ public class ThreadedMailbox<T> implements Mailbox<T>, AutoCloseable, Runnable {
public void run() {
try {
@ -654,10 +723,10 @@ index ee2059cf8ef0a0372e02b91a4bf6fa8a0ab31bca..77bb6b092a0763ff27f90f0401a8a81b
}
diff --git a/src/main/java/net/minecraft/server/TileEntityPiston.java b/src/main/java/net/minecraft/server/TileEntityPiston.java
index 79df42f5e53464f07e76d22cd1317637145e2056..489175abd8e582a3c082364fec357c4f061a22d7 100644
index dc52856856796524e4519c34ab92e37031013759..5b941321a7fdc561e6b794a1dce5d600083c505d 100644
--- a/src/main/java/net/minecraft/server/TileEntityPiston.java
+++ b/src/main/java/net/minecraft/server/TileEntityPiston.java
@@ -137,7 +137,7 @@ public class TileEntityPiston extends TileEntity implements ITickable {
@@ -140,7 +140,7 @@ public class TileEntityPiston extends TileEntity implements ITickable {
private static void a(EnumDirection enumdirection, Entity entity, double d0, EnumDirection enumdirection1) {
TileEntityPiston.h.set(enumdirection);
entity.move(EnumMoveType.PISTON, new Vec3D(d0 * (double) enumdirection1.getAdjacentX(), d0 * (double) enumdirection1.getAdjacentY(), d0 * (double) enumdirection1.getAdjacentZ()));
@ -667,28 +736,31 @@ index 79df42f5e53464f07e76d22cd1317637145e2056..489175abd8e582a3c082364fec357c4f
private void g(float f) {
diff --git a/src/main/java/net/minecraft/server/VillagePlace.java b/src/main/java/net/minecraft/server/VillagePlace.java
index c137484f66a022f7f4581d0657210d60c619c5fa..c999f8c9bf8a59e19b3d6d1b7ad8b5fb6e48b928 100644
index bc2fab806ee1cc7628841a065436f0339f17ecce..b8c15047771bd4527b86e514a3b950b2ffc6eef0 100644
--- a/src/main/java/net/minecraft/server/VillagePlace.java
+++ b/src/main/java/net/minecraft/server/VillagePlace.java
@@ -165,7 +165,7 @@ public class VillagePlace extends RegionFileSection<VillagePlaceSection> {
@@ -170,9 +170,9 @@ public class VillagePlace extends RegionFileSection<VillagePlaceSection> {
}
private static boolean a(ChunkSection chunksection) {
- Stream stream = VillagePlaceType.e();
+ Stream<IBlockData> stream = VillagePlaceType.e(); // Paper - decompile fix
- Set set = VillagePlaceType.x;
+ Set<IBlockData> set = VillagePlaceType.x; // Paper - decompile error
chunksection.getClass();
return stream.anyMatch(chunksection::a);
@@ -185,7 +185,7 @@ public class VillagePlace extends RegionFileSection<VillagePlaceSection> {
- set.getClass();
+ //set.getClass(); // Paper - decompile error
return chunksection.a(set::contains);
}
@@ -190,7 +190,7 @@ public class VillagePlace extends RegionFileSection<VillagePlaceSection> {
SectionPosition.b(new ChunkCoordIntPair(blockposition), Math.floorDiv(i, 16)).map((sectionposition) -> {
return Pair.of(sectionposition, this.d(sectionposition.v()));
return Pair.of(sectionposition, this.d(sectionposition.s()));
}).filter((pair) -> {
- return !(Boolean) ((Optional) pair.getSecond()).map(VillagePlaceSection::a).orElse(false);
+ return !(Boolean) (pair.getSecond()).map(VillagePlaceSection::a).orElse(false); // Paper - decompile fix
}).map((pair) -> {
return ((SectionPosition) pair.getFirst()).u();
return ((SectionPosition) pair.getFirst()).r();
}).filter((chunkcoordintpair) -> {
@@ -237,7 +237,7 @@ public class VillagePlace extends RegionFileSection<VillagePlaceSection> {
@@ -242,7 +242,7 @@ public class VillagePlace extends RegionFileSection<VillagePlaceSection> {
private final Predicate<? super VillagePlaceRecord> d;
@ -698,25 +770,25 @@ index c137484f66a022f7f4581d0657210d60c619c5fa..c999f8c9bf8a59e19b3d6d1b7ad8b5fb
}
diff --git a/src/main/java/net/minecraft/server/VillagerTrades.java b/src/main/java/net/minecraft/server/VillagerTrades.java
index a06a31534e5bdfddcd3914f68e5b60ae0ec43117..3bcf0b385d1f707176dae9c3ee49370e2e6dd481 100644
index b0ec371c058c428a909faafe027e58e9c7f0cb38..532460e7549192dfe6170e2bf489edb46b8b5737 100644
--- a/src/main/java/net/minecraft/server/VillagerTrades.java
+++ b/src/main/java/net/minecraft/server/VillagerTrades.java
@@ -15,12 +15,12 @@ import javax.annotation.Nullable;
@@ -14,12 +14,12 @@ import javax.annotation.Nullable;
public class VillagerTrades {
- public static final Map<VillagerProfession, Int2ObjectMap<VillagerTrades.IMerchantRecipeOption[]>> a = (Map) SystemUtils.a((Object) Maps.newHashMap(), (hashmap) -> {
+ public static final Map<VillagerProfession, Int2ObjectMap<VillagerTrades.IMerchantRecipeOption[]>> a = SystemUtils.a(Maps.newHashMap(), (hashmap) -> { // Paper - decompile fix
hashmap.put(VillagerProfession.FARMER, a(ImmutableMap.of(1, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.WHEAT, 20, 16, 2), new VillagerTrades.b(Items.POTATO, 26, 16, 2), new VillagerTrades.b(Items.CARROT, 22, 16, 2), new VillagerTrades.b(Items.BEETROOT, 15, 16, 2), new VillagerTrades.h(Items.BREAD, 1, 6, 16, 1)}, 2, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Blocks.PUMPKIN, 6, 12, 10), new VillagerTrades.h(Items.PUMPKIN_PIE, 1, 4, 5), new VillagerTrades.h(Items.APPLE, 1, 4, 16, 5)}, 3, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.h(Items.COOKIE, 3, 18, 10), new VillagerTrades.b(Blocks.MELON, 4, 12, 20)}, 4, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.h(Blocks.CAKE, 1, 1, 12, 15), new VillagerTrades.i(MobEffects.NIGHT_VISION, 100, 15), new VillagerTrades.i(MobEffects.JUMP, 160, 15), new VillagerTrades.i(MobEffects.WEAKNESS, 140, 15), new VillagerTrades.i(MobEffects.BLINDNESS, 120, 15), new VillagerTrades.i(MobEffects.POISON, 280, 15), new VillagerTrades.i(MobEffects.SATURATION, 7, 15)}, 5, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.h(Items.GOLDEN_CARROT, 3, 3, 30), new VillagerTrades.h(Items.GLISTERING_MELON_SLICE, 4, 3, 30)})));
- hashmap.put(VillagerProfession.FISHERMAN, a(ImmutableMap.of(1, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.STRING, 20, 16, 2), new VillagerTrades.b(Items.COAL, 10, 16, 2), new VillagerTrades.g(Items.COD, 6, Items.COOKED_COD, 6, 16, 1), new VillagerTrades.h(Items.COD_BUCKET, 3, 1, 16, 1)}, 2, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.COD, 15, 16, 10), new VillagerTrades.g(Items.SALMON, 6, Items.COOKED_SALMON, 6, 16, 5), new VillagerTrades.h(Items.pT, 2, 1, 5)}, 3, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.SALMON, 13, 16, 20), new VillagerTrades.e(Items.FISHING_ROD, 3, 3, 10, 0.2F)}, 4, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.TROPICAL_FISH, 6, 12, 30)}, 5, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.PUFFERFISH, 4, 12, 30), new VillagerTrades.c(1, 12, 30, ImmutableMap.builder().put(VillagerType.PLAINS, Items.OAK_BOAT).put(VillagerType.TAIGA, Items.SPRUCE_BOAT).put(VillagerType.SNOW, Items.SPRUCE_BOAT).put(VillagerType.DESERT, Items.JUNGLE_BOAT).put(VillagerType.JUNGLE, Items.JUNGLE_BOAT).put(VillagerType.SAVANNA, Items.ACACIA_BOAT).put(VillagerType.SWAMP, Items.DARK_OAK_BOAT).build())})));
+ hashmap.put(VillagerProfession.FISHERMAN, a(ImmutableMap.of(1, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.STRING, 20, 16, 2), new VillagerTrades.b(Items.COAL, 10, 16, 2), new VillagerTrades.g(Items.COD, 6, Items.COOKED_COD, 6, 16, 1), new VillagerTrades.h(Items.COD_BUCKET, 3, 1, 16, 1)}, 2, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.COD, 15, 16, 10), new VillagerTrades.g(Items.SALMON, 6, Items.COOKED_SALMON, 6, 16, 5), new VillagerTrades.h(Items.pT, 2, 1, 5)}, 3, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.SALMON, 13, 16, 20), new VillagerTrades.e(Items.FISHING_ROD, 3, 3, 10, 0.2F)}, 4, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.TROPICAL_FISH, 6, 12, 30)}, 5, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.PUFFERFISH, 4, 12, 30), new VillagerTrades.c(1, 12, 30, ImmutableMap.<VillagerType, Item>builder().put(VillagerType.PLAINS, Items.OAK_BOAT).put(VillagerType.TAIGA, Items.SPRUCE_BOAT).put(VillagerType.SNOW, Items.SPRUCE_BOAT).put(VillagerType.DESERT, Items.JUNGLE_BOAT).put(VillagerType.JUNGLE, Items.JUNGLE_BOAT).put(VillagerType.SAVANNA, Items.ACACIA_BOAT).put(VillagerType.SWAMP, Items.DARK_OAK_BOAT).build())}))); // Paper - decompile fix
- hashmap.put(VillagerProfession.FISHERMAN, a(ImmutableMap.of(1, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.STRING, 20, 16, 2), new VillagerTrades.b(Items.COAL, 10, 16, 2), new VillagerTrades.g(Items.COD, 6, Items.COOKED_COD, 6, 16, 1), new VillagerTrades.h(Items.COD_BUCKET, 3, 1, 16, 1)}, 2, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.COD, 15, 16, 10), new VillagerTrades.g(Items.SALMON, 6, Items.COOKED_SALMON, 6, 16, 5), new VillagerTrades.h(Items.rm, 2, 1, 5)}, 3, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.SALMON, 13, 16, 20), new VillagerTrades.e(Items.FISHING_ROD, 3, 3, 10, 0.2F)}, 4, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.TROPICAL_FISH, 6, 12, 30)}, 5, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.PUFFERFISH, 4, 12, 30), new VillagerTrades.c(1, 12, 30, ImmutableMap.builder().put(VillagerType.PLAINS, Items.OAK_BOAT).put(VillagerType.TAIGA, Items.SPRUCE_BOAT).put(VillagerType.SNOW, Items.SPRUCE_BOAT).put(VillagerType.DESERT, Items.JUNGLE_BOAT).put(VillagerType.JUNGLE, Items.JUNGLE_BOAT).put(VillagerType.SAVANNA, Items.ACACIA_BOAT).put(VillagerType.SWAMP, Items.DARK_OAK_BOAT).build())})));
+ hashmap.put(VillagerProfession.FISHERMAN, a(ImmutableMap.of(1, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.STRING, 20, 16, 2), new VillagerTrades.b(Items.COAL, 10, 16, 2), new VillagerTrades.g(Items.COD, 6, Items.COOKED_COD, 6, 16, 1), new VillagerTrades.h(Items.COD_BUCKET, 3, 1, 16, 1)}, 2, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.COD, 15, 16, 10), new VillagerTrades.g(Items.SALMON, 6, Items.COOKED_SALMON, 6, 16, 5), new VillagerTrades.h(Items.rm, 2, 1, 5)}, 3, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.SALMON, 13, 16, 20), new VillagerTrades.e(Items.FISHING_ROD, 3, 3, 10, 0.2F)}, 4, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.TROPICAL_FISH, 6, 12, 30)}, 5, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.PUFFERFISH, 4, 12, 30), new VillagerTrades.c(1, 12, 30, ImmutableMap.<VillagerType, Item>builder().put(VillagerType.PLAINS, Items.OAK_BOAT).put(VillagerType.TAIGA, Items.SPRUCE_BOAT).put(VillagerType.SNOW, Items.SPRUCE_BOAT).put(VillagerType.DESERT, Items.JUNGLE_BOAT).put(VillagerType.JUNGLE, Items.JUNGLE_BOAT).put(VillagerType.SAVANNA, Items.ACACIA_BOAT).put(VillagerType.SWAMP, Items.DARK_OAK_BOAT).build())}))); // <VillagerType, Item>
hashmap.put(VillagerProfession.SHEPHERD, a(ImmutableMap.of(1, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Blocks.WHITE_WOOL, 18, 16, 2), new VillagerTrades.b(Blocks.BROWN_WOOL, 18, 16, 2), new VillagerTrades.b(Blocks.BLACK_WOOL, 18, 16, 2), new VillagerTrades.b(Blocks.GRAY_WOOL, 18, 16, 2), new VillagerTrades.h(Items.SHEARS, 2, 1, 1)}, 2, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.WHITE_DYE, 12, 16, 10), new VillagerTrades.b(Items.GRAY_DYE, 12, 16, 10), new VillagerTrades.b(Items.BLACK_DYE, 12, 16, 10), new VillagerTrades.b(Items.LIGHT_BLUE_DYE, 12, 16, 10), new VillagerTrades.b(Items.LIME_DYE, 12, 16, 10), new VillagerTrades.h(Blocks.WHITE_WOOL, 1, 1, 16, 5), new VillagerTrades.h(Blocks.ORANGE_WOOL, 1, 1, 16, 5), new VillagerTrades.h(Blocks.MAGENTA_WOOL, 1, 1, 16, 5), new VillagerTrades.h(Blocks.LIGHT_BLUE_WOOL, 1, 1, 16, 5), new VillagerTrades.h(Blocks.YELLOW_WOOL, 1, 1, 16, 5), new VillagerTrades.h(Blocks.LIME_WOOL, 1, 1, 16, 5), new VillagerTrades.h(Blocks.PINK_WOOL, 1, 1, 16, 5), new VillagerTrades.h(Blocks.GRAY_WOOL, 1, 1, 16, 5), new VillagerTrades.h(Blocks.LIGHT_GRAY_WOOL, 1, 1, 16, 5), new VillagerTrades.h(Blocks.CYAN_WOOL, 1, 1, 16, 5), new VillagerTrades.h(Blocks.PURPLE_WOOL, 1, 1, 16, 5), new VillagerTrades.h(Blocks.BLUE_WOOL, 1, 1, 16, 5), new VillagerTrades.h(Blocks.BROWN_WOOL, 1, 1, 16, 5), new VillagerTrades.h(Blocks.GREEN_WOOL, 1, 1, 16, 5), new VillagerTrades.h(Blocks.RED_WOOL, 1, 1, 16, 5), new VillagerTrades.h(Blocks.BLACK_WOOL, 1, 1, 16, 5), new VillagerTrades.h(Blocks.WHITE_CARPET, 1, 4, 16, 5), new VillagerTrades.h(Blocks.ORANGE_CARPET, 1, 4, 16, 5), new VillagerTrades.h(Blocks.MAGENTA_CARPET, 1, 4, 16, 5), new VillagerTrades.h(Blocks.LIGHT_BLUE_CARPET, 1, 4, 16, 5), new VillagerTrades.h(Blocks.YELLOW_CARPET, 1, 4, 16, 5), new VillagerTrades.h(Blocks.LIME_CARPET, 1, 4, 16, 5), new VillagerTrades.h(Blocks.PINK_CARPET, 1, 4, 16, 5), new VillagerTrades.h(Blocks.GRAY_CARPET, 1, 4, 16, 5), new VillagerTrades.h(Blocks.LIGHT_GRAY_CARPET, 1, 4, 16, 5), new VillagerTrades.h(Blocks.CYAN_CARPET, 1, 4, 16, 5), new VillagerTrades.h(Blocks.PURPLE_CARPET, 1, 4, 16, 5), new VillagerTrades.h(Blocks.BLUE_CARPET, 1, 4, 16, 5), new VillagerTrades.h(Blocks.BROWN_CARPET, 1, 4, 16, 5), new VillagerTrades.h(Blocks.GREEN_CARPET, 1, 4, 16, 5), new VillagerTrades.h(Blocks.RED_CARPET, 1, 4, 16, 5), new VillagerTrades.h(Blocks.BLACK_CARPET, 1, 4, 16, 5)}, 3, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.YELLOW_DYE, 12, 16, 20), new VillagerTrades.b(Items.LIGHT_GRAY_DYE, 12, 16, 20), new VillagerTrades.b(Items.ORANGE_DYE, 12, 16, 20), new VillagerTrades.b(Items.RED_DYE, 12, 16, 20), new VillagerTrades.b(Items.PINK_DYE, 12, 16, 20), new VillagerTrades.h(Blocks.WHITE_BED, 3, 1, 12, 10), new VillagerTrades.h(Blocks.YELLOW_BED, 3, 1, 12, 10), new VillagerTrades.h(Blocks.RED_BED, 3, 1, 12, 10), new VillagerTrades.h(Blocks.BLACK_BED, 3, 1, 12, 10), new VillagerTrades.h(Blocks.BLUE_BED, 3, 1, 12, 10), new VillagerTrades.h(Blocks.BROWN_BED, 3, 1, 12, 10), new VillagerTrades.h(Blocks.CYAN_BED, 3, 1, 12, 10), new VillagerTrades.h(Blocks.GRAY_BED, 3, 1, 12, 10), new VillagerTrades.h(Blocks.GREEN_BED, 3, 1, 12, 10), new VillagerTrades.h(Blocks.LIGHT_BLUE_BED, 3, 1, 12, 10), new VillagerTrades.h(Blocks.LIGHT_GRAY_BED, 3, 1, 12, 10), new VillagerTrades.h(Blocks.LIME_BED, 3, 1, 12, 10), new VillagerTrades.h(Blocks.MAGENTA_BED, 3, 1, 12, 10), new VillagerTrades.h(Blocks.ORANGE_BED, 3, 1, 12, 10), new VillagerTrades.h(Blocks.PINK_BED, 3, 1, 12, 10), new VillagerTrades.h(Blocks.PURPLE_BED, 3, 1, 12, 10)}, 4, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.BROWN_DYE, 12, 16, 30), new VillagerTrades.b(Items.PURPLE_DYE, 12, 16, 30), new VillagerTrades.b(Items.BLUE_DYE, 12, 16, 30), new VillagerTrades.b(Items.GREEN_DYE, 12, 16, 30), new VillagerTrades.b(Items.MAGENTA_DYE, 12, 16, 30), new VillagerTrades.b(Items.CYAN_DYE, 12, 16, 30), new VillagerTrades.h(Items.WHITE_BANNER, 3, 1, 12, 15), new VillagerTrades.h(Items.BLUE_BANNER, 3, 1, 12, 15), new VillagerTrades.h(Items.LIGHT_BLUE_BANNER, 3, 1, 12, 15), new VillagerTrades.h(Items.RED_BANNER, 3, 1, 12, 15), new VillagerTrades.h(Items.PINK_BANNER, 3, 1, 12, 15), new VillagerTrades.h(Items.GREEN_BANNER, 3, 1, 12, 15), new VillagerTrades.h(Items.LIME_BANNER, 3, 1, 12, 15), new VillagerTrades.h(Items.GRAY_BANNER, 3, 1, 12, 15), new VillagerTrades.h(Items.BLACK_BANNER, 3, 1, 12, 15), new VillagerTrades.h(Items.PURPLE_BANNER, 3, 1, 12, 15), new VillagerTrades.h(Items.MAGENTA_BANNER, 3, 1, 12, 15), new VillagerTrades.h(Items.CYAN_BANNER, 3, 1, 12, 15), new VillagerTrades.h(Items.BROWN_BANNER, 3, 1, 12, 15), new VillagerTrades.h(Items.YELLOW_BANNER, 3, 1, 12, 15), new VillagerTrades.h(Items.ORANGE_BANNER, 3, 1, 12, 15), new VillagerTrades.h(Items.LIGHT_GRAY_BANNER, 3, 1, 12, 15)}, 5, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.h(Items.PAINTING, 2, 3, 30)})));
hashmap.put(VillagerProfession.FLETCHER, a(ImmutableMap.of(1, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.STICK, 32, 16, 2), new VillagerTrades.h(Items.ARROW, 1, 16, 1), new VillagerTrades.g(Blocks.GRAVEL, 10, Items.FLINT, 10, 12, 1)}, 2, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.FLINT, 26, 12, 10), new VillagerTrades.h(Items.BOW, 2, 1, 5)}, 3, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.STRING, 14, 16, 20), new VillagerTrades.h(Items.CROSSBOW, 3, 1, 10)}, 4, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.FEATHER, 24, 16, 30), new VillagerTrades.e(Items.BOW, 2, 3, 15)}, 5, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.dE, 8, 12, 30), new VillagerTrades.e(Items.CROSSBOW, 3, 3, 15), new VillagerTrades.j(Items.ARROW, 5, Items.TIPPED_ARROW, 5, 2, 12, 30)})));
- hashmap.put(VillagerProfession.LIBRARIAN, a(ImmutableMap.builder().put(1, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.PAPER, 24, 16, 2), new VillagerTrades.d(1), new VillagerTrades.h(Blocks.BOOKSHELF, 9, 1, 12, 1)}).put(2, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.BOOK, 4, 12, 10), new VillagerTrades.d(5), new VillagerTrades.h(Items.pR, 1, 1, 5)}).put(3, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.INK_SAC, 5, 12, 20), new VillagerTrades.d(10), new VillagerTrades.h(Items.am, 1, 4, 10)}).put(4, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.WRITABLE_BOOK, 2, 12, 30), new VillagerTrades.d(15), new VillagerTrades.h(Items.CLOCK, 5, 1, 15), new VillagerTrades.h(Items.COMPASS, 4, 1, 15)}).put(5, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.h(Items.NAME_TAG, 20, 1, 30)}).build()));
+ hashmap.put(VillagerProfession.LIBRARIAN, a(ImmutableMap.<Integer, VillagerTrades.IMerchantRecipeOption[]>builder().put(1, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.PAPER, 24, 16, 2), new VillagerTrades.d(1), new VillagerTrades.h(Blocks.BOOKSHELF, 9, 1, 12, 1)}).put(2, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.BOOK, 4, 12, 10), new VillagerTrades.d(5), new VillagerTrades.h(Items.pR, 1, 1, 5)}).put(3, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.INK_SAC, 5, 12, 20), new VillagerTrades.d(10), new VillagerTrades.h(Items.am, 1, 4, 10)}).put(4, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.WRITABLE_BOOK, 2, 12, 30), new VillagerTrades.d(15), new VillagerTrades.h(Items.CLOCK, 5, 1, 15), new VillagerTrades.h(Items.COMPASS, 4, 1, 15)}).put(5, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.h(Items.NAME_TAG, 20, 1, 30)}).build())); // Paper - decompile fix
hashmap.put(VillagerProfession.CARTOGRAPHER, a(ImmutableMap.of(1, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.PAPER, 24, 16, 2), new VillagerTrades.h(Items.MAP, 7, 1, 1)}, 2, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.df, 11, 16, 10), new VillagerTrades.k(13, "Monument", MapIcon.Type.MONUMENT, 12, 5)}, 3, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.COMPASS, 1, 12, 20), new VillagerTrades.k(14, "Mansion", MapIcon.Type.MANSION, 12, 10)}, 4, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.h(Items.ITEM_FRAME, 7, 1, 15), new VillagerTrades.h(Items.WHITE_BANNER, 3, 1, 15), new VillagerTrades.h(Items.BLUE_BANNER, 3, 1, 15), new VillagerTrades.h(Items.LIGHT_BLUE_BANNER, 3, 1, 15), new VillagerTrades.h(Items.RED_BANNER, 3, 1, 15), new VillagerTrades.h(Items.PINK_BANNER, 3, 1, 15), new VillagerTrades.h(Items.GREEN_BANNER, 3, 1, 15), new VillagerTrades.h(Items.LIME_BANNER, 3, 1, 15), new VillagerTrades.h(Items.GRAY_BANNER, 3, 1, 15), new VillagerTrades.h(Items.BLACK_BANNER, 3, 1, 15), new VillagerTrades.h(Items.PURPLE_BANNER, 3, 1, 15), new VillagerTrades.h(Items.MAGENTA_BANNER, 3, 1, 15), new VillagerTrades.h(Items.CYAN_BANNER, 3, 1, 15), new VillagerTrades.h(Items.BROWN_BANNER, 3, 1, 15), new VillagerTrades.h(Items.YELLOW_BANNER, 3, 1, 15), new VillagerTrades.h(Items.ORANGE_BANNER, 3, 1, 15), new VillagerTrades.h(Items.LIGHT_GRAY_BANNER, 3, 1, 15)}, 5, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.h(Items.GLOBE_BANNER_PATTERN, 8, 1, 30)})));
hashmap.put(VillagerProfession.FLETCHER, a(ImmutableMap.of(1, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.STICK, 32, 16, 2), new VillagerTrades.h(Items.ARROW, 1, 16, 1), new VillagerTrades.g(Blocks.GRAVEL, 10, Items.FLINT, 10, 12, 1)}, 2, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.FLINT, 26, 12, 10), new VillagerTrades.h(Items.BOW, 2, 1, 5)}, 3, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.STRING, 14, 16, 20), new VillagerTrades.h(Items.CROSSBOW, 3, 1, 10)}, 4, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.FEATHER, 24, 16, 30), new VillagerTrades.e(Items.BOW, 2, 3, 15)}, 5, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.es, 8, 12, 30), new VillagerTrades.e(Items.CROSSBOW, 3, 3, 15), new VillagerTrades.j(Items.ARROW, 5, Items.TIPPED_ARROW, 5, 2, 12, 30)})));
- hashmap.put(VillagerProfession.LIBRARIAN, a(ImmutableMap.builder().put(1, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.PAPER, 24, 16, 2), new VillagerTrades.d(1), new VillagerTrades.h(Blocks.BOOKSHELF, 9, 1, 12, 1)}).put(2, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.BOOK, 4, 12, 10), new VillagerTrades.d(5), new VillagerTrades.h(Items.rj, 1, 1, 5)}).put(3, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.INK_SAC, 5, 12, 20), new VillagerTrades.d(10), new VillagerTrades.h(Items.az, 1, 4, 10)}).put(4, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.WRITABLE_BOOK, 2, 12, 30), new VillagerTrades.d(15), new VillagerTrades.h(Items.CLOCK, 5, 1, 15), new VillagerTrades.h(Items.COMPASS, 4, 1, 15)}).put(5, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.h(Items.NAME_TAG, 20, 1, 30)}).build()));
+ hashmap.put(VillagerProfession.LIBRARIAN, a(ImmutableMap.<Integer, IMerchantRecipeOption[]>builder().put(1, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.PAPER, 24, 16, 2), new VillagerTrades.d(1), new VillagerTrades.h(Blocks.BOOKSHELF, 9, 1, 12, 1)}).put(2, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.BOOK, 4, 12, 10), new VillagerTrades.d(5), new VillagerTrades.h(Items.rj, 1, 1, 5)}).put(3, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.INK_SAC, 5, 12, 20), new VillagerTrades.d(10), new VillagerTrades.h(Items.az, 1, 4, 10)}).put(4, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.WRITABLE_BOOK, 2, 12, 30), new VillagerTrades.d(15), new VillagerTrades.h(Items.CLOCK, 5, 1, 15), new VillagerTrades.h(Items.COMPASS, 4, 1, 15)}).put(5, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.h(Items.NAME_TAG, 20, 1, 30)}).build())); // Integer, IMerchantRecipeOption[]
hashmap.put(VillagerProfession.CARTOGRAPHER, a(ImmutableMap.of(1, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.PAPER, 24, 16, 2), new VillagerTrades.h(Items.MAP, 7, 1, 1)}, 2, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.dP, 11, 16, 10), new VillagerTrades.k(13, StructureGenerator.MONUMENT, MapIcon.Type.MONUMENT, 12, 5)}, 3, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.COMPASS, 1, 12, 20), new VillagerTrades.k(14, StructureGenerator.MANSION, MapIcon.Type.MANSION, 12, 10)}, 4, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.h(Items.ITEM_FRAME, 7, 1, 15), new VillagerTrades.h(Items.WHITE_BANNER, 3, 1, 15), new VillagerTrades.h(Items.BLUE_BANNER, 3, 1, 15), new VillagerTrades.h(Items.LIGHT_BLUE_BANNER, 3, 1, 15), new VillagerTrades.h(Items.RED_BANNER, 3, 1, 15), new VillagerTrades.h(Items.PINK_BANNER, 3, 1, 15), new VillagerTrades.h(Items.GREEN_BANNER, 3, 1, 15), new VillagerTrades.h(Items.LIME_BANNER, 3, 1, 15), new VillagerTrades.h(Items.GRAY_BANNER, 3, 1, 15), new VillagerTrades.h(Items.BLACK_BANNER, 3, 1, 15), new VillagerTrades.h(Items.PURPLE_BANNER, 3, 1, 15), new VillagerTrades.h(Items.MAGENTA_BANNER, 3, 1, 15), new VillagerTrades.h(Items.CYAN_BANNER, 3, 1, 15), new VillagerTrades.h(Items.BROWN_BANNER, 3, 1, 15), new VillagerTrades.h(Items.YELLOW_BANNER, 3, 1, 15), new VillagerTrades.h(Items.ORANGE_BANNER, 3, 1, 15), new VillagerTrades.h(Items.LIGHT_GRAY_BANNER, 3, 1, 15)}, 5, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.h(Items.GLOBE_BANNER_PATTERN, 8, 1, 30)})));
hashmap.put(VillagerProfession.CLERIC, a(ImmutableMap.of(1, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.ROTTEN_FLESH, 32, 16, 2), new VillagerTrades.h(Items.REDSTONE, 1, 2, 1)}, 2, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.GOLD_INGOT, 3, 12, 10), new VillagerTrades.h(Items.LAPIS_LAZULI, 1, 1, 5)}, 3, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.RABBIT_FOOT, 2, 12, 20), new VillagerTrades.h(Blocks.GLOWSTONE, 4, 1, 12, 10)}, 4, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.SCUTE, 4, 12, 30), new VillagerTrades.b(Items.GLASS_BOTTLE, 9, 12, 30), new VillagerTrades.h(Items.ENDER_PEARL, 5, 1, 15)}, 5, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.NETHER_WART, 22, 12, 30), new VillagerTrades.h(Items.EXPERIENCE_BOTTLE, 3, 1, 30)})));
hashmap.put(VillagerProfession.ARMORER, a(ImmutableMap.of(1, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.COAL, 15, 16, 2), new VillagerTrades.h(new ItemStack(Items.IRON_LEGGINGS), 7, 1, 12, 1, 0.2F), new VillagerTrades.h(new ItemStack(Items.IRON_BOOTS), 4, 1, 12, 1, 0.2F), new VillagerTrades.h(new ItemStack(Items.IRON_HELMET), 5, 1, 12, 1, 0.2F), new VillagerTrades.h(new ItemStack(Items.IRON_CHESTPLATE), 9, 1, 12, 1, 0.2F)}, 2, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.IRON_INGOT, 4, 12, 10), new VillagerTrades.h(new ItemStack(Items.pQ), 36, 1, 12, 5, 0.2F), new VillagerTrades.h(new ItemStack(Items.CHAINMAIL_BOOTS), 1, 1, 12, 5, 0.2F), new VillagerTrades.h(new ItemStack(Items.CHAINMAIL_LEGGINGS), 3, 1, 12, 5, 0.2F)}, 3, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.LAVA_BUCKET, 1, 12, 20), new VillagerTrades.b(Items.DIAMOND, 1, 12, 20), new VillagerTrades.h(new ItemStack(Items.CHAINMAIL_HELMET), 1, 1, 12, 10, 0.2F), new VillagerTrades.h(new ItemStack(Items.CHAINMAIL_CHESTPLATE), 4, 1, 12, 10, 0.2F), new VillagerTrades.h(new ItemStack(Items.SHIELD), 5, 1, 12, 10, 0.2F)}, 4, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.e(Items.DIAMOND_LEGGINGS, 14, 3, 15, 0.2F), new VillagerTrades.e(Items.DIAMOND_BOOTS, 8, 3, 15, 0.2F)}, 5, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.e(Items.DIAMOND_HELMET, 8, 3, 30, 0.2F), new VillagerTrades.e(Items.DIAMOND_CHESTPLATE, 16, 3, 30, 0.2F)})));
hashmap.put(VillagerProfession.ARMORER, a(ImmutableMap.of(1, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.COAL, 15, 16, 2), new VillagerTrades.h(new ItemStack(Items.IRON_LEGGINGS), 7, 1, 12, 1, 0.2F), new VillagerTrades.h(new ItemStack(Items.IRON_BOOTS), 4, 1, 12, 1, 0.2F), new VillagerTrades.h(new ItemStack(Items.IRON_HELMET), 5, 1, 12, 1, 0.2F), new VillagerTrades.h(new ItemStack(Items.IRON_CHESTPLATE), 9, 1, 12, 1, 0.2F)}, 2, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.IRON_INGOT, 4, 12, 10), new VillagerTrades.h(new ItemStack(Items.ri), 36, 1, 12, 5, 0.2F), new VillagerTrades.h(new ItemStack(Items.CHAINMAIL_BOOTS), 1, 1, 12, 5, 0.2F), new VillagerTrades.h(new ItemStack(Items.CHAINMAIL_LEGGINGS), 3, 1, 12, 5, 0.2F)}, 3, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.b(Items.LAVA_BUCKET, 1, 12, 20), new VillagerTrades.b(Items.DIAMOND, 1, 12, 20), new VillagerTrades.h(new ItemStack(Items.CHAINMAIL_HELMET), 1, 1, 12, 10, 0.2F), new VillagerTrades.h(new ItemStack(Items.CHAINMAIL_CHESTPLATE), 4, 1, 12, 10, 0.2F), new VillagerTrades.h(new ItemStack(Items.SHIELD), 5, 1, 12, 10, 0.2F)}, 4, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.e(Items.DIAMOND_LEGGINGS, 14, 3, 15, 0.2F), new VillagerTrades.e(Items.DIAMOND_BOOTS, 8, 3, 15, 0.2F)}, 5, new VillagerTrades.IMerchantRecipeOption[]{new VillagerTrades.e(Items.DIAMOND_HELMET, 8, 3, 30, 0.2F), new VillagerTrades.e(Items.DIAMOND_CHESTPLATE, 16, 3, 30, 0.2F)})));
diff --git a/src/main/java/net/minecraft/server/VoxelShapeMergerList.java b/src/main/java/net/minecraft/server/VoxelShapeMergerList.java
index e8daa74986f07163fd5318f431398b4f0efde6e8..71d2ae2a9c5a05351241b5a313e66ca15b0624ef 100644
--- a/src/main/java/net/minecraft/server/VoxelShapeMergerList.java
@ -730,18 +802,6 @@ index e8daa74986f07163fd5318f431398b4f0efde6e8..71d2ae2a9c5a05351241b5a313e66ca1
this.b.add(i - 1);
this.c.add(j - 1);
this.a.add(d1);
diff --git a/src/main/java/net/minecraft/server/WorldGenFeatureStateProviderWeighted.java b/src/main/java/net/minecraft/server/WorldGenFeatureStateProviderWeighted.java
index 555cf6be79985b686eb71cffe25453648f4cbc17..22e14fe1e98c8439f8db74c9464137a497fdaf7c 100644
--- a/src/main/java/net/minecraft/server/WorldGenFeatureStateProviderWeighted.java
+++ b/src/main/java/net/minecraft/server/WorldGenFeatureStateProviderWeighted.java
@@ -40,6 +40,6 @@ public class WorldGenFeatureStateProviderWeighted extends WorldGenFeatureStatePr
builder.put(dynamicops.createString("type"), dynamicops.createString(IRegistry.t.getKey(this.a).toString())).put(dynamicops.createString("entries"), this.b.a(dynamicops, (iblockdata) -> {
return IBlockData.a(dynamicops, iblockdata);
}));
- return (new Dynamic(dynamicops, dynamicops.createMap(builder.build()))).getValue();
+ return (new Dynamic<T>(dynamicops, dynamicops.createMap(builder.build()))).getValue(); // Paper - decompile fix
}
}
diff --git a/src/main/java/net/minecraft/server/WorldPersistentData.java b/src/main/java/net/minecraft/server/WorldPersistentData.java
index 55fe7625af2207062f69188e9ab345ea68fac6ca..19e68a78310de787bca701bc2597c64e34a77d7c 100644
--- a/src/main/java/net/minecraft/server/WorldPersistentData.java

File diff suppressed because it is too large Load Diff

View File

@ -647,10 +647,10 @@ index 0000000000000000000000000000000000000000..e257d6b36e0e78dac5b8320017d92776
+ }
+}
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
index 273cdb598b3606b962dcc92564c84ad351b7a74f..b6d470e594ce196f560ac6c94ced904b0081b205 100644
index 68d3cb02dbfdc9d6f9d3682a2659c9430b50c490..b367bb8ea184489f433f8acc798466c38816ae62 100644
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -41,6 +41,7 @@ public class PaperConfig {
@@ -42,6 +42,7 @@ public class PaperConfig {
private static boolean verbose;
private static boolean fatalError;
/*========================================================================*/
@ -658,7 +658,7 @@ index 273cdb598b3606b962dcc92564c84ad351b7a74f..b6d470e594ce196f560ac6c94ced904b
public static void init(File configFile) {
CONFIG_FILE = configFile;
@@ -83,6 +84,11 @@ public class PaperConfig {
@@ -84,6 +85,11 @@ public class PaperConfig {
for (Map.Entry<String, Command> entry : commands.entrySet()) {
MinecraftServer.getServer().server.getCommandMap().register(entry.getKey(), "Paper", entry.getValue());
}

View File

@ -19,7 +19,7 @@ index 41c79650b169b87fbc70cf502438a5453a04f23d..b839769ceae8932bb121a0b96fde1e7d
MutablePair<Integer, Map<ChunkCoordIntPair, Integer>> info = list.computeIfAbsent(key, k -> MutablePair.of(0, Maps.newHashMap()));
ChunkCoordIntPair chunk = new ChunkCoordIntPair(e.getChunkX(), e.getChunkZ());
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 7e01f6a1807f9885a7f4b163ce6bb626d8786a9a..6c7816fdc1ef476969cb70c8ea697b60746d6ab4 100644
index 9da321fc0e02e4a2e47f515011df33714affd368..ee93b977b5f78855fd58a2055ca4e17255f3388b 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -49,7 +49,7 @@ import org.bukkit.event.player.PlayerTeleportEvent;
@ -31,7 +31,7 @@ index 7e01f6a1807f9885a7f4b163ce6bb626d8786a9a..6c7816fdc1ef476969cb70c8ea697b60
// CraftBukkit start
private static final int CURRENT_LEVEL = 2;
@@ -1708,12 +1708,31 @@ public abstract class Entity implements INamableTileEntity, ICommandListener {
@@ -1670,12 +1670,31 @@ public abstract class Entity implements INamableTileEntity, ICommandListener {
return true;
}
@ -63,18 +63,18 @@ index 7e01f6a1807f9885a7f4b163ce6bb626d8786a9a..6c7816fdc1ef476969cb70c8ea697b60
+ // Paper end
}
protected abstract void a(NBTTagCompound nbttagcompound);
protected abstract void loadData(NBTTagCompound nbttagcompound);
diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java
index 4328273b1fca165320097dbac0650b31fae4e5ca..8427ee2ee8b90d5deb686412bb2eefb9a574b75a 100644
index 9a772e40ad8f9858e6278b99d9d1ff5dc54513cb..b9fe08301409bc1f0d61a7566c26e720ff720d80 100644
--- a/src/main/java/net/minecraft/server/EntityTypes.java
+++ b/src/main/java/net/minecraft/server/EntityTypes.java
@@ -237,6 +237,7 @@ public class EntityTypes<T extends Entity> {
@@ -248,6 +248,7 @@ public class EntityTypes<T extends Entity> {
}
}
+ public boolean isPersistable() { return a(); } // Paper - OBFHELPER
public boolean a() {
return this.bc;
return this.bh;
}
diff --git a/src/main/java/net/minecraft/server/KeyedObject.java b/src/main/java/net/minecraft/server/KeyedObject.java
new file mode 100644
@ -92,7 +92,7 @@ index 0000000000000000000000000000000000000000..743142d0303fa25fe48a2abb07040d12
+ }
+}
diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java
index 40752f7617d5aa6b5ae55cd9a1b2eeb57c276adb..9071bb7ece6d38d85b4ea11e53671f3ec5210b28 100644
index 6d06812f5fb6366ccd2673e9155be869b9bc0f6d..3cae7ef750371cee741c2f27799c1bb5864a278a 100644
--- a/src/main/java/net/minecraft/server/TileEntity.java
+++ b/src/main/java/net/minecraft/server/TileEntity.java
@@ -11,7 +11,7 @@ import org.bukkit.inventory.InventoryHolder;

View File

@ -8,19 +8,10 @@ This enables us a fast reference to the entities current chunk instead
of having to look it up by hashmap lookups.
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 9397b58f047c837f8a9146723e4cd9a4d6b787a7..e1ac0c479ebfa2da69575db2032dd1415c4a41a5 100644
index 7c7826cf3adb19814984ab627e4c4726d8933244..bd92ed2e6d4766f4f16ec3002c41b36b5a7e0358 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -29,7 +29,7 @@ public class Chunk implements IChunkAccess {
private final ChunkSection[] sections;
private BiomeStorage d;
private final Map<BlockPosition, NBTTagCompound> e;
- public boolean loaded;
+ public boolean loaded; public boolean isLoaded() { return loaded; } // Paper - OBFHELPER
public final World world;
public final Map<HeightMap.Type, HeightMap> heightMap;
private final ChunkConverter i;
@@ -55,11 +55,36 @@ public class Chunk implements IChunkAccess {
@@ -56,11 +56,36 @@ public class Chunk implements IChunkAccess {
this(world, chunkcoordintpair, biomestorage, ChunkConverter.a, TickListEmpty.b(), TickListEmpty.b(), 0L, (ChunkSection[]) null, (Consumer) null);
}
@ -58,7 +49,7 @@ index 9397b58f047c837f8a9146723e4cd9a4d6b787a7..e1ac0c479ebfa2da69575db2032dd141
this.l = Maps.newHashMap();
this.m = Maps.newHashMap();
this.n = new ShortList[16];
@@ -465,6 +490,7 @@ public class Chunk implements IChunkAccess {
@@ -466,6 +491,7 @@ public class Chunk implements IChunkAccess {
}
entity.inChunk = true;
@ -66,7 +57,7 @@ index 9397b58f047c837f8a9146723e4cd9a4d6b787a7..e1ac0c479ebfa2da69575db2032dd141
entity.chunkX = this.loc.x;
entity.chunkY = k;
entity.chunkZ = this.loc.z;
@@ -477,6 +503,7 @@ public class Chunk implements IChunkAccess {
@@ -478,6 +504,7 @@ public class Chunk implements IChunkAccess {
((HeightMap) this.heightMap.get(heightmap_type)).a(along);
}
@ -74,7 +65,7 @@ index 9397b58f047c837f8a9146723e4cd9a4d6b787a7..e1ac0c479ebfa2da69575db2032dd141
public void b(Entity entity) {
this.a(entity, entity.chunkY);
}
@@ -490,7 +517,12 @@ public class Chunk implements IChunkAccess {
@@ -491,7 +518,12 @@ public class Chunk implements IChunkAccess {
i = this.entitySlices.length - 1;
}
@ -89,28 +80,19 @@ index 9397b58f047c837f8a9146723e4cd9a4d6b787a7..e1ac0c479ebfa2da69575db2032dd141
}
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 6c7816fdc1ef476969cb70c8ea697b60746d6ab4..0d8262b1d2722e716f95db4c9a8a132c54b613cf 100644
index ee93b977b5f78855fd58a2055ca4e17255f3388b..e3f2e259b2c5e478bde45554995b9c742d9e2008 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -134,7 +134,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
private static final DataWatcherObject<Boolean> aB = DataWatcher.a(Entity.class, DataWatcherRegistry.i);
private static final DataWatcherObject<Boolean> aC = DataWatcher.a(Entity.class, DataWatcherRegistry.i);
protected static final DataWatcherObject<EntityPose> POSE = DataWatcher.a(Entity.class, DataWatcherRegistry.s);
- public boolean inChunk;
+ public boolean inChunk; public boolean isAddedToChunk() { return inChunk; } // Paper - OBFHELPER
public int chunkX; public int getChunkX() { return chunkX; } // Paper - OBFHELPER
public int chunkY; public int getChunkY() { return chunkY; } // Paper - OBFHELPER
public int chunkZ; public int getChunkZ() { return chunkZ; } // Paper - OBFHELPER
@@ -178,7 +178,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
}
public boolean isChunkLoaded() {
- return world.isChunkLoaded((int) Math.floor(this.locX) >> 4, (int) Math.floor(this.locZ) >> 4);
- return world.isChunkLoaded((int) Math.floor(this.locX()) >> 4, (int) Math.floor(this.locZ()) >> 4);
+ return getCurrentChunk() != null;
}
// CraftBukkit end
@@ -1709,6 +1709,43 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1671,6 +1671,23 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
}
// Paper start
@ -124,38 +106,18 @@ index 6c7816fdc1ef476969cb70c8ea697b60746d6ab4..0d8262b1d2722e716f95db4c9a8a132c
+ */
+ public Chunk getCurrentChunk() {
+ final Chunk chunk = currentChunk != null ? currentChunk.get() : null;
+ if (chunk != null && chunk.isLoaded()) {
+ if (chunk != null && chunk.loaded) {
+ return chunk;
+ }
+
+ return !isAddedToChunk() ? null : ((ChunkProviderServer) world.chunkProvider).getChunkAtIfLoadedMainThreadNoCache(getChunkX(), getChunkZ());
+ }
+
+ /**
+ * Returns the chunk at the location, using the entities local cache if avail
+ * Will only return null if the location specified is not loaded
+ */
+ public Chunk getCurrentChunkAt(int x, int z) {
+ Chunk chunk = getCurrentChunk();
+ if (chunk != null && getChunkX() == chunk.getPos().x && getChunkZ() == chunk.getPos().z) {
+ return chunk;
+ }
+ return ((ChunkProviderServer) world.chunkProvider).getChunkAtIfLoadedMainThreadNoCache(getChunkX(), getChunkZ());
+ }
+ /**
+ * Returns the chunk at the entities current location, using the entities local cache if avail
+ * Ideally this is always the same as getCurrentChunk, but only becomes different in registration issues.
+ * Will only return null if the location specified is not loaded
+ */
+ public Chunk getChunkAtLocation() {
+ return getCurrentChunkAt((int)Math.floor(locX) >> 4, (int)Math.floor(locZ) >> 4);
+ return !inChunk ? null : ((WorldServer)world).getChunkProvider().getChunkAtIfLoadedMainThreadNoCache(getChunkX(), getChunkZ());
+ }
+
private MinecraftKey entityKey;
private String entityKeyString;
diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java
index 9071bb7ece6d38d85b4ea11e53671f3ec5210b28..820180ab3f7053c348caa80cc21f15dfa3d26afd 100644
index 3cae7ef750371cee741c2f27799c1bb5864a278a..f8d859cda8186d706304b4e182bca34573f09433 100644
--- a/src/main/java/net/minecraft/server/TileEntity.java
+++ b/src/main/java/net/minecraft/server/TileEntity.java
@@ -51,6 +51,15 @@ public abstract class TileEntity implements KeyedObject { // Paper
@ -166,7 +128,7 @@ index 9071bb7ece6d38d85b4ea11e53671f3ec5210b28..820180ab3f7053c348caa80cc21f15df
+ private java.lang.ref.WeakReference<Chunk> currentChunk = null;
+ public Chunk getCurrentChunk() {
+ final Chunk chunk = currentChunk != null ? currentChunk.get() : null;
+ return chunk != null && chunk.isLoaded() ? chunk : null;
+ return chunk != null && chunk.loaded ? chunk : null;
+ }
+ public void setCurrentChunk(Chunk chunk) {
+ this.currentChunk = chunk != null ? new java.lang.ref.WeakReference<>(chunk) : null;
@ -175,10 +137,10 @@ index 9071bb7ece6d38d85b4ea11e53671f3ec5210b28..820180ab3f7053c348caa80cc21f15df
@Nullable
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 27e2379f2dd6e9e06ae7a973ab8654cdcacf66c0..9672dd7c2166bba88832b1743b97e16561fe434c 100644
index 305de86630b442fe1fa27431fca1ac989d16dc61..e867168be3c17548490f30944ca56a635cc3b054 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -137,6 +137,7 @@ import net.minecraft.server.EntityZombieHusk;
@@ -141,6 +141,7 @@ import net.minecraft.server.EntityZombieHusk;
import net.minecraft.server.EntityZombieVillager;
import net.minecraft.server.IChatBaseComponent;
import net.minecraft.server.NBTTagCompound;
@ -186,7 +148,7 @@ index 27e2379f2dd6e9e06ae7a973ab8654cdcacf66c0..9672dd7c2166bba88832b1743b97e165
import org.bukkit.EntityEffect;
import org.bukkit.Location;
import org.bukkit.Server;
@@ -178,6 +179,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -182,6 +183,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
this.entity = entity;
}

View File

@ -6,10 +6,10 @@ Subject: [PATCH] Store counts for each Entity/Block Entity Type
Opens door for future patches to optimize performance
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index e1ac0c479ebfa2da69575db2032dd1415c4a41a5..f1b9b937e8ced0c718db463c94d716422113c396 100644
index bd92ed2e6d4766f4f16ec3002c41b36b5a7e0358..eb08c7467595394fff9adf4f162aba9d71d7a7c2 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -56,15 +56,19 @@ public class Chunk implements IChunkAccess {
@@ -57,15 +57,19 @@ public class Chunk implements IChunkAccess {
}
// Paper start
@ -29,7 +29,7 @@ index e1ac0c479ebfa2da69575db2032dd1415c4a41a5..f1b9b937e8ced0c718db463c94d71642
}
return replaced;
}
@@ -74,6 +78,7 @@ public class Chunk implements IChunkAccess {
@@ -75,6 +79,7 @@ public class Chunk implements IChunkAccess {
TileEntity removed = super.remove(key);
if (removed != null) {
removed.setCurrentChunk(null);
@ -37,7 +37,7 @@ index e1ac0c479ebfa2da69575db2032dd1415c4a41a5..f1b9b937e8ced0c718db463c94d71642
}
return removed;
}
@@ -489,6 +494,7 @@ public class Chunk implements IChunkAccess {
@@ -490,6 +495,7 @@ public class Chunk implements IChunkAccess {
k = this.entitySlices.length - 1;
}
@ -45,7 +45,7 @@ index e1ac0c479ebfa2da69575db2032dd1415c4a41a5..f1b9b937e8ced0c718db463c94d71642
entity.inChunk = true;
entity.setCurrentChunk(this); // Paper
entity.chunkX = this.loc.x;
@@ -522,6 +528,7 @@ public class Chunk implements IChunkAccess {
@@ -523,6 +529,7 @@ public class Chunk implements IChunkAccess {
if (!this.entitySlices[i].remove(entity)) {
return;
}

File diff suppressed because it is too large Load Diff

View File

@ -23,10 +23,10 @@ index a738657394bcccd859ef260a801736d44b234469..098bd3fba867c0e4c6c58748aa6e2e63
+ }
}
diff --git a/src/main/java/net/minecraft/server/BlockCactus.java b/src/main/java/net/minecraft/server/BlockCactus.java
index 1e1d02dc73ea193fca69b26e4c51efd845713d2f..e0974e256f0f10e047b9eb8e362982c6578d2d98 100644
index 4a3049575ad78e1c75d1b43a35311974c1d489de..13e4517bd04096001ca1caf32b9949abb3cf9c7f 100644
--- a/src/main/java/net/minecraft/server/BlockCactus.java
+++ b/src/main/java/net/minecraft/server/BlockCactus.java
@@ -30,7 +30,7 @@ public class BlockCactus extends Block {
@@ -35,7 +35,7 @@ public class BlockCactus extends Block {
;
}
@ -36,10 +36,10 @@ index 1e1d02dc73ea193fca69b26e4c51efd845713d2f..e0974e256f0f10e047b9eb8e362982c6
if (j >= (byte) range(3, ((100.0F / worldserver.spigotConfig.cactusModifier) * 15) + 0.5F, 15)) { // Spigot
diff --git a/src/main/java/net/minecraft/server/BlockReed.java b/src/main/java/net/minecraft/server/BlockReed.java
index 2106b0b49f19f56fd446c2c6cec63526eb74fdb7..55b07444e1d769952f2a411b1b5d1032565af8a1 100644
index 30282f73d263a96a14bd7bf7d3ac520e315b093a..c051decd19ff763a061822bc2a4b03289dfe3ac7 100644
--- a/src/main/java/net/minecraft/server/BlockReed.java
+++ b/src/main/java/net/minecraft/server/BlockReed.java
@@ -29,7 +29,7 @@ public class BlockReed extends Block {
@@ -35,7 +35,7 @@ public class BlockReed extends Block {
;
}

View File

@ -25,27 +25,27 @@ index 098bd3fba867c0e4c6c58748aa6e2e632737a948..912611cf1aeccf5a82a789aab07d7672
+ }
}
diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java
index 7783b57912e87ac132bab3d2e85808240f077174..0240cef74aaa7f9fcfea40106267ee2e8d39f133 100644
index 4b924ce42c9440c06c8c4f04dd4262289cfee6b7..951cf5546af11434971a26dca15c20c25e6c555e 100644
--- a/src/main/java/net/minecraft/server/EntityZombie.java
+++ b/src/main/java/net/minecraft/server/EntityZombie.java
@@ -21,7 +21,7 @@ public class EntityZombie extends EntityMonster {
@@ -21,7 +21,7 @@ import org.bukkit.event.entity.EntityTransformEvent;
public class EntityZombie extends EntityMonster {
protected static final IAttribute d = (new AttributeRanged((IAttribute) null, "zombie.spawnReinforcements", 0.0D, 0.0D, 1.0D)).a("Spawn Reinforcements Chance");
private static final UUID b = UUID.fromString("B9766B59-9566-4402-BC1F-2EE2A276D836");
- private static final AttributeModifier c = new AttributeModifier(EntityZombie.b, "Baby speed boost", 0.5D, AttributeModifier.Operation.MULTIPLY_BASE);
+ private final AttributeModifier c = new AttributeModifier(EntityZombie.b, "Baby speed boost", world.paperConfig.babyZombieMovementModifier, AttributeModifier.Operation.MULTIPLY_BASE); private final AttributeModifier babyModifier = this.c; // Paper - remove static - Make baby speed configurable
private static final DataWatcherObject<Boolean> bw = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.i);
private static final DataWatcherObject<Integer> bx = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.b);
+ private final AttributeModifier c = new AttributeModifier(EntityZombie.b, "Baby speed boost", 0.5D, AttributeModifier.Operation.MULTIPLY_BASE); private final AttributeModifier babyModifier = this.c; // Paper - remove static - Make baby speed configurable
private static final DataWatcherObject<Boolean> d = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.i);
private static final DataWatcherObject<Integer> bv = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.b);
public static final DataWatcherObject<Boolean> DROWN_CONVERTING = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.i);
@@ -129,9 +129,9 @@ public class EntityZombie extends EntityMonster {
@@ -123,9 +123,9 @@ public class EntityZombie extends EntityMonster {
if (this.world != null && !this.world.isClientSide) {
AttributeInstance attributeinstance = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED);
AttributeModifiable attributemodifiable = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED);
- attributeinstance.removeModifier(EntityZombie.c);
+ attributeinstance.removeModifier(this.babyModifier); // Paper
- attributemodifiable.removeModifier(EntityZombie.c);
+ attributemodifiable.removeModifier(this.babyModifier); // Paper
if (flag) {
- attributeinstance.addModifier(EntityZombie.c);
+ attributeinstance.addModifier(this.babyModifier); // Paper
- attributemodifiable.b(EntityZombie.c);
+ attributemodifiable.b(this.babyModifier); // Paper
}
}

View File

@ -22,17 +22,17 @@ index 912611cf1aeccf5a82a789aab07d76723d4357cc..7d9976ce6bf86e6fdfd0c7770104cee0
+ }
}
diff --git a/src/main/java/net/minecraft/server/EntityFishingHook.java b/src/main/java/net/minecraft/server/EntityFishingHook.java
index 7be189f7428886058982774028de6adbd384fafd..40bdcf4e75bb36385e82ba8b8f2471760072705a 100644
index b0f3b30944b7741ef1d9af21e919ff2df9c510a3..ab8f67c11419cc788fc3cb814d2224e65217dd08 100644
--- a/src/main/java/net/minecraft/server/EntityFishingHook.java
+++ b/src/main/java/net/minecraft/server/EntityFishingHook.java
@@ -326,8 +326,9 @@ public class EntityFishingHook extends Entity {
this.aq = MathHelper.nextInt(this.random, 20, 80);
@@ -338,8 +338,9 @@ public class EntityFishingHook extends IProjectile {
this.ap = MathHelper.nextInt(this.random, 20, 80);
}
} else {
- this.ap = MathHelper.nextInt(this.random, 100, 600);
+ this.ap = MathHelper.nextInt(this.random, world.paperConfig.fishingMinTicks, world.paperConfig.fishingMaxTicks); // Paper
this.ap -= this.au * 20 * 5;
+ this.ap = Math.max(0, this.ap); // Paper - Don't allow negative values
- this.ao = MathHelper.nextInt(this.random, 100, 600);
+ this.ao = MathHelper.nextInt(this.random, world.paperConfig.fishingMinTicks, world.paperConfig.fishingMaxTicks); // Paper
this.ao -= this.av * 20 * 5;
+ this.ao = Math.max(0, this.ao); // Paper - Don't allow negative values;
}
}

View File

@ -31,43 +31,30 @@ index 2e869004c8c6b8bfbb002fb4eda04519d50390c8..8a6856e0fd7b9b515d98f45aaabefbc3
this.b.setJumping(this.a);
this.a = false;
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 19d68aa4585ccfc156e9db6024b7a99bbeca4de4..2a449ec40a725b01a7bf572ae119c2197944ecbc 100644
index 98eec5efe474011665bd819d0d0b11abd6a068ea..a50b005b9f3fc58674560f42b9c4a20fd8b669fa 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1104,6 +1104,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1024,6 +1024,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return this.isInWater() || this.isInRain();
}
+ public boolean isInWaterOrRainOrBubble() { return ay(); } // Paper - OBFHELPER
public boolean ay() {
return this.isInWater() || this.isInRain() || this.l();
+ public boolean isInWaterOrRainOrBubble() { return aC(); } // Paper - OBFHELPER
public boolean aC() {
return this.isInWater() || this.isInRain() || this.k();
}
diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java
index 1cc66108d0f799eef6ee984e8f65a9a46e337785..538c2169cd53d364b941ad1251df3731f77b3a2c 100644
--- a/src/main/java/net/minecraft/server/EntityEnderman.java
+++ b/src/main/java/net/minecraft/server/EntityEnderman.java
@@ -171,7 +171,7 @@ public class EntityEnderman extends EntityMonster {
@Override
protected void mobTick() {
if (this.ay()) {
- this.damageEntity(DamageSource.DROWN, 1.0F);
+ this.damageEntity(DamageSource.DROWN, 1.0F); // Paper - copied in patch 13 (allow nerfed mobs to jump, float and take water damage)
}
if (this.world.isDay() && this.ticksLived >= this.bA + 600) {
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 0b06fa2b664830d40cdb93968bc2f8c98415d1bf..70cd0801dc62dc0b15a75869b375353db8a9ae46 100644
index e5455d99e3f5607a5754e5760d42853a62dddb82..b9732287ba16d90bed33929348a223f6dbdbfb45 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -32,6 +32,7 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -33,6 +33,7 @@ public abstract class EntityInsentient extends EntityLiving {
private final EntityAIBodyControl c;
protected NavigationAbstract navigation;
public PathfinderGoalSelector goalSelector;
+ @Nullable public PathfinderGoalFloat goalFloat; // Paper
public PathfinderGoalSelector targetSelector;
private EntityLiving goalTarget;
private final EntitySenses bw;
@@ -648,7 +649,17 @@ public abstract class EntityInsentient extends EntityLiving {
private final EntitySenses bv;
@@ -719,7 +720,17 @@ public abstract class EntityInsentient extends EntityLiving {
@Override
protected final void doTick() {
++this.ticksFarFromPlayer;
@ -84,13 +71,13 @@ index 0b06fa2b664830d40cdb93968bc2f8c98415d1bf..70cd0801dc62dc0b15a75869b375353d
+ }
+ // Paper end
this.world.getMethodProfiler().enter("sensing");
this.bw.a();
this.bv.a();
this.world.getMethodProfiler().exit();
diff --git a/src/main/java/net/minecraft/server/PathfinderGoalFloat.java b/src/main/java/net/minecraft/server/PathfinderGoalFloat.java
index 0f0dc7277f28a96711ab81e6bbf2dd7d1c212f25..43908b0400933119de9bcfe4240853e4fce7ec6f 100644
index d0281a98a318376922b5bd8fcad7ba7db2012b54..e2b23978e347fe63e8bc900b72da6cbaf27bf652 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoalFloat.java
+++ b/src/main/java/net/minecraft/server/PathfinderGoalFloat.java
@@ -8,10 +8,12 @@ public class PathfinderGoalFloat extends PathfinderGoal {
@@ -8,15 +8,18 @@ public class PathfinderGoalFloat extends PathfinderGoal {
public PathfinderGoalFloat(EntityInsentient entityinsentient) {
this.a = entityinsentient;
@ -102,9 +89,7 @@ index 0f0dc7277f28a96711ab81e6bbf2dd7d1c212f25..43908b0400933119de9bcfe4240853e4
+ public final boolean validConditions() { return this.a(); } // Paper - OBFHELPER
@Override
public boolean a() {
double d0 = (double) this.a.getHeadHeight() < 0.4D ? 0.2D : 0.4D;
@@ -19,6 +21,7 @@ public class PathfinderGoalFloat extends PathfinderGoal {
return this.a.isInWater() && this.a.co() > d0 || this.a.aH();
return this.a.isInWater() && this.a.b((Tag) TagsFluid.WATER) > this.a.cw() || this.a.aN();
}
+ public void update() { this.e(); } // Paper - OBFHELPER

View File

@ -30,20 +30,23 @@ index 6d6a68cb1b952da8308ac9ce5b54694bc9ba0e30..2845686411615245137cfe1a155088a8
+ }
}
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 70cd0801dc62dc0b15a75869b375353db8a9ae46..23995b68a17b87b90962c4c12aa37e3a254073b5 100644
index b9732287ba16d90bed33929348a223f6dbdbfb45..885b97f9397753e7561f113f588b4ca2d5edb0fe 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -630,11 +630,11 @@ public abstract class EntityInsentient extends EntityLiving {
if (entityhuman != null) {
double d0 = entityhuman.h(this);
@@ -698,14 +698,14 @@ public abstract class EntityInsentient extends EntityLiving {
int i = this.getEntityType().e().f();
int j = i * i;
- if (d0 > 16384.0D) { // CraftBukkit - remove isTypeNotPersistent() check
+ if (d0 > world.paperConfig.hardDespawnDistance) { // CraftBukkit - remove isTypeNotPersistent() check // Paper - custom despawn distances
- if (d0 > (double) j) { // CraftBukkit - remove isTypeNotPersistent() check
+ if (d0 > (double) world.paperConfig.hardDespawnDistance) { // CraftBukkit - remove isTypeNotPersistent() check // Paper - custom despawn distances
this.die();
}
- if (this.ticksFarFromPlayer > 600 && this.random.nextInt(800) == 0 && d0 > 1024.0D) { // CraftBukkit - remove isTypeNotPersistent() check
int k = this.getEntityType().e().g();
int l = k * k;
- if (this.ticksFarFromPlayer > 600 && this.random.nextInt(800) == 0 && d0 > (double) l) { // CraftBukkit - remove isTypeNotPersistent() check
+ if (this.ticksFarFromPlayer > 600 && this.random.nextInt(800) == 0 && d0 > world.paperConfig.softDespawnDistance) { // CraftBukkit - remove isTypeNotPersistent() check // Paper - custom despawn distances
this.die();
} else if (d0 < 1024.0D) {
} else if (d0 < (double) l) {
this.ticksFarFromPlayer = 0;

View File

@ -20,10 +20,10 @@ index 2845686411615245137cfe1a155088a865a4d3a0..8ee2b9bb1bce698fce50ac1b3fc477fc
+ }
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 740c59004514a332ebe556c4e91f84bd9bf4a11d..b69d84baf8d318968ef171232e493a315f71814b 100644
index a559f423b19a1e6f8efb6327270250844e8c6fb6..b09f3f2bda126adf58d58e45f03f4205b28f29fd 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -142,6 +142,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -159,6 +159,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
});
// CraftBukkit end
timings = new co.aikar.timings.WorldTimingsHandler(this); // Paper - code below can generate new world and access timings

View File

@ -24,10 +24,10 @@ index 8ee2b9bb1bce698fce50ac1b3fc477fcafd0542c..d59b82b7bb1f6d1b231f4e394e0a67a3
+ }
}
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 2a449ec40a725b01a7bf572ae119c2197944ecbc..0d617c8e09cf0adf0d7aa8c95fc69c641f91b795 100644
index a50b005b9f3fc58674560f42b9c4a20fd8b669fa..e85172eb69b04746eab08abf213dcd02cd4513ee 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1819,6 +1819,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1761,6 +1761,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return this.a(itemstack, 0.0F);
}
@ -36,7 +36,7 @@ index 2a449ec40a725b01a7bf572ae119c2197944ecbc..0d617c8e09cf0adf0d7aa8c95fc69c64
public EntityItem a(ItemStack itemstack, float f) {
if (itemstack.isEmpty()) {
diff --git a/src/main/java/net/minecraft/server/EntityFallingBlock.java b/src/main/java/net/minecraft/server/EntityFallingBlock.java
index 4b4e71bf700f13d9719556d4c07316b93aac0fd2..2097ec535e8a4427fc08da02726044b837d5a716 100644
index d3e25e3503670804fba67c922c63e0e7f5a9543b..8c51b3060114a24249962c2d6142166ac8600a0a 100644
--- a/src/main/java/net/minecraft/server/EntityFallingBlock.java
+++ b/src/main/java/net/minecraft/server/EntityFallingBlock.java
@@ -85,6 +85,17 @@ public class EntityFallingBlock extends Entity {
@ -55,10 +55,10 @@ index 4b4e71bf700f13d9719556d4c07316b93aac0fd2..2097ec535e8a4427fc08da02726044b8
+ }
+ // Paper end
if (!this.world.isClientSide) {
blockposition = new BlockPosition(this);
blockposition = this.getChunkCoordinates();
boolean flag = this.block.getBlock() instanceof BlockConcretePowder;
diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
index d042124362e02a6ec634a16610d4a1ed5ef83284..d9fd4448c707aca8e2040a5848387ce76bbee1df 100644
index 5fca541ca8af4a8ed9ec6dacb3d551048b9efbf4..b5900e1cad8137954d5fa4fde10b4afb64fb6412 100644
--- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java
+++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
@@ -54,6 +54,12 @@ public class EntityTNTPrimed extends Entity {

View File

@ -6,7 +6,7 @@ Subject: [PATCH] Show 'Paper' in client crashes, server lists, and Mojang
diff --git a/src/main/java/net/minecraft/server/EULA.java b/src/main/java/net/minecraft/server/EULA.java
index 3f35a28ba15f4d0dfe1cb2b56f621e81b1fb8c99..cf00f35a5b7c2d2f6b6989e0855de8b882dcef50 100644
index aab33df7a36eb69300fedfce733985d6c239ca01..550232cb3819138b3bae0fa1c51429485e8bc593 100644
--- a/src/main/java/net/minecraft/server/EULA.java
+++ b/src/main/java/net/minecraft/server/EULA.java
@@ -70,7 +70,7 @@ public class EULA {
@ -19,10 +19,10 @@ index 3f35a28ba15f4d0dfe1cb2b56f621e81b1fb8c99..cf00f35a5b7c2d2f6b6989e0855de8b8
throwable = throwable1;
throw throwable1;
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 5429d8eee93980a01cdf008b57e88e1dccc1ef67..b6912f97c2240b0524735e0f8d1937f2e76dba5b 100644
index 0867ad04857c652dcbcdf130bb5353113ea039a0..9eacc1ba58986c21c5d8dc8d8d14c6f3b48fd171 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1348,7 +1348,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1224,7 +1224,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
}
public String getServerModName() {
@ -32,10 +32,10 @@ index 5429d8eee93980a01cdf008b57e88e1dccc1ef67..b6912f97c2240b0524735e0f8d1937f2
public CrashReport b(CrashReport crashreport) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 1ceba5f7eae58426834d7042af17f7e3b1990a56..ee749863730cb2228712ceddd4e405a798f73c5e 100644
index c6c4033b16df4d31e87f4dca8d9293698e03958a..a07014ecb5789b4df4a770407f96c8c6edc6c579 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -199,7 +199,7 @@ import org.yaml.snakeyaml.error.MarkedYAMLException;
@@ -226,7 +226,7 @@ import org.yaml.snakeyaml.error.MarkedYAMLException;
import net.md_5.bungee.api.chat.BaseComponent; // Spigot
public final class CraftServer implements Server {
@ -45,11 +45,11 @@ index 1ceba5f7eae58426834d7042af17f7e3b1990a56..ee749863730cb2228712ceddd4e405a7
private final String bukkitVersion = Versioning.getBukkitVersion();
private final Logger logger = Logger.getLogger("Minecraft");
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 101d5b42e319c010fd7ed043fb17d1f2289ae38f..1ee40506095ed14f50b4b8031bb882e9bea475b5 100644
index 3d15661eb1f15f74213ecb7e8eceb1f231ad2c1c..a111987658a6d89fc3fe970b1db37a7f3517b9bd 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -200,12 +200,25 @@ public class Main {
deadline.add(Calendar.DAY_OF_YEAR, -21);
deadline.add(Calendar.DAY_OF_YEAR, -3);
if (buildDate.before(deadline.getTime())) {
System.err.println("*** Error, this build is outdated ***");
- System.err.println("*** Please download a new build as per instructions from https://www.spigotmc.org/go/outdated-spigot ***");
@ -73,7 +73,7 @@ index 101d5b42e319c010fd7ed043fb17d1f2289ae38f..1ee40506095ed14f50b4b8031bb882e9
+ // Paper end
+
System.out.println("Loading libraries, please wait...");
MinecraftServer.main(options);
net.minecraft.server.Main.main(options);
} catch (Throwable t) {
diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java
index 54fa83c127bf2f8fe30295864f5f73cf6248ad28..73fa74e3cc0239a38cd2ba41b3e9e991a5c4ebf9 100644

View File

@ -126,10 +126,10 @@ index 0000000000000000000000000000000000000000..5deed3e25ff41ab0a4015a5fd0c1e952
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
index f647450b8c6977b4a6bb1819b34052c4ae2fe0f4..79ddf03c7f3afc868cb73ee4c000fc879ede90d8 100644
index b3b2ad576137d0383f43ec444f2353ecad3743d9..b87b2eacc9a89c79d18c4c2168aca9f5ca953c81 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -309,6 +309,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
@@ -320,6 +320,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
public String getTimingsServerName() {
return com.destroystokyo.paper.PaperConfig.timingsServerName;
}

Some files were not shown because too many files have changed in this diff Show More