fCraft.RankManager.Reset C# (CSharp) Method

Reset() static private method

Clears the list of ranks.
static private Reset ( ) : void
return void
        internal static void Reset() {
            if( PlayerDB.IsLoaded ) {
                throw new InvalidOperationException( "You may not reset ranks after PlayerDB has already been loaded." );
            }
            RanksByName = new Dictionary<string, Rank>();
            RanksByFullName = new Dictionary<string, Rank>();
            RanksByID = new Dictionary<string, Rank>();
            Ranks = new List<Rank>();
            DefaultRank = null;
            PatrolledRank = null;
            DefaultBuildRank = null;
            BlockDBAutoEnableRank = null;
        }

Usage Example

Example #1
0
        static void Load(bool reloading, bool loadRankList)
        {
            JsonObject root;
            bool       fromFile;

            // load file
            if (File.Exists(Paths.ConfigFileName))
            {
                try {
                    string raw = File.ReadAllText(Paths.ConfigFileName);
                    root     = new JsonObject(raw);
                    fromFile = true;
                } catch (SerializationException ex) {
                    string errorMsg = "Config.Load: Config file is not properly formatted: " + ex.Message;
                    throw new MisconfigurationException(errorMsg, ex);
                }
            }
            else
            {
                Logger.Log(LogType.Warning,
                           "Config.Load: Config file not found; using defaults.");
                root     = new JsonObject();
                fromFile = false;
            }

            // detect version number
            int version;

            if (root.TryGetInt("ConfigVersion", out version))
            {
                if (version < LowestSupportedVersion)
                {
                    Logger.Log(LogType.Warning,
                               "Config.Load: Your config file is too old to be loaded properly. " +
                               "Some settings will be lost or replaced with defaults. " +
                               "Please run ConfigGUI/ConfigCLI to make sure that everything is in order.");
                }
                else if (version != CurrentVersion)
                {
                    Logger.Log(LogType.Warning,
                               "Config.Load: Your config.xml was made for a different version of fCraft. " +
                               "Some obsolete settings might be ignored, and some recently-added settings will be set to defaults. " +
                               "It is recommended that you run ConfigGUI/ConfigCLI to make sure that everything is in order.");
                }
            }
            else if (fromFile)
            {
                Logger.Log(LogType.Warning,
                           "Config.Load: Version number missing from config file. It might be corrupted. " +
                           "Please run ConfigGUI/ConfigCLI to make sure that everything is in order.");
            }

            // read rank definitions
            if (loadRankList)
            {
                RankManager.Reset();
                // TODO: LoadRankList( config, fromFile );
            }

            // load log options
            ResetLogOptions();
            if (root.HasArray("ConsoleOptions"))
            {
                ReadLogOptions(root, "ConsoleOptions", Logger.ConsoleOptions);
            }
            else if (fromFile)
            {
                Logger.Log(LogType.Warning, "Config.Load: Using default console options.");
            }
            if (root.HasArray("LogFileOptions"))
            {
                ReadLogOptions(root, "LogFileOptions", Logger.LogFileOptions);
            }
            else if (fromFile)
            {
                Logger.Log(LogType.Warning, "Config.Load: Using default log file options.");
            }

            // load normal config keys
            JsonObject settings;

            if (root.TryGetObject("Settings", out settings))
            {
                foreach (var kvp in settings)
                {
                    ReadSetting(kvp.Key, kvp.Value);
                }
            }

            // apply rank-related settings
            if (!reloading)
            {
                RankManager.DefaultRank           = Rank.Parse(ConfigKey.DefaultRank.GetString());
                RankManager.DefaultBuildRank      = Rank.Parse(ConfigKey.DefaultBuildRank.GetString());
                RankManager.PatrolledRank         = Rank.Parse(ConfigKey.PatrolledRank.GetString());
                RankManager.BlockDBAutoEnableRank = Rank.Parse(ConfigKey.BlockDBAutoEnableRank.GetString());
            }

            // read PlayerDB settings
            JsonObject playerDBSettings;

            if (!reloading && root.TryGetObject("PlayerDB", out playerDBSettings))
            {
                ReadPlayerDBSettings(playerDBSettings);
            }

            // key relation validation
            if (ConfigKey.MaxPlayersPerWorld.GetInt() > ConfigKey.MaxPlayers.GetInt())
            {
                Logger.Log(LogType.Warning,
                           "Value of MaxPlayersPerWorld ({0}) was lowered to match MaxPlayers ({1}).",
                           ConfigKey.MaxPlayersPerWorld.GetInt(),
                           ConfigKey.MaxPlayers.GetInt());
                ConfigKey.MaxPlayersPerWorld.TrySetValue(ConfigKey.MaxPlayers.GetInt());
            }

            // raise Config.Reloaded, if applicable
            if (reloading)
            {
                RaiseReloadedEvent();
            }
        }
All Usage Examples Of fCraft.RankManager::Reset