public void saveRegion(final Region region, final boolean immediate) {
        final BufferedYamlConfiguration config = this.configuration.get((region.isDefault() ? null : region.world));

        String path = region.name;
        if (region.isDefault())
            if (region.world == null) {
                path = "server";
            } else {
                path = "indices." + region.world;
            }

        final ConfigurationSection section = config.createSection(path);

        section.set("owners", region.owners.members.toArray());
        section.set("access", region.access.members.toArray());
        section.set("options", region.options.toArray());
        section.set("active", region.active);
        if (!region.isDefault()) {
            section.set("greeting", region.greeting);
            section.set("farewell", region.farewell);
            section.set("x1", region.getX1());
            section.set("x2", region.getX2());
            section.set("y1", region.getY1());
            section.set("y2", region.getY2());
            section.set("z1", region.getZ1());
            section.set("z2", region.getZ2());
        }

        if (immediate) {
            config.save();
            return;
        }

        config.queueSave();
    }