package de.tobiyas.racesandclasses.addins.groups.impl; import java.util.Collection; import java.util.HashSet; import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import de.tobiyas.racesandclasses.addins.groups.GroupManager; import me.alessiodp.parties.Parties; import me.alessiodp.parties.utils.api.Api; import me.alessiodp.parties.utils.api.Status; public class PartiesGroupManager implements GroupManager { @Override public boolean isInSameGroup(Player player1, Player player2) { String party1 = getParty(player1.getUniqueId()); String party2 = getParty(player2.getUniqueId()); return party1 != null && party2 != null && !party1.isEmpty() && !party2.isEmpty() && party1.equals(party2); } @Override public boolean hasGroup(Player player) { return getAPI().haveParty(player.getUniqueId()); } @Override public boolean addPlayerToGroup(Player groupOwner, Player toAdd) { String ownerParty = getParty(groupOwner.getUniqueId()); if(ownerParty == null || ownerParty.isEmpty()) return false; return getAPI().addPlayerInParty(toAdd, ownerParty) == Status.SUCCESS; } @Override public boolean playerLeavesGroup(Player player) { return getAPI().removePlayerFromParty(player.getUniqueId()) == Status.SUCCESS; } @Override public Collection<Player> getMembersOfGroup(Player player) { String party = getParty(player.getUniqueId()); if(party == null || party.isEmpty()) return new HashSet<>(); return getAPI().getPartyOnlinePlayers(party); } @Override public Player getLeaderOfGroup(Player player) { String party = getParty(player.getUniqueId()); if(party == null || party.isEmpty()) return null; Collection<UUID> ids = getAPI().getPartyLeaders(party); if(ids == null || ids.isEmpty()) return null; return Bukkit.getPlayer(ids.iterator().next()); } @Override public boolean isEnabled() { return Bukkit.getPluginManager().isPluginEnabled("Parties"); } @Override public void deinit() {} private String getParty(UUID id){ return getAPI().getPartyName(id); } private Api getAPI(){ return Parties.getApi(); } }