#vulnerable code 
                             public List<String> getRewardListing(String path, Player player) {
		List<String> rewardTypes = new ArrayList<>();
		Set<String> keyNames = mainConfig.getKeys(true);

		if (economy != null && keyNames.contains(path + ".Money")) {
			int amount = getRewardAmount(path, "Money");
			rewardTypes.add(StringUtils.replaceOnce(langListRewardMoney, "AMOUNT", amount + " " + getCurrencyName(amount)));
		}

		if (keyNames.contains(path + ".Item")) {
			ItemStack itemReward = getItemReward(path, player);
			ItemMeta itemMeta = itemReward.getItemMeta();
			String name = itemMeta.hasDisplayName() ? itemMeta.getDisplayName() : getItemName(itemReward);
			rewardTypes.add(StringUtils.replaceEach(langListRewardItem, new String[] { "AMOUNT", "ITEM" },
					new String[] { Integer.toString(itemReward.getAmount()), name }));
		}

		if (keyNames.contains(path + ".Experience")) {
			int amount = getRewardAmount(path, "Experience");
			rewardTypes.add(StringUtils.replaceOnce(langListRewardExperience, "AMOUNT", Integer.toString(amount)));
		}

		if (keyNames.contains(path + ".IncreaseMaxHealth")) {
			int amount = getRewardAmount(path, "IncreaseMaxHealth");
			rewardTypes.add(StringUtils.replaceOnce(langListRewardIncreaseMaxHealth, "AMOUNT", Integer.toString(amount)));
		}

		if (keyNames.contains(path + ".IncreaseMaxOxygen")) {
			int amount = getRewardAmount(path, "IncreaseMaxOxygen");
			rewardTypes.add(StringUtils.replaceOnce(langListRewardIncreaseMaxOxygen, "AMOUNT", Integer.toString(amount)));
		}

		if (keyNames.contains(path + ".Command")) {
			List<String> messages = getCustomCommandMessages(path);
			if (messages.isEmpty()) {
				rewardTypes.add(langListRewardCommand);
			} else {
				rewardTypes.addAll(messages);
			}
		}
		return rewardTypes;
	} 
                            #location 12 
                            #vulnerability type NULL_DEREFERENCE
#fixed code
                             public List<String> getRewardListing(String path, Player player) {
		List<String> rewardTypes = new ArrayList<>();
		Set<String> keyNames = mainConfig.getKeys(true);

		if (economy != null && keyNames.contains(path + ".Money")) {
			int amount = getRewardAmount(path, "Money");
			rewardTypes.add(StringUtils.replaceOnce(langListRewardMoney, "AMOUNT", amount + " " + getCurrencyName(amount)));
		}

		if (keyNames.contains(path + ".Item")) {
			ItemStack[] items = getItemRewards(path, player);
			for (ItemStack item : items) {
				ItemMeta itemMeta = item.getItemMeta();
				String name = itemMeta.hasDisplayName() ? itemMeta.getDisplayName() : getItemName(item);
				rewardTypes.add(StringUtils.replaceEach(langListRewardItem, new String[] { "AMOUNT", "ITEM" },
						new String[] { Integer.toString(item.getAmount()), name }));
			}
		}

		if (keyNames.contains(path + ".Experience")) {
			int amount = getRewardAmount(path, "Experience");
			rewardTypes.add(StringUtils.replaceOnce(langListRewardExperience, "AMOUNT", Integer.toString(amount)));
		}

		if (keyNames.contains(path + ".IncreaseMaxHealth")) {
			int amount = getRewardAmount(path, "IncreaseMaxHealth");
			rewardTypes.add(StringUtils.replaceOnce(langListRewardIncreaseMaxHealth, "AMOUNT", Integer.toString(amount)));
		}

		if (keyNames.contains(path + ".IncreaseMaxOxygen")) {
			int amount = getRewardAmount(path, "IncreaseMaxOxygen");
			rewardTypes.add(StringUtils.replaceOnce(langListRewardIncreaseMaxOxygen, "AMOUNT", Integer.toString(amount)));
		}

		if (keyNames.contains(path + ".Command")) {
			List<String> messages = getCustomCommandMessages(path);
			if (messages.isEmpty()) {
				rewardTypes.add(langListRewardCommand);
			} else {
				rewardTypes.addAll(messages);
			}
		}
		return rewardTypes;
	}