public static bool DeleteRank(Rank deletedRank, Rank replacementRank) { if (deletedRank == null) { throw new ArgumentNullException("deletedRank"); } if (replacementRank == null) { throw new ArgumentNullException("replacementRank"); } if (PlayerDB.IsLoaded) { throw new InvalidOperationException("You may not add ranks after PlayerDB has already been loaded."); } bool rankLimitsChanged = false; Ranks.Remove(deletedRank); RanksByName.Remove(deletedRank.Name.ToLower()); RanksByID.Remove(deletedRank.ID); RanksByFullName.Remove(deletedRank.GetFullName()); LegacyRankMapping.Add(deletedRank.ID, replacementRank.ID); foreach (Rank rank in Ranks) { for (int i = 0; i < rank.PermissionLimits.Length; i++) { if (rank.GetLimit((Permission)i) == deletedRank) { rank.ResetLimit((Permission)i); rankLimitsChanged = true; } } } RebuildIndex(); return(rankLimitsChanged); }
/// <summary> Removes the specified rank from the list of available ranks </summary> /// <param name="deletedRank"> Rank to be deleted. </param> /// <param name="replacementRank"> Rank that will replace the deleted rank. </param> /// <returns> Whether or not the rank was succesfully deleted/replaced. </returns> /// <exception cref="ArgumentNullException"> If deletedRank or replacementRank is null. </exception> /// <exception cref="InvalidOperationException"> If PlayerDB is already loaded. </exception> public static bool DeleteRank([NotNull] Rank deletedRank, [NotNull] Rank replacementRank) { if (deletedRank == null) { throw new ArgumentNullException("deletedRank"); } if (replacementRank == null) { throw new ArgumentNullException("replacementRank"); } CheckIfPlayerDBLoaded(); bool rankLimitsChanged = false; Ranks.Remove(deletedRank); RanksByName.Remove(deletedRank.Name.ToLower()); RanksByID.Remove(deletedRank.ID); RanksByFullName.Remove(deletedRank.FullName); LegacyRankMapping.Add(deletedRank.ID, replacementRank.ID); foreach (Rank rank in Ranks) { for (int i = 0; i < rank.PermissionLimits.Length; i++) { if (rank.GetLimit((Permission)i) == deletedRank) { rank.ResetLimit((Permission)i); rankLimitsChanged = true; } } } RebuildIndex(); return(rankLimitsChanged); }
public static void RenameRank([NotNull] Rank rank, [NotNull] string newName) { if(rank == null) throw new ArgumentNullException("rank"); if(newName == null) throw new ArgumentNullException("newName"); RanksByName.Remove(rank.Name.ToLower()); rank.Name = newName; rank.FullName = rank.Name + "#" + rank.ID; RanksByName.Add(rank.Name.ToLower(), rank); }
public static void RenameRank(Rank rank, string newName) { if (rank == null) { throw new ArgumentNullException("rank"); } if (newName == null) { throw new ArgumentNullException("newName"); } RanksByName.Remove(rank.Name.ToLower()); rank.Name = newName; RanksByName.Add(rank.Name.ToLower(), rank); }
public static void RenameRank([NotNull] Rank rank, [NotNull] string newName) { if (rank == null) { throw new ArgumentNullException("rank"); } if (newName == null) { throw new ArgumentNullException("newName"); } CheckIfPlayerDBLoaded(); if (!RanksByName.Remove(rank.Name.ToLower())) { throw new ArgumentException("Cannot rename rank \"" + rank.Name + "\": rank not on the list yet.", "rank"); } rank.Name = newName; rank.FullName = rank.Name + "#" + rank.ID; RanksByName.Add(rank.Name.ToLower(), rank); }