123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257 |
- package com.gmail.nossr50.api;
- import com.gmail.nossr50.datatypes.interactions.NotificationType;
- import com.gmail.nossr50.datatypes.party.Party;
- import com.gmail.nossr50.datatypes.party.PartyLeader;
- import com.gmail.nossr50.mcMMO;
- import com.gmail.nossr50.party.PartyManager;
- import com.gmail.nossr50.util.player.NotificationManager;
- import com.gmail.nossr50.util.player.UserManager;
- import org.bukkit.OfflinePlayer;
- import org.bukkit.entity.Player;
- import java.util.*;
- public final class PartyAPI {
- private PartyAPI() {}
- /**
- * Get the name of the party a player is in.
- * </br>
- * This function is designed for API usage.
- *
- * @param player The player to check the party name of
- * @return the name of the player's party, or null if not in a party
- */
- public static String getPartyName(Player player) {
- if (!inParty(player)) {
- return null;
- }
- return UserManager.getPlayer(player).getParty().getName();
- }
- /**
- * Checks if a player is in a party.
- * </br>
- * This function is designed for API usage.
- *
- * @param player The player to check
- * @return true if the player is in a party, false otherwise
- */
- public static boolean inParty(Player player) {
- if(UserManager.getPlayer(player) == null)
- return false;
- return UserManager.getPlayer(player).inParty();
- }
- /**
- * Check if two players are in the same party.
- * </br>
- * This function is designed for API usage.
- *
- * @param playera The first player to check
- * @param playerb The second player to check
- * @return true if the two players are in the same party, false otherwise
- */
- public static boolean inSameParty(Player playera, Player playerb) {
- return PartyManager.inSameParty(playera, playerb);
- }
- /**
- * Get a list of all current parties.
- * </br>
- * This function is designed for API usage.
- *
- * @return the list of parties.
- */
- public static List<Party> getParties() {
- return PartyManager.getParties();
- }
- /**
- * Add a player to a party.
- * </br>
- * This function is designed for API usage.
- *
- * @param player The player to add to the party
- * @param partyName The party to add the player to
- * @deprecated parties can have limits, use the other method
- */
- @Deprecated
- public static void addToParty(Player player, String partyName) {
- //Check if player profile is loaded
- if(UserManager.getPlayer(player) == null)
- return;
- Party party = PartyManager.getParty(partyName);
- if (party == null) {
- party = new Party(new PartyLeader(player.getUniqueId(), player.getName()), partyName);
- } else {
- if(PartyManager.isPartyFull(player, party))
- {
- NotificationManager.sendPlayerInformation(player, NotificationType.PARTY_MESSAGE, "Commands.Party.PartyFull", party.toString());
- return;
- }
- }
- PartyManager.addToParty(UserManager.getPlayer(player), party);
- }
- /**
- * The max party size of the server
- * 0 or less for no size limit
- * @return the max party size on this server
- */
- public static int getMaxPartySize()
- {
- return mcMMO.p.getGeneralConfig().getPartyMaxSize();
- }
- /**
- * Add a player to a party.
- * </br>
- * This function is designed for API usage.
- *
- * @param player The player to add to the party
- * @param partyName The party to add the player to
- * @param bypassLimit if true bypasses party size limits
- */
- //TODO: bypasslimit not used?
- public static void addToParty(Player player, String partyName, boolean bypassLimit) {
- //Check if player profile is loaded
- if(UserManager.getPlayer(player) == null)
- return;
- Party party = PartyManager.getParty(partyName);
- if (party == null) {
- party = new Party(new PartyLeader(player.getUniqueId(), player.getName()), partyName);
- }
- PartyManager.addToParty(UserManager.getPlayer(player), party);
- }
- /**
- * Remove a player from a party.
- * </br>
- * This function is designed for API usage.
- *
- * @param player The player to remove
- */
- public static void removeFromParty(Player player) {
- //Check if player profile is loaded
- if(UserManager.getPlayer(player) == null)
- return;
- PartyManager.removeFromParty(UserManager.getPlayer(player));
- }
- /**
- * Get the leader of a party.
- * </br>
- * This function is designed for API usage.
- *
- * @param partyName The party name
- * @return the leader of the party
- */
- public static String getPartyLeader(String partyName) {
- return PartyManager.getPartyLeaderName(partyName);
- }
- /**
- * Set the leader of a party.
- * </br>
- * This function is designed for API usage.
- *
- * @param partyName The name of the party to set the leader of
- * @param playerName The playerName to set as leader
- */
- @Deprecated
- public static void setPartyLeader(String partyName, String playerName) {
- PartyManager.setPartyLeader(mcMMO.p.getServer().getOfflinePlayer(playerName).getUniqueId(), PartyManager.getParty(partyName));
- }
- /**
- * Get a list of all players in this player's party.
- * </br>
- * This function is designed for API usage.
- *
- * @param player The player to check
- * @return all the players in the player's party
- */
- @Deprecated
- public static List<OfflinePlayer> getOnlineAndOfflineMembers(Player player) {
- List<OfflinePlayer> members = new ArrayList<>();
- for (UUID memberUniqueId : PartyManager.getAllMembers(player).keySet()) {
- OfflinePlayer member = mcMMO.p.getServer().getOfflinePlayer(memberUniqueId);
- members.add(member);
- }
- return members;
- }
- /**
- * Get a list of all player names in this player's party.
- * </br>
- * This function is designed for API usage.
- *
- * @param player The player to check
- * @return all the player names in the player's party
- */
- @Deprecated
- public static LinkedHashSet<String> getMembers(Player player) {
- return (LinkedHashSet<String>) PartyManager.getAllMembers(player).values();
- }
- /**
- * Get a list of all player names and uuids in this player's party.
- * </br>
- * This function is designed for API usage.
- *
- * @param player The player to check
- * @return all the player names and uuids in the player's party
- */
- public static LinkedHashMap<UUID, String> getMembersMap(Player player) {
- return PartyManager.getAllMembers(player);
- }
- /**
- * Get a list of all online players in this party.
- * </br>
- * This function is designed for API usage.
- *
- * @param partyName The party to check
- * @return all online players in this party
- */
- public static List<Player> getOnlineMembers(String partyName) {
- return PartyManager.getOnlineMembers(partyName);
- }
- /**
- * Get a list of all online players in this player's party.
- * </br>
- * This function is designed for API usage.
- *
- * @param player The player to check
- * @return all online players in the player's party
- */
- public static List<Player> getOnlineMembers(Player player) {
- return PartyManager.getOnlineMembers(player);
- }
- public static boolean hasAlly(String partyName) {
- return getAllyName(partyName) != null;
- }
- public static String getAllyName(String partyName) {
- Party ally = PartyManager.getParty(partyName).getAlly();
- if (ally != null) {
- return ally.getName();
- }
- return null;
- }
- }
|