public void disable() {
        if(RealWeather.isDebug()) RealWeather.log("Disabling features.");
        for (Feature feature : features.values()) {
            try {
                if(RealWeather.isDebug()) RealWeather.log("DIS: " + feature.getName());
                try {
                    configs.get(feature.getName()).save();
                } catch (IOException ex) {
                    if(RealWeather.isDebug()) RealWeather.log("ERROR while saving config.");
                    Logger.getLogger(FeatureManager.class.getName()).log(Level.SEVERE, null, ex);
                }
                feature.onDisable();
                plugin.getThreadManager().stopAllThreadsForFeature(feature);
            } catch (Exception ex) {
                if(RealWeather.isDebug()) RealWeather.log("Error occured while disabling module.");
                Logger.getLogger(FeatureManager.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        if(RealWeather.isDebug()) RealWeather.log("All features disabled.");
    }