Skip to content

Commit 7783e9a

Browse files
lenis0012wizjany
andauthored
Fix ItemStack conversion on block place on MC 1.21 (#2093)
* Fix ItemStack conversion on block place This issue is present in 1.21 because some materials do not convert 1:1 to item types. This throws an exception in the ItemStack constructor. Example: WALL_TORCH is a valid block but not a valid item, only TORCH is a valid item. So, use the item in hand instead, creating a copy with quantity set to 1, for issueing the use item event. * Use ItemStack as-is. Closes #2092. --------- Co-authored-by: wizjany <wizjany@gmail.com>
1 parent 2bd426b commit 7783e9a

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -218,8 +218,8 @@ public void onBlockPlace(BlockPlaceEvent event) {
218218
Events.fireToCancel(event, new BreakBlockEvent(event, create(event.getPlayer()), previousState.getLocation(), previousState.getType()));
219219
}
220220

221-
if (!event.isCancelled()) {
222-
ItemStack itemStack = new ItemStack(event.getBlockPlaced().getType(), 1);
221+
ItemStack itemStack = event.getItemInHand();
222+
if (!event.isCancelled() && !itemStack.isEmpty()) {
223223
Events.fireToCancel(event, new UseItemEvent(event, create(event.getPlayer()), event.getPlayer().getWorld(), itemStack));
224224
}
225225

0 commit comments

Comments
 (0)