public void convertOldCircuitsYml(){
        File oldYmlFile = new File(plugin.getDataFolder(),"circuits.yml");
        if(oldYmlFile.exists()){
            plugin.log(plugin.getMessage("found_old_file").replace("%file%",oldYmlFile.getName()));

            FileConfiguration oldYml = YamlConfiguration.loadConfiguration(oldYmlFile);

            for(String worldName : oldYml.getValues(false).keySet()){
                ArrayList tempCircuitObjs = new ArrayList();

                for (int x = 0;; x++){
                    String path = worldName + ".circuit_" + x;
                    
                    if (oldYml.get(path) == null) {
                        break;
                    }

                    Map<String,Object> tempCircuitObj = new HashMap<String,Object>();
                    
                    String[] senderXYZ = oldYml.get(path + ".sender").toString().split(",");
                    
                    tempCircuitObj.put("x", Integer.parseInt(senderXYZ[0]));
                    tempCircuitObj.put("y", Integer.parseInt(senderXYZ[1]));
                    tempCircuitObj.put("z", Integer.parseInt(senderXYZ[2]));

                    //they'll all be the same, should only ever be one anyway
                    String receiversType = oldYml.get(path+".type").toString();
                    
                   ArrayList tempReceiverObjs = new ArrayList();
                    for(Object receiver : oldYml.getList(path + ".receivers")){
                        Map<String,Object> tempReceiverObj = new HashMap<String,Object>();
                        
                        String[] sReceiverLoc = receiver.toString().split(",");
                        
                        tempReceiverObj.put("x", Integer.parseInt(sReceiverLoc[0]));
                        tempReceiverObj.put("y", Integer.parseInt(sReceiverLoc[1]));
                        tempReceiverObj.put("z", Integer.parseInt(sReceiverLoc[2]));
                        tempReceiverObj.put("d", 0);
                        tempReceiverObj.put("t", Integer.parseInt(receiversType));

                        tempReceiverObjs.add(tempReceiverObj);
                    }
                    
                    tempCircuitObj.put("r",tempReceiverObjs);
                    
                    tempCircuitObjs.add(tempCircuitObj);
                }
                
                File newYmlFile = new File(plugin.getDataFolder(),worldName+".circuits.yml");
                FileConfiguration newYml = YamlConfiguration.loadConfiguration(newYmlFile);
                
                newYml.set("fileVersion", 2);
                newYml.set("circuits", tempCircuitObjs);
                
                try {
                    newYml.save(newYmlFile);
                } catch (IOException ex) {
                    plugin.error(plugin.getMessage("unable_to_save").replace("%file%",newYmlFile.getName()));
                    
                    Logger.getLogger(CircuitManager.class.getName()).log(Level.SEVERE, null, ex);
                }
            }    

            //I dunno man. Java file operations are a mystery to me. These lines worked.
            File testFile = new File(plugin.getDataFolder(),"circuits.yml.bak");
            new File(plugin.getDataFolder(),"circuits.yml").renameTo(testFile);
        }
    }