package server;
import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import server.token.TokenString;
public class Group implements Externalizable {
private static final long serialVersionUID = -7521827709982054069L;
private Set<GroupListener> listeners = new HashSet<GroupListener>();
public Player getLeader() {
for (Player player : ParentTracker.GROUP.getChildrenOf(this)) {
return player; }
return null;
}
public Collection<Player> players() {
return ParentTracker.GROUP.getChildrenOf(this);
}
public void addGroupListener(GroupListener l) {
listeners.add(l);
}
public void removeGroupListener(GroupListener l) {
listeners.remove(l);
}
public void notifyGroupMemberAdded(Player player) {
for (GroupListener l : listeners) {
l.groupMemberAdded(player);
}
}
public void notifyGroupMemberChanged(Player player) {
for (GroupListener l : listeners) {
l.groupMemberChanged(player);
}
}
public void notifyGroupMemberRemoved(Player player) {
for (GroupListener l : listeners) {
l.groupMemberRemoved(player);
}
}
public void notifyGroupMemberHealth(Player player, long hp, long maxHP) {
for (GroupListener l : listeners) {
l.groupMemberHealth(player, hp, maxHP);
}
}
public void sendText(RoomEntity exception, TokenString audio, TokenString visual, TokenString both, TokenString any, String[] strings, RoomEntity... entities) {
for (Player p : players()) {
if (p == exception) {
continue;
}
p.sendText(true, audio, visual, both, any, strings, entities);
}
}
public void writeExternal(ObjectOutput out) throws IOException {
out.writeInt(1); }
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
in.readInt(); }
}