@EventHandler(priority = EventPriority.NORMAL)
	public void onBlockBreak(BlockBreakEvent event) {
		if (event.getBlock() != null) { // Will prevent an NPE if the user right-clicks air.
			if (event.getBlock().getState() != null) {
				if (event.getBlock().getState() instanceof Sign) {
					Sign sign = null;
					try {
						sign = (Sign) event.getBlock();
					}
					catch (ClassCastException | NullPointerException e) {
						return;
					}
					String [] lines = sign.getLines();
					Player player = event.getPlayer();
					if (lines[0].equalsIgnoreCase(ChatColor.WHITE + "   [" + ChatColor.DARK_GREEN + "Golf" + ChatColor.WHITE + "]")) {
						if (GcFiles.holeExists(player, lines[2])) {
							if (!player.isOp() && !player.hasPermission("golf.sign")) {
								player.sendMessage(ChatColor.DARK_RED + "You do not have permission to remove golf signs.");
								event.setCancelled(true);
								final Location bl = event.getBlock().getLocation();
								plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {

									public void run() {
										bl.getBlock().getState().update();
									}
								}, 20L);
							}
							else {
								player.sendMessage(ChatColor.GRAY + "You have removed a golf play sign");
							}
						}
					}
				}
			}
		}
	}