public Collection<Region> loadRegions(final String world) {
        final BufferedYamlConfiguration worldConfig = this.loadConfig(this.worlds, world);
        final Set<Region> regions = new HashSet<Region>();
        final Set<String> names = worldConfig.getKeys(false);
        for (final String name : names) {
            final ConfigurationSection definition = worldConfig.getConfigurationSection(name);

            final Region region = new Region(world, name, definition.getStringList("owners"), definition.getStringList("access"));
            region.options.addAll(definition.getStringList("options"));
            region.active = definition.getBoolean("active");

            final Integer x1 = (definition.isInt("x1") ? definition.getInt("x1", 0) : null);
            final Integer x2 = (definition.isInt("x2") ? definition.getInt("x2", 0) : null);
            final Integer y1 = (definition.isInt("y1") ? definition.getInt("y1", 0) : null);
            final Integer y2 = (definition.isInt("y2") ? definition.getInt("y2", 0) : null);
            final Integer z1 = (definition.isInt("z1") ? definition.getInt("z1", 0) : null);
            final Integer z2 = (definition.isInt("z2") ? definition.getInt("z2", 0) : null);
            region.setCoords(x1, x2, y1, y2, z1, z2);

            if (definition.isString("greeting")) region.greeting = definition.getString("greeting");
            if (definition.isString("farewell")) region.farewell = definition.getString("farewell");

            regions.add(region);
        }

        this.plugin.getLogger().config("Regions loaded for [" + world + "]: " + regions.size());
        return regions;
    }