@EventHandler(priority = EventPriority.HIGHEST)
	public void onBreak(BlockBreakEvent e) {
		long time = System.nanoTime();
		if (BlockTools.isSign(e.getBlock())) {
			this.plugin.getLoggerUtility().log("Block is sign", LoggerUtility.Level.DEBUG);
			if (((Sign) e.getBlock().getState()).getLine(0).equalsIgnoreCase("[" + plugin.getConfig().getString("sign_headline") + "]")) {
				final BlockBreakEvent event = e;
				plugin.getServer().getScheduler().runTaskAsynchronously(plugin, new Runnable() {
					@Override
					public void run() {
						try {
							if (!plugin.getDatabaseUtility().isindb(event.getBlock().getLocation())) {
								return;
							} else {
								PPSign sign = plugin.getDatabaseUtility().getSign(event.getBlock().getLocation());
								if (!event.getPlayer().getName().equals(sign.getOwner())) {
									if (!plugin.getPermissions().checkpermissions(event.getPlayer(), "Paypassage.admin")) {
										event.setCancelled(true);
										return;
									}
								}
								plugin.getDatabaseUtility().deleteSign(event.getBlock().getLocation());
								plugin.getLoggerUtility().log(event.getPlayer(), "PP Sign deleted", LoggerUtility.Level.INFO);
							}
						} catch (SQLException ex) {
							Logger.getLogger(PPListener.class.getName()).log(Level.SEVERE, null, ex);
						}
					}
				});
			}
		}
		this.plugin.getLoggerUtility().log("PlayerInteractEvent handled in " + (System.nanoTime() - time) / 1000000 + " ms", LoggerUtility.Level.DEBUG);
	}