SPIGOT-6714: Don't fire PlayerBucketEvent when empty

This commit is contained in:
Noah van der Aa 2021-08-18 17:06:40 +10:00 committed by md_5
parent 8c6d60cf50
commit 3cad0316e0
No known key found for this signature in database
GPG Key ID: E8E901AC7C617C11

View File

@ -23,6 +23,7 @@
IFluidSource ifluidsource = (IFluidSource) iblockdata.getBlock(); IFluidSource ifluidsource = (IFluidSource) iblockdata.getBlock();
+ // CraftBukkit start + // CraftBukkit start
+ ItemStack dummyFluid = ifluidsource.removeFluid(DummyGeneratorAccess.INSTANCE, blockposition, iblockdata); + ItemStack dummyFluid = ifluidsource.removeFluid(DummyGeneratorAccess.INSTANCE, blockposition, iblockdata);
+ if (dummyFluid.isEmpty()) return InteractionResultWrapper.fail(itemstack); // Don't fire event if the bucket won't be filled.
+ PlayerBucketFillEvent event = CraftEventFactory.callPlayerBucketFillEvent((WorldServer) world, entityhuman, blockposition, blockposition, movingobjectpositionblock.getDirection(), itemstack, dummyFluid.getItem()); + PlayerBucketFillEvent event = CraftEventFactory.callPlayerBucketFillEvent((WorldServer) world, entityhuman, blockposition, blockposition, movingobjectpositionblock.getDirection(), itemstack, dummyFluid.getItem());
+ +
+ if (event.isCancelled()) { + if (event.isCancelled()) {