package de.tobiyas.racesandclasses.addins.groups.impl;
import java.util.Collection;
import java.util.HashSet;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import com.gmail.nossr50.api.PartyAPI;
import com.gmail.nossr50.datatypes.party.Party;
import de.tobiyas.racesandclasses.addins.groups.GroupManager;
public class McMMOGroupManager implements GroupManager {
@Override
public boolean isInSameGroup(Player player1, Player player2) {
Party party1 = getParty(player1);
Party party2 = getParty(player2);
return party1 != null && party2 != null && party1 == party2;
}
@Override
public boolean hasGroup(Player player) {
return getParty(player) != null;
}
@Override
public boolean addPlayerToGroup(Player groupOwner, Player toAdd) {
Party party = getParty(groupOwner);
if(party == null) return false;
party.addOnlineMember(toAdd);
return true;
}
@Override
public boolean playerLeavesGroup(Player player) {
Party party = getParty(player);
if(party == null) return false;
party.removeOnlineMember(player);
return true;
}
@Override
public Collection<Player> getMembersOfGroup(Player player) {
Party party = getParty(player);
return party == null ? new HashSet<Player>() : party.getOnlineMembers();
}
@Override
public Player getLeaderOfGroup(Player player) {
Party party = getParty(player);
return party == null ? null : Bukkit.getPlayer(party.getLeader().getUniqueId());
}
@Override
public boolean isEnabled() {
return Bukkit.getPluginManager().isPluginEnabled("McMMO");
}
@Override
public void deinit() {}
private Party getParty(Player player){
for(Party party : PartyAPI.getParties()){
if(party.getOnlineMembers().contains(player)) return party;
}
return null;
}
}