public class Manager { //You use this set to cache (store) all your data. //We declare the set here. private final Set encapsulationSet; private final JavaPlugin javaPlugin; //We are setting the plugin data to the variable public Manager(JavaPlugin javaPlugin) { this.javaPlugin = javaPlugin; //Initialise the set. this.encapsulationSet = new HashSet<>(); } //We are going to load all the data from file and put it in the set. public void load() { //Remember all the keys from the configuration is made into a set. FileConfiguration configuration = javaPlugin.getConfig(); Set data = configuration.getConfigurationSection("Players").getKeys(false); //We use lambda here, the "s" is a string variable. Kinda like the variable from the for loop data.forEach(s -> { String[] split = s.split(":"); encapsulationSet.add(new Encapsulation( UUID.fromString(split[0]), Integer.parseInt(split[1]), Integer.parseInt(split[2]) )); }); //Yay we have loaded all the data } public void unload() { //We iterate through each element that we have saved in the set. FileConfiguration configuration = javaPlugin.getConfig(); //We create a new string list List data = new ArrayList<>(); //Add all the elements (player storage) from the set to the list encapsulationSet.forEach(encapsulation -> data.add(encapsulation.toString())); //Set the player configuration to the list that we have. configuration.set("Players", data); } public Encapsulation getEncapsulation(UUID uuid) { for(Encapsulation encapsulation : encapsulationSet) { if(encapsulation.getUuid().equals(uuid)) { return encapsulation; } } return null; } }