9147456fc9
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 CraftBukkit Changes: ab8ace685 SPIGOT-7236: Bone meal doesn't increase use statistic 7dcb59b8e Avoid switch on material in previous commit Spigot Changes: 19641c75 SPIGOT-7235: World.Spigot#strikeLightningEffect doesn't do anything
44 Zeilen
3.0 KiB
Diff
44 Zeilen
3.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/BlockItem.java b/src/main/java/net/minecraft/world/item/BlockItem.java
|
|
index e581dc10f3c805f7f8b6e4c842092609e7e1a0f8..b0204af850ee182773ad458208cccd946ad148d5 100644
|
|
--- a/src/main/java/net/minecraft/world/item/BlockItem.java
|
|
+++ b/src/main/java/net/minecraft/world/item/BlockItem.java
|
|
@@ -117,6 +117,7 @@ public class BlockItem extends Item {
|
|
blockstate.update(true, false);
|
|
|
|
if (this instanceof SolidBucketItem) {
|
|
+ ((ServerPlayer) entityhuman).connection.send(new net.minecraft.network.protocol.game.ClientboundBlockUpdatePacket(world, blockposition.below())); // Paper - update block below
|
|
((ServerPlayer) entityhuman).getBukkitEntity().updateInventory(); // SPIGOT-4541
|
|
}
|
|
return InteractionResult.FAIL;
|
|
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
|
|
index a6858017ff9468dbf4651fe62faea487a54b3878..def4d9c5a9b311d002eb88729bdba73b30f99bb7 100644
|
|
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
|
|
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
|
|
@@ -345,7 +345,7 @@ public final class ItemStack {
|
|
int oldCount = this.getCount();
|
|
ServerLevel world = (ServerLevel) itemactioncontext.getLevel();
|
|
|
|
- if (!(this.getItem() instanceof BucketItem || this.getItem() instanceof SolidBucketItem)) { // if not bucket
|
|
+ if (!(this.getItem() instanceof BucketItem/* || this.getItem() instanceof SolidBucketItem*/)) { // if not bucket // Paper - capture block states for snow buckets
|
|
world.captureBlockStates = true;
|
|
// special case bonemeal
|
|
if (this.getItem() == Items.BONE_MEAL) {
|
|
@@ -400,7 +400,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());
|
|
}
|
|
|