protected void load() {
		boolean loaded = false;
		try {
			load(file);
			loaded = true;
		}
		catch (final FileNotFoundException e) {}
		catch (final IOException e) {
			plugin.logException(e, "cannot load " + file);
		}
		catch (final InvalidConfigurationException e) {
			if (e.getCause() instanceof YAMLException) plugin.severe("Config file " + file + " isn't valid! \n" + e.getCause());
			else if (e.getCause() == null || e.getCause() instanceof ClassCastException) plugin.severe("Config file " + file + " isn't valid!");
			else plugin.logException(e, "cannot load " + file + ": " + e.getCause().getClass());
			
			plugin.info("Saving a backup of " + name + " to " + backup("invalid"));
		}
		
		final InputStream inStream = plugin.getResource(file.getName());
		if (inStream != null) {
			setDefaults(YamlConfiguration.loadConfiguration(inStream));
			
			if (!loaded) plugin.info("Writing default " + name + " to " + file);
		}
		
		if (!loaded) {
			options().copyDefaults(true);
			save();
		}
		else upgrade();
	}