Add custom destroyerIdentity parameter to the sendBlockBreak function (#5840)
This commit is contained in:
parent
751d092af3
commit
f5f84ff476
|
@ -0,0 +1,38 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: TheFruxz <cedricspitzer@outlook.de>
|
||||
Date: Sat, 2 Apr 2022 13:03:39 +0200
|
||||
Subject: [PATCH] Add custom destroyerIdentity to sendBlockDamage
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
||||
index b607c229cfb1e95b17b6a0073380089ef5e1b675..5e51bc9176b481ec70fd7e5ac23d04d59f8d1a9a 100644
|
||||
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||
@@ -592,7 +592,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
/**
|
||||
* Send block damage. This fakes block break progress for a user at a
|
||||
* certain location. This will not actually change the block's break
|
||||
- * progress in any way.
|
||||
+ * progress in any way. The destroying entity will be this player.
|
||||
*
|
||||
* @param loc the location of the damaged block
|
||||
* @param progress the progress from 0.0 - 1.0 where 0 is no damage and
|
||||
@@ -601,6 +601,18 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
public void sendBlockDamage(@NotNull Location loc, float progress);
|
||||
|
||||
// Paper start
|
||||
+
|
||||
+ /**
|
||||
+ * Send block damage. This fakes block break progress for a user at a certain location.
|
||||
+ * This will not actually change the block's break progress in any way.
|
||||
+ * The destroying entity is defined via the destroyerIdentity parameter.
|
||||
+ *
|
||||
+ * @param loc the location of the damaged block
|
||||
+ * @param progress the progress from 0.0 - 1.0 where 0 is no damage and 1.0 is the most damaged
|
||||
+ * @param destroyerIdentity the entity id of the destroyer
|
||||
+ */
|
||||
+ public void sendBlockDamage(@NotNull Location loc, float progress, int destroyerIdentity);
|
||||
+
|
||||
/**
|
||||
* Send multiple block changes. This fakes a multi block change packet for each
|
||||
* chunk section that a block change occurs. This will not actually change the world in any way.
|
|
@ -0,0 +1,32 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: TheFruxz <cedricspitzer@outlook.de>
|
||||
Date: Sat, 26 Mar 2022 18:41:36 +0100
|
||||
Subject: [PATCH] Add custom destroyerIdentity to sendBlockDamage
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index 41258fcfa0505500665c2f185b9ef6d050213355..4ba927b4585ca56337fa763d60d21de3b58bb2f7 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -965,13 +965,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
|
||||
@Override
|
||||
public void sendBlockDamage(Location loc, float progress) {
|
||||
+ // Paper start - customBlockDamage identity
|
||||
+ sendBlockDamage(loc, progress, this.getHandle().getId());
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void sendBlockDamage(Location loc, float progress, int destroyerIdentity) {
|
||||
+ // Paper end - customBlockDamage identity
|
||||
Preconditions.checkArgument(loc != null, "loc must not be null");
|
||||
Preconditions.checkArgument(progress >= 0.0 && progress <= 1.0, "progress must be between 0.0 and 1.0 (inclusive)");
|
||||
|
||||
if (this.getHandle().connection == null) return;
|
||||
|
||||
int stage = (int) (9 * progress); // There are 0 - 9 damage states
|
||||
- ClientboundBlockDestructionPacket packet = new ClientboundBlockDestructionPacket(this.getHandle().getId(), new BlockPos(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()), stage);
|
||||
+ ClientboundBlockDestructionPacket packet = new ClientboundBlockDestructionPacket(destroyerIdentity, new BlockPos(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()), stage); // Paper - customBlockDamage identity
|
||||
this.getHandle().connection.send(packet);
|
||||
}
|
||||
|
Loading…
Reference in New Issue