Better compatibility with other plugins.

The event system should allow other plugins to edit the result, so it's not recommended to send hardcoded messages to a player without giving other plugins the chance to modify/cancel it.

So for example if a player breaks a block and the region is protected, he will get the "You don't have permission for this area." message, even if a plugin with EventPriority.HIGHEST uncancelled the event because the block was whitelisted or something similar.

I would suggest putting cancelled events (and the corresponding message) to a HashMap and recheck the status on the EventPriority.MONITOR. Because this priority is only used for checking the result of an event without changing it.

Theese changes can easily be added to every event without big changes.

So other devs can use:

@EventHandler(priority = EventPriority.HIGHEST)
public void onBlockBreak(BlockBreakEvent event) {
  if(WorldGuardBlockListener.notify.containsKey(event))
    WorldGuardBlockListener.notify.put(event, "I am the new Message!");
}

to edit messages, or

@EventHandler(priority = EventPriority.HIGHEST)
public void onBlockBreak(BlockBreakEvent event) {
  if(removeMessage)
    WorldGuardBlockListener.notify.remove(event);
}

to remove it completely.

Hopefully this will be accepted :)