diff --git a/src/pocketmine/Player.php b/src/pocketmine/Player.php
index 401d1c1b74..bf2940113a 100644
--- a/src/pocketmine/Player.php
+++ b/src/pocketmine/Player.php
@@ -2775,6 +2775,10 @@ class Player extends Human implements CommandSender, InventoryHolder, ChunkLoade
 			case PlayerActionPacket::ACTION_START_GLIDE:
 			case PlayerActionPacket::ACTION_STOP_GLIDE:
 				break; //TODO
+			case PlayerActionPacket::ACTION_CONTINUE_BREAK:
+				$block = $this->level->getBlock($pos);
+				$this->level->broadcastLevelEvent($pos, LevelEventPacket::EVENT_PARTICLE_PUNCH_BLOCK, $block->getId() | ($block->getDamage() << 8) | ($packet->face << 16));
+				break;
 			default:
 				$this->server->getLogger()->debug("Unhandled/unknown player action type " . $packet->action . " from " . $this->getName());
 				return false;
diff --git a/src/pocketmine/network/mcpe/protocol/LevelEventPacket.php b/src/pocketmine/network/mcpe/protocol/LevelEventPacket.php
index a044a9954d..4c91468d82 100644
--- a/src/pocketmine/network/mcpe/protocol/LevelEventPacket.php
+++ b/src/pocketmine/network/mcpe/protocol/LevelEventPacket.php
@@ -71,6 +71,8 @@ class LevelEventPacket extends DataPacket{
 
 	const EVENT_PARTICLE_BLOCK_FORCE_FIELD = 2008;
 
+	const EVENT_PARTICLE_PUNCH_BLOCK = 2014;
+
 	const EVENT_START_RAIN = 3001;
 	const EVENT_START_THUNDER = 3002;
 	const EVENT_STOP_RAIN = 3003;
diff --git a/src/pocketmine/network/mcpe/protocol/PlayerActionPacket.php b/src/pocketmine/network/mcpe/protocol/PlayerActionPacket.php
index 6d04ec3d52..d000895eed 100644
--- a/src/pocketmine/network/mcpe/protocol/PlayerActionPacket.php
+++ b/src/pocketmine/network/mcpe/protocol/PlayerActionPacket.php
@@ -47,6 +47,8 @@ class PlayerActionPacket extends DataPacket{
 	const ACTION_START_GLIDE = 15;
 	const ACTION_STOP_GLIDE = 16;
 
+	const ACTION_CONTINUE_BREAK = 18;
+
 	public $eid;
 	public $action;
 	public $x;