public static void OnCharacterJoinAlliance(CharacterRecord character, AllianceRecord alliance)
 {
     if (WorldServer.Instance.IsConnected(character.Id))
     {
         WorldClient client = WorldServer.Instance.GetOnlineClient(character.Id);
         client.Send(new AllianceJoinedMessage(alliance.GetAllianceInformations(), true));
         client.Character.LearnEmote(AllianceProvider.EMOTE_ID);
         client.Character.HumanOptions.Add(new HumanOptionAlliance(alliance.GetAllianceInformations(), (sbyte)0));
         client.Character.RefreshOnMapInstance();
     }
     else
     {
         character.KnownEmotes.Add(AllianceProvider.EMOTE_ID);
     }
 }
        public static void DeleteAlliance(int allianceId)
        {
            AllianceRecord             alliance = AllianceRecord.GetAlliance(allianceId);
            List <GuildAllianceRecord> members  = GuildAllianceRecord.GuildsAlliances.FindAll(x => x.AllianceId == allianceId);

            foreach (GuildAllianceRecord member in members)
            {
                foreach (WorldClient client in WorldServer.Instance.GetAllClientsOnline().FindAll(x => x.Character.GuildId == member.GuildId))
                {
                    AllianceRecord.OnCharacterLeftAlliance(client.Character);
                }
                member.RemoveElement();
            }
            //alliance.RemoveElement();
        }
 public bool KickFromAlliance(int guildId, WorldClient by)
 {
     if (GuildRecord.GetGuild(guildId) != null)
     {
         GuildAllianceRecord member = GuildAllianceRecord.GetCharacterAlliance(guildId);
         if (member != null || member.AllianceId == this.Id)
         {
             List <CharacterGuildRecord> charactersGuildRecord = CharacterGuildRecord.CharactersGuilds.FindAll(x => x.GuildId == guildId);
             foreach (CharacterGuildRecord characterGuild in charactersGuildRecord)
             {
                 Character character = WorldServer.Instance.GetOnlineClient(characterGuild.CharacterId).Character;
                 AllianceRecord.OnCharacterLeftAlliance(character);
             }
             member.RemoveElement();
             Logger.Log(AllianceRecord.CountGuildInAlliance(member.AllianceId));
             if (AllianceRecord.CountGuildInAlliance(member.AllianceId) < 1)
             {
                 AllianceRecord.DeleteAlliance(member.AllianceId);
             }
             return(true);
         }
     }
     return(false);
 }