Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-18 12:30:06 +01:00
SPIGOT-4042: Fix emptying buckets onto slabs
Dieser Commit ist enthalten in:
Ursprung
65bc676ed0
Commit
3e5fe3e40d
@ -41,7 +41,7 @@
|
|||||||
BlockPosition blockposition1 = this.a(iblockdata, blockposition, movingobjectposition);
|
BlockPosition blockposition1 = this.a(iblockdata, blockposition, movingobjectposition);
|
||||||
|
|
||||||
- if (this.a(entityhuman, world, blockposition1, movingobjectposition)) {
|
- if (this.a(entityhuman, world, blockposition1, movingobjectposition)) {
|
||||||
+ if (this.a(entityhuman, world, blockposition1, movingobjectposition, blockposition, itemstack)) { // CraftBukkit
|
+ if (this.a(entityhuman, world, blockposition1, movingobjectposition, movingobjectposition.direction, blockposition, itemstack)) { // CraftBukkit
|
||||||
this.a(world, itemstack, blockposition1);
|
this.a(world, itemstack, blockposition1);
|
||||||
if (entityhuman instanceof EntityPlayer) {
|
if (entityhuman instanceof EntityPlayer) {
|
||||||
CriterionTriggers.y.a((EntityPlayer) entityhuman, blockposition1, itemstack);
|
CriterionTriggers.y.a((EntityPlayer) entityhuman, blockposition1, itemstack);
|
||||||
@ -75,21 +75,24 @@
|
|||||||
|
|
||||||
+ // CraftBukkit start
|
+ // CraftBukkit start
|
||||||
public boolean a(@Nullable EntityHuman entityhuman, World world, BlockPosition blockposition, @Nullable MovingObjectPosition movingobjectposition) {
|
public boolean a(@Nullable EntityHuman entityhuman, World world, BlockPosition blockposition, @Nullable MovingObjectPosition movingobjectposition) {
|
||||||
+ return a(entityhuman, world, blockposition, movingobjectposition, null, null);
|
+ return a(entityhuman, world, blockposition, movingobjectposition, null, null, null);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ public boolean a(EntityHuman entityhuman, World world, BlockPosition blockposition, @Nullable MovingObjectPosition movingobjectposition, BlockPosition clicked, ItemStack itemstack) {
|
+ public boolean a(EntityHuman entityhuman, World world, BlockPosition blockposition, @Nullable MovingObjectPosition movingobjectposition, EnumDirection enumdirection, BlockPosition clicked, ItemStack itemstack) {
|
||||||
+ // CraftBukkit end
|
+ // CraftBukkit end
|
||||||
if (!(this.a instanceof FluidTypeFlowing)) {
|
if (!(this.a instanceof FluidTypeFlowing)) {
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
@@ -105,6 +129,15 @@
|
@@ -103,8 +127,17 @@
|
||||||
|
boolean flag1 = material.isReplaceable();
|
||||||
|
|
||||||
if (!world.isEmpty(blockposition) && !flag && !flag1 && (!(iblockdata.getBlock() instanceof IFluidContainer) || !((IFluidContainer) iblockdata.getBlock()).a((IBlockAccess) world, blockposition, iblockdata, this.a))) {
|
if (!world.isEmpty(blockposition) && !flag && !flag1 && (!(iblockdata.getBlock() instanceof IFluidContainer) || !((IFluidContainer) iblockdata.getBlock()).a((IBlockAccess) world, blockposition, iblockdata, this.a))) {
|
||||||
return movingobjectposition == null ? false : this.a(entityhuman, world, movingobjectposition.a().shift(movingobjectposition.direction), (MovingObjectPosition) null);
|
- return movingobjectposition == null ? false : this.a(entityhuman, world, movingobjectposition.a().shift(movingobjectposition.direction), (MovingObjectPosition) null);
|
||||||
|
+ return movingobjectposition == null ? false : this.a(entityhuman, world, movingobjectposition.a().shift(movingobjectposition.direction), (MovingObjectPosition) null, enumdirection, clicked, itemstack); // CraftBukkit
|
||||||
} else {
|
} else {
|
||||||
+ // CraftBukkit start
|
+ // CraftBukkit start
|
||||||
+ if (entityhuman != null) {
|
+ if (entityhuman != null) {
|
||||||
+ PlayerBucketEmptyEvent event = CraftEventFactory.callPlayerBucketEmptyEvent(entityhuman, clicked.getX(), clicked.getY(), clicked.getZ(), movingobjectposition.direction, itemstack);
|
+ PlayerBucketEmptyEvent event = CraftEventFactory.callPlayerBucketEmptyEvent(entityhuman, clicked.getX(), clicked.getY(), clicked.getZ(), enumdirection, itemstack);
|
||||||
+ if (event.isCancelled()) {
|
+ if (event.isCancelled()) {
|
||||||
+ // TODO: inventory not updated
|
+ // TODO: inventory not updated
|
||||||
+ return false;
|
+ return false;
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren