public static void createNewHome( String player, int serverLimit, int globalLimit, String home, Location loc ) throws SQLException {
        BSPlayer p = PlayerManager.getPlayer( player );

        if ( getSimilarHome( p, home ) == null ) {
            int globalHomeCount = getPlayersGlobalHomeCount( p );
            int serverHomeCount = getPlayersServerHomeCount( p );
            if ( globalHomeCount >= globalLimit ) {
                p.sendMessage( Messages.NO_HOMES_ALLOWED_GLOBAL );
                return;
            }
            if ( serverHomeCount >= serverLimit ) {
                p.sendMessage( Messages.NO_HOMES_ALLOWED_SERVER );
                return;
            }
            if ( p.getHomes().get( p.getServer().getInfo().getName() ) == null ) {
                p.getHomes().put( p.getServer().getInfo().getName(), new ArrayList<Home>() );
            }
            p.getHomes().get( p.getServer().getInfo().getName() ).add( new Home( p.getName(), home, loc ) );
            SQLManager.standardQuery( "INSERT INTO BungeeHomes (player,home_name,server,world,x,y,z,yaw,pitch) VALUES('" + player + "','" + home + "','" + loc.getServer().getName() + "','" + loc.getWorld() + "'," + loc.getX() + "," + loc.getY() + "," + loc.getZ() + "," + loc.getYaw() + "," + loc.getPitch() + ")" );
            p.sendMessage( Messages.HOME_SET );
        } else {
            getSimilarHome( p, home ).setLoc( loc );
            SQLManager.standardQuery( "UPDATE BungeeHomes SET server = '" + loc.getServer().getName() + "', world = '" + loc.getWorld() + "', x = " + loc.getX() + ", y = " + loc.getY() + ", z = " + loc.getZ() + ", yaw = " + loc.getYaw() + ", pitch = " + loc.getPitch() + " WHERE player = '" + player + "' AND home_name ='" + home + "'" );
            p.sendMessage( Messages.HOME_UPDATED );
            return;
        }
    }