public static String payVault(Player p, int tier, double basepay, String job) {
        double iTimes = tier;
        String pLang = PlayerCache.getLang(p.getName());
        String jobName = UpperCaseFirst.toUpperFirst(McJobs.getPlugin().getLanguage().getJobNameInLang(job, pLang).toLowerCase());

        job = job.toLowerCase();

        String str;

        double totalPay = PlayerCache.getEarnedIncome(p.getName());
        double payAmount = basepay * iTimes * Leveler.getMultiplier(PlayerCache.getJobLevel(p.getName(), job));
        if (overLimit(payAmount, totalPay, p))
            return "";
        
        if ((totalPay + payAmount >= _maxPay) && (_maxPay > 0.0D))
            payAmount = _maxPay - totalPay + 1.0D;

        totalPay += payAmount;
        PlayerCache.setEarnedIncome(p.getName(), totalPay);
        if(_payCache.containsKey(p.getName()))
            _payCache.put(p.getName(), (_payCache.get(p.getName())+payAmount));
        else
            _payCache.put(p.getName(), payAmount);

        String sSingCur = McJobs.getPlugin().getLanguage().getPayment("currency_single", pLang).addVariables("", "", "");
        if(!McJobs.getEconomy().currencyNameSingular().isEmpty())
            sSingCur = McJobs.getEconomy().currencyNameSingular();

        String sPlurCur = McJobs.getPlugin().getLanguage().getPayment("currency_plural", pLang).addVariables("", "", "");
        if (!McJobs.getEconomy().currencyNamePlural().isEmpty())
            sPlurCur = McJobs.getEconomy().currencyNamePlural();
        
        if (payAmount == 1.0D)
            str = ChatColor.GREEN + McJobs.getPlugin().getLanguage().getPayment("pay", pLang).addVariables(jobName, sSingCur, _df.format(payAmount));
        else
            str = ChatColor.GREEN + McJobs.getPlugin().getLanguage().getPayment("pay", pLang).addVariables(jobName, sPlurCur, _df.format(payAmount));
        
        return str;
    }