void ChatManager::SendAlliance(const csString & sender, EID senderEID, psGuildAlliance * alliance, psChatMessage& msg)
{
    ClientIterator iter(*psserver->GetConnections());
    psGuildMember * member;

    while(iter.HasNext())
    {
        Client *client = iter.Next();
        if (!client->IsReady()) continue;
        if (client->GetAllianceID() != alliance->GetID()) continue;
        member = client->GetCharacterData()->GetGuildMembership();
        if ( (!member) || (!member->HasRights(RIGHTS_VIEW_CHAT_ALLIANCE)) ) continue;
        // Send the chat message
        psChatMessage newMsg(client->GetClientNum(), senderEID, sender, 0, msg.sText, msg.iChatType, msg.translate);
        newMsg.SendMessage();
        // The message is saved to the chat history of all the clients in the same alliance (PS#2789)
        client->GetActor()->LogChatMessage(sender.GetData(), msg);
    }
}