Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@2a306f5 Add Multi Block Change API (#7333)
PaperMC/Paper@feb72b8 Update ASM EventExecutor generator patch to respect event handler return types. Fixes #7311 (#7317)
This commit is contained in:
BillyGalbreath
2022-01-20 17:45:15 -06:00
parent 43657416e9
commit 762fcddb3e
15 changed files with 46 additions and 46 deletions

View File

@@ -4,7 +4,7 @@ version = 1.18.1-R0.1-SNAPSHOT
mcVersion = 1.18.1
packageVersion = 1_18_R1
paperCommit = 128691a96334c3af905c8a40b41c26172d393c93
paperCommit = feb72b8ae122e0b7088a1ee8c6127069ca038269
org.gradle.caching = true
org.gradle.parallel = true

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Purpur client support
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 7eda2ba17e39b8183e572c1cefa8afffbf17afcb..f24ef3e3825e3535439f690e2c87757462778adb 100644
index fb8bd05a0204740ec323e9b657916de6ccbf6f90..18ba9802e2f042a2e3117ee0663ac8355e75d3f3 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2628,4 +2628,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2649,4 +2649,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@Override
Spigot spigot();
// Spigot end

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] AFK API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index f24ef3e3825e3535439f690e2c87757462778adb..7335391d0b394fe3c34659cba4bc972b1d2ee2c9 100644
index 18ba9802e2f042a2e3117ee0663ac8355e75d3f3..8325e527710d4b577d4ff98c2aa5c4277019e329 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2636,5 +2636,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2657,5 +2657,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @return True if Player uses Purpur Client
*/
public boolean usesPurpurClient();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Player invulnerabilities
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 7335391d0b394fe3c34659cba4bc972b1d2ee2c9..e93dc909c2e6fbc9daf0af66dfc2a4135646b91d 100644
index 8325e527710d4b577d4ff98c2aa5c4277019e329..4e6e7795f7c797da264a08f4a68f5ff48152f177 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2655,5 +2655,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2676,5 +2676,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* Reset the idle timer back to 0
*/
void resetIdleTimer();

View File

@@ -203,7 +203,7 @@ index c83672427324bd068ed52916f700b68446a226f6..d28f8f0fb6dcf34453a75af9e9efd18a
private final Class<? extends Event> eventClass;
private final MethodHandle handle;
diff --git a/src/main/java/com/destroystokyo/paper/event/executor/asm/ASMEventExecutorGenerator.java b/src/main/java/com/destroystokyo/paper/event/executor/asm/ASMEventExecutorGenerator.java
index b6e7d8ee8d903ebf975d60bec0e08603d9a49fdb..55770ba8a2461c782f311aeb8abc79ec5f53ea81 100644
index b8d5c13980858dc27fb5383726b7ebcaf14adcb8..000b8593300aca4f74987106e18915cde2b9f159 100644
--- a/src/main/java/com/destroystokyo/paper/event/executor/asm/ASMEventExecutorGenerator.java
+++ b/src/main/java/com/destroystokyo/paper/event/executor/asm/ASMEventExecutorGenerator.java
@@ -11,6 +11,9 @@ import org.objectweb.asm.commons.GeneratorAdapter;
@@ -907,7 +907,7 @@ index 6f5b6901032eb03606c4566b24459a03baac0c73..9dc1f27d3b36e112d2e79d93b3e49c39
/*
diff --git a/src/main/java/org/bukkit/entity/Panda.java b/src/main/java/org/bukkit/entity/Panda.java
index a6a7429ed2e1eefb2b12b7480ed74fcc3963a864..e8027e1d505dda6effbb1698550016e87b2e581f 100644
index 9d065625be5931d970d7f34e1225fae1af960314..de3ebfa362ee4d8147bb68c7c115fdfb4eb55143 100644
--- a/src/main/java/org/bukkit/entity/Panda.java
+++ b/src/main/java/org/bukkit/entity/Panda.java
@@ -37,6 +37,9 @@ public interface Panda extends Animals {
@@ -921,10 +921,10 @@ index a6a7429ed2e1eefb2b12b7480ed74fcc3963a864..e8027e1d505dda6effbb1698550016e8
NORMAL(false),
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index e93dc909c2e6fbc9daf0af66dfc2a4135646b91d..e616d383a71964b9807acb2c8206057017bbf281 100644
index 4e6e7795f7c797da264a08f4a68f5ff48152f177..629689342df0a8ae3fb3833f48a9f92aec24050a 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2458,6 +2458,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2479,6 +2479,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
void resetCooldown();
/**
@@ -933,7 +933,7 @@ index e93dc909c2e6fbc9daf0af66dfc2a4135646b91d..e616d383a71964b9807acb2c82060570
* @return the client option value of the player
*/
@NotNull
@@ -2489,6 +2491,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2510,6 +2512,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
// Paper end
// Spigot start

View File

@@ -170,7 +170,7 @@ index c8d37184d8e882a4084a1bfef85faa330588600b..46bae5c13ce2b973b114682f6a338981
/**
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index e616d383a71964b9807acb2c8206057017bbf281..a6b18e764f7d31d72d7427487df94d1ffd97d94f 100644
index 629689342df0a8ae3fb3833f48a9f92aec24050a..24d722079edcd1422b4f1816a219cbf7d0d028c1 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -76,7 +76,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -263,7 +263,7 @@ index e616d383a71964b9807acb2c8206057017bbf281..a6b18e764f7d31d72d7427487df94d1f
public void kickPlayer(@Nullable String message);
// Paper start
@@ -695,7 +695,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -716,7 +716,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @throws IllegalArgumentException if lines is non-null and has a length less than 4
* @deprecated in favour of {@link #sendSignChange(org.bukkit.Location, java.util.List)}
*/
@@ -272,7 +272,7 @@ index e616d383a71964b9807acb2c8206057017bbf281..a6b18e764f7d31d72d7427487df94d1f
public void sendSignChange(@NotNull Location loc, @Nullable String[] lines) throws IllegalArgumentException;
/**
@@ -716,7 +716,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -737,7 +737,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @throws IllegalArgumentException if lines is non-null and has a length less than 4
* @deprecated in favour of {@link #sendSignChange(org.bukkit.Location, java.util.List, org.bukkit.DyeColor)}
*/
@@ -281,7 +281,7 @@ index e616d383a71964b9807acb2c8206057017bbf281..a6b18e764f7d31d72d7427487df94d1f
public void sendSignChange(@NotNull Location loc, @Nullable String[] lines, @NotNull DyeColor dyeColor) throws IllegalArgumentException;
/**
@@ -2184,7 +2184,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2205,7 +2205,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @deprecated in favour of {@link #locale()}
*/
@NotNull

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Flying Fall Damage API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index a6b18e764f7d31d72d7427487df94d1ffd97d94f..9cedce0ed0b0949155f607727918f554b72c47c9 100644
index 24d722079edcd1422b4f1816a219cbf7d0d028c1..6a978af4a08e0f03c7d4091c5be67452d57fa8ae 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2681,5 +2681,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2702,5 +2702,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param invulnerableTicks Invulnerable ticks remaining
*/
void setSpawnInvulnerableTicks(int invulnerableTicks);

View File

@@ -43,10 +43,10 @@ index 2cb12547c778fe439536e2e2aa479d4a25ab4a6e..38de81f8696ed658d002427d002f22b2
try {
byte[] data = new byte[packet.data.readableBytes()];
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 148e1985017f6955267b5c970730645394d700f6..c5e3dfd91aba27d9b0115d264a3bbf3d50066356 100644
index 43d96760828e4c9683398f3f6925701d003556e4..4306a8543deb3b239988feee9d9ab7b3a99dcd3d 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2623,4 +2623,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2653,4 +2653,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.spigot;
}
// Spigot end

View File

@@ -68,7 +68,7 @@ index 618595add09eef5381307ba2fe154adfc97b2a0e..100d01814aca6cbb26c721f55851df27
return this.stats;
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 2d1897d84f7f1f6265a5c31ec2666af7019010c9..fa14b693257811fa762eeb209042ff1a4b3a65ec 100644
index 39bf75a7ba276f25e39573f084786dd5c046f51c..d29dc1dc6b4f052c9ea54e69f07a649f30a6ed42 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -295,6 +295,20 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -213,10 +213,10 @@ index 6df710cecea9a5c91ccf8bdaec60bdc88a601777..6b0cee0bd6218492b184f94a84da9acf
if (range < 0.0D || d < range * range) {
return true;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index c5e3dfd91aba27d9b0115d264a3bbf3d50066356..59d375e9a02c990afa5037819593654fac853302 100644
index 4306a8543deb3b239988feee9d9ab7b3a99dcd3d..a7a286e6875c18ae4cb610bf13b8a1b9764452c7 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -430,10 +430,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -431,10 +431,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setPlayerListName(String name) {
@@ -233,7 +233,7 @@ index c5e3dfd91aba27d9b0115d264a3bbf3d50066356..59d375e9a02c990afa5037819593654f
for (ServerPlayer player : (List<ServerPlayer>) server.getHandle().players) {
if (player.getBukkitEntity().canSee(this)) {
player.connection.send(new ClientboundPlayerInfoPacket(ClientboundPlayerInfoPacket.Action.UPDATE_DISPLAY_NAME, this.getHandle()));
@@ -2629,5 +2634,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2659,5 +2664,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public boolean usesPurpurClient() {
return getHandle().purpurClient;
}
@@ -276,7 +276,7 @@ index f9f0585c86f5d421d0265c8e9b24610e6e8e4533..6f743cdf0e68fe393ca4bbb19d97d9ac
public static int barrelRows = 3;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a524f120c7ba18cc0f89fa365a6097bebb48aea4..ff78acf9c8ad5e9446e1e259f2881b7df878443a 100644
index c38d9583d8ce50670d78b60d92c90d1d5eb4bbfc..01a2d17790b3adbc63fe742b9e5c11dd2e0d2e68 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -89,6 +89,24 @@ public class PurpurWorldConfig {
@@ -305,7 +305,7 @@ index a524f120c7ba18cc0f89fa365a6097bebb48aea4..ff78acf9c8ad5e9446e1e259f2881b7d
public boolean untamedTamablesAreRidable = true;
public boolean useNightVisionWhenRiding = false;
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index 8d3147b48eff5418f452eb1449639316399942ee..d3c84417596a56e38012f2d0cee4203a1b875ac2 100644
index 59a6cb575e40465275184cb816c862c79995c729..2e8a395fb6792c1f7595177e8503d27211f4ae96 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -203,6 +203,7 @@ public class ActivationRange

View File

@@ -82,7 +82,7 @@ index 100d01814aca6cbb26c721f55851df27dc654880..7d8853191eadf5f5d909dcc0269740d6
public Scoreboard getScoreboard() {
return this.getBukkitEntity().getScoreboard().getHandle();
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index fa14b693257811fa762eeb209042ff1a4b3a65ec..5e2769dac191d725a1e38e61a871baa644d29b44 100644
index d29dc1dc6b4f052c9ea54e69f07a649f30a6ed42..948b65411e1a0f25887ebb7ba58c2bd597f0a28f 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1964,12 +1964,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -121,10 +121,10 @@ index ae3c16ec9404f126c50160d436b7732d82765fc5..aafc0d7275a8dc1df2c73974b9b77166
return entityplayer1;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 59d375e9a02c990afa5037819593654fac853302..69de6463d169ec7a0af4331d6a58eabef6ed59d8 100644
index a7a286e6875c18ae4cb610bf13b8a1b9764452c7..c2a801a6bcf8e796921bb1b82a7569aa8391f443 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2649,5 +2649,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2679,5 +2679,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void resetIdleTimer() {
getHandle().resetLastActionTime();
}
@@ -146,7 +146,7 @@ index 59d375e9a02c990afa5037819593654fac853302..69de6463d169ec7a0af4331d6a58eabe
// Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ff78acf9c8ad5e9446e1e259f2881b7df878443a..83f2729035d42674d480bb508737497a7bffb4c7 100644
index 01a2d17790b3adbc63fe742b9e5c11dd2e0d2e68..81524c4f676766c09125187876b46e0704294880 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -94,6 +94,8 @@ public class PurpurWorldConfig {

View File

@@ -46,10 +46,10 @@ index 9311a5fbaa17c9cd95940b4ddfea6fdb06f9d397..e2d8631422eb90d050cf1335ab6883ca
public void broadcastAll(Packet<?> packet) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 69de6463d169ec7a0af4331d6a58eabef6ed59d8..5c5e76b39f941f3921f36e86fd993d0af24ee922 100644
index c2a801a6bcf8e796921bb1b82a7569aa8391f443..633adead3769b9a1169f25634f5bed7de9fd7c38 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1563,7 +1563,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1593,7 +1593,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public boolean canSee(org.bukkit.entity.Entity entity) {

View File

@@ -93,10 +93,10 @@ index c2581fb017f6579e59bd25e46b781aa95985abb2..e888e630176f30d773155019fb17aed8
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 5c5e76b39f941f3921f36e86fd993d0af24ee922..0efb32d028df885f03b95f80b5da46ae7adb8257 100644
index 633adead3769b9a1169f25634f5bed7de9fd7c38..80ebaccb78c9b57cf529c5cf2bea80363494f8b1 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -981,6 +981,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1011,6 +1011,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
if (entity.isVehicle()) {
@@ -108,7 +108,7 @@ index 5c5e76b39f941f3921f36e86fd993d0af24ee922..0efb32d028df885f03b95f80b5da46ae
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a5957179e59175081e8338dd3d0894b412a625e1..dc2d2fcd6ce44228833ffbb964d7378bf3185742 100644
index 5135ce3a370d9d613a79eecda007fa3459fabf9d..d0c983eacaff5d9314d767a8d58b5603fa336a50 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -111,6 +111,7 @@ public class PurpurWorldConfig {

View File

@@ -26,10 +26,10 @@ index 2004f291610c0089aab92e863b439ca25bf77a47..f88d187dc16c8a0b997b6ee26bf17ea6
} else {
if (fallDistance >= 2.0F) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 0efb32d028df885f03b95f80b5da46ae7adb8257..f77b65a595fd2c7e79998bd343e9ce255e21d5e9 100644
index 80ebaccb78c9b57cf529c5cf2bea80363494f8b1..944d0e118e0bed160fc6e40a147c043aade1599f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2674,5 +2674,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2704,5 +2704,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void setSpawnInvulnerableTicks(int spawnInvulnerableTime) {
getHandle().spawnInvulnerableTime = spawnInvulnerableTime;
}

View File

@@ -109,7 +109,7 @@ index a5c2d6f0c0850a99224a1a8d622fe6b341cee88b..d8777ab86465e25236e7abbafd7ff668
return InteractionResult.PASS;
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index c3a24784e980d38ef5899985e72cd206ab5e8939..3b9114e3c0789eeb6edcd49400c7ece14dc9d7a9 100644
index e3a4041155d2998ee840fc09ca95f117a4e160b3..022490032f8df8d4ddd920b12a7a002fd86fa219 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -510,6 +510,153 @@ public class PurpurWorldConfig {
@@ -243,20 +243,20 @@ index c3a24784e980d38ef5899985e72cd206ab5e8939..3b9114e3c0789eeb6edcd49400c7ece1
+ Map.entry("minecraft:rooted_dirt", Map.of("condition", "always", "into", "minecraft:dirt", "drops", Map.of("minecraft:hanging_roots", 1.0D))))
+ ).forEach((blockId, obj) -> {
+ Block block = Registry.BLOCK.get(new ResourceLocation(blockId));
+ if (block == Blocks.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid block for `tools.hoe.tilling`: " + blockId); return; }
+ if (!(obj instanceof Map<?, ?> map)) { PurpurConfig.log(Level.SEVERE, "Invalid yaml for `tools.hoe.tilling." + blockId + "`"); return; }
+ if (block == Blocks.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid block for `tools.hoe.tillables`: " + blockId); return; }
+ if (!(obj instanceof Map<?, ?> map)) { PurpurConfig.log(Level.SEVERE, "Invalid yaml for `tools.hoe.tillables." + blockId + "`"); return; }
+ String conditionId = (String) map.get("condition");
+ Tillable.Condition condition = Tillable.Condition.get(conditionId);
+ if (condition == null) { PurpurConfig.log(Level.SEVERE, "Invalid condition for `tools.hoe.tilling." + blockId + ".condition`: " + conditionId); return; }
+ if (condition == null) { PurpurConfig.log(Level.SEVERE, "Invalid condition for `tools.hoe.tillables." + blockId + ".condition`: " + conditionId); return; }
+ String intoId = (String) map.get("into");
+ Block into = Registry.BLOCK.get(new ResourceLocation(intoId));
+ if (into == Blocks.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid block for `tools.hoe.tilling." + blockId + ".into`: " + intoId); return; }
+ if (into == Blocks.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid block for `tools.hoe.tillables." + blockId + ".into`: " + intoId); return; }
+ Object dropsObj = map.get("drops");
+ if (!(dropsObj instanceof Map<?, ?> dropsMap)) { PurpurConfig.log(Level.SEVERE, "Invalid yaml for `tools.hoe.tilling." + blockId + ".drops`"); return; }
+ if (!(dropsObj instanceof Map<?, ?> dropsMap)) { PurpurConfig.log(Level.SEVERE, "Invalid yaml for `tools.hoe.tillables." + blockId + ".drops`"); return; }
+ Map<Item, Double> drops = new HashMap<>();
+ dropsMap.forEach((itemId, chance) -> {
+ Item item = Registry.ITEM.get(new ResourceLocation(itemId.toString()));
+ if (item == Items.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid item for `tools.hoe.tilling." + blockId + ".drops`: " + itemId); return; }
+ if (item == Items.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid item for `tools.hoe.tillables." + blockId + ".drops`: " + itemId); return; }
+ drops.put(item, (double) chance);
+ });
+ hoeTillables.put(block, new Tillable(condition, into, drops));

View File

@@ -223,10 +223,10 @@ index 88bc0807e8bf66a65422f85f1112336334eb3de2..d0e822b329085b9d0a42276c3cacd6cb
+ // Purpur end - OfflinePlayer API
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index f77b65a595fd2c7e79998bd343e9ce255e21d5e9..9a307b74a1c6e43d497dc59286e3885116fb1cb4 100644
index 944d0e118e0bed160fc6e40a147c043aade1599f..f4ed262e51a0cc64df56dfc23ba816c23c5ce11e 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1937,6 +1937,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1967,6 +1967,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.getHandle().getAbilities().walkingSpeed * 2f;
}