@EventHandler( priority = EventPriority.HIGHEST )
	public void onSignChangeEvent( SignChangeEvent event )
	{
		Block b = event.getBlock();
		String m = event.getLine( 0 );
		Player p = event.getPlayer();
		
		if ( m.equalsIgnoreCase( "[locked]" ) )
		{
			event.setLine( 0, ChatColor.GOLD + "[locked]" );
			event.setLine( 3, p.getName() );
			
			OfflinePlayer offP1 = getServer().getOfflinePlayer( event.getLine( 1 ).replaceAll( ChatColor.AQUA.toString(), "" ) );
			OfflinePlayer offP2 = getServer().getOfflinePlayer( event.getLine( 2 ).replaceAll( ChatColor.AQUA.toString(), "" ) );
			
			if ( !offP1.getName().isEmpty() )
			{
				Player pp = getServer().getPlayer( offP1.getName() );
				if ( pp != null )
					event.setLine( 1, pp.getName() );
			}
			
			if ( !offP2.getName().isEmpty() )
			{
				Player pp = getServer().getPlayer( offP2.getName() );
				if ( pp != null )
					event.setLine( 2, pp.getName() );
			}
			
			if ( offP1.getName() == p.getName() )
				event.setLine( 1, "" );
			
			if ( offP2.getName() == p.getName() )
				event.setLine( 2, "" );
			
			event.setLine( 1, ChatColor.AQUA + event.getLine( 1 ) );
			event.setLine( 2, ChatColor.AQUA + event.getLine( 2 ) );
			event.setLine( 3, ChatColor.AQUA + event.getLine( 3 ) );
			
			Block found = findNearByLockable( b );
			
			if ( found == null )
			{
				p.sendMessage( ChatColor.RED + "Sign creation denied as no elegible block was found. Only doors, trapdoors and chests can be locked." );
				event.setCancelled( true );
				b.breakNaturally();
				return;
			}
			
			if ( p != null )
				p.sendMessage( ChatColor.AQUA + "You have successfully created a locked block sign. =>" );
			
		}
	}