From ee8a7c806abddad5faa45fa846265d698044c6e7 Mon Sep 17 00:00:00 2001 From: Gabriele C Date: Thu, 22 Nov 2018 15:29:34 +0100 Subject: [PATCH] Implement PlayerDomain (add/remove player/groups from member/owners) --- .../region/PlayerDomain.java | 20 ++++++ .../region/WrappedRegion.java | 6 +- .../v6/WorldGuardImplementation.java | 71 +++++++++++++++++-- 3 files changed, 88 insertions(+), 9 deletions(-) create mode 100644 api/src/main/java/org/codemc/worldguardwrapper/region/PlayerDomain.java diff --git a/api/src/main/java/org/codemc/worldguardwrapper/region/PlayerDomain.java b/api/src/main/java/org/codemc/worldguardwrapper/region/PlayerDomain.java new file mode 100644 index 0000000..6707682 --- /dev/null +++ b/api/src/main/java/org/codemc/worldguardwrapper/region/PlayerDomain.java @@ -0,0 +1,20 @@ +package org.codemc.worldguardwrapper.region; + +import java.util.Set; +import java.util.UUID; + +public interface PlayerDomain { + + Set getPlayers(); + + void addPlayer(UUID uuid); + + void removePlayer(UUID uuid); + + Set getGroups(); + + void addGroup(String name); + + void removeGroup(String name); + +} diff --git a/api/src/main/java/org/codemc/worldguardwrapper/region/WrappedRegion.java b/api/src/main/java/org/codemc/worldguardwrapper/region/WrappedRegion.java index 299b420..ffe96dc 100644 --- a/api/src/main/java/org/codemc/worldguardwrapper/region/WrappedRegion.java +++ b/api/src/main/java/org/codemc/worldguardwrapper/region/WrappedRegion.java @@ -5,8 +5,6 @@ import org.codemc.worldguardwrapper.selection.Selection; import java.util.Map; import java.util.Optional; -import java.util.Set; -import java.util.UUID; public interface WrappedRegion { @@ -20,9 +18,9 @@ public interface WrappedRegion { int getPriority(); - Set getOwners(); + PlayerDomain getOwners(); - Set getMembers(); + PlayerDomain getMembers(); boolean contains(Location location); 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 573c648..0f66287 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 @@ -23,10 +23,11 @@ import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; import org.codemc.worldguardwrapper.flags.AbstractWrappedFlag; import org.codemc.worldguardwrapper.implementation.IWorldGuardImplementation; +import org.codemc.worldguardwrapper.region.PlayerDomain; +import org.codemc.worldguardwrapper.region.WrappedRegion; import org.codemc.worldguardwrapper.selection.CuboidSelection; import org.codemc.worldguardwrapper.selection.PolygonalSelection; import org.codemc.worldguardwrapper.selection.Selection; -import org.codemc.worldguardwrapper.region.WrappedRegion; import java.util.*; import java.util.stream.Collectors; @@ -141,13 +142,73 @@ public class WorldGuardImplementation implements IWorldGuardImplementation { } @Override - public Set getOwners() { - return region.getOwners().getUniqueIds(); + public PlayerDomain getOwners() { + return new PlayerDomain() { + @Override + public Set getPlayers() { + return region.getOwners().getUniqueIds(); + } + + @Override + public void addPlayer(UUID uuid) { + region.getOwners().addPlayer(uuid); + } + + @Override + public void removePlayer(UUID uuid) { + region.getOwners().removePlayer(uuid); + } + + @Override + public Set getGroups() { + return region.getOwners().getGroups(); + } + + @Override + public void addGroup(String name) { + region.getOwners().addGroup(name); + } + + @Override + public void removeGroup(String name) { + region.getOwners().removeGroup(name); + } + }; } @Override - public Set getMembers() { - return region.getMembers().getUniqueIds(); + public PlayerDomain getMembers() { + return new PlayerDomain() { + @Override + public Set getPlayers() { + return region.getMembers().getUniqueIds(); + } + + @Override + public void addPlayer(UUID uuid) { + region.getMembers().addPlayer(uuid); + } + + @Override + public void removePlayer(UUID uuid) { + region.getMembers().removePlayer(uuid); + } + + @Override + public Set getGroups() { + return region.getMembers().getGroups(); + } + + @Override + public void addGroup(String name) { + region.getMembers().addGroup(name); + } + + @Override + public void removeGroup(String name) { + region.getMembers().removeGroup(name); + } + }; } @Override