untitled paste

unlisted ⁨1⁩ ⁨file⁩ 2022-03-02 23:28:15 UTC

java

Raw
public class WorldGuard {

    private final CyberWorldReset main;
    private final WorldObject worldObject;

    private boolean whitelist = false;
    private List<String> whitelistRegions = new ArrayList<>();

    public WorldGuard(CyberWorldReset main, WorldObject worldObject) {
        this.main = main;
        this.worldObject = worldObject;
        ConfigurationSection section = main.files().getConfig("worlds").getConfigurationSection("worlds." + worldObject.getWorldName() + ".settings.save-regions.world-guard");
        if (section == null) return;
        whitelist = section.getBoolean("whitelist", whitelist);
        if (section.isSet("list")) whitelistRegions = section.getStringList("list");

    }

    public void copy() {

        if (worldObject.isCopyWGRegions() && main.worldGuard() != null) {

            Map<String, ProtectedRegion> regions = main.worldGuard().getPlatform().getRegionContainer().get(BukkitAdapter.adapt(worldObject.getWorld())).getRegions();
            for (ProtectedRegion region : regions.values()) {

                if (whitelist && !whitelistRegions.contains(region.getId())) continue;
                if (!whitelist && whitelistRegions.contains(region.getId())) continue;

                Location corner1 = new Location(worldObject.getWorld(), region.getMaximumPoint().getX(), region.getMaximumPoint().getY(), region.getMaximumPoint().getZ());
                Location corner2 = new Location(worldObject.getWorld(), region.getMinimumPoint().getX(), region.getMinimumPoint().getY(), region.getMinimumPoint().getZ());

                if (main.isFawe()) FAWE.save(worldObject, "World Guard", corner1, corner2, region.getId());
                else if (main.isWorldEdit()) WorldEdit.save(worldObject, "World Guard", corner1, corner2, region.getId());

            }
        }
    }



    public void deleteRegions() {
        //if (main.getVersion() < 13) return;

        if (main.config().isWorldGuardDelete() && main.worldGuard() != null) {

            RegionContainer regionContainer = main.worldGuard().getPlatform().getRegionContainer();

            try {
                for (ProtectedRegion region : regionContainer.get(BukkitAdapter.adapt(worldObject.getWorld())).getRegions().values())
                    regionContainer.get(BukkitAdapter.adapt(worldObject.getWorld())).removeRegion(region.getId());
            } catch (Exception e) {
                main.logger("&cSomething went wrong deleting WorldGuard regions.");
            }
        }
    }


}