@EventHandler
	public void onPlayerInteract(PlayerInteractEvent event) {
		if (!event.getAction().equals(Action.RIGHT_CLICK_BLOCK)) {
			return;
		}
		final SpoutPlayer player = SpoutManager.getPlayer(event.getPlayer());
		if (SHIFT_HELD.containsKey(player.getUniqueId())) {
			if (!SHIFT_HELD.get(player.getUniqueId())) {
				return;
			}
			final Block block = event.getClickedBlock();
			if (!(block.getState() instanceof Sign)) {
				return;
			}
			if (!PortablesPlugin.getHooks().getPermissions().has(player.getWorld(), player.getName(), "portables.sign.use")) {
				player.sendNotification("Portables", "Cannot edit signs!", Material.LAVA_BUCKET);
				return;
			}
			if (PortablesPlugin.getHooks().isResidenceEnabled()) {
				final ClaimedResidence res = Residence.getResidenceManager().getByLoc(block.getLocation());
				if (res != null) {
					if (!res.getPermissions().playerHas(player.getName(), "build", true)) {
						return;
					}
				}
			}
			player.openSignEditGUI((Sign) block.getState());
		}
	}