diff --git a/implementation/interface/src/main/java/org/codemc/worldguardwrapper/implementation/IWorldGuardImplementation.java b/implementation/interface/src/main/java/org/codemc/worldguardwrapper/implementation/IWorldGuardImplementation.java index a459d38..6daf779 100644 --- a/implementation/interface/src/main/java/org/codemc/worldguardwrapper/implementation/IWorldGuardImplementation.java +++ b/implementation/interface/src/main/java/org/codemc/worldguardwrapper/implementation/IWorldGuardImplementation.java @@ -132,4 +132,13 @@ public interface IWorldGuardImplementation { return addRegion(id, Arrays.asList(point1, point2), 0, 0); } + /** + * Remove a region, including inheriting children. + * + * @param world The world + * @param id The region ID + * @return A list of removed regions where the first entry is the region specified by {@code id} + */ + Optional> removeRegion(@NonNull World world, @NonNull String id); + } diff --git a/implementation/v6/src/main/java/org/codemc/worldguardwrapper/implementation/v6/WorldGuardImplementation.java b/implementation/v6/src/main/java/org/codemc/worldguardwrapper/implementation/v6/WorldGuardImplementation.java index b58b7b1..1bb4e14 100644 --- a/implementation/v6/src/main/java/org/codemc/worldguardwrapper/implementation/v6/WorldGuardImplementation.java +++ b/implementation/v6/src/main/java/org/codemc/worldguardwrapper/implementation/v6/WorldGuardImplementation.java @@ -215,4 +215,14 @@ public class WorldGuardImplementation implements IWorldGuardImplementation { } } + @Override + public Optional> removeRegion(World world, String id) { + Optional> set = getWorldManager(world).map(manager -> manager.removeRegion(id)); + if (set.isPresent()) { + return Optional.of(set.get().stream().map(region -> toRegion(region)).collect(Collectors.toSet())); + } else { + return Optional.empty(); + } + } + } diff --git a/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/WorldGuardImplementation.java b/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/WorldGuardImplementation.java index b901ac4..888ce08 100644 --- a/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/WorldGuardImplementation.java +++ b/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/WorldGuardImplementation.java @@ -230,4 +230,14 @@ public class WorldGuardImplementation implements IWorldGuardImplementation { return Optional.empty(); } } + + @Override + public Optional> removeRegion(World world, String id) { + Optional> set = getWorldManager(world).map(manager -> manager.removeRegion(id)); + if (set.isPresent()) { + return Optional.of(set.get().stream().map(region -> toRegion(region)).collect(Collectors.toSet())); + } else { + return Optional.empty(); + } + } }