mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-04 02:53:43 +01:00 
			
		
		
		
	Use LinkedHashSet instead of List
This commit is contained in:
		@@ -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);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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())) {
 | 
					 | 
				
			||||||
            // Remove all the duplicates as well
 | 
					 | 
				
			||||||
        members.remove(player.getName());
 | 
					        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,10 +361,8 @@ 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());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Get the leader of a party.
 | 
					     * Get the leader of a party.
 | 
				
			||||||
@@ -469,13 +465,11 @@ 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);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user