The specific block procedure is fairly simple, just have a procedure that checks when a block is broken, and checks if the block is a specific type. (And if the entity is a player, if you don't want explosions or other stuff to trigger it.)
...The ender pearl one is a bit trickier. You essentially have to detect when a player teleports, which doesn't have a specific trigger in the game. You could try to do something that triggers when an Ender Pearl projectile entity dies, Or make some sort of custom variables that constantly save the player's location, and detect when that location changes abruptly. (Though this would trigger for any sort of teleportation, and, probably, if the player is just moving really fast.)
The specific block procedure is fairly simple, just have a procedure that checks when a block is broken, and checks if the block is a specific type. (And if the entity is a player, if you don't want explosions or other stuff to trigger it.)
...The ender pearl one is a bit trickier. You essentially have to detect when a player teleports, which doesn't have a specific trigger in the game. You could try to do something that triggers when an Ender Pearl projectile entity dies, Or make some sort of custom variables that constantly save the player's location, and detect when that location changes abruptly. (Though this would trigger for any sort of teleportation, and, probably, if the player is just moving really fast.)
for the ender pearl you can use the "player uses item", "player stops using item" or "player finishes using item" and check if it's an enderpearl
How would I make it so that when the player breaks a block with an item, it does the procedure because player finishes using item doesn't work.