diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilAlg.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilAlg.java index 756947520..6ed5de321 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilAlg.java +++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilAlg.java @@ -1,6 +1,8 @@ package mineplex.core.common.util; import java.util.ArrayList; +import java.util.Collection; +import java.util.Comparator; import java.util.List; import java.util.Set; import java.util.TreeSet; @@ -24,6 +26,15 @@ public class UtilAlg return sortedSet; } + + public static TreeSet sortSet(Collection toSort, Comparator comparator) + { + TreeSet sortedSet = new TreeSet(comparator); + for (T cur : toSort) + sortedSet.add(cur); + + return sortedSet; + } public static Location getMidpoint(Location a, Location b) { diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClanInfo.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClanInfo.java index 59d9519c0..925b8ec87 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClanInfo.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClanInfo.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.LinkedList; import java.util.List; +import java.util.Set; import java.util.UUID; import org.bukkit.Location; @@ -53,7 +54,7 @@ public class ClanInfo private TntGenerator _generator; // Loaded from Client - private NautHashMap _memberMap = new NautHashMap(); + private NautHashMap _memberMap = new NautHashMap(); private NautHashMap _allyMap = new NautHashMap(); private HashSet _claimSet = new HashSet(); private EnemyData _enemyData; @@ -109,7 +110,8 @@ public class ClanInfo for (ClanMemberToken memberToken : token.Members) { - _memberMap.put(memberToken.Name, ClanRole.valueOf(memberToken.ClanRole)); + ClanRole role = ClanRole.valueOf(memberToken.ClanRole); + _memberMap.put(memberToken.PlayerUUID, new ClansPlayer(memberToken.Name, memberToken.PlayerUUID, role)); } for (ClanTerritoryToken territoryToken : token.Territories) @@ -181,9 +183,9 @@ public class ClanInfo return true; } - public boolean isMember(String other) + public boolean isMember(Player player) { - return getMembers().containsKey(other); + return getMembers().containsKey(player.getUniqueId()); } public boolean isAlly(String other) @@ -220,7 +222,7 @@ public class ClanInfo return getAllyMap().get(clan); } - public LinkedList mDetails(String caller) + public LinkedList mDetails(Player caller) { LinkedList stringList = new LinkedList(); @@ -264,22 +266,22 @@ public class ClanInfo // Members String members = ""; - for (String cur : UtilAlg.sortKey(getMembers().keySet())) + for (ClansPlayer cur : UtilAlg.sortSet(getMembers().values(), new ClansPlayerComparator())) { - String name = C.listValueOff + cur; - if (UtilPlayer.isOnline(cur)) - name = C.listValueOn + cur; + String name = C.listValueOff + cur.getPlayerName(); + if (cur.isOnline()) + name = C.listValueOn + cur.getPlayerName(); - if (getMembers().get(cur) == ClanRole.LEADER) + if (cur.getRole() == ClanRole.LEADER) members += C.listValue + "L." + name + C.mBody + ", "; - if (getMembers().get(cur) == ClanRole.ADMIN) + if (cur.getRole() == ClanRole.ADMIN) members += C.listValue + "A." + name + C.mBody + ", "; - if (getMembers().get(cur) == ClanRole.MEMBER) + if (cur.getRole() == ClanRole.MEMBER) members += C.listValue + "M." + name + C.mBody + ", "; - if (getMembers().get(cur) == ClanRole.RECRUIT) + if (cur.getRole() == ClanRole.RECRUIT) members += C.listValue + "R." + name + C.mBody + ", "; } stringList.add(F.value("Members", members)); @@ -327,16 +329,16 @@ public class ClanInfo public void inform(String message, String ignore) { - for (String cur : getMembers().keySet()) + for (UUID cur : getMembers().keySet()) { - if (ignore != null && cur.equals(ignore)) - continue; - - Player player = UtilPlayer.searchOnline(null, cur, false); + Player player = UtilPlayer.searchExact(cur); if (player == null) continue; + if (player.getName().equals(ignore)) + continue; + UtilPlayer.message(player, F.main("Clans", message)); player.playSound(player.getLocation(), Sound.NOTE_PLING, 1f, 2f); } @@ -357,7 +359,7 @@ public class ClanInfo _desc = desc; } - public NautHashMap getMembers() + public NautHashMap getMembers() { return _memberMap; } @@ -424,8 +426,8 @@ public class ClanInfo public boolean isOnlineNow() { - for (String cur : getMembers().keySet()) - if (UtilPlayer.isOnline(cur)) + for (ClansPlayer cur : getMembers().values()) + if (cur.isOnline()) return true; return false; @@ -433,8 +435,8 @@ public class ClanInfo public boolean isOnline() { - for (String cur : getMembers().keySet()) - if (UtilPlayer.isOnline(cur)) + for (ClansPlayer cur : getMembers().values()) + if (cur.isOnline()) return true; return System.currentTimeMillis() - _lastOnline.getTime() < Clans.getOnlineTime(); @@ -442,8 +444,8 @@ public class ClanInfo public String getProtected() { - for (String cur : getMembers().keySet()) - if (UtilPlayer.isOnline(cur)) + for (ClansPlayer cur : getMembers().values()) + if (cur.isOnline()) return C.cRed + "No - Clan Members are Online"; if (System.currentTimeMillis() - _lastOnline.getTime() > Clans.getOnlineTime()) @@ -598,7 +600,11 @@ public class ClanInfo public void playerOnline(Player player) { + ClansPlayer clansPlayer = _memberMap.get(player.getUniqueId()); + _onlinePlayers.add(player.getUniqueId()); + clansPlayer.setPlayerName(player.getName()); + clansPlayer.setOnline(true); } public void playerOnline(String player) @@ -621,6 +627,36 @@ public class ClanInfo public void playerOffline(Player player) { + ClansPlayer clansPlayer = _memberMap.get(player.getUniqueId()); + + if (clansPlayer != null) + { + clansPlayer.setOnline(false); + } + _onlinePlayers.remove(player.getUniqueId()); } + + public Set getMemberNameSet() + { + HashSet set = new HashSet(); + + for (ClansPlayer cp : _memberMap.values()) + { + set.add(cp.getPlayerName()); + } + + return set; + } + + public ClansPlayer getClansPlayerFromName(String playerName) + { + for (ClansPlayer cp : _memberMap.values()) + { + if (cp.getPlayerName().equals(playerName)) + return cp; + } + + return null; + } } diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansAdmin.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansAdmin.java index 4e503b10c..6d82c2133 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansAdmin.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansAdmin.java @@ -319,12 +319,13 @@ public class ClansAdmin return; } - String target = UtilPlayer.searchCollection(caller, args[2], clan.getMembers().keySet(), "Clan Member", true); + String target = UtilPlayer.searchCollection(caller, args[2], clan.getMemberNameSet(), "Clan Member", true); + ClansPlayer clansPlayer = clan.getClansPlayerFromName(target); - if (target == null) + if (target == null || clansPlayer == null) return; - if (clan.getMembers().get(target) == ClanRole.LEADER) + if (clansPlayer.getRole() == ClanRole.LEADER) { UtilPlayer.message(caller, F.main("Clans Admin", "You cannot promote " + F.name(target) + " any further.")); return; @@ -332,19 +333,19 @@ public class ClansAdmin //Task String newRank = "?"; - if (clan.getMembers().get(target) == ClanRole.RECRUIT) + if (clansPlayer.getRole() == ClanRole.RECRUIT) { - Clans.getClanDataAccess().role(clan, target, ClanRole.MEMBER); + Clans.getClanDataAccess().role(clan, clansPlayer.getUuid(), ClanRole.MEMBER); newRank = "Member"; } - else if (clan.getMembers().get(target) == ClanRole.MEMBER) + else if (clansPlayer.getRole() == ClanRole.MEMBER) { - Clans.getClanDataAccess().role(clan, target, ClanRole.ADMIN); + Clans.getClanDataAccess().role(clan, clansPlayer.getUuid(), ClanRole.ADMIN); newRank = "Admin"; } - else if (clan.getMembers().get(target) == ClanRole.ADMIN) + else if (clansPlayer.getRole() == ClanRole.ADMIN) { - Clans.getClanDataAccess().role(clan, target, ClanRole.LEADER); + Clans.getClanDataAccess().role(clan, clansPlayer.getUuid(), ClanRole.LEADER); newRank = "Leader"; } @@ -366,11 +367,12 @@ public class ClansAdmin return; } - String target = UtilPlayer.searchCollection(caller, args[2], clan.getMembers().keySet(), "Clan Member", true); - if (target == null) + String target = UtilPlayer.searchCollection(caller, args[2], clan.getMemberNameSet(), "Clan Member", true); + ClansPlayer clansPlayer = clan.getClansPlayerFromName(target); + if (target == null || clansPlayer == null) return; - if (clan.getMembers().get(target) == ClanRole.RECRUIT) + if (clansPlayer.getRole() == ClanRole.RECRUIT) { UtilPlayer.message(caller, F.main("Clans Admin", "You cannot demote " + F.name(target) + " any further.")); return; @@ -378,19 +380,19 @@ public class ClansAdmin //Task String newRank = "?"; - if (clan.getMembers().get(target) == ClanRole.MEMBER) + if (clansPlayer.getRole() == ClanRole.MEMBER) { - Clans.getClanDataAccess().role(clan, target, ClanRole.RECRUIT); + Clans.getClanDataAccess().role(clan, clansPlayer.getUuid(), ClanRole.RECRUIT); newRank = "Recruit"; } - else if (clan.getMembers().get(target) == ClanRole.ADMIN) + else if (clansPlayer.getRole() == ClanRole.ADMIN) { - Clans.getClanDataAccess().role(clan, target, ClanRole.MEMBER); + Clans.getClanDataAccess().role(clan, clansPlayer.getUuid(), ClanRole.MEMBER); newRank = "Member"; } - else if (clan.getMembers().get(target) == ClanRole.LEADER) + else if (clansPlayer.getRole() == ClanRole.LEADER) { - Clans.getClanDataAccess().role(clan, target, ClanRole.ADMIN); + Clans.getClanDataAccess().role(clan, clansPlayer.getUuid(), ClanRole.ADMIN); newRank = "Admin"; } @@ -412,12 +414,13 @@ public class ClansAdmin return; } - final String targetName = UtilPlayer.searchCollection(caller, args[2], clan.getMembers().keySet(), "Clan Member", true); + final String target = UtilPlayer.searchCollection(caller, args[2], clan.getMemberNameSet(), "Clan Member", true); + ClansPlayer clansPlayer = clan.getClansPlayerFromName(target); - if (targetName == null) + if (target == null || clansPlayer == null) return; - final Player player = UtilPlayer.searchOnline(null, targetName, false); + final Player player = UtilPlayer.searchExact(clansPlayer.getUuid()); Callback callback = new Callback() { @@ -429,8 +432,8 @@ public class ClansAdmin //Inform if (player != null) UtilPlayer.message(player, F.main("Clans Admin", caller.getName() + " kicked you from " + F.elem("Clan " + clan.getName()) + ".")); - UtilPlayer.message(caller, F.main("Clans Admin", "You kicked " + targetName + " from your Clan.")); - clan.inform(F.main("Clans Admin", caller.getName() + " kicked " + targetName + " from your Clan."), caller.getName()); + UtilPlayer.message(caller, F.main("Clans Admin", "You kicked " + target + " from your Clan.")); + clan.inform(F.main("Clans Admin", caller.getName() + " kicked " + target + " from your Clan."), caller.getName()); } else { @@ -440,7 +443,7 @@ public class ClansAdmin }; if (player != null) Clans.getClanDataAccess().leave(clan, player, callback); - else Clans.getClanDataAccess().leave(clan, targetName, callback); + else Clans.getClanDataAccess().leave(clan, clansPlayer, callback); } public void ally(Player caller, String[] args) @@ -600,7 +603,7 @@ public class ClansAdmin if (ownerClan != null) { UtilPlayer.message(caller, F.main("Clans Admin", "This Territory is claimed by " + - Clans.getClanUtility().mRel(Clans.getClanUtility().relPC(caller.getName(), ownerClan), ownerClan.getName(), true) + ".")); + Clans.getClanUtility().mRel(Clans.getClanUtility().relPC(caller, ownerClan), ownerClan.getName(), true) + ".")); return; } diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansDataAccessLayer.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansDataAccessLayer.java index 657f898d4..010a23340 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansDataAccessLayer.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansDataAccessLayer.java @@ -1,6 +1,7 @@ package mineplex.game.clans.clans; import java.sql.Timestamp; +import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.Chunk; @@ -14,6 +15,7 @@ import org.bukkit.inventory.ItemStack; import com.sun.org.apache.xpath.internal.operations.Bool; import mineplex.core.common.util.Callback; +import mineplex.core.common.util.UtilAlg; import mineplex.core.common.util.UtilBlock; import mineplex.core.common.util.UtilWorld; import mineplex.game.clans.clans.scoreboard.ClansScoreboardManager; @@ -75,9 +77,9 @@ public class ClansDataAccessLayer _manager.getClanMap().remove(clan.getName()); - for (String cur : clan.getMembers().keySet()) + for (ClansPlayer player : clan.getMembers().values()) { - _manager.getClanMemberMap().remove(cur); + _manager.getClanMemberUuidMap().remove(player.getUuid()); } //Clean from Others @@ -208,15 +210,15 @@ public class ClansDataAccessLayer private void updateJoinCache(ClanInfo clan, Player player, ClanRole role) { - String playerName = player.getName(); - if (_manager.getClanMemberMap().containsKey(playerName)) + if (_manager.getClanMemberUuidMap().containsKey(player.getUniqueId())) leave(_manager.getClanUtility().getClanByPlayer(player), player, null); //Update Clan - clan.getMembers().put(playerName, role); - _manager.getClanMemberMap().put(playerName, clan); - clan.getInviteeMap().remove(playerName); - clan.getInviterMap().remove(playerName); + ClansPlayer cp = new ClansPlayer(player.getName(), player.getUniqueId(), role); + clan.getMembers().put(player.getUniqueId(), cp); + _manager.getClanMemberUuidMap().put(player.getUniqueId(), clan); + clan.getInviteeMap().remove(player.getName()); + clan.getInviterMap().remove(player.getName()); clan.playerOnline(player); //Scoreboard @@ -225,11 +227,15 @@ public class ClansDataAccessLayer public void leave(ClanInfo clan, Player player, Callback callback) { - leave(clan, player.getName(), callback); - _scoreboard.refresh(player); + ClansPlayer clansPlayer = clan.getMembers().get(player.getUniqueId()); + if (clansPlayer != null) + { + leave(clan, clansPlayer, callback); + _scoreboard.refresh(player); + } } - public void leave(final ClanInfo clan, final String player, final Callback callback) + public void leave(final ClanInfo clan, final ClansPlayer clansPlayer, final Callback callback) { if (clan == null) return; @@ -239,7 +245,7 @@ public class ClansDataAccessLayer @Override public void run() { - final boolean success = _repository.removeMember(clan.getId(), player); + final boolean success = _repository.removeMember(clan.getId(), clansPlayer.getPlayerName()); runSync(new Runnable() { @@ -249,11 +255,11 @@ public class ClansDataAccessLayer if (success) { //Update Clan - clan.getMembers().remove(player); - _manager.getClanMemberMap().remove(player); - clan.playerOffline(player); + clan.getMembers().remove(clansPlayer.getUuid()); + _manager.getClanMemberUuidMap().remove(clansPlayer.getUuid()); + clan.playerOffline(clansPlayer.getPlayerName()); //Log - _manager.log("Removed [" + player + "] from [" + clan.getName() + "]."); + _manager.log("Removed [" + clansPlayer.getPlayerName() + "] from [" + clan.getName() + "]."); } if (callback != null) callback.run(success); @@ -263,23 +269,28 @@ public class ClansDataAccessLayer }); } - public void role(final ClanInfo clan, final String player, final ClanRole role) + public void role(final ClanInfo clan, final UUID uuid, final ClanRole role) { - //Update Clan - clan.getMembers().put(player, role); + final ClansPlayer clansPlayer = clan.getMembers().get(uuid); - //Save - runAsync(new Runnable() + if (clansPlayer != null) { - @Override - public void run() - { - _repository.updateMember(clan.getId(), player, role.toString()); - } - }); + // Update Clan + clansPlayer.setRole(role); - //Log - _manager.log("Removed [" + player + "] from [" + clan.getName() + "]."); + //Save + runAsync(new Runnable() + { + @Override + public void run() + { + _repository.updateMember(clan.getId(), clansPlayer.getPlayerName(), role.toString()); + } + }); + + //Log + _manager.log("Removed [" + clansPlayer.getPlayerName() + "] from [" + clan.getName() + "]."); + } } public void invite(ClanInfo clan, String player, String inviter) diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansDisplay.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansDisplay.java index 6cb5c945f..bd0318c87 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansDisplay.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansDisplay.java @@ -108,7 +108,7 @@ public class ClansDisplay extends MiniPlugin if (claim != null) { //Relation - ClanRelation relation = Clans.getClanUtility().relPT(player.getName(), claim.Chunk); + ClanRelation relation = Clans.getClanUtility().relPT(player, claim.Chunk); //Name ownerString = Clans.getClanUtility().mRel(relation, claim.Owner, false); @@ -187,9 +187,9 @@ public class ClansDisplay extends MiniPlugin //Add Icon if (i == chunk.getX() && j == chunk.getZ()) - output += getMapIcon(Clans.getClanUtility().relPC(player.getName(), curOwner), curClaim, curOwner, curChunk, pCount, true, local); + output += getMapIcon(Clans.getClanUtility().relPC(player, curOwner), curClaim, curOwner, curChunk, pCount, true, local); else - output += getMapIcon(Clans.getClanUtility().relPC(player.getName(), curOwner), curClaim, curOwner, curChunk, pCount, false, local); + output += getMapIcon(Clans.getClanUtility().relPC(player, curOwner), curClaim, curOwner, curChunk, pCount, false, local); } output += ">"; diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansGame.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansGame.java index aea75edbf..e20bf6cf7 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansGame.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansGame.java @@ -153,7 +153,7 @@ public class ClansGame extends MiniPlugin if (!Clans.getClanUtility().canHurt(defender, attacker)) { event.setCancelled(true); - ClanRelation rel = Clans.getRelation(defender.getName(), attacker.getName()); + ClanRelation rel = Clans.getRelation(defender, attacker); UtilPlayer.message(attacker, F.main("Clans", "You cannot harm " + Clans.getClanUtility().mRel(rel, defender.getName(), false) + ".")); } } @@ -235,7 +235,7 @@ public class ClansGame extends MiniPlugin UtilPlayer.message(event.getPlayer(), F.main("Clans", "You can not break " + F.elem(ItemStackFactory.Instance.GetName(event.getBlock(), true)) + " in " + - Clans.getClanUtility().getOwnerStringRel(event.getBlock().getLocation(), event.getPlayer().getName()) + + Clans.getClanUtility().getOwnerStringRel(event.getBlock().getLocation(), event.getPlayer()) + ".")); } @@ -265,7 +265,7 @@ public class ClansGame extends MiniPlugin UtilPlayer.message(event.getPlayer(), F.main("Clans", "You can not break " + F.elem(ItemStackFactory.Instance.GetName(event.getBlock(), true)) + " in " + - Clans.getClanUtility().getOwnerStringRel(event.getBlock().getLocation(), event.getPlayer().getName()) + + Clans.getClanUtility().getOwnerStringRel(event.getBlock().getLocation(), event.getPlayer()) + "." + mimic)); } @@ -290,7 +290,7 @@ public class ClansGame extends MiniPlugin //Inform if (damager != null) { - ClanRelation rel = Clans.getRelation(damagee.getName(), damager.getName()); + ClanRelation rel = Clans.getRelation(damagee, damager); UtilPlayer.message(damager, F.main("Clans", "You cannot harm " + Clans.getClanUtility().mRel(rel, damagee.getName(), false) + ".")); } @@ -382,7 +382,7 @@ public class ClansGame extends MiniPlugin Location sideLoc = new Location(loc.getWorld(), loc.getX()+x, loc.getY(), loc.getZ()+z); - if (Clans.getClanUtility().isSelf(player.getName(), sideLoc)) + if (Clans.getClanUtility().isSelf(player, sideLoc)) self = true; if (enemy != null) @@ -391,7 +391,7 @@ public class ClansGame extends MiniPlugin if (Clans.getClanUtility().getAccess(player, sideLoc) != ClanRelation.SELF) enemy = Clans.getClanUtility().getOwnerStringRel( new Location(loc.getWorld(), loc.getX()+x, loc.getY(), loc.getZ()+z), - player.getName()); + player); } if (enemy != null && !self) @@ -442,7 +442,7 @@ public class ClansGame extends MiniPlugin F.elem(ItemStackFactory.Instance.GetName(event.getClickedBlock(), true)) + " in " + Clans.getClanUtility().getOwnerStringRel(event.getClickedBlock().getLocation(), - player.getName()) + + player) + "." + mimic)); @@ -459,7 +459,7 @@ public class ClansGame extends MiniPlugin F.elem(ItemStackFactory.Instance.GetName(event.getClickedBlock(), true)) + " in " + Clans.getClanUtility().getOwnerStringRel(event.getClickedBlock().getLocation(), - player.getName()) + + player) + "." + mimic)); @@ -480,7 +480,7 @@ public class ClansGame extends MiniPlugin F.elem(ItemStackFactory.Instance.GetName(player.getItemInHand(), true)) + " in " + Clans.getClanUtility().getOwnerStringRel(event.getClickedBlock().getRelative(event.getBlockFace()).getLocation(), - player.getName()) + + player) + "." + mimic)); diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansManager.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansManager.java index ece157276..cac2f2820 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansManager.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansManager.java @@ -2,6 +2,7 @@ package mineplex.game.clans.clans; import java.util.HashSet; import java.util.TimeZone; +import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -154,7 +155,8 @@ public class ClansManager extends MiniClientPlugin implements IRelat //Clans private NautHashMap _clanMap = new NautHashMap(); - private NautHashMap _clanMemberMap = new NautHashMap(); +// private NautHashMap _clanMemberNameMap = new NautHashMap(); + private NautHashMap _clanMemberUuidMap = new NautHashMap(); private NautHashMap _claimMap = new NautHashMap(); private NautHashMap _unclaimMap = new NautHashMap(); @@ -273,7 +275,10 @@ public class ClansManager extends MiniClientPlugin implements IRelat _clanMap.put(clanToken.Name, clan); for (ClanMemberToken memberToken : clanToken.Members) - _clanMemberMap.put(memberToken.Name, clan); + { + _clanMemberUuidMap.put(memberToken.PlayerUUID, clan); +// _clanMemberMap.put(memberToken.Name, clan); + } for (ClanTerritoryToken territoryToken : clanToken.Territories) _claimMap.put(territoryToken.Chunk, new ClanTerritory(territoryToken)); @@ -314,9 +319,9 @@ public class ClansManager extends MiniClientPlugin implements IRelat return _clanMap; } - public NautHashMap getClanMemberMap() + public NautHashMap getClanMemberUuidMap() { - return _clanMemberMap; + return _clanMemberUuidMap; } public static boolean isClaimable(Location location) @@ -341,7 +346,7 @@ public class ClansManager extends MiniClientPlugin implements IRelat public ClanInfo getClan(Player player) { - return _clanMemberMap.get(player.getName()); + return _clanMemberUuidMap.get(player.getUniqueId()); } public ClanInfo getEnemy(ClanInfo clanInfo) @@ -357,7 +362,7 @@ public class ClansManager extends MiniClientPlugin implements IRelat public boolean isInClan(Player player) { - return _clanMemberMap.containsKey(player.getName()); + return _clanMemberUuidMap.containsKey(player.getUniqueId()); } public ClanInfo getClan(String clan) @@ -431,7 +436,7 @@ public class ClansManager extends MiniClientPlugin implements IRelat public void join(PlayerJoinEvent event) { Player player = event.getPlayer(); - ClanInfo clanInfo = getClanMemberMap().get(player.getName()); + ClanInfo clanInfo = _clanMemberUuidMap.get(player.getUniqueId()); if (clanInfo != null) { clanInfo.playerOnline(player); @@ -457,7 +462,7 @@ public class ClansManager extends MiniClientPlugin implements IRelat public void quit(PlayerQuitEvent event) { Player player = event.getPlayer(); - ClanInfo clanInfo = getClanMemberMap().get(player.getName()); + ClanInfo clanInfo = getClanMemberUuidMap().get(player.getUniqueId()); if (clanInfo != null) { clanInfo.playerOffline(player); @@ -482,9 +487,9 @@ public class ClansManager extends MiniClientPlugin implements IRelat event.setFormat(C.cAqua + "%1$s " + C.cDAqua + "%2$s"); event.getRecipients().clear(); - for (String cur : clan.getMembers().keySet()) + for (ClansPlayer cur : clan.getMembers().values()) { - Player player = UtilPlayer.searchOnline(null, cur, false); + Player player = UtilPlayer.searchExact(cur.getUuid()); if (player == null) continue; @@ -497,9 +502,9 @@ public class ClansManager extends MiniClientPlugin implements IRelat event.setFormat(C.cDGreen + clan.getName() + " " + C.cDGreen + "%1$s " + C.cGreen + "%2$s"); event.getRecipients().clear(); - for (String cur : clan.getMembers().keySet()) + for (ClansPlayer cur : clan.getMembers().values()) { - Player player = UtilPlayer.searchOnline(null, cur, false); + Player player = UtilPlayer.searchExact(cur.getUuid()); if (player == null) continue; @@ -512,9 +517,9 @@ public class ClansManager extends MiniClientPlugin implements IRelat ClanInfo ally = _clanUtility.getClanByClanName(allyName); if (ally == null) continue; - for (String playerName : ally.getMembers().keySet()) + for (ClansPlayer cur : ally.getMembers().values()) { - Player player = UtilPlayer.searchOnline(null, playerName, false); + Player player = UtilPlayer.searchExact(cur.getUuid()); if (player == null) continue; @@ -616,11 +621,22 @@ public class ClansManager extends MiniClientPlugin implements IRelat return _clanUtility.isSafe(a); } - public ClanRelation getRelation(String playerA, String playerB) +// public ClanRelation getRelation(String playerA, String playerB) +// { +// return getClanUtility().rel(_clanMemberMap.get(playerA), _clanMemberMap.get(playerB)); +// } + + public ClanRelation getRelation(Player playerA, Player playerB) { - return getClanUtility().rel(_clanMemberMap.get(playerA), _clanMemberMap.get(playerB)); + return getRelation(playerA.getUniqueId(), playerB.getUniqueId()); } - + + public ClanRelation getRelation(UUID playerA, UUID playerB) + { + return getClanUtility().rel(getClanMemberUuidMap().get(playerA), getClanMemberUuidMap().get(playerB)); + } + + public long getOnlineTime() { return _onlineTime; diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansPlayer.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansPlayer.java new file mode 100644 index 000000000..5b3e166ac --- /dev/null +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansPlayer.java @@ -0,0 +1,54 @@ +package mineplex.game.clans.clans; + +import java.util.UUID; + +public class ClansPlayer +{ + private String _playerName; + private UUID _uuid; + private ClanRole _role; + private boolean _online; + + public ClansPlayer(String playerName, UUID uuid, ClanRole role) + { + _playerName = playerName; + _uuid = uuid; + _role = role; + _online = false; + } + + public String getPlayerName() + { + return _playerName; + } + + public UUID getUuid() + { + return _uuid; + } + + public ClanRole getRole() + { + return _role; + } + + public void setRole(ClanRole role) + { + _role = role; + } + + public void setPlayerName(String playerName) + { + _playerName = playerName; + } + + public boolean isOnline() + { + return _online; + } + + public void setOnline(boolean online) + { + _online = online; + } +} diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansPlayerComparator.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansPlayerComparator.java new file mode 100644 index 000000000..cb469b08f --- /dev/null +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansPlayerComparator.java @@ -0,0 +1,20 @@ +package mineplex.game.clans.clans; + +import java.util.Comparator; + +public class ClansPlayerComparator implements Comparator +{ + @Override + public int compare(ClansPlayer o1, ClansPlayer o2) + { + if (o1 == null || o2 == null) + return 0; + + if (o1.getRole() != o2.getRole()) + { + return o2.getRole().ordinal() - o1.getRole().ordinal(); + } + + return o1.getPlayerName().compareTo(o2.getPlayerName()); + } +} diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansUtility.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansUtility.java index 7b74ca122..3dcf3dbc6 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansUtility.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansUtility.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Map.Entry; +import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -128,13 +129,17 @@ public class ClansUtility //PLAYER LinkedList playerMatchList = new LinkedList(); - for (Entry clanMemberEntry : Clans.getClanMemberMap().entrySet()) + for (ClanInfo clanInfo : Clans.getClanMap().values()) { - if (clanMemberEntry.getKey().equalsIgnoreCase(name)) - return clanMemberEntry.getValue(); + for (ClansPlayer player : clanInfo.getMembers().values()) + { + if (player.getPlayerName().equalsIgnoreCase(name)) + return clanInfo; - if (clanMemberEntry.getKey().toLowerCase().contains(name.toLowerCase())) - playerMatchList.add(clanMemberEntry.getValue()); + if (player.getPlayerName().toLowerCase().contains(name.toLowerCase())) + playerMatchList.add(clanInfo); + + } } if (playerMatchList.size() == 1) @@ -214,22 +219,28 @@ public class ClansUtility public ClanInfo getClanByPlayer(Player player) { - return getClanByPlayer(player.getName()); + return getClanByUUID(player.getUniqueId()); } - public ClanInfo getClanByPlayer(String name) + public ClanInfo getClanByUUID(UUID uuid) { - if (!Clans.getClanMemberMap().containsKey(name)) - return null; - - return Clans.getClanMemberMap().get(name); + return Clans.getClanMemberUuidMap().get(uuid); } +// @Deprecated +// public ClanInfo getClanByPlayer(String name) +// { +// if (!Clans.getClanMemberMap().containsKey(name)) +// return null; +// +// return Clans.getClanMemberMap().get(name); +// } + public ClanRole getRole(Player player) { try { - return getClanByPlayer(player).getMembers().get(player.getName()); + return getClanByPlayer(player).getMembers().get(player.getUniqueId()).getRole(); } catch (Exception e) { @@ -315,7 +326,7 @@ public class ClansUtility return owner.getName(); } - public String getOwnerStringRel(Location loc, String player) + public String getOwnerStringRel(Location loc, Player player) { ClanRelation rel = relPT(player, UtilWorld.chunkToStr(loc.getChunk())); return mRel(rel, getOwnerString(loc), true); @@ -328,26 +339,28 @@ public class ClansUtility return Clans.getClaimMap().containsKey(chunk); } - public boolean isAlliance(String player, Location loc) +// public boolean isAlliance(String player, Location loc) +// { +// if (!Clans.getClanMemberMap().containsKey(player)) +// return false; +// +// if (!isClaimed(loc)) +// return false; +// +// return getOwner(getClaim(loc)).isAlly(Clans.getClanMemberMap().get(player).getName()); +// } + + public boolean isSelf(Player player, Location loc) { - if (!Clans.getClanMemberMap().containsKey(player)) + ClanInfo clan = Clans.getClan(player); + + if (clan == null) return false; if (!isClaimed(loc)) return false; - return getOwner(getClaim(loc)).isAlly(Clans.getClanMemberMap().get(player).getName()); - } - - public boolean isSelf(String player, Location loc) - { - if (!Clans.getClanMemberMap().containsKey(player)) - return false; - - if (!isClaimed(loc)) - return false; - - return getOwner(getClaim(loc)).isSelf(Clans.getClanMemberMap().get(player).getName()); + return getOwner(getClaim(loc)).isSelf(clan.getName()); } public boolean isAdmin(Location loc) @@ -397,7 +410,7 @@ public class ClansUtility } //Player Player - public ClanRelation relPP(String pA, String pB) + public ClanRelation relPP(Player pA, Player pB) { return rel(getClanByPlayer(pA), getClanByPlayer(pB)); } @@ -415,19 +428,19 @@ public class ClansUtility } //Player Clan - public ClanRelation relPC(String pA, String cB) + public ClanRelation relPC(Player pA, String cB) { return rel(getClanByPlayer(pA), searchClan(null, cB, false)); } //Player Clan (Object) - public ClanRelation relPC(String pA, ClanInfo cB) + public ClanRelation relPC(Player pA, ClanInfo cB) { return rel(getClanByPlayer(pA), cB); } //Player Territory - public ClanRelation relPT(String pA, String tB) + public ClanRelation relPT(Player pA, String tB) { ClanTerritory claim = getClaim(tB); if (claim != null && claim.Safe) @@ -489,7 +502,7 @@ public class ClansUtility return relColor(relation, dark) + message + C.mChat; } - public boolean playerSelf(String pA, String pB) + public boolean playerSelf(Player pA, Player pB) { ClanInfo cA = getClanByPlayer(pA); ClanInfo cB = getClanByPlayer(pB); @@ -500,7 +513,7 @@ public class ClansUtility return cA.isSelf(cB.getName()); } - public boolean playerAlly(String pA, String pB) + public boolean playerAlly(Player pA, Player pB) { ClanInfo cA = getClanByPlayer(pA); ClanInfo cB = getClanByPlayer(pB); @@ -511,7 +524,7 @@ public class ClansUtility return cA.isAlly(cB.getName()); } - public boolean playerEnemy(String pA, String pB) + public boolean playerEnemy(Player pA, Player pB) { ClanInfo cA = getClanByPlayer(pA); ClanInfo cB = getClanByPlayer(pB); @@ -527,7 +540,7 @@ public class ClansUtility if (damagee == null || damager == null) return false; - ClanRelation rel = relPP(damagee.getName(), damager.getName()); + ClanRelation rel = relPP(damagee, damager); if (rel == ClanRelation.ALLY || rel == ClanRelation.ALLY_TRUST || rel == ClanRelation.SELF) return false; diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/commands/ClansCommand.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/commands/ClansCommand.java index 6dd3aa8ec..7535b3df0 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/commands/ClansCommand.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/commands/ClansCommand.java @@ -22,6 +22,7 @@ import mineplex.game.clans.clans.ClanInfo; import mineplex.game.clans.clans.ClanRole; import mineplex.game.clans.clans.ClansBlacklist; import mineplex.game.clans.clans.ClansManager; +import mineplex.game.clans.clans.ClansPlayer; import mineplex.game.clans.clans.ClansUtility.ClanRelation; import mineplex.game.clans.clans.ClientClan; import mineplex.game.clans.core.repository.tokens.ClanToken; @@ -42,8 +43,8 @@ public class ClansCommand extends CommandBase { if (args == null || args.length == 0) { - if (Plugin.getClanMemberMap().containsKey(caller.getName())) - infoClan(caller, Plugin.getClanMemberMap().get(caller.getName()).getName()); + if (Plugin.getClanMemberUuidMap().containsKey(caller.getUniqueId())) + infoClan(caller, Plugin.getClanMemberUuidMap().get(caller.getUniqueId()).getName()); else UtilPlayer.message(caller, F.main("Clans", "You are not in a Clan.")); @@ -228,7 +229,7 @@ public class ClansCommand extends CommandBase ClientClan client = Plugin.Get(caller); - if (Plugin.getClanMemberMap().containsKey(caller.getName())) + if (Plugin.getClanMemberUuidMap().containsKey(caller.getUniqueId())) { UtilPlayer.message(caller, F.main("Clans", "You are already in a Clan.")); return; @@ -366,8 +367,8 @@ public class ClansCommand extends CommandBase return; } - if (clan.getMembers().get(caller.getName()) != ClanRole.LEADER && - clan.getMembers().get(caller.getName()) != ClanRole.ADMIN) + if (clan.getMembers().get(caller.getUniqueId()).getRole() != ClanRole.LEADER && + clan.getMembers().get(caller.getUniqueId()).getRole() != ClanRole.ADMIN) { UtilPlayer.message(caller, F.main("Clans", "Only the Clan Leader and Admins can send invites.")); return; @@ -401,7 +402,7 @@ public class ClansCommand extends CommandBase public void join(final Player caller, String[] args) { - if (Plugin.getClanMemberMap().containsKey(caller.getName())) + if (Plugin.getClanMemberUuidMap().containsKey(caller.getUniqueId())) { UtilPlayer.message(caller, F.main("Clans", "You are already in a Clan.")); return; @@ -469,7 +470,7 @@ public class ClansCommand extends CommandBase return; } - if (clan.getMembers().get(caller.getName()) == ClanRole.LEADER && clan.getMembers().size() > 1) + if (clan.getMembers().get(caller.getUniqueId()).getRole() == ClanRole.LEADER && clan.getMembers().size() > 1) { UtilPlayer.message(caller, F.main("Clans", "You must pass on " + F.elem("Leadership") + " before leaving.")); return; @@ -512,20 +513,22 @@ public class ClansCommand extends CommandBase return; } - final String target = UtilPlayer.searchCollection(caller, args[1], clan.getMembers().keySet(), "Clan Member", true); + final String target = UtilPlayer.searchCollection(caller, args[1], clan.getMemberNameSet(), "Clan Member", true); + ClansPlayer self = clan.getMembers().get(caller.getUniqueId()); + ClansPlayer clansPlayer = clan.getClansPlayerFromName(target); - if (target == null) + if (target == null || clansPlayer == null) return; - if (clan.getMembers().get(caller.getName()) != ClanRole.LEADER && - clan.getMembers().get(caller.getName()) != ClanRole.ADMIN) + if (self.getRole() != ClanRole.LEADER && + self.getRole() != ClanRole.ADMIN) { UtilPlayer.message(caller, F.main("Clans", "Only the Clan Leader and Admins can kick members.")); return; } - if ((clan.getMembers().get(target) == ClanRole.LEADER && clan.getMembers().get(caller.getName()) == ClanRole.ADMIN) || - (clan.getMembers().get(target) == ClanRole.ADMIN && clan.getMembers().get(caller.getName()) == ClanRole.ADMIN)) + if ((clansPlayer.getRole() == ClanRole.LEADER && self.getRole() == ClanRole.ADMIN) || + (clansPlayer.getRole() == ClanRole.ADMIN && self.getRole() == ClanRole.ADMIN)) { UtilPlayer.message(caller, F.main("Clans", "You do not outrank " + F.name(target) + ".")); return; @@ -548,7 +551,7 @@ public class ClansCommand extends CommandBase //Task if (player != null) Plugin.getClanDataAccess().leave(clan, player, callback); - else Plugin.getClanDataAccess().leave(clan, target, callback); + else Plugin.getClanDataAccess().leave(clan, clansPlayer, callback); } public void promote(Player caller, String[] args) @@ -567,7 +570,9 @@ public class ClansCommand extends CommandBase return; } - String target = UtilPlayer.searchCollection(caller, args[1], clan.getMembers().keySet(), "Clan Member", true); + final String targetName = UtilPlayer.searchCollection(caller, args[1], clan.getMemberNameSet(), "Clan Member", true); + ClansPlayer self = clan.getMembers().get(caller.getUniqueId()); + ClansPlayer target = clan.getClansPlayerFromName(targetName); if (target == null) return; @@ -578,35 +583,35 @@ public class ClansCommand extends CommandBase return; } - if (clan.getMembers().get(caller.getName()).ordinal() <= clan.getMembers().get(target).ordinal()) + if (self.getRole().ordinal() <= target.getRole().ordinal()) { - UtilPlayer.message(caller, F.main("Clans", "You do not outrank " + F.name(target) + ".")); + UtilPlayer.message(caller, F.main("Clans", "You do not outrank " + F.name(targetName) + ".")); return; } //Task String newRank = "?"; - if (clan.getMembers().get(target) == ClanRole.RECRUIT) + if (target.getRole() == ClanRole.RECRUIT) { - Plugin.getClanDataAccess().role(clan, target, ClanRole.MEMBER); + Plugin.getClanDataAccess().role(clan, target.getUuid(), ClanRole.MEMBER); newRank = "Member"; } - else if (clan.getMembers().get(target) == ClanRole.MEMBER) + else if (target.getRole() == ClanRole.MEMBER) { - Plugin.getClanDataAccess().role(clan, target, ClanRole.ADMIN); + Plugin.getClanDataAccess().role(clan, target.getUuid(), ClanRole.ADMIN); newRank = "Admin"; } - else if (clan.getMembers().get(target) == ClanRole.ADMIN) + else if (target.getRole() == ClanRole.ADMIN) { - Plugin.getClanDataAccess().role(clan, target, ClanRole.LEADER); + Plugin.getClanDataAccess().role(clan, target.getUuid(), ClanRole.LEADER); newRank = "Leader"; //Give Leader - Plugin.getClanDataAccess().role(clan, caller.getName(), ClanRole.ADMIN); + Plugin.getClanDataAccess().role(clan, caller.getUniqueId(), ClanRole.ADMIN); } //Inform - clan.inform(F.name(caller.getName()) + " promoted " + F.name(target) + " to " + F.elem(newRank) + ".", null); + clan.inform(F.name(caller.getName()) + " promoted " + F.name(targetName) + " to " + F.elem(newRank) + ".", null); } public void demote(Player caller, String[] args) @@ -625,7 +630,9 @@ public class ClansCommand extends CommandBase return; } - String target = UtilPlayer.searchCollection(caller, args[1], clan.getMembers().keySet(), "Clan Member", true); + final String targetName = UtilPlayer.searchCollection(caller, args[1], clan.getMemberNameSet(), "Clan Member", true); + ClansPlayer self = clan.getMembers().get(caller.getUniqueId()); + ClansPlayer target = clan.getClansPlayerFromName(targetName); if (target == null) return; @@ -636,33 +643,33 @@ public class ClansCommand extends CommandBase return; } - if (clan.getMembers().get(caller.getName()).ordinal() <= clan.getMembers().get(target).ordinal()) + if (self.getRole().ordinal() <= target.getRole().ordinal()) { - UtilPlayer.message(caller, F.main("Clans", "You do not outrank " + F.name(target) + ".")); + UtilPlayer.message(caller, F.main("Clans", "You do not outrank " + F.name(targetName) + ".")); return; } - if (clan.getMembers().get(target) == ClanRole.RECRUIT) + if (target.getRole() == ClanRole.RECRUIT) { - UtilPlayer.message(caller, F.main("Clans", "You cannot demote " + F.name(target) + " any further.")); + UtilPlayer.message(caller, F.main("Clans", "You cannot demote " + F.name(targetName) + " any further.")); return; } //Task String newRank = "?"; - if (clan.getMembers().get(target) == ClanRole.MEMBER) + if (target.getRole() == ClanRole.MEMBER) { - Plugin.getClanDataAccess().role(clan, target, ClanRole.RECRUIT); + Plugin.getClanDataAccess().role(clan, target.getUuid(), ClanRole.RECRUIT); newRank = "Recruit"; } - else if (clan.getMembers().get(target) == ClanRole.ADMIN) + else if (target.getRole() == ClanRole.ADMIN) { - Plugin.getClanDataAccess().role(clan, target, ClanRole.MEMBER); + Plugin.getClanDataAccess().role(clan, target.getUuid(), ClanRole.MEMBER); newRank = "Member"; } //Inform - clan.inform(F.main("Clans", F.name(caller.getName()) + " demoted " + F.name(target) + " to " + F.elem(newRank) + "."), null); + clan.inform(F.main("Clans", F.name(caller.getName()) + " demoted " + F.name(targetName) + " to " + F.elem(newRank) + "."), null); } public void ally(Player caller, String[] args) @@ -675,7 +682,7 @@ public class ClansCommand extends CommandBase return; } - if (cA.getMembers().get(caller.getName()) != ClanRole.LEADER && cA.getMembers().get(caller.getName()) != ClanRole.ADMIN) + if (cA.getMembers().get(caller.getUniqueId()).getRole() != ClanRole.LEADER && cA.getMembers().get(caller.getUniqueId()).getRole() != ClanRole.ADMIN) { UtilPlayer.message(caller, F.main("Clans", "Only the Clan Leader and Admins can manage Alliances.")); return; @@ -746,7 +753,7 @@ public class ClansCommand extends CommandBase public void trust(Player caller, String[] args) { - ClanInfo cA = Plugin.getClan(Plugin.getClanMemberMap().get(caller.getName()).getName()); + ClanInfo cA = Plugin.getClan(Plugin.getClanMemberUuidMap().get(caller.getUniqueId()).getName()); if (cA == null) { @@ -754,7 +761,7 @@ public class ClansCommand extends CommandBase return; } - if (cA.getMembers().get(caller.getName()) != ClanRole.LEADER && cA.getMembers().get(caller.getName()) != ClanRole.ADMIN) + if (cA.getMembers().get(caller.getUniqueId()).getRole() != ClanRole.LEADER && cA.getMembers().get(caller.getUniqueId()).getRole() != ClanRole.ADMIN) { UtilPlayer.message(caller, F.main("Clans", "Only the Clan Leader and Admins can manage Trust.")); return; @@ -796,7 +803,7 @@ public class ClansCommand extends CommandBase public void neutral(Player caller, String[] args) { - ClanInfo cA = Plugin.getClan(Plugin.getClanMemberMap().get(caller.getName()).getName()); + ClanInfo cA = Plugin.getClanMemberUuidMap().get(caller.getUniqueId()); if (cA == null) { @@ -804,7 +811,7 @@ public class ClansCommand extends CommandBase return; } - if (cA.getMembers().get(caller.getName()) != ClanRole.LEADER && cA.getMembers().get(caller.getName()) != ClanRole.ADMIN) + if (cA.getMembers().get(caller.getUniqueId()).getRole() != ClanRole.LEADER && cA.getMembers().get(caller.getUniqueId()).getRole() != ClanRole.ADMIN) { UtilPlayer.message(caller, F.main("Clans", "Only the Clan Leader and Admins can manage relationships.")); return; @@ -855,7 +862,7 @@ public class ClansCommand extends CommandBase return; } - if (clan.getMembers().get(caller.getName()) != ClanRole.LEADER && clan.getMembers().get(caller.getName()) != ClanRole.ADMIN) + if (clan.getMembers().get(caller.getUniqueId()).getRole() != ClanRole.LEADER && clan.getMembers().get(caller.getUniqueId()).getRole() != ClanRole.ADMIN) { UtilPlayer.message(caller, F.main("Clans", "Only the Clan Leader and Admins can claim Territory.")); return; @@ -885,7 +892,7 @@ public class ClansCommand extends CommandBase else { UtilPlayer.message(caller, F.main("Clans", "This Territory is owned by " + - Plugin.getClanUtility().mRel(Plugin.getClanUtility().relPC(caller.getName(), ownerClan), ownerClan.getName(), true) + ".")); + Plugin.getClanUtility().mRel(Plugin.getClanUtility().relPC(caller, ownerClan), ownerClan.getName(), true) + ".")); return; } @@ -967,7 +974,7 @@ public class ClansCommand extends CommandBase //Enemies in Land for (Player cur : UtilServer.getPlayers()) if (UtilMath.offset(cur, caller) < 16) - if (Plugin.getClanUtility().playerEnemy(caller.getName(), cur.getName())) + if (Plugin.getClanUtility().playerEnemy(caller, cur)) { UtilPlayer.message(caller, F.main("Clans", "You cannot claim while enemies are nearby.")); return; @@ -1036,7 +1043,7 @@ public class ClansCommand extends CommandBase return; //Role - if (clan.getMembers().get(caller.getName()) != ClanRole.LEADER && clan.getMembers().get(caller.getName()) != ClanRole.ADMIN) + if (clan.getMembers().get(caller.getUniqueId()).getRole() != ClanRole.LEADER && clan.getMembers().get(caller.getUniqueId()).getRole() != ClanRole.ADMIN) { UtilPlayer.message(caller, F.main("Clans", "Only the Clan Leader and Admins can unclaim Territory.")); return; @@ -1089,7 +1096,7 @@ public class ClansCommand extends CommandBase return; } - if (clan.getMembers().get(caller.getName()) != ClanRole.LEADER) + if (clan.getMembers().get(caller.getUniqueId()).getRole() != ClanRole.LEADER) { UtilPlayer.message(caller, F.main("Clans", "Only the Clan Leader can unclaim all Territory.")); return; @@ -1188,7 +1195,7 @@ public class ClansCommand extends CommandBase return; } - if (clan.getMembers().get(caller.getName()) != ClanRole.LEADER && clan.getMembers().get(caller.getName()) != ClanRole.ADMIN) + if (clan.getMembers().get(caller.getUniqueId()).getRole() != ClanRole.LEADER && clan.getMembers().get(caller.getUniqueId()).getRole() != ClanRole.ADMIN) { UtilPlayer.message(caller, F.main("Clans", "Only the Clan Leader and Admins can manage Clan Home.")); return; @@ -1227,7 +1234,7 @@ public class ClansCommand extends CommandBase if (clan == null) return; - UtilPlayer.message(caller, clan.mDetails(caller.getName())); + UtilPlayer.message(caller, clan.mDetails(caller)); } public void infoTerritory(Player caller, String[] args) diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/scoreboard/elements/ScoreboardElementPlayer.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/scoreboard/elements/ScoreboardElementPlayer.java index 011d3b91d..a51db0753 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/scoreboard/elements/ScoreboardElementPlayer.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/scoreboard/elements/ScoreboardElementPlayer.java @@ -34,7 +34,7 @@ public class ScoreboardElementPlayer implements ScoreboardElement if (claim != null) { //Relation - ClansUtility.ClanRelation relation = _clansManager.getClanUtility().relPT(player.getName(), claim.Chunk); + ClansUtility.ClanRelation relation = _clansManager.getClanUtility().relPT(player, claim.Chunk); //Name regionString = _clansManager.getClanUtility().mRel(relation, claim.Owner, false);