diff --git a/leaf-server/minecraft-patches/features/0134-SparklyPaper-Parallel-world-ticking.patch b/leaf-server/minecraft-patches/features/0134-SparklyPaper-Parallel-world-ticking.patch index 2b087735..42eeb075 100644 --- a/leaf-server/minecraft-patches/features/0134-SparklyPaper-Parallel-world-ticking.patch +++ b/leaf-server/minecraft-patches/features/0134-SparklyPaper-Parallel-world-ticking.patch @@ -1111,79 +1111,30 @@ index 0b4c4707139c9c72929799818ec1a1b25575d70e..acf8059017f4e45c307a113abed36c59 }); } diff --git a/net/minecraft/world/entity/projectile/ThrownEnderpearl.java b/net/minecraft/world/entity/projectile/ThrownEnderpearl.java -index d212f57c8c0b2086f567fd30237b110203d9e8cb..ed4df82581b5411e54068ccc59ea85a78404fa2b 100644 +index d212f57c8c0b2086f567fd30237b110203d9e8cb..3712a2143efe82d41bd62dcec826aede03b6448b 100644 --- a/net/minecraft/world/entity/projectile/ThrownEnderpearl.java +++ b/net/minecraft/world/entity/projectile/ThrownEnderpearl.java -@@ -126,40 +126,48 @@ public class ThrownEnderpearl extends ThrowableItemProjectile { +@@ -126,8 +126,10 @@ public class ThrownEnderpearl extends ThrowableItemProjectile { Vec3 vec3 = this.oldPosition(); if (owner instanceof ServerPlayer serverPlayer) { if (serverPlayer.connection.isAcceptingMessages()) { -- // CraftBukkit start -- ServerPlayer serverPlayer1 = serverPlayer.teleport(new TeleportTransition(serverLevel, vec3, Vec3.ZERO, 0.0F, 0.0F, Relative.union(Relative.ROTATION, Relative.DELTA), TeleportTransition.DO_NOTHING, org.bukkit.event.player.PlayerTeleportEvent.TeleportCause.ENDER_PEARL)); -- if (serverPlayer1 == null) { -- this.discard(org.bukkit.event.entity.EntityRemoveEvent.Cause.HIT); -- return; -- } -- // CraftBukkit end -- if (this.random.nextFloat() < serverLevel.purpurConfig.enderPearlEndermiteChance && serverLevel.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING)) { // Purpur - Configurable Ender Pearl RNG -- Endermite endermite = EntityType.ENDERMITE.create(serverLevel, EntitySpawnReason.TRIGGERED); -- if (endermite != null) { -- endermite.setPlayerSpawned(true); // Purpur - Add back player spawned endermite API -- endermite.moveTo(owner.getX(), owner.getY(), owner.getZ(), owner.getYRot(), owner.getXRot()); -- serverLevel.addFreshEntity(endermite, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.ENDER_PEARL); + // Leaf start - SparklyPaper - parallel world ticking mod (handling for pearl teleportation cross-dimension) + java.util.function.Consumer teleportPlayerCrossDimensionTask = taskServerPlayer -> { -+ // CraftBukkit start -+ ServerPlayer serverPlayer1 = taskServerPlayer.teleport(new TeleportTransition(serverLevel, vec3, Vec3.ZERO, 0.0F, 0.0F, Relative.union(Relative.ROTATION, Relative.DELTA), TeleportTransition.DO_NOTHING, org.bukkit.event.player.PlayerTeleportEvent.TeleportCause.ENDER_PEARL)); -+ if (serverPlayer1 == null) { -+ this.discard(org.bukkit.event.entity.EntityRemoveEvent.Cause.HIT); -+ return; -+ } -+ // CraftBukkit end -+ if (this.random.nextFloat() < serverLevel.purpurConfig.enderPearlEndermiteChance && serverLevel.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING)) { // Purpur - Configurable Ender Pearl RNG -+ Endermite endermite = EntityType.ENDERMITE.create(serverLevel, EntitySpawnReason.TRIGGERED); -+ if (endermite != null) { -+ endermite.setPlayerSpawned(true); // Purpur - Add back player spawned endermite API -+ endermite.moveTo(owner.getX(), owner.getY(), owner.getZ(), owner.getYRot(), owner.getXRot()); -+ serverLevel.addFreshEntity(endermite, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.ENDER_PEARL); -+ } - } -- } - -- if (this.isOnPortalCooldown()) { -- owner.setPortalCooldown(); -- } -+ if (this.isOnPortalCooldown()) { -+ owner.setPortalCooldown(); -+ } - -- // CraftBukkit start - moved up -- // ServerPlayer serverPlayer1 = serverPlayer.teleport( -- // new TeleportTransition( -- // serverLevel, vec3, Vec3.ZERO, 0.0F, 0.0F, Relative.union(Relative.ROTATION, Relative.DELTA), TeleportTransition.DO_NOTHING -- // ) -- // ); -- // CraftBukkit end - moved up -- if (serverPlayer1 != null) { -- serverPlayer1.resetFallDistance(); -- serverPlayer1.resetCurrentImpulseContext(); + // CraftBukkit start +- ServerPlayer serverPlayer1 = serverPlayer.teleport(new TeleportTransition(serverLevel, vec3, Vec3.ZERO, 0.0F, 0.0F, Relative.union(Relative.ROTATION, Relative.DELTA), TeleportTransition.DO_NOTHING, org.bukkit.event.player.PlayerTeleportEvent.TeleportCause.ENDER_PEARL)); ++ ServerPlayer serverPlayer1 = taskServerPlayer.teleport(new TeleportTransition(serverLevel, vec3, Vec3.ZERO, 0.0F, 0.0F, Relative.union(Relative.ROTATION, Relative.DELTA), TeleportTransition.DO_NOTHING, org.bukkit.event.player.PlayerTeleportEvent.TeleportCause.ENDER_PEARL)); + if (serverPlayer1 == null) { + this.discard(org.bukkit.event.entity.EntityRemoveEvent.Cause.HIT); + return; +@@ -156,10 +158,16 @@ public class ThrownEnderpearl extends ThrowableItemProjectile { + if (serverPlayer1 != null) { + serverPlayer1.resetFallDistance(); + serverPlayer1.resetCurrentImpulseContext(); - serverPlayer1.hurtServer(serverPlayer.serverLevel(), this.damageSources().enderPearl().eventEntityDamager(this), this.level().purpurConfig.enderPearlDamage); // CraftBukkit // Paper - fix DamageSource API // Purpur - Configurable Ender Pearl damage -- } -+ // CraftBukkit start - moved up -+ // ServerPlayer serverPlayer1 = serverPlayer.teleport( -+ // new TeleportTransition( -+ // serverLevel, vec3, Vec3.ZERO, 0.0F, 0.0F, Relative.union(Relative.ROTATION, Relative.DELTA), TeleportTransition.DO_NOTHING -+ // ) -+ // ); -+ // CraftBukkit end - moved up -+ if (serverPlayer1 != null) { -+ serverPlayer1.resetFallDistance(); -+ serverPlayer1.resetCurrentImpulseContext(); -+ serverPlayer1.hurtServer(taskServerPlayer.serverLevel(), this.damageSources().enderPearl().eventEntityDamager(this), this.level().purpurConfig.enderPearlDamage); // CraftBukkit // Paper - fix DamageSource API // Purpur - Configurable Ender Pearl damage -+ } ++ serverPlayer1.hurtServer(taskServerPlayer.serverLevel(), this.damageSources().enderPearl().eventEntityDamager(this), this.level().purpurConfig.enderPearlDamage); // CraftBukkit // Paper - fix DamageSource API // Purpur - Configurable Ender Pearl damage + } -- this.playSound(serverLevel, vec3); -+ this.playSound(serverLevel, vec3); + this.playSound(serverLevel, vec3); + }; + if (org.dreeam.leaf.config.modules.async.SparklyPaperParallelWorldTicking.enabled) + serverPlayer.getBukkitEntity().taskScheduler.schedule(teleportPlayerCrossDimensionTask, entity -> {}, 0); diff --git a/leaf-archived-patches/removed/hardfork/paperserver/0002-Leaf-Bootstrap.patch b/leaf-server/paper-patches/features/0002-Leaf-Bootstrap.patch similarity index 92% rename from leaf-archived-patches/removed/hardfork/paperserver/0002-Leaf-Bootstrap.patch rename to leaf-server/paper-patches/features/0002-Leaf-Bootstrap.patch index 049a33d3..ec62e7ae 100644 --- a/leaf-archived-patches/removed/hardfork/paperserver/0002-Leaf-Bootstrap.patch +++ b/leaf-server/paper-patches/features/0002-Leaf-Bootstrap.patch @@ -8,7 +8,7 @@ Removed since Leaf 1.21.4, useless org.bukkit.craftbukkit.Main#main -> LeafBootstrap -> PaperBootstrap -> ... diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index ecb0fcd1f3b3f3d7751eded3cdf0977c1889c9ed..d0becb56a9911ef4cc55ae8d7c47832f442ad52f 100644 +index bf5343b0847e9f57ffbc7f33714ae6ca62f14332..70d093f71cca569d9da3ae82e738f8f3069f405e 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -278,7 +278,8 @@ public class Main { diff --git a/leaf-server/paper-patches/features/0002-Leaf-Commands.patch b/leaf-server/paper-patches/features/0003-Leaf-Commands.patch similarity index 100% rename from leaf-server/paper-patches/features/0002-Leaf-Commands.patch rename to leaf-server/paper-patches/features/0003-Leaf-Commands.patch diff --git a/leaf-server/paper-patches/features/0003-Pufferfish-Optimize-mob-spawning.patch b/leaf-server/paper-patches/features/0004-Pufferfish-Optimize-mob-spawning.patch similarity index 100% rename from leaf-server/paper-patches/features/0003-Pufferfish-Optimize-mob-spawning.patch rename to leaf-server/paper-patches/features/0004-Pufferfish-Optimize-mob-spawning.patch diff --git a/leaf-server/paper-patches/features/0004-Purpur-Server-Paper-Changes.patch b/leaf-server/paper-patches/features/0005-Purpur-Server-Paper-Changes.patch similarity index 99% rename from leaf-server/paper-patches/features/0004-Purpur-Server-Paper-Changes.patch rename to leaf-server/paper-patches/features/0005-Purpur-Server-Paper-Changes.patch index da1e28e2..385589c1 100644 --- a/leaf-server/paper-patches/features/0004-Purpur-Server-Paper-Changes.patch +++ b/leaf-server/paper-patches/features/0005-Purpur-Server-Paper-Changes.patch @@ -761,7 +761,7 @@ index a92e0877669a92851c6d7f83de75ffb087c8e651..daede6da974beb5ff19877caa5e6f8b3 public Collection getStructures(int x, int z) { return this.getStructures(x, z, struct -> true); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index bf5343b0847e9f57ffbc7f33714ae6ca62f14332..2e1b7f613de8876095ef39bb0341a3f9520c8d5d 100644 +index 70d093f71cca569d9da3ae82e738f8f3069f405e..7120ff469b0a0b638a4051b92f00f97da75edae0 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -176,6 +176,13 @@ public class Main { diff --git a/leaf-server/paper-patches/features/0005-Fix-Pufferfish-and-Purpur-patches.patch b/leaf-server/paper-patches/features/0006-Fix-Pufferfish-and-Purpur-patches.patch similarity index 100% rename from leaf-server/paper-patches/features/0005-Fix-Pufferfish-and-Purpur-patches.patch rename to leaf-server/paper-patches/features/0006-Fix-Pufferfish-and-Purpur-patches.patch diff --git a/leaf-server/paper-patches/features/0006-Remove-Timings.patch b/leaf-server/paper-patches/features/0007-Remove-Timings.patch similarity index 100% rename from leaf-server/paper-patches/features/0006-Remove-Timings.patch rename to leaf-server/paper-patches/features/0007-Remove-Timings.patch diff --git a/leaf-server/paper-patches/features/0007-KeYi-Player-Skull-API.patch b/leaf-server/paper-patches/features/0008-KeYi-Player-Skull-API.patch similarity index 100% rename from leaf-server/paper-patches/features/0007-KeYi-Player-Skull-API.patch rename to leaf-server/paper-patches/features/0008-KeYi-Player-Skull-API.patch diff --git a/leaf-server/paper-patches/features/0008-Slice-Smooth-Teleports.patch b/leaf-server/paper-patches/features/0009-Slice-Smooth-Teleports.patch similarity index 100% rename from leaf-server/paper-patches/features/0008-Slice-Smooth-Teleports.patch rename to leaf-server/paper-patches/features/0009-Slice-Smooth-Teleports.patch diff --git a/leaf-server/paper-patches/features/0009-Leaves-Protocol-Core.patch b/leaf-server/paper-patches/features/0010-Leaves-Protocol-Core.patch similarity index 100% rename from leaf-server/paper-patches/features/0009-Leaves-Protocol-Core.patch rename to leaf-server/paper-patches/features/0010-Leaves-Protocol-Core.patch diff --git a/leaf-server/paper-patches/features/0010-Leaves-Replay-Mod-API.patch b/leaf-server/paper-patches/features/0011-Leaves-Replay-Mod-API.patch similarity index 100% rename from leaf-server/paper-patches/features/0010-Leaves-Replay-Mod-API.patch rename to leaf-server/paper-patches/features/0011-Leaves-Replay-Mod-API.patch diff --git a/leaf-server/paper-patches/features/0011-Skip-event-if-no-listeners.patch b/leaf-server/paper-patches/features/0012-Skip-event-if-no-listeners.patch similarity index 100% rename from leaf-server/paper-patches/features/0011-Skip-event-if-no-listeners.patch rename to leaf-server/paper-patches/features/0012-Skip-event-if-no-listeners.patch diff --git a/leaf-server/paper-patches/features/0012-SparklyPaper-Skip-EntityScheduler-s-executeTick-chec.patch b/leaf-server/paper-patches/features/0013-SparklyPaper-Skip-EntityScheduler-s-executeTick-chec.patch similarity index 100% rename from leaf-server/paper-patches/features/0012-SparklyPaper-Skip-EntityScheduler-s-executeTick-chec.patch rename to leaf-server/paper-patches/features/0013-SparklyPaper-Skip-EntityScheduler-s-executeTick-chec.patch diff --git a/leaf-server/paper-patches/features/0013-SparklyPaper-Optimize-canSee-checks.patch b/leaf-server/paper-patches/features/0014-SparklyPaper-Optimize-canSee-checks.patch similarity index 100% rename from leaf-server/paper-patches/features/0013-SparklyPaper-Optimize-canSee-checks.patch rename to leaf-server/paper-patches/features/0014-SparklyPaper-Optimize-canSee-checks.patch diff --git a/leaf-server/paper-patches/features/0014-Including-5s-in-getTPS.patch b/leaf-server/paper-patches/features/0015-Including-5s-in-getTPS.patch similarity index 100% rename from leaf-server/paper-patches/features/0014-Including-5s-in-getTPS.patch rename to leaf-server/paper-patches/features/0015-Including-5s-in-getTPS.patch diff --git a/leaf-server/paper-patches/features/0015-Don-t-throw-exception-on-missing-ResourceKey-value.patch b/leaf-server/paper-patches/features/0016-Don-t-throw-exception-on-missing-ResourceKey-value.patch similarity index 100% rename from leaf-server/paper-patches/features/0015-Don-t-throw-exception-on-missing-ResourceKey-value.patch rename to leaf-server/paper-patches/features/0016-Don-t-throw-exception-on-missing-ResourceKey-value.patch diff --git a/leaf-server/paper-patches/features/0016-Virtual-Thread-for-async-scheduler.patch b/leaf-server/paper-patches/features/0017-Virtual-Thread-for-async-scheduler.patch similarity index 100% rename from leaf-server/paper-patches/features/0016-Virtual-Thread-for-async-scheduler.patch rename to leaf-server/paper-patches/features/0017-Virtual-Thread-for-async-scheduler.patch diff --git a/leaf-server/paper-patches/features/0017-Mirai-Configurable-chat-message-signatures.patch b/leaf-server/paper-patches/features/0018-Mirai-Configurable-chat-message-signatures.patch similarity index 100% rename from leaf-server/paper-patches/features/0017-Mirai-Configurable-chat-message-signatures.patch rename to leaf-server/paper-patches/features/0018-Mirai-Configurable-chat-message-signatures.patch diff --git a/leaf-server/paper-patches/features/0018-Matter-Secure-Seed.patch b/leaf-server/paper-patches/features/0019-Matter-Secure-Seed.patch similarity index 100% rename from leaf-server/paper-patches/features/0018-Matter-Secure-Seed.patch rename to leaf-server/paper-patches/features/0019-Matter-Secure-Seed.patch diff --git a/leaf-server/paper-patches/features/0019-Faster-random-generator.patch b/leaf-server/paper-patches/features/0020-Faster-random-generator.patch similarity index 100% rename from leaf-server/paper-patches/features/0019-Faster-random-generator.patch rename to leaf-server/paper-patches/features/0020-Faster-random-generator.patch diff --git a/leaf-server/paper-patches/features/0020-Configurable-unknown-command-message.patch b/leaf-server/paper-patches/features/0021-Configurable-unknown-command-message.patch similarity index 100% rename from leaf-server/paper-patches/features/0020-Configurable-unknown-command-message.patch rename to leaf-server/paper-patches/features/0021-Configurable-unknown-command-message.patch diff --git a/leaf-server/paper-patches/features/0021-Replace-world-map-with-optimized-collection.patch b/leaf-server/paper-patches/features/0022-Replace-world-map-with-optimized-collection.patch similarity index 100% rename from leaf-server/paper-patches/features/0021-Replace-world-map-with-optimized-collection.patch rename to leaf-server/paper-patches/features/0022-Replace-world-map-with-optimized-collection.patch diff --git a/leaf-server/paper-patches/features/0022-Cache-CraftEntityType-minecraftToBukkit-convert.patch b/leaf-server/paper-patches/features/0023-Cache-CraftEntityType-minecraftToBukkit-convert.patch similarity index 100% rename from leaf-server/paper-patches/features/0022-Cache-CraftEntityType-minecraftToBukkit-convert.patch rename to leaf-server/paper-patches/features/0023-Cache-CraftEntityType-minecraftToBukkit-convert.patch diff --git a/leaf-server/paper-patches/features/0023-Multithreaded-Tracker.patch b/leaf-server/paper-patches/features/0024-Multithreaded-Tracker.patch similarity index 100% rename from leaf-server/paper-patches/features/0023-Multithreaded-Tracker.patch rename to leaf-server/paper-patches/features/0024-Multithreaded-Tracker.patch diff --git a/leaf-server/paper-patches/features/0024-Asynchronous-locator.patch b/leaf-server/paper-patches/features/0025-Asynchronous-locator.patch similarity index 100% rename from leaf-server/paper-patches/features/0024-Asynchronous-locator.patch rename to leaf-server/paper-patches/features/0025-Asynchronous-locator.patch diff --git a/leaf-server/paper-patches/features/0025-EMC-Don-t-use-snapshots-for-acquiring-blockstate.patch b/leaf-server/paper-patches/features/0026-EMC-Don-t-use-snapshots-for-acquiring-blockstate.patch similarity index 100% rename from leaf-server/paper-patches/features/0025-EMC-Don-t-use-snapshots-for-acquiring-blockstate.patch rename to leaf-server/paper-patches/features/0026-EMC-Don-t-use-snapshots-for-acquiring-blockstate.patch diff --git a/leaf-server/paper-patches/features/0026-Faster-CraftServer-getworlds-list-creation.patch b/leaf-server/paper-patches/features/0027-Faster-CraftServer-getworlds-list-creation.patch similarity index 100% rename from leaf-server/paper-patches/features/0026-Faster-CraftServer-getworlds-list-creation.patch rename to leaf-server/paper-patches/features/0027-Faster-CraftServer-getworlds-list-creation.patch diff --git a/leaf-server/paper-patches/features/0027-Cache-chunk-key.patch b/leaf-server/paper-patches/features/0028-Cache-chunk-key.patch similarity index 100% rename from leaf-server/paper-patches/features/0027-Cache-chunk-key.patch rename to leaf-server/paper-patches/features/0028-Cache-chunk-key.patch diff --git a/leaf-server/paper-patches/features/0028-Async-structure-locate-api.patch b/leaf-server/paper-patches/features/0029-Async-structure-locate-api.patch similarity index 100% rename from leaf-server/paper-patches/features/0028-Async-structure-locate-api.patch rename to leaf-server/paper-patches/features/0029-Async-structure-locate-api.patch diff --git a/leaf-server/paper-patches/features/0029-PlayerInventoryOverflowEvent.patch b/leaf-server/paper-patches/features/0030-PlayerInventoryOverflowEvent.patch similarity index 100% rename from leaf-server/paper-patches/features/0029-PlayerInventoryOverflowEvent.patch rename to leaf-server/paper-patches/features/0030-PlayerInventoryOverflowEvent.patch diff --git a/leaf-server/paper-patches/features/0030-SparklyPaper-Parallel-world-ticking.patch b/leaf-server/paper-patches/features/0031-SparklyPaper-Parallel-world-ticking.patch similarity index 99% rename from leaf-server/paper-patches/features/0030-SparklyPaper-Parallel-world-ticking.patch rename to leaf-server/paper-patches/features/0031-SparklyPaper-Parallel-world-ticking.patch index 19025c6e..fccb0eec 100644 --- a/leaf-server/paper-patches/features/0030-SparklyPaper-Parallel-world-ticking.patch +++ b/leaf-server/paper-patches/features/0031-SparklyPaper-Parallel-world-ticking.patch @@ -315,7 +315,7 @@ index af33cab59932f4ec135caf94dc5828930833daf6..caa92e48d031cb54950e6613a82f407d } // Paper end diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index 811823a1a7e24a19a7e37eb4c08efdfa19e839ed..ac45c5cbe547705e3e341011740cf911c39f80c0 100644 +index 811823a1a7e24a19a7e37eb4c08efdfa19e839ed..839cfe99c028c596e15ba63c8a6e4a515b0a5764 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java @@ -74,13 +74,98 @@ public class CraftBlock implements Block { @@ -540,7 +540,7 @@ index 811823a1a7e24a19a7e37eb4c08efdfa19e839ed..ac45c5cbe547705e3e341011740cf911 } public Block getFace(final BlockFace face) { -@@ -282,51 +422,37 @@ public class CraftBlock implements Block { +@@ -282,51 +422,36 @@ public class CraftBlock implements Block { @Override public String toString() { @@ -577,7 +577,6 @@ index 811823a1a7e24a19a7e37eb4c08efdfa19e839ed..ac45c5cbe547705e3e341011740cf911 + case SOUTH -> BlockFace.SOUTH; + case WEST -> BlockFace.WEST; + case EAST -> BlockFace.EAST; -+ default -> BlockFace.SELF; + }; + // Leaf end - SparklyPaper - parallel world ticking - formatting } @@ -617,7 +616,7 @@ index 811823a1a7e24a19a7e37eb4c08efdfa19e839ed..ac45c5cbe547705e3e341011740cf911 } @Override -@@ -343,18 +469,65 @@ public class CraftBlock implements Block { +@@ -343,18 +468,65 @@ public class CraftBlock implements Block { @Override public Biome getBiome() { @@ -685,7 +684,7 @@ index 811823a1a7e24a19a7e37eb4c08efdfa19e839ed..ac45c5cbe547705e3e341011740cf911 this.getWorld().setBiome(this.getX(), this.getY(), this.getZ(), bio); } -@@ -370,12 +543,50 @@ public class CraftBlock implements Block { +@@ -370,12 +542,50 @@ public class CraftBlock implements Block { @Override public boolean isBlockPowered() { @@ -738,7 +737,7 @@ index 811823a1a7e24a19a7e37eb4c08efdfa19e839ed..ac45c5cbe547705e3e341011740cf911 } @Override -@@ -397,46 +608,102 @@ public class CraftBlock implements Block { +@@ -397,46 +607,101 @@ public class CraftBlock implements Block { @Override public boolean isBlockFacePowered(BlockFace face) { @@ -829,7 +828,6 @@ index 811823a1a7e24a19a7e37eb4c08efdfa19e839ed..ac45c5cbe547705e3e341011740cf911 + // Requires Level for hasSignal and getBlockState + if (this.world instanceof net.minecraft.world.level.Level nmsLevel) { + int power = 0; -+ int x = this.getX(); int y = this.getY(); int z = this.getZ(); + BlockPos currentPos = this.position; // Use immutable position + + // Check neighbors using relative positions @@ -868,7 +866,7 @@ index 811823a1a7e24a19a7e37eb4c08efdfa19e839ed..ac45c5cbe547705e3e341011740cf911 @Override public int getBlockPower() { -@@ -479,105 +746,179 @@ public class CraftBlock implements Block { +@@ -479,105 +744,179 @@ public class CraftBlock implements Block { @Override public PistonMoveReaction getPistonMoveReaction() { @@ -1089,7 +1087,7 @@ index 811823a1a7e24a19a7e37eb4c08efdfa19e839ed..ac45c5cbe547705e3e341011740cf911 } @Override -@@ -592,31 +933,70 @@ public class CraftBlock implements Block { +@@ -592,31 +931,70 @@ public class CraftBlock implements Block { @Override public Collection getDrops(ItemStack item, Entity entity) { @@ -1170,7 +1168,7 @@ index 811823a1a7e24a19a7e37eb4c08efdfa19e839ed..ac45c5cbe547705e3e341011740cf911 @Override public void setMetadata(String metadataKey, MetadataValue newMetadataValue) { this.getCraftWorld().getBlockMetadata().setMetadata(this, metadataKey, newMetadataValue); -@@ -639,57 +1019,147 @@ public class CraftBlock implements Block { +@@ -639,57 +1017,147 @@ public class CraftBlock implements Block { @Override public boolean isPassable() { @@ -1342,7 +1340,7 @@ index 811823a1a7e24a19a7e37eb4c08efdfa19e839ed..ac45c5cbe547705e3e341011740cf911 } @Override -@@ -700,7 +1170,10 @@ public class CraftBlock implements Block { +@@ -700,7 +1168,10 @@ public class CraftBlock implements Block { // Paper start @Override public com.destroystokyo.paper.block.BlockSoundGroup getSoundGroup() { @@ -1354,7 +1352,7 @@ index 811823a1a7e24a19a7e37eb4c08efdfa19e839ed..ac45c5cbe547705e3e341011740cf911 } @Override -@@ -713,26 +1186,76 @@ public class CraftBlock implements Block { +@@ -713,26 +1184,76 @@ public class CraftBlock implements Block { return this.getNMS().getBlock().getDescriptionId(); } diff --git a/leaf-server/paper-patches/features/0031-Paper-PR-Throttle-failed-spawn-attempts.patch b/leaf-server/paper-patches/features/0032-Paper-PR-Throttle-failed-spawn-attempts.patch similarity index 100% rename from leaf-server/paper-patches/features/0031-Paper-PR-Throttle-failed-spawn-attempts.patch rename to leaf-server/paper-patches/features/0032-Paper-PR-Throttle-failed-spawn-attempts.patch diff --git a/leaf-server/paper-patches/features/0032-Async-playerdata-saving.patch b/leaf-server/paper-patches/features/0033-Async-playerdata-saving.patch similarity index 100% rename from leaf-server/paper-patches/features/0032-Async-playerdata-saving.patch rename to leaf-server/paper-patches/features/0033-Async-playerdata-saving.patch diff --git a/leaf-server/paper-patches/features/0033-PaperPR-Fix-save-load-NaN-Entity-Motion.patch b/leaf-server/paper-patches/features/0034-PaperPR-Fix-save-load-NaN-Entity-Motion.patch similarity index 100% rename from leaf-server/paper-patches/features/0033-PaperPR-Fix-save-load-NaN-Entity-Motion.patch rename to leaf-server/paper-patches/features/0034-PaperPR-Fix-save-load-NaN-Entity-Motion.patch diff --git a/leaf-server/paper-patches/features/0034-PaperPR-Fix-unnecessary-map-data-saves.patch b/leaf-server/paper-patches/features/0035-PaperPR-Fix-unnecessary-map-data-saves.patch similarity index 100% rename from leaf-server/paper-patches/features/0034-PaperPR-Fix-unnecessary-map-data-saves.patch rename to leaf-server/paper-patches/features/0035-PaperPR-Fix-unnecessary-map-data-saves.patch diff --git a/leaf-server/paper-patches/features/0035-Async-chunk-send.patch b/leaf-server/paper-patches/features/0036-Async-chunk-send.patch similarity index 100% rename from leaf-server/paper-patches/features/0035-Async-chunk-send.patch rename to leaf-server/paper-patches/features/0036-Async-chunk-send.patch diff --git a/leaf-server/paper-patches/features/0036-Optimise-player-movement-checks.patch b/leaf-server/paper-patches/features/0037-Optimise-player-movement-checks.patch similarity index 100% rename from leaf-server/paper-patches/features/0036-Optimise-player-movement-checks.patch rename to leaf-server/paper-patches/features/0037-Optimise-player-movement-checks.patch diff --git a/leaf-server/paper-patches/features/0037-Paw-optimization.patch b/leaf-server/paper-patches/features/0038-Paw-optimization.patch similarity index 100% rename from leaf-server/paper-patches/features/0037-Paw-optimization.patch rename to leaf-server/paper-patches/features/0038-Paw-optimization.patch diff --git a/leaf-server/paper-patches/features/0038-optimise-ReferenceList.patch b/leaf-server/paper-patches/features/0039-optimise-ReferenceList.patch similarity index 100% rename from leaf-server/paper-patches/features/0038-optimise-ReferenceList.patch rename to leaf-server/paper-patches/features/0039-optimise-ReferenceList.patch diff --git a/leaf-server/paper-patches/features/0039-cache-getBiome.patch b/leaf-server/paper-patches/features/0040-cache-getBiome.patch similarity index 100% rename from leaf-server/paper-patches/features/0039-cache-getBiome.patch rename to leaf-server/paper-patches/features/0040-cache-getBiome.patch diff --git a/leaf-server/src/main/java/org/dreeam/leaf/LeafBootstrap.java b/leaf-server/src/main/java/org/dreeam/leaf/LeafBootstrap.java index 0ffa8fb1..06be488a 100644 --- a/leaf-server/src/main/java/org/dreeam/leaf/LeafBootstrap.java +++ b/leaf-server/src/main/java/org/dreeam/leaf/LeafBootstrap.java @@ -4,10 +4,11 @@ import io.papermc.paper.PaperBootstrap; import joptsimple.OptionSet; public class LeafBootstrap { + public static final boolean enableFMA = Boolean.parseBoolean(System.getProperty("Leaf.enableFMA", "false")); // Leaf - FMA feature public static void boot(final OptionSet options) { - runPreBootTasks(); + //runPreBootTasks(); PaperBootstrap.boot(options); }