Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-11-15 04:20:04 +01:00
Update clients when setting blocks to air
Dieser Commit ist enthalten in:
Ursprung
45d9b4c497
Commit
51e2a4f6d6
@ -0,0 +1,31 @@
|
||||
From 290cbb38a943a5bb021e5aace7bf3c0cd97f1410 Mon Sep 17 00:00:00 2001
|
||||
From: Zach Brown <zach.brown@destroystokyo.com>
|
||||
Date: Sat, 25 Jun 2016 21:04:05 -0500
|
||||
Subject: [PATCH] Update clients when setting blocks to air
|
||||
|
||||
In fixing SPIGOT-611, the server sets an area to air and doesn't update the clients.
|
||||
Usually this is fine, most of the time we'll just be setting the intended block shortly after anyway.
|
||||
|
||||
Except if we're setting air. In which case the server will not send the change because it already sees the block as set.
|
||||
We workaround this by telling the server to send the client the block change if it is of ID 0 (Air). I assume this
|
||||
patch will not last long enough to warrant moving away from the ID.
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
||||
index a5d6f1d..60a1692 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
||||
@@ -137,7 +137,10 @@ public class CraftBlock implements Block {
|
||||
BlockPosition position = new BlockPosition(x, y, z);
|
||||
|
||||
// SPIGOT-611: need to do this to prevent glitchiness. Easier to handle this here (like /setblock) than to fix weirdness in tile entity cleanup
|
||||
- chunk.getHandle().getWorld().setTypeAndData(position, Blocks.AIR.getBlockData(), 0);
|
||||
+ // Paper start - If we're setting air, we need to explicitly tell it to send to clients
|
||||
+ int flag = (type == 0) ? 2 : 0;
|
||||
+ chunk.getHandle().getWorld().setTypeAndData(position, Blocks.AIR.getBlockData(), flag);
|
||||
+ // Paper end
|
||||
|
||||
if (applyPhysics) {
|
||||
return chunk.getHandle().getWorld().setTypeAndData(position, blockData, 3);
|
||||
--
|
||||
2.9.0.windows.1
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren