SPIGOT-7380: Add PlayerInteractEvent#getClickedPosition and ChiseledBookshelf#getSlot

By: Jishuna <joshl5324@gmail.com>
This commit is contained in:
CraftBukkit/Spigot
2023-06-17 14:31:40 +10:00
parent b0576f313f
commit 20acc420d8
6 changed files with 66 additions and 6 deletions

View File

@@ -5,7 +5,7 @@
if (movingobjectpositionblock.getType() == MovingObjectPosition.EnumMovingObjectType.BLOCK) {
+ // CraftBukkit start - Boat placement
+ org.bukkit.event.player.PlayerInteractEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(entityhuman, org.bukkit.event.block.Action.RIGHT_CLICK_BLOCK, movingobjectpositionblock.getBlockPos(), movingobjectpositionblock.getDirection(), itemstack, enumhand);
+ org.bukkit.event.player.PlayerInteractEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(entityhuman, org.bukkit.event.block.Action.RIGHT_CLICK_BLOCK, movingobjectpositionblock.getBlockPos(), movingobjectpositionblock.getDirection(), itemstack, false, enumhand, movingobjectpositionblock.getLocation());
+
+ if (event.isCancelled()) {
+ return InteractionResultWrapper.pass(itemstack);

View File

@@ -0,0 +1,20 @@
--- a/net/minecraft/world/level/block/ChiseledBookShelfBlock.java
+++ b/net/minecraft/world/level/block/ChiseledBookShelfBlock.java
@@ -128,7 +128,7 @@
}
}
- private static int getHitSlot(Vec2F vec2f) {
+ public static int getHitSlot(Vec2F vec2f) { //CraftBukkit - private -> public
int i = vec2f.y >= 0.5F ? 0 : 1;
int j = getSection(vec2f.x);
@@ -190,7 +190,7 @@
Objects.requireNonNull(blockstatelist_a);
list.forEach((iblockstate) -> {
- blockstatelist_a.add(iblockstate);
+ blockstatelist_a.add((BlockStateBoolean) iblockstate); // CraftBukkit - Decompile error
});
}