@GodWeedZao You're using a sledgehammer to crack a nut. @MinekCz The most efficient method to solve this problem would be to check that the time interval elapsed since the last use of the item is bigger than 3 seconds. I made a simple example for you. PHP: private $timesSinceLastToolUsage = []; public function onBreakWithItem(BlockBreakEvent $event) { $player = $event->getPlayer(); if(!$event->getItem() instanceof Tool) { // making sure the item used is a tool return; } $name = $player->getName(); $timeSinceLastToolUsage = $this->timesSinceLastToolUsage[$name] ?? null; if($timeSinceLastToolUsage !== null and (microtime(true) - $timeSinceLastToolUsage) < 3) { // if the player has used a tool before and 3 seconds haven't passed, the event is cancelled $player->sendMessage("3 seconds haven't passed since the last time you used a tool to break a block!"); $event->setCancelled(); } else {// if the 3 seconds have passed or it's the first time a player uses a tool, the player can use the tool and the time will be registered $timeSinceLastToolUsage[$name] = microtime(true); } }