java
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.");
}
}
}
}