/// <summary> /// Deletes a guild /// </summary> public static bool DeleteGuild(string guildName) { try { Guild removeGuild = GetGuildByName(guildName); // Does guild exist, if not return false. if (removeGuild == null) { return(false); } var guilds = GameServer.Database.SelectObjects <DBGuild>("GuildName='" + GameServer.Database.Escape(guildName) + "'"); foreach (var guild in guilds) { foreach (var cha in GameServer.Database.SelectObjects <DOLCharacters>("GuildID = '" + GameServer.Database.Escape(guild.GuildID) + "'")) { cha.GuildID = ""; } GameServer.Database.DeleteObject(guild); } //[StephenxPimentel] We need to delete the guild specific ranks aswell! var ranks = GameServer.Database.SelectObjects <DBRank>("`GuildID` = '" + removeGuild.ID + "'"); foreach (var guildRank in ranks) { GameServer.Database.DeleteObject(guildRank); } lock (removeGuild.GetListOfOnlineMembers()) { foreach (GamePlayer ply in removeGuild.GetListOfOnlineMembers()) { ply.Guild = null; ply.GuildID = ""; ply.GuildName = ""; ply.GuildRank = null; } } RemoveGuild(removeGuild); return(true); } catch (Exception e) { if (log.IsErrorEnabled) { log.Error("DeleteGuild", e); } return(false); } }
/// <summary> /// Deletes a guild /// </summary> public static bool DeleteGuild(string guildName) { try { Guild removeGuild = GetGuildByName(guildName); // Does guild exist, if not return false. if (removeGuild == null) { return(false); } var guilds = DOLDB <DBGuild> .SelectObjects(DB.Column(nameof(DBGuild.GuildID)).IsEqualTo(removeGuild.GuildID)); foreach (var guild in guilds) { foreach (var cha in DOLDB <DOLCharacters> .SelectObjects(DB.Column(nameof(DOLCharacters.GuildID)).IsEqualTo(guild.GuildID))) { cha.GuildID = ""; } } GameServer.Database.DeleteObject(guilds); //[StephenxPimentel] We need to delete the guild specific ranks aswell! var ranks = DOLDB <DBRank> .SelectObjects(DB.Column(nameof(DBRank.GuildID)).IsEqualTo(removeGuild.GuildID)); GameServer.Database.DeleteObject(ranks); lock (removeGuild.GetListOfOnlineMembers()) { foreach (GamePlayer ply in removeGuild.GetListOfOnlineMembers()) { ply.Guild = null; ply.GuildID = ""; ply.GuildName = ""; ply.GuildRank = null; } } RemoveGuild(removeGuild); return(true); } catch (Exception e) { if (log.IsErrorEnabled) { log.Error("DeleteGuild", e); } return(false); } }