From 690da2332bca2a128264758a6f5f36e9fecf436d Mon Sep 17 00:00:00 2001 From: TomyLobo Date: Fri, 23 Mar 2012 14:40:20 +0100 Subject: [PATCH] Added Domain.contains(String playerName). --- .../worldguard/domains/DefaultDomain.java | 14 +++++++++---- .../com/sk89q/worldguard/domains/Domain.java | 13 ++++++++++-- .../worldguard/domains/DomainCollection.java | 21 ++++++++++++++----- .../sk89q/worldguard/domains/GroupDomain.java | 16 ++++++++------ .../worldguard/domains/PlayerDomain.java | 20 +++++++++++------- 5 files changed, 59 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/sk89q/worldguard/domains/DefaultDomain.java b/src/main/java/com/sk89q/worldguard/domains/DefaultDomain.java index e5eb298e..f71873cb 100644 --- a/src/main/java/com/sk89q/worldguard/domains/DefaultDomain.java +++ b/src/main/java/com/sk89q/worldguard/domains/DefaultDomain.java @@ -70,20 +70,26 @@ public Set getPlayers() { return players; } + @Override public boolean contains(LocalPlayer player) { - if (players.contains(player.getName().toLowerCase())) { + if (contains(player.getName())) { return true; } - + for (String group : groups) { if (player.hasGroup(group)) { return true; } } - + return false; } - + + @Override + public boolean contains(String playerName) { + return players.contains(playerName.toLowerCase()); + } + public int size() { return groups.size() + players.size(); } diff --git a/src/main/java/com/sk89q/worldguard/domains/Domain.java b/src/main/java/com/sk89q/worldguard/domains/Domain.java index 2cd5e727..dfc679a9 100644 --- a/src/main/java/com/sk89q/worldguard/domains/Domain.java +++ b/src/main/java/com/sk89q/worldguard/domains/Domain.java @@ -5,9 +5,18 @@ public interface Domain { /** * Returns true if a domain contains a player. - * + * * @param player The player to check * @return whether this domain contains {@code player} */ - public boolean contains(LocalPlayer player); + boolean contains(LocalPlayer player); + + /** + * Returns true if a domain contains a player.
+ * This method doesn't check for groups! + * + * @param playerName The name of the player to check + * @return whether this domain contains a player by that name + */ + boolean contains(String playerName); } diff --git a/src/main/java/com/sk89q/worldguard/domains/DomainCollection.java b/src/main/java/com/sk89q/worldguard/domains/DomainCollection.java index 87132e19..0668c428 100644 --- a/src/main/java/com/sk89q/worldguard/domains/DomainCollection.java +++ b/src/main/java/com/sk89q/worldguard/domains/DomainCollection.java @@ -26,31 +26,42 @@ public class DomainCollection implements Domain { private Set domains; - + public DomainCollection() { domains = new LinkedHashSet(); } - + public void add(Domain domain) { domains.add(domain); } - + public void remove(Domain domain) { domains.remove(domain); } - + public int size() { return domains.size(); } + @Override public boolean contains(LocalPlayer player) { for (Domain domain : domains) { if (domain.contains(player)) { return true; } } - + return false; } + @Override + public boolean contains(String playerName) { + for (Domain domain : domains) { + if (domain.contains(playerName)) { + return true; + } + } + + return false; + } } diff --git a/src/main/java/com/sk89q/worldguard/domains/GroupDomain.java b/src/main/java/com/sk89q/worldguard/domains/GroupDomain.java index 1195063f..049e0ae0 100644 --- a/src/main/java/com/sk89q/worldguard/domains/GroupDomain.java +++ b/src/main/java/com/sk89q/worldguard/domains/GroupDomain.java @@ -27,15 +27,15 @@ public class GroupDomain implements Domain { private Set groups; - + public GroupDomain() { this.groups = new LinkedHashSet(); } - + public GroupDomain(String[] groups) { this.groups = new LinkedHashSet(Arrays.asList(groups)); } - + public void addGroup(String name) { groups.add(name); } @@ -46,12 +46,16 @@ public boolean contains(LocalPlayer player) { return true; } } - + return false; } - + + @Override + public boolean contains(String playerName) { + return false; // GroupDomains can't contain player names. + } + public int size() { return groups.size(); } - } diff --git a/src/main/java/com/sk89q/worldguard/domains/PlayerDomain.java b/src/main/java/com/sk89q/worldguard/domains/PlayerDomain.java index b596bd97..d6972d74 100644 --- a/src/main/java/com/sk89q/worldguard/domains/PlayerDomain.java +++ b/src/main/java/com/sk89q/worldguard/domains/PlayerDomain.java @@ -26,29 +26,33 @@ public class PlayerDomain implements Domain { private Set players; - + public PlayerDomain() { this.players = new HashSet(); } - + public PlayerDomain(String[] players) { this.players = new HashSet(); - + for (String name : players) { this.players.add(name.toLowerCase()); } } - + public void addPlayer(String name) { players.add(name.toLowerCase()); } - + public boolean contains(LocalPlayer player) { - return players.contains(player.getName().toLowerCase()); + return contains(player.getName()); } - + + @Override + public boolean contains(String playerName) { + return players.contains(playerName.toLowerCase()); + } + public int size() { return players.size(); } - }