196271de4e
- Save level.dat first, in case the shutdown is killed later - Force run minecraftserver tasks and the chunk source tasks while waiting for the chunk system to empty, as there's simply too much trash that could prevent them from executing during the chunk source tick (i.e "time left in tick" logic).
42 Zeilen
2.9 KiB
Diff
42 Zeilen
2.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Nassim Jahnke <jahnke.nassim@gmail.com>
|
|
Date: Fri, 4 Mar 2022 20:35:19 +0100
|
|
Subject: [PATCH] Fix falling block spawn methods
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
|
|
index 850131e601047ab1c585a6f8883ac3c0d0e97ba1..99cb7625d50d5da4ce0999e10fb84403958a7ffe 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
|
|
@@ -549,7 +549,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
|
|
// Paper end
|
|
} else if (FallingBlock.class.isAssignableFrom(clazz)) {
|
|
BlockPos pos = new BlockPos(x, y, z);
|
|
- entity = FallingBlockEntity.fall(world, pos, this.getHandle().getBlockState(pos));
|
|
+ entity = new FallingBlockEntity(world, x, y, z, this.getHandle().getBlockState(pos)); // Paper
|
|
} else if (Projectile.class.isAssignableFrom(clazz)) {
|
|
if (Snowball.class.isAssignableFrom(clazz)) {
|
|
entity = new net.minecraft.world.entity.projectile.Snowball(world, x, y, z);
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
index b2c5fbfcb64f3056d7975db43b2db45bfd5e9890..028663b86970b8a1ae3e5275429516ee00ef0a04 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
@@ -1416,7 +1416,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
|
Validate.notNull(material, "Material cannot be null");
|
|
Validate.isTrue(material.isBlock(), "Material must be a block");
|
|
|
|
- FallingBlockEntity entity = FallingBlockEntity.fall(world, new BlockPos(location.getX(), location.getY(), location.getZ()), CraftMagicNumbers.getBlock(material).defaultBlockState());
|
|
+ FallingBlockEntity entity = new FallingBlockEntity(this.world, location.getX(), location.getY(), location.getZ(), CraftMagicNumbers.getBlock(material).defaultBlockState()); // Paper
|
|
entity.time = 1;
|
|
|
|
this.world.addFreshEntity(entity, SpawnReason.CUSTOM);
|
|
@@ -1428,7 +1428,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
|
Validate.notNull(location, "Location cannot be null");
|
|
Validate.notNull(data, "Material cannot be null");
|
|
|
|
- FallingBlockEntity entity = FallingBlockEntity.fall(world, new BlockPos(location.getX(), location.getY(), location.getZ()), ((CraftBlockData) data).getState());
|
|
+ FallingBlockEntity entity = new FallingBlockEntity(this.world, location.getX(), location.getY(), location.getZ(), ((CraftBlockData) data).getState()); // Paper
|
|
entity.time = 1;
|
|
|
|
this.world.addFreshEntity(entity, SpawnReason.CUSTOM);
|