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); } }