}
public void playerRemoved(AudioGroup audioGroup, Player player, AudioGroupPlayerInfo info) {
logger.fine("Player removed " + player + " group " + audioGroup.getId() + " info " + info);
WonderlandClientSender sender =
WonderlandContext.getCommsManager().getSender(AudioManagerConnectionType.CONNECTION_TYPE);
updateAttenuation(player);
if (info != null && info.isTransientMember) {
/*
* We don't necessarily have the presence info for the player so we have
* to send the call ID.
*/
sender.send(new VoiceChatTransientMemberMessage(audioGroup.getId(),
player.getId(), false));
}
PresenceInfo presenceInfo = playerMap.remove(player.getId());
if (presenceInfo == null) {
logger.warning("No presence Info for " + player.getId());
return;
}
handleBystanders(audioGroup, player, AudioGroupPlayerInfo.ChatType.PRIVATE);
sender.send(new VoiceChatLeaveMessage(audioGroup.getId(), presenceInfo, null));
}