PaperMC/patches/api/0417-Expose-hand-during-BlockCanBuildEvent.patch
Bjarne Koll e1c0033552
Updated Upstream (Bukkit/CraftBukkit)
Upstream has released updates that appear to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
2b4b6d14 PR-1023: Convert InventoryView to interface

CraftBukkit Changes:
68603b1c1 Use expanded interaction ranges for traced interact events
eae9f760c PR-1414: Convert InventoryView to interface
ee9eafe67 Fix Implementation for DamageSource#isIndirect for internal custom causing entity
2024-06-16 17:23:42 +02:00

54 lines
2.4 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: The456gamer <the456gamer@the456gamer.dev>
Date: Mon, 21 Aug 2023 14:13:43 +0100
Subject: [PATCH] Expose hand during BlockCanBuildEvent
diff --git a/src/main/java/org/bukkit/event/block/BlockCanBuildEvent.java b/src/main/java/org/bukkit/event/block/BlockCanBuildEvent.java
index a1350c0f74d445dca09eea6e10abac050bb06990..08d09c2a92d8aa6adf6610cc05905d58a76fce1f 100644
--- a/src/main/java/org/bukkit/event/block/BlockCanBuildEvent.java
+++ b/src/main/java/org/bukkit/event/block/BlockCanBuildEvent.java
@@ -25,10 +25,11 @@ public class BlockCanBuildEvent extends BlockEvent {
protected BlockData blockData;
private final Player player;
+ private final org.bukkit.inventory.EquipmentSlot hand; // Paper - expose hand
@Deprecated
public BlockCanBuildEvent(@NotNull final Block block, @NotNull final BlockData type, final boolean canBuild) {
- this(block, null, type, canBuild);
+ this(block, null, type, canBuild, org.bukkit.inventory.EquipmentSlot.HAND); // Paper - expose hand
}
/**
@@ -37,12 +38,30 @@ public class BlockCanBuildEvent extends BlockEvent {
* @param type the id of the block to place
* @param canBuild whether we can build
*/
+ @java.lang.Deprecated // Paper
+ @io.papermc.paper.annotation.DoNotUse // Paper
public BlockCanBuildEvent(@NotNull final Block block, @Nullable final Player player, @NotNull final BlockData type, final boolean canBuild) {
+ this(block, player, type, canBuild, org.bukkit.inventory.EquipmentSlot.HAND); // Paper start - expose hand
+ }
+ @org.jetbrains.annotations.ApiStatus.Internal
+ public BlockCanBuildEvent(@NotNull final Block block, @Nullable final Player player, @NotNull final BlockData type, final boolean canBuild, @NotNull final org.bukkit.inventory.EquipmentSlot hand) { // Paper end - expose hand
super(block);
this.player = player;
this.buildable = canBuild;
this.blockData = type;
+ this.hand = hand; // Paper
+ }
+ // Paper start
+ /**
+ * Gets the hand the player will use to place the block
+ *
+ * @return the EquipmentSlot representing the players hand.
+ */
+ @NotNull
+ public org.bukkit.inventory.EquipmentSlot getHand() {
+ return hand;
}
+ // Paper end
/**
* Gets whether or not the block can be built here.