Use LinkedHashSet instead of List

This commit is contained in:
TfT_02 2013-04-13 18:43:22 +02:00
parent c60e5a65d6
commit f05b9ae365
3 changed files with 14 additions and 18 deletions

View File

@ -1,6 +1,7 @@
package com.gmail.nossr50.api; package com.gmail.nossr50.api;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List; import java.util.List;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
@ -148,7 +149,7 @@ public final class PartyAPI {
* @param player The player to check * @param player The player to check
* @return all the player names in the player's party * @return all the player names in the player's party
*/ */
public static List<String> getMembers(Player player) { public static LinkedHashSet<String> getMembers(Player player) {
return PartyManager.getAllMembers(player); return PartyManager.getAllMembers(player);
} }

View File

@ -1,6 +1,7 @@
package com.gmail.nossr50.datatypes.party; package com.gmail.nossr50.datatypes.party;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List; import java.util.List;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
@ -10,7 +11,7 @@ import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.party.ShareHandler; import com.gmail.nossr50.party.ShareHandler;
public class Party { public class Party {
private List<String> members = new ArrayList<String>(); private LinkedHashSet<String> members = new LinkedHashSet<String>();
private String leader; private String leader;
private String name; private String name;
private String password; private String password;
@ -24,7 +25,7 @@ public class Party {
private boolean shareHerbalismDrops = true; private boolean shareHerbalismDrops = true;
private boolean shareWoodcuttingDrops = true; private boolean shareWoodcuttingDrops = true;
public List<String> getMembers() { public LinkedHashSet<String> getMembers() {
return members; return members;
} }

View File

@ -2,6 +2,7 @@ package com.gmail.nossr50.party;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List; import java.util.List;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
@ -97,7 +98,7 @@ public final class PartyManager {
* @param player The player to check * @param player The player to check
* @return all the players in the player's party * @return all the players in the player's party
*/ */
public static List<String> getAllMembers(Player player) { public static LinkedHashSet<String> getAllMembers(Player player) {
Party party = UserManager.getPlayer(player).getParty(); Party party = UserManager.getPlayer(player).getParty();
if (party == null) { if (party == null) {
@ -189,12 +190,9 @@ public final class PartyManager {
* @param party The party * @param party The party
*/ */
public static void removeFromParty(OfflinePlayer player, Party party) { public static void removeFromParty(OfflinePlayer player, Party party) {
List<String> members = party.getMembers(); LinkedHashSet<String> members = party.getMembers();
while (members.contains(player.getName())) { members.remove(player.getName());
// Remove all the duplicates as well
members.remove(player.getName());
}
if (members.isEmpty()) { if (members.isEmpty()) {
parties.remove(party); parties.remove(party);
@ -202,7 +200,7 @@ public final class PartyManager {
else { else {
// If the leaving player was the party leader, appoint a new leader from the party members // If the leaving player was the party leader, appoint a new leader from the party members
if (party.getLeader().equalsIgnoreCase(player.getName())) { if (party.getLeader().equalsIgnoreCase(player.getName())) {
String newLeader = members.get(0); String newLeader = members.iterator().next();
party.setLeader(newLeader); party.setLeader(newLeader);
} }
@ -223,7 +221,7 @@ public final class PartyManager {
* @param party The party to remove * @param party The party to remove
*/ */
public static void disbandParty(Party party) { public static void disbandParty(Party party) {
List<String> members = party.getMembers(); LinkedHashSet<String> members = party.getMembers();
for (String memberName : members) { for (String memberName : members) {
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(memberName); McMMOPlayer mcMMOPlayer = UserManager.getPlayer(memberName);
@ -363,9 +361,7 @@ public final class PartyManager {
informPartyMembersJoin(player, party); informPartyMembersJoin(player, party);
mcMMOPlayer.setParty(party); mcMMOPlayer.setParty(party);
if (!party.getMembers().contains(player.getName())) { party.getMembers().add(player.getName());
party.getMembers().add(player.getName());
}
} }
/** /**
@ -469,12 +465,10 @@ public final class PartyManager {
party.setItemShareMode(ShareHandler.ShareMode.getFromString(partiesFile.getString(partyName + ".ItemShareMode"))); party.setItemShareMode(ShareHandler.ShareMode.getFromString(partiesFile.getString(partyName + ".ItemShareMode")));
List<String> memberNames = partiesFile.getStringList(partyName + ".Members"); List<String> memberNames = partiesFile.getStringList(partyName + ".Members");
List<String> members = party.getMembers(); LinkedHashSet<String> members = party.getMembers();
for (String memberName : memberNames) { for (String memberName : memberNames) {
if (!members.contains(memberName)) { members.add(memberName);
members.add(memberName);
}
} }
parties.add(party); parties.add(party);