geforkt von Mirrors/Paper
32 Zeilen
2.0 KiB
Diff
32 Zeilen
2.0 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Fri, 8 Oct 2021 13:12:58 -0700
|
|
Subject: [PATCH] Fix cancelled powdered snow bucket placement
|
|
|
|
Cancelling the placement of powdered snow from the powdered
|
|
snow bucket didn't revert grass that became snowy because of the
|
|
placement.
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
|
|
index 368837172f87ac45e1d58e9905b4693cc0804328..b7d8684968051f7af5462fe98d39fbebe3e96fd7 100644
|
|
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
|
|
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
|
|
@@ -379,7 +379,7 @@ public final class ItemStack {
|
|
int oldCount = this.getCount();
|
|
ServerLevel world = (ServerLevel) context.getLevel();
|
|
|
|
- if (!(item instanceof BucketItem || item instanceof SolidBucketItem)) { // if not bucket
|
|
+ if (!(item instanceof BucketItem/* || item instanceof SolidBucketItem*/)) { // if not bucket // Paper - capture block states for snow buckets
|
|
world.captureBlockStates = true;
|
|
// special case bonemeal
|
|
if (item == Items.BONE_MEAL) {
|
|
@@ -438,7 +438,7 @@ public final class ItemStack {
|
|
world.capturedBlockStates.clear();
|
|
if (blocks.size() > 1) {
|
|
placeEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callBlockMultiPlaceEvent(world, entityhuman, enumhand, blocks, blockposition.getX(), blockposition.getY(), blockposition.getZ());
|
|
- } else if (blocks.size() == 1) {
|
|
+ } else if (blocks.size() == 1 && item != Items.POWDER_SNOW_BUCKET) { // Paper - don't call event twice for snow buckets
|
|
placeEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPlaceEvent(world, entityhuman, enumhand, blocks.get(0), blockposition.getX(), blockposition.getY(), blockposition.getZ());
|
|
}
|
|
|