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