diff --git a/src/pocketmine/block/Lava.php b/src/pocketmine/block/Lava.php index 6cd1273d1..a1759b83b 100644 --- a/src/pocketmine/block/Lava.php +++ b/src/pocketmine/block/Lava.php @@ -29,6 +29,7 @@ use pocketmine\event\entity\EntityDamageByBlockEvent; use pocketmine\event\entity\EntityDamageEvent; use pocketmine\item\Item; use pocketmine\math\Vector3; +use pocketmine\network\mcpe\protocol\LevelSoundEventPacket; use pocketmine\Player; use pocketmine\Server; @@ -56,6 +57,14 @@ class Lava extends Liquid{ return BlockFactory::get(Block::FLOWING_LAVA, $this->meta); } + public function getBucketFillSound() : int{ + return LevelSoundEventPacket::SOUND_BUCKET_FILL_LAVA; + } + + public function getBucketEmptySound() : int{ + return LevelSoundEventPacket::SOUND_BUCKET_EMPTY_LAVA; + } + public function tickRate() : int{ return 30; } diff --git a/src/pocketmine/block/Liquid.php b/src/pocketmine/block/Liquid.php index 996a614b0..6bb698967 100644 --- a/src/pocketmine/block/Liquid.php +++ b/src/pocketmine/block/Liquid.php @@ -80,6 +80,10 @@ abstract class Liquid extends Transparent{ abstract public function getFlowingForm() : Block; + abstract public function getBucketFillSound() : int; + + abstract public function getBucketEmptySound() : int; + public function getFluidHeightPercent(){ $d = $this->meta; if($d >= 8){ diff --git a/src/pocketmine/block/Water.php b/src/pocketmine/block/Water.php index 3fcad9751..00eeb3a9d 100644 --- a/src/pocketmine/block/Water.php +++ b/src/pocketmine/block/Water.php @@ -26,6 +26,7 @@ namespace pocketmine\block; use pocketmine\entity\Entity; use pocketmine\item\Item; use pocketmine\math\Vector3; +use pocketmine\network\mcpe\protocol\LevelSoundEventPacket; use pocketmine\Player; class Water extends Liquid{ @@ -52,6 +53,14 @@ class Water extends Liquid{ return BlockFactory::get(Block::FLOWING_WATER, $this->meta); } + public function getBucketFillSound() : int{ + return LevelSoundEventPacket::SOUND_BUCKET_FILL_WATER; + } + + public function getBucketEmptySound() : int{ + return LevelSoundEventPacket::SOUND_BUCKET_EMPTY_WATER; + } + public function tickRate() : int{ return 5; } diff --git a/src/pocketmine/item/Bucket.php b/src/pocketmine/item/Bucket.php index 9a0a5921c..b3b1db76f 100644 --- a/src/pocketmine/item/Bucket.php +++ b/src/pocketmine/item/Bucket.php @@ -63,6 +63,7 @@ class Bucket extends Item implements Consumable{ $player->getServer()->getPluginManager()->callEvent($ev = new PlayerBucketFillEvent($player, $blockReplace, $face, $this, $resultItem)); if(!$ev->isCancelled()){ $player->getLevel()->setBlock($blockClicked, BlockFactory::get(Block::AIR), true, true); + $player->getLevel()->broadcastLevelSoundEvent($blockClicked->add(0.5, 0.5, 0.5), $blockClicked->getBucketFillSound()); if($player->isSurvival()){ if($stack->getCount() === 0){ $player->getInventory()->setItemInHand($ev->getItem()); @@ -85,6 +86,8 @@ class Bucket extends Item implements Consumable{ $player->getServer()->getPluginManager()->callEvent($ev = new PlayerBucketEmptyEvent($player, $blockReplace, $face, $this, $resultItem)); if(!$ev->isCancelled()){ $player->getLevel()->setBlock($blockReplace, $resultBlock->getFlowingForm(), true, true); + $player->getLevel()->broadcastLevelSoundEvent($blockClicked->add(0.5, 0.5, 0.5), $resultBlock->getBucketEmptySound()); + if($player->isSurvival()){ $player->getInventory()->setItemInHand($ev->getItem()); }