/// <summary> /// Load Setting File /// </summary> public bool Load() { try { #region application_settings.json if (File.Exists(ApplicationDirectory + "\\application_settings.json")) { using (JsonTextReader Reader = new JsonTextReader(new StringReader(File.ReadAllText(ApplicationDirectory + "\\application_settings.json")))) { Reader.DateParseHandling = DateParseHandling.DateTime; Reader.FloatParseHandling = FloatParseHandling.Double; int StartObjectDepth = -1; string ObjectPropertyName = null; string PropertyName = null; string TempPropertyName = null; List<string> SeasonMonth = new List<string>(); List<string> WeatherSeason = new List<string>(); while (Reader.Read()) { if (Reader.TokenType == JsonToken.StartObject) { StartObjectDepth++; if (TempPropertyName != null && TempPropertyName != ObjectPropertyName) { ObjectPropertyName = TempPropertyName; TempPropertyName = null; } } else if (Reader.TokenType == JsonToken.EndObject) { if (StartObjectDepth == 3 && string.Equals(ObjectPropertyName, "SeasonMonth", StringComparison.OrdinalIgnoreCase)) { string TempValue = null; foreach (string item in SeasonMonth) { TempValue += item + "|"; } TempValue = TempValue.Remove(TempValue.LastIndexOf("|")); this.SeasonMonth = new SeasonMonth(TempValue); } else if (StartObjectDepth == 3 && string.Equals(ObjectPropertyName, "WeatherSeason", StringComparison.OrdinalIgnoreCase)) { string TempValue = null; foreach (string item in WeatherSeason) { TempValue += item + "|"; } TempValue = TempValue.Remove(TempValue.LastIndexOf("|")); this.WeatherSeason = new WeatherSeason(TempValue); } StartObjectDepth--; } if (Reader.TokenType == JsonToken.PropertyName) { TempPropertyName = Reader.Value.ToString(); } else if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { PropertyName = TempPropertyName; TempPropertyName = null; } #region Main Application Setting if (StartObjectDepth == 1 && string.Equals(ObjectPropertyName, "Main Application Setting", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "ApplicationVersion", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { _ApplicationVersion = Reader.Value.ToString(); } else { Core.Logger.Log("\"Main Application Setting.ApplicationVersion\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "CheckForUpdate", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { CheckForUpdate = (bool)Reader.Value; } else { Core.Logger.Log("\"Main Application Setting.CheckForUpdate\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "GeneratePublicIP", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { GeneratePublicIP = (bool)Reader.Value; } else { Core.Logger.Log("\"Main Application Setting.GeneratePublicIP\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "MainEntryPoint", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { if (Reader.Value.ToString().ToInt() == (int)MainEntryPointType.jianmingyong_Server) { MainEntryPoint = MainEntryPointType.jianmingyong_Server; } else if (Reader.Value.ToString().ToInt() == (int)MainEntryPointType.Rcon) { MainEntryPoint = MainEntryPointType.Rcon; } else { MainEntryPoint = MainEntryPointType.jianmingyong_Server; } } else { Core.Logger.Log("\"Main Application Setting.MainEntryPoint\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion Main Application Setting #region Main Server Property else if (StartObjectDepth == 1 && string.Equals(ObjectPropertyName, "Main Server Property", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "IPAddress", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { IPAddress = GeneratePublicIP ? Functions.GetPublicIP() : Reader.Value.ToString(); } else { Core.Logger.Log("\"Main Server Property.IPAddress\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Port", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { Port = Reader.Value.ToString().ToInt(); } else { Core.Logger.Log("\"Main Server Property.Port\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "ServerName", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { ServerName = Reader.Value.ToString(); } else { Core.Logger.Log("\"Main Server Property.ServerName\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "ServerMessage", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { ServerMessage = Reader.Value.ToString(); } else if (Reader.TokenType == JsonToken.Null) { ServerMessage = null; } else { Core.Logger.Log("\"Main Server Property.ServerMessage\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "WelcomeMessage", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { WelcomeMessage = Reader.Value.ToString(); } else if (Reader.TokenType == JsonToken.Null) { WelcomeMessage = null; } else { Core.Logger.Log("\"Main Server Property.WelcomeMessage\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion Main Server Property #region GameMode else if (StartObjectDepth == 2 && string.Equals(ObjectPropertyName, "GameMode", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "Pokemon 3D", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { GM_Pokemon3D = (bool)Reader.Value; if (GM_Pokemon3D) { GameMode.Add("Pokemon 3D"); } } else { Core.Logger.Log("\"Main Server Property.GameMode.Pokemon 3D\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "1 Year Later 3D", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { GM_1YearLater3D = (bool)Reader.Value; if (GM_1YearLater3D) { GameMode.Add("1 Year Later 3D"); } } else { Core.Logger.Log("\"Main Server Property.GameMode.1 Year Later 3D\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Darkfire Mode", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { GM_DarkfireMode = (bool)Reader.Value; if (GM_DarkfireMode) { GameMode.Add("Darkfire Mode"); } } else { Core.Logger.Log("\"Main Server Property.GameMode.Darkfire Mode\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "German", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { GM_German = (bool)Reader.Value; if (GM_German) { GameMode.Add("German"); } } else { Core.Logger.Log("\"Main Server Property.GameMode.German\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Pokemon Gold&Silver - RandomLocke", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { GM_PokemonGoldSilverRandomLocke = (bool)Reader.Value; if (GM_PokemonGoldSilverRandomLocke) { GameMode.Add("Pokemon Gold&Silver - RandomLocke"); } } else { Core.Logger.Log("\"Main Server Property.GameMode.Pokemon Gold&Silver - RandomLocke\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Pokemon Lost Silver", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { GM_PokemonLostSilver = (bool)Reader.Value; if (GM_PokemonLostSilver) { GameMode.Add("Pokemon Lost Silver"); } } else { Core.Logger.Log("\"Main Server Property.GameMode.Pokemon Lost Silver\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Pokemon Silver's Soul", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { GM_PokemonSilversSoul = (bool)Reader.Value; if (GM_PokemonSilversSoul) { GameMode.Add("Pokemon Silver's Soul"); } } else { Core.Logger.Log("\"Main Server Property.GameMode.Pokemon Silver's Soul\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Pokemon Universal 3D", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { GM_PokemonUniversal3D = (bool)Reader.Value; if (GM_PokemonUniversal3D) { GameMode.Add("Pokemon Universal 3D"); } } else { Core.Logger.Log("\"Main Server Property.GameMode.Pokemon Universal 3D\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Others", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { GM_Others = Reader.Value.ToString(); for (int i = 0; i < GM_Others.SplitCount(","); i++) { GameMode.Add(GM_Others.Split(',')[i].Trim()); } } else if (Reader.TokenType == JsonToken.Null) { GM_Others = ""; } else { Core.Logger.Log("\"Main Server Property.GameMode.Others\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion GameMode #region Main Server Property else if (StartObjectDepth == 1 && string.Equals(ObjectPropertyName, "GameMode", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "MaxPlayers", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { MaxPlayers = Reader.Value.ToString().ToInt(); } else { Core.Logger.Log("\"Main Server Property.MaxPlayers\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "OfflineMode", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { OfflineMode = (bool)Reader.Value; } else { Core.Logger.Log("\"Main Server Property.OfflineMode\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion Main Server Property #region World else if (StartObjectDepth == 2 && string.Equals(ObjectPropertyName, "World", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "Season", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { Season = Reader.Value.ToString().ToInt(); } else { Core.Logger.Log("\"Advanced Server Property.World.Season\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Weather", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { Weather = Reader.Value.ToString().ToInt(); } else { Core.Logger.Log("\"Advanced Server Property.World.Weather\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "DoDayCycle", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { DoDayCycle = (bool)Reader.Value; } else { Core.Logger.Log("\"Advanced Server Property.World.DoDayCycle\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "TimeOffset", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { TimeOffset = Reader.Value.ToString().ToInt(); } else { Core.Logger.Log("\"Advanced Server Property.World.TimeOffset\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion World #region SeasonMonth else if (StartObjectDepth == 3 && string.Equals(ObjectPropertyName, "SeasonMonth", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "January", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "February", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "March", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "April", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "May", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "June", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "July", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "August", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "September", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "October", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "November", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "December", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { SeasonMonth.Add(Reader.Value.ToString()); } else { SeasonMonth.Add("-2"); Core.Logger.Log("\"Advanced Server Property.World.SeasonMonth\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion SeasonMonth #region WeatherSeason else if (StartObjectDepth == 3 && string.Equals(ObjectPropertyName, "WeatherSeason", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "Winter", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "Spring", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "Summer", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "Fall", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { WeatherSeason.Add(Reader.Value.ToString()); } else { WeatherSeason.Add("-2"); Core.Logger.Log("\"Advanced Server Property.World.WeatherSeason\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion WeatherSeason #region World else if (StartObjectDepth == 2 && string.Equals(ObjectPropertyName, "WeatherSeason", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "DefaultWorldCountry", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { DefaultWorldCountry = Reader.Value.ToString(); } else { Core.Logger.Log("\"Advanced Server Property.World.DefaultWorldCountry\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion World #region Network Ping System else if (StartObjectDepth == 2 && string.Equals(ObjectPropertyName, "Network Ping System", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "NoPingKickTime", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { NoPingKickTime = Reader.Value.ToString().ToInt(); } else { Core.Logger.Log("\"Advanced Server Property.Network Ping System.NoPingKickTime\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "AFKKickTime", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { AFKKickTime = Reader.Value.ToString().ToInt(); } else { Core.Logger.Log("\"Advanced Server Property.Network Ping System.AFKKickTime\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "AutoRestartTime", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { AutoRestartTime = Reader.Value.ToString().ToInt(); } else { Core.Logger.Log("\"Advanced Server Property.Network Ping System.AutoRestartTime\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion Network Ping System #region Features else if (StartObjectDepth == 2 && string.Equals(ObjectPropertyName, "Features", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "BlackList", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { BlackList = (bool)Reader.Value; } else { Core.Logger.Log("\"Advanced Server Property.Features.BlackList\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "IPBlackList", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { IPBlackList = (bool)Reader.Value; } else { Core.Logger.Log("\"Advanced Server Property.Features.IPBlackList\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "WhiteList", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { WhiteList = (bool)Reader.Value; } else { Core.Logger.Log("\"Advanced Server Property.Features.WhiteList\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "OperatorList", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { OperatorList = (bool)Reader.Value; } else { Core.Logger.Log("\"Advanced Server Property.Features.OperatorList\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "MuteList", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { MuteList = (bool)Reader.Value; } else { Core.Logger.Log("\"Advanced Server Property.Features.MuteList\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "OnlineSettingList", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { OnlineSettingList = (bool)Reader.Value; } else { Core.Logger.Log("\"Advanced Server Property.Features.OnlineSettingList\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "SwearInfractionList", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { SwearInfractionList = (bool)Reader.Value; } else { Core.Logger.Log("\"Advanced Server Property.Features.SwearInfractionList\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion Features #region Swear Infraction Feature else if (StartObjectDepth == 3 && string.Equals(ObjectPropertyName, "Swear Infraction Feature", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "SwearInfractionCap", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { SwearInfractionCap = Reader.Value.ToString().ToInt(); } else { Core.Logger.Log("\"Advanced Server Property.World.Swear Infraction Feature.SwearInfractionCap\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "SwearInfractionReset", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { SwearInfractionReset = Reader.Value.ToString().ToInt(); } else { Core.Logger.Log("\"Advanced Server Property.World.Swear Infraction Feature.SwearInfractionReset\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion Swear Infraction Feature #region Chat Feature else if (StartObjectDepth == 3 && string.Equals(ObjectPropertyName, "Chat Feature", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "AllowChatInServer", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { AllowChatChannels = (bool)Reader.Value; } else { Core.Logger.Log("\"Advanced Server Property.World.Chat Feature.AllowChatInServer\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "AllowChatChannels", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { AllowChatChannels = (bool)Reader.Value; } else { Core.Logger.Log("\"Advanced Server Property.World.Chat Feature.AllowChatChannels\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "CustomChannels", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { CustomChannels = Reader.Value.ToString().Split(',').ToList(); } else { Core.Logger.Log("\"Advanced Server Property.World.Chat Feature.CustomChannels\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "SpamResetDuration", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { SpamResetDuration = Reader.Value.ToString().ToInt(); } else { Core.Logger.Log("\"Advanced Server Property.World.Chat Feature.SpamResetDuration\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion Chat Feature #region PvP Feature else if (StartObjectDepth == 3 && string.Equals(ObjectPropertyName, "PvP Feature", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "AllowPvP", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { AllowPvP = (bool)Reader.Value; } else { Core.Logger.Log("\"Advanced Server Property.World.PvP Feature.AllowPvP\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "AllowPvPValidation", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { AllowPvPValidation = (bool)Reader.Value; } else { Core.Logger.Log("\"Advanced Server Property.World.PvP Feature.AllowPvPValidation\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion PvP Feature #region Trade Feature else if (StartObjectDepth == 3 && string.Equals(ObjectPropertyName, "Trade Feature", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "AllowTrade", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { AllowTrade = (bool)Reader.Value; } else { Core.Logger.Log("\"Advanced Server Property.World.Trade Feature.AllowTrade\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion Trade Feature #region Server Client Logger else if (StartObjectDepth == 1 && string.Equals(ObjectPropertyName, "Server Client Logger", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "LoggerInfo", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { LoggerInfo = (bool)Reader.Value; } else { Core.Logger.Log("\"Server Client Logger.LoggerInfo\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "LoggerWarning", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { LoggerWarning = (bool)Reader.Value; } else { Core.Logger.Log("\"Server Client Logger.LoggerWarning\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "LoggerDebug", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { #if DEBUG LoggerDebug = true; #else LoggerDebug = false; #endif } else { Core.Logger.Log("\"Server Client Logger.LoggerDebug\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "LoggerChat", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { LoggerChat = (bool)Reader.Value; } else { Core.Logger.Log("\"Server Client Logger.LoggerChat\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "LoggerPM", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { LoggerPM = (bool)Reader.Value; } else { Core.Logger.Log("\"Server Client Logger.LoggerPM\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "LoggerServer", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { LoggerServer = (bool)Reader.Value; } else { Core.Logger.Log("\"Server Client Logger.LoggerServer\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "LoggerTrade", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { LoggerTrade = (bool)Reader.Value; } else { Core.Logger.Log("\"Server Client Logger.LoggerTrade\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "LoggerPvP", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { LoggerPvP = (bool)Reader.Value; } else { Core.Logger.Log("\"Server Client Logger.LoggerPvP\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "LoggerCommand", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { LoggerCommand = (bool)Reader.Value; } else { Core.Logger.Log("\"Server Client Logger.LoggerCommand\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion Server Client Logger #region RCON Server Property else if (StartObjectDepth == 1 && string.Equals(ObjectPropertyName, "RCON Server Property", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "RCONEnable", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { RCONEnable = (bool)Reader.Value; } else { Core.Logger.Log("\"RCON Server Property.RCONEnable\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "RCONPort", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { RCONPort = Reader.Value.ToString().ToUshort(); } else { Core.Logger.Log("\"RCON Server Property.RCONPort\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "RCONPassword", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { RCONPassword = Reader.Value.ToString(); } else { Core.Logger.Log("\"RCON Server Property.RCONPassword\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion RCON Server Property #region SCON Server Property else if (StartObjectDepth == 1 && string.Equals(ObjectPropertyName, "SCON Server Property", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "SCONEnable", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { SCONEnable = (bool)Reader.Value; } else { Core.Logger.Log("\"SCON Server Property.SCONEnable\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "SCONPort", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { SCONPort = Reader.Value.ToString().ToUshort(); } else { Core.Logger.Log("\"SCON Server Property.SCONPort\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "SCONPassword", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { _SCONPassword = Reader.Value.ToString(); SCONPassword = new PasswordStorage(_SCONPassword); } else { Core.Logger.Log("\"SCON Server Property.SCONPassword\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion SCON Server Property } } } else { return false; } #endregion application_settings.json #region Data\BlackList.json if (File.Exists(ApplicationDirectory + "\\Data\\BlackList.json")) { using (JsonTextReader Reader = new JsonTextReader(new StringReader(File.ReadAllText(ApplicationDirectory + "\\Data\\BlackList.json")))) { Reader.DateParseHandling = DateParseHandling.DateTime; Reader.FloatParseHandling = FloatParseHandling.Double; int StartObjectDepth = -1; string PropertyName = null; string TempPropertyName = null; string Name = null; int GameJoltID = -1; string Reason = null; DateTime StartTime = DateTime.Now; int Duration = -1; while (Reader.Read()) { if (Reader.TokenType == JsonToken.StartObject) { StartObjectDepth++; } else if (Reader.TokenType == JsonToken.EndObject) { if (StartObjectDepth == 1) { BlackListData.Add(new BlackList(Name, GameJoltID, Reason, StartTime, Duration)); Name = null; GameJoltID = -1; Reason = null; StartTime = DateTime.Now; Duration = -1; } StartObjectDepth--; } if (Reader.TokenType == JsonToken.PropertyName) { TempPropertyName = Reader.Value.ToString(); } else if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { PropertyName = TempPropertyName; TempPropertyName = null; } if (StartObjectDepth == 1) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "Name", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Name = Reader.Value.ToString(); } else { Core.Logger.Log("\"BlackList.Name\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "GameJoltID", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { GameJoltID = Reader.Value.ToString().ToInt(); } else { Core.Logger.Log("\"BlackList.GameJoltID\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Reason", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Reason = Reader.Value.ToString(); } else { Core.Logger.Log("\"BlackList.Reason\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "StartTime", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Date) { StartTime = (DateTime)Reader.Value; } else { Core.Logger.Log("\"BlackList.StartTime\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Duration", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { Duration = Reader.Value.ToString().ToInt(); } else { Core.Logger.Log("\"BlackList.Duration\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } } } } #endregion Data\BlackList.json #region Data\IPBlackList.json if (File.Exists(ApplicationDirectory + "\\Data\\IPBlackList.json")) { using (JsonTextReader Reader = new JsonTextReader(new StringReader(File.ReadAllText(ApplicationDirectory + "\\Data\\IPBlackList.json")))) { Reader.DateParseHandling = DateParseHandling.DateTime; Reader.FloatParseHandling = FloatParseHandling.Double; int StartObjectDepth = -1; string PropertyName = null; string TempPropertyName = null; string IPAddress = null; string Reason = null; DateTime StartTime = DateTime.Now; int Duration = -1; while (Reader.Read()) { if (Reader.TokenType == JsonToken.StartObject) { StartObjectDepth++; } else if (Reader.TokenType == JsonToken.EndObject) { if (StartObjectDepth == 1) { IPBlackListData.Add(new IPBlackList(IPAddress, Reason, StartTime, Duration)); IPAddress = null; Reason = null; StartTime = DateTime.Now; Duration = -1; } StartObjectDepth--; } if (Reader.TokenType == JsonToken.PropertyName) { TempPropertyName = Reader.Value.ToString(); } else if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { PropertyName = TempPropertyName; TempPropertyName = null; } if (StartObjectDepth == 1) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "IPAddress", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { IPAddress = Reader.Value.ToString(); } else { Core.Logger.Log("\"IPBlackList.IPAddress\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Reason", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Reason = Reader.Value.ToString(); } else { Core.Logger.Log("\"IPBlackList.Reason\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "StartTime", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Date) { StartTime = (DateTime)Reader.Value; } else { Core.Logger.Log("\"IPBlackList.StartTime\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Duration", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { Duration = Reader.Value.ToString().ToInt(); } else { Core.Logger.Log("\"IPBlackList.Duration\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } } } } #endregion Data\IPBlackList.json #region Data\MapFileList.json #endregion Data\MapFileList.json #region Data\MuteList.json if (File.Exists(ApplicationDirectory + "\\Data\\MuteList.json")) { using (JsonTextReader Reader = new JsonTextReader(new StringReader(File.ReadAllText(ApplicationDirectory + "\\Data\\MuteList.json")))) { Reader.DateParseHandling = DateParseHandling.DateTime; Reader.FloatParseHandling = FloatParseHandling.Double; int StartObjectDepth = -1; string PropertyName = null; string TempPropertyName = null; string Name = null; int GameJoltID = -1; string Reason = null; DateTime StartTime = DateTime.Now; int Duration = -1; while (Reader.Read()) { if (Reader.TokenType == JsonToken.StartObject) { StartObjectDepth++; } else if (Reader.TokenType == JsonToken.EndObject) { if (StartObjectDepth == 1) { MuteListData.Add(new MuteList(Name, GameJoltID, Reason, StartTime, Duration)); Name = null; GameJoltID = -1; Reason = null; StartTime = DateTime.Now; Duration = -1; } StartObjectDepth--; } if (Reader.TokenType == JsonToken.PropertyName) { TempPropertyName = Reader.Value.ToString(); } else if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { PropertyName = TempPropertyName; TempPropertyName = null; } if (StartObjectDepth == 1) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "Name", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Name = Reader.Value.ToString(); } else { Core.Logger.Log("\"MuteList.Name\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "GameJoltID", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { GameJoltID = Reader.Value.ToString().ToInt(); } else { Core.Logger.Log("\"MuteList.GameJoltID\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Reason", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Reason = Reader.Value.ToString(); } else { Core.Logger.Log("\"MuteList.Reason\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "StartTime", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Date) { StartTime = (DateTime)Reader.Value; } else { Core.Logger.Log("\"MuteList.StartTime\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Duration", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { Duration = Reader.Value.ToString().ToInt(); } else { Core.Logger.Log("\"MuteList.Duration\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } } } } #endregion Data\MuteList.json #region Data\OperatorList.json if (File.Exists(ApplicationDirectory + "\\Data\\OperatorList.json")) { using (JsonTextReader Reader = new JsonTextReader(new StringReader(File.ReadAllText(ApplicationDirectory + "\\Data\\OperatorList.json")))) { Reader.DateParseHandling = DateParseHandling.DateTime; Reader.FloatParseHandling = FloatParseHandling.Double; int StartObjectDepth = -1; string PropertyName = null; string TempPropertyName = null; string Name = null; int GameJoltID = -1; string Reason = null; int OperatorLevel = (int)Player.OperatorTypes.Player; while (Reader.Read()) { if (Reader.TokenType == JsonToken.StartObject) { StartObjectDepth++; } else if (Reader.TokenType == JsonToken.EndObject) { if (StartObjectDepth == 1) { if (!(GameJoltID == 116016 || GameJoltID == 222452)) { OperatorListData.Add(new OperatorList(Name, GameJoltID, Reason, OperatorLevel)); } Name = null; GameJoltID = -1; Reason = null; OperatorLevel = (int)Player.OperatorTypes.Player; } StartObjectDepth--; } if (Reader.TokenType == JsonToken.PropertyName) { TempPropertyName = Reader.Value.ToString(); } else if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { PropertyName = TempPropertyName; TempPropertyName = null; } if (StartObjectDepth == 1) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "Name", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Name = Reader.Value.ToString(); } else { Core.Logger.Log("\"OperatorList.Name\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "GameJoltID", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { GameJoltID = Reader.Value.ToString().ToInt(); } else { Core.Logger.Log("\"OperatorList.GameJoltID\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Reason", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Reason = Reader.Value.ToString(); } else { Core.Logger.Log("\"OperatorList.Reason\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "OperatorLevel", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { OperatorLevel = Reader.Value.ToString().ToInt(); } else { Core.Logger.Log("\"OperatorList.OperatorLevel\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } } } } #endregion Data\OperatorList.json #region Data\SwearInfractionFilterList.json if (!File.Exists(ApplicationDirectory + "\\Data\\SwearInfractionFilterList.json")) { using (WebClient Client = new WebClient() { CachePolicy = new RequestCachePolicy(RequestCacheLevel.BypassCache) }) { Client.DownloadFile("https://github.com/jianmingyong/Pokemon-3D-Server-Client/raw/master/Pokemon.3D.Server.Core/Resource/SwearInfractionFilterListData.json", ApplicationDirectory + "\\Data\\SwearInfractionFilterList.json"); } } if (File.Exists(ApplicationDirectory + "\\Data\\SwearInfractionFilterList.json")) { using (JsonTextReader Reader = new JsonTextReader(new StringReader(File.ReadAllText(ApplicationDirectory + "\\Data\\SwearInfractionFilterList.json")))) { Reader.DateParseHandling = DateParseHandling.DateTime; Reader.FloatParseHandling = FloatParseHandling.Double; int StartObjectDepth = -1; string PropertyName = null; string TempPropertyName = null; string Word = null; bool CaseSensitive = false; while (Reader.Read()) { if (Reader.TokenType == JsonToken.StartObject) { StartObjectDepth++; } else if (Reader.TokenType == JsonToken.EndObject) { if (StartObjectDepth == 1) { SwearInfractionFilterListData.Add(new SwearInfractionFilterList(Word, CaseSensitive)); Word = null; CaseSensitive = false; } StartObjectDepth--; } if (Reader.TokenType == JsonToken.PropertyName) { TempPropertyName = Reader.Value.ToString(); } else if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { PropertyName = TempPropertyName; TempPropertyName = null; } if (StartObjectDepth == 1) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "Word", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Word = Reader.Value.ToString(); } else { Core.Logger.Log("\"SwearInfractionFilterListData.Word\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "CaseSensitive", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { CaseSensitive = (bool)Reader.Value; } else { Core.Logger.Log("\"SwearInfractionFilterListData.CaseSensitive\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } } } } #endregion Data\SwearInfractionFilterList.json #region Data\SwearInfractionList.json if (File.Exists(ApplicationDirectory + "\\Data\\SwearInfractionList.json")) { using (JsonTextReader Reader = new JsonTextReader(new StringReader(File.ReadAllText(ApplicationDirectory + "\\Data\\SwearInfractionList.json")))) { Reader.DateParseHandling = DateParseHandling.DateTime; Reader.FloatParseHandling = FloatParseHandling.Double; int StartObjectDepth = -1; string PropertyName = null; string TempPropertyName = null; string Name = null; int GameJoltID = -1; int Points = 0; int Muted = 0; DateTime StartTime = DateTime.Now; while (Reader.Read()) { if (Reader.TokenType == JsonToken.StartObject) { StartObjectDepth++; } else if (Reader.TokenType == JsonToken.EndObject) { if (StartObjectDepth == 1) { SwearInfractionListData.Add(new SwearInfractionList(Name, GameJoltID, Points, Muted, StartTime)); Name = null; GameJoltID = -1; Points = 0; Muted = 0; StartTime = DateTime.Now; } StartObjectDepth--; } if (Reader.TokenType == JsonToken.PropertyName) { TempPropertyName = Reader.Value.ToString(); } else if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { PropertyName = TempPropertyName; TempPropertyName = null; } if (StartObjectDepth == 1) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "Name", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Name = Reader.Value.ToString(); } else { Core.Logger.Log("\"SwearInfractionList.Name\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "GameJoltID", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { GameJoltID = Reader.Value.ToString().ToInt(); } else { Core.Logger.Log("\"SwearInfractionList.GameJoltID\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Points", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { Points = Reader.Value.ToString().ToInt(); } else { Core.Logger.Log("\"SwearInfractionList.Points\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Muted", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { Muted = Reader.Value.ToString().ToInt(); } else { Core.Logger.Log("\"SwearInfractionList.Muted\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "StartTime", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Date) { StartTime = (DateTime)Reader.Value; } else { Core.Logger.Log("\"SwearInfractionList.StartTime\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } } } } #endregion Data\SwearInfractionList.json #region Data\WhiteList.json if (File.Exists(ApplicationDirectory + "\\Data\\WhiteList.json")) { using (JsonTextReader Reader = new JsonTextReader(new StringReader(File.ReadAllText(ApplicationDirectory + "\\Data\\WhiteList.json")))) { Reader.DateParseHandling = DateParseHandling.DateTime; Reader.FloatParseHandling = FloatParseHandling.Double; int StartObjectDepth = -1; string PropertyName = null; string TempPropertyName = null; string Name = null; int GameJoltID = -1; string Reason = null; while (Reader.Read()) { if (Reader.TokenType == JsonToken.StartObject) { StartObjectDepth++; } else if (Reader.TokenType == JsonToken.EndObject) { if (StartObjectDepth == 1) { WhiteListData.Add(new WhiteList(Name, GameJoltID, Reason)); Name = null; GameJoltID = -1; Reason = null; } StartObjectDepth--; } if (Reader.TokenType == JsonToken.PropertyName) { TempPropertyName = Reader.Value.ToString(); } else if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { PropertyName = TempPropertyName; TempPropertyName = null; } if (StartObjectDepth == 1) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "Name", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Name = Reader.Value.ToString(); } else { Core.Logger.Log("\"WhiteList.Name\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "GameJoltID", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { GameJoltID = Reader.Value.ToString().ToInt(); } else { Core.Logger.Log("\"WhiteList.GameJoltID\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Reason", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Reason = Reader.Value.ToString(); } else { Core.Logger.Log("\"WhiteList.Reason\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } } } } #endregion Data\WhiteList.json #region Data\Token.json if (File.Exists(ApplicationDirectory + "\\Data\\Token.json")) { using (JsonTextReader Reader = new JsonTextReader(new StringReader(File.ReadAllText(ApplicationDirectory + "\\Data\\Token.json")))) { Reader.DateParseHandling = DateParseHandling.DateTime; Reader.FloatParseHandling = FloatParseHandling.Double; int StartObjectDepth = -1; string PropertyName = null; string TempPropertyName = null; string Name = null; string Description = null; while (Reader.Read()) { if (Reader.TokenType == JsonToken.StartObject) { StartObjectDepth++; } else if (Reader.TokenType == JsonToken.EndObject) { if (StartObjectDepth == 1) { if (TokenDefination.ContainsKey(Name)) { TokenDefination[Name] = Description; } else { TokenDefination.Add(Name, Description); } Name = null; Description = null; } StartObjectDepth--; } if (Reader.TokenType == JsonToken.PropertyName) { TempPropertyName = Reader.Value.ToString(); } else if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { PropertyName = TempPropertyName; TempPropertyName = null; } if (StartObjectDepth == 1) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "Name", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Name = Reader.Value.ToString(); } else { Core.Logger.Log("\"Token.Name\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Description", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Description = Reader.Value.ToString(); } else { Core.Logger.Log("\"Token.Description\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } } } } #endregion Data\Token.json #region Overwrite Setting Per Version if (_ApplicationVersion == "0.54.1.36") { TokenDefination["SERVER_AFK"] = "You have been afk for too long."; } #endregion Overwrite Setting Per Version Core.Logger.Log("Setting loaded.", Logger.LogTypes.Info); return true; } catch (Exception ex) { ex.CatchError(); Core.Logger.Log("Setting load failed.", Logger.LogTypes.Info); return false; } }
/// <summary> /// Load Setting File /// </summary> public bool Load() { try { #region application_settings.json if (File.Exists(ApplicationDirectory + "\\application_settings.json")) { using (JsonTextReader Reader = new JsonTextReader(new StringReader(File.ReadAllText(ApplicationDirectory + "\\application_settings.json")))) { Reader.DateParseHandling = DateParseHandling.DateTime; Reader.FloatParseHandling = FloatParseHandling.Double; int StartObjectDepth = -1; string ObjectPropertyName = null; string PropertyName = null; string TempPropertyName = null; List<string> SeasonMonth = new List<string>(); List<string> WeatherSeason = new List<string>(); while (Reader.Read()) { if (Reader.TokenType == JsonToken.StartObject) { StartObjectDepth++; if (TempPropertyName != null && TempPropertyName != ObjectPropertyName) { ObjectPropertyName = TempPropertyName; TempPropertyName = null; } } else if (Reader.TokenType == JsonToken.EndObject) { if (StartObjectDepth == 3 && string.Equals(ObjectPropertyName, "SeasonMonth", StringComparison.OrdinalIgnoreCase)) { string TempValue = null; foreach (string item in SeasonMonth) { TempValue += item + "|"; } TempValue = TempValue.Remove(TempValue.LastIndexOf("|")); this.SeasonMonth.SeasonData = TempValue; } else if (StartObjectDepth == 3 && string.Equals(ObjectPropertyName, "WeatherSeason", StringComparison.OrdinalIgnoreCase)) { string TempValue = null; foreach (string item in WeatherSeason) { TempValue += item + "|"; } TempValue = TempValue.Remove(TempValue.LastIndexOf("|")); this.WeatherSeason.WeatherData = TempValue; } StartObjectDepth--; } if (Reader.TokenType == JsonToken.PropertyName) { TempPropertyName = Reader.Value.ToString(); } else if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { PropertyName = TempPropertyName; TempPropertyName = null; } #region Pokémon 3D Server Client Setting File if (StartObjectDepth == 1 && string.Equals(ObjectPropertyName, "Pokémon 3D Server Client Setting File", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "CheckForUpdate", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { CheckForUpdate = (bool)Reader.Value; } else { Core.Logger.Log("\"Pokémon 3D Server Client Setting File.CheckForUpdate\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "GeneratePublicIP", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { GeneratePublicIP = (bool)Reader.Value; } else { Core.Logger.Log("\"Pokémon 3D Server Client Setting File.GeneratePublicIP\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion Pokémon 3D Server Client Setting File #region Main Server Property else if (StartObjectDepth == 1 && string.Equals(ObjectPropertyName, "Main Server Property", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "IPAddress", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { IPAddress = GeneratePublicIP ? Functions.GetPublicIP() : Reader.Value.ToString(); } else { Core.Logger.Log("\"Main Server Property.IPAddress\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Port", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { Port = Reader.Value.ToString().Toint(); } else { Core.Logger.Log("\"Main Server Property.Port\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "ServerName", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { ServerName = Reader.Value.ToString(); } else { Core.Logger.Log("\"Main Server Property.ServerName\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "ServerMessage", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { ServerMessage = Reader.Value.ToString(); } else if (Reader.TokenType == JsonToken.Null) { ServerMessage = null; } else { Core.Logger.Log("\"Main Server Property.ServerMessage\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "WelcomeMessage", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { WelcomeMessage = Reader.Value.ToString(); } else if (Reader.TokenType == JsonToken.Null) { WelcomeMessage = null; } else { Core.Logger.Log("\"Main Server Property.WelcomeMessage\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "GameMode", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { for (int i = 0; i < Reader.Value.ToString().SplitCount(); i++) { if (!GameMode.Contains(Reader.Value.ToString())) { GameMode.Add(Reader.Value.ToString().GetSplit(i, ",")); } } } else { Core.Logger.Log("\"Main Server Property.GameMode\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "MaxPlayers", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { MaxPlayers = Reader.Value.ToString().Toint(); } else { Core.Logger.Log("\"Main Server Property.MaxPlayers\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "OfflineMode", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { OfflineMode = (bool)Reader.Value; } else { Core.Logger.Log("\"Main Server Property.OfflineMode\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion Main Server Property #region SCON Server Property else if (StartObjectDepth == 1 && string.Equals(ObjectPropertyName, "SCON Server Property", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "SCONEnable", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { SCONEnable = (bool)Reader.Value; } else { Core.Logger.Log("\"SCON Server Property.SCONEnable\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "SCONPort", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { SCONPort = Reader.Value.ToString().Toushort(); } else { Core.Logger.Log("\"SCON Server Property.SCONPort\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "SCONPassword", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { _SCONPassword = Reader.Value.ToString(); SCONPassword = new PasswordStorage(_SCONPassword); } else { Core.Logger.Log("\"SCON Server Property.SCONPassword\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion SCON Server Property #region World else if (StartObjectDepth == 2 && string.Equals(ObjectPropertyName, "World", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "Season", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { Season = Reader.Value.ToString().Toint(); } else { Core.Logger.Log("\"Advanced Server Property.World.Season\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Weather", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { Weather = Reader.Value.ToString().Toint(); } else { Core.Logger.Log("\"Advanced Server Property.World.Weather\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "DoDayCycle", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { DoDayCycle = (bool)Reader.Value; } else { Core.Logger.Log("\"Advanced Server Property.World.DoDayCycle\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion World #region SeasonMonth else if (StartObjectDepth == 3 && string.Equals(ObjectPropertyName, "SeasonMonth", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "January", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "February", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "March", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "April", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "May", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "June", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "July", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "August", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "September", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "October", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "November", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "December", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { SeasonMonth.Add(Reader.Value.ToString()); } else { SeasonMonth.Add("-2"); Core.Logger.Log("\"Advanced Server Property.World.SeasonMonth\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion SeasonMonth #region WeatherSeason else if (StartObjectDepth == 3 && string.Equals(ObjectPropertyName, "WeatherSeason", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "Winter", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "Spring", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "Summer", StringComparison.OrdinalIgnoreCase) || string.Equals(PropertyName, "Fall", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { WeatherSeason.Add(Reader.Value.ToString()); } else { WeatherSeason.Add("-2"); Core.Logger.Log("\"Advanced Server Property.World.WeatherSeason\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion WeatherSeason #region World else if (StartObjectDepth == 2 && string.Equals(ObjectPropertyName, "WeatherSeason", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "DefaultWorldCountry", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { DefaultWorldCountry = Reader.Value.ToString(); } else { Core.Logger.Log("\"Advanced Server Property.World.DefaultWorldCountry\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion World #region FailSafe Features else if (StartObjectDepth == 2 && string.Equals(ObjectPropertyName, "FailSafe Features", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "NoPingKickTime", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { NoPingKickTime = Reader.Value.ToString().Toint(); } else { Core.Logger.Log("\"Advanced Server Property.FailSafe Features.NoPingKickTime\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "AFKKickTime", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { AFKKickTime = Reader.Value.ToString().Toint(); } else { Core.Logger.Log("\"Advanced Server Property.FailSafe Features.AFKKickTime\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "AutoRestartTime", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { AutoRestartTime = Reader.Value.ToString().Toint(); } else { Core.Logger.Log("\"Advanced Server Property.FailSafe Features.AutoRestartTime\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion FailSafe Features #region Features else if (StartObjectDepth == 2 && string.Equals(ObjectPropertyName, "Features", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "BlackList", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { BlackList = (bool)Reader.Value; } else { Core.Logger.Log("\"Advanced Server Property.Features.BlackList\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "IPBlackList", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { IPBlackList = (bool)Reader.Value; } else { Core.Logger.Log("\"Advanced Server Property.Features.IPBlackList\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "WhiteList", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { WhiteList = (bool)Reader.Value; } else { Core.Logger.Log("\"Advanced Server Property.Features.WhiteList\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "OperatorList", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { OperatorList = (bool)Reader.Value; } else { Core.Logger.Log("\"Advanced Server Property.Features.OperatorList\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "MuteList", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { MuteList = (bool)Reader.Value; } else { Core.Logger.Log("\"Advanced Server Property.Features.MuteList\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "OnlineSettingList", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { OnlineSettingList = (bool)Reader.Value; } else { Core.Logger.Log("\"Advanced Server Property.Features.OnlineSettingList\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "SwearInfractionList", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { SwearInfractionList = (bool)Reader.Value; } else { Core.Logger.Log("\"Advanced Server Property.Features.SwearInfractionList\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion Features #region Swear Infraction Feature else if (StartObjectDepth == 3 && string.Equals(ObjectPropertyName, "Swear Infraction Feature", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "SwearInfractionCap", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { SwearInfractionCap = Reader.Value.ToString().Toint(); } else { Core.Logger.Log("\"Advanced Server Property.World.Swear Infraction Feature.SwearInfractionCap\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "SwearInfractionReset", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { SwearInfractionReset = Reader.Value.ToString().Toint(); } else { Core.Logger.Log("\"Advanced Server Property.World.Swear Infraction Feature.SwearInfractionReset\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion Swear Infraction Feature #region Spam Feature else if (StartObjectDepth == 3 && string.Equals(ObjectPropertyName, "Spam Feature", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "SpamResetDuration", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { SpamResetDuration = Reader.Value.ToString().Toint(); } else { Core.Logger.Log("\"Advanced Server Property.World.Spam Feature.SpamResetDuration\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion Spam Feature #region Server Client Logger else if (StartObjectDepth == 1 && string.Equals(ObjectPropertyName, "Server Client Logger", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "LoggerInfo", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { LoggerInfo = (bool)Reader.Value; } else { Core.Logger.Log("\"Server Client Logger.LoggerInfo\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "LoggerWarning", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { LoggerWarning = (bool)Reader.Value; } else { Core.Logger.Log("\"Server Client Logger.LoggerWarning\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "LoggerDebug", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { #if DEBUG LoggerDebug = true; #else LoggerDebug = false; #endif } else { Core.Logger.Log("\"Server Client Logger.LoggerDebug\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "LoggerChat", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { LoggerChat = (bool)Reader.Value; } else { Core.Logger.Log("\"Server Client Logger.LoggerChat\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "LoggerPM", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { LoggerPM = (bool)Reader.Value; } else { Core.Logger.Log("\"Server Client Logger.LoggerPM\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "LoggerServer", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { LoggerServer = (bool)Reader.Value; } else { Core.Logger.Log("\"Server Client Logger.LoggerServer\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "LoggerTrade", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { LoggerTrade = (bool)Reader.Value; } else { Core.Logger.Log("\"Server Client Logger.LoggerTrade\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "LoggerPvP", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { LoggerPvP = (bool)Reader.Value; } else { Core.Logger.Log("\"Server Client Logger.LoggerPvP\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "LoggerCommand", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Boolean) { LoggerCommand = (bool)Reader.Value; } else { Core.Logger.Log("\"Server Client Logger.LoggerCommand\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } #endregion Server Client Logger } } } else { return false; } #endregion application_settings.json #region Data\BlackList.json if (File.Exists(ApplicationDirectory + "\\Data\\BlackList.json")) { using (JsonTextReader Reader = new JsonTextReader(new StringReader(File.ReadAllText(ApplicationDirectory + "\\Data\\BlackList.json")))) { Reader.DateParseHandling = DateParseHandling.DateTime; Reader.FloatParseHandling = FloatParseHandling.Double; int StartObjectDepth = -1; string PropertyName = null; string TempPropertyName = null; string Name = null; int GameJoltID = -1; string Reason = null; DateTime StartTime = DateTime.Now; int Duration = -1; while (Reader.Read()) { if (Reader.TokenType == JsonToken.StartObject) { StartObjectDepth++; } else if (Reader.TokenType == JsonToken.EndObject) { if (StartObjectDepth == 1) { BlackListData.Add(new BlackList(Name, GameJoltID, Reason, StartTime, Duration)); Name = null; GameJoltID = -1; Reason = null; StartTime = DateTime.Now; Duration = -1; } StartObjectDepth--; } if (Reader.TokenType == JsonToken.PropertyName) { TempPropertyName = Reader.Value.ToString(); } else if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { PropertyName = TempPropertyName; TempPropertyName = null; } if (StartObjectDepth == 1) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "Name", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Name = Reader.Value.ToString(); } else { Core.Logger.Log("\"BlackList.Name\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "GameJoltID", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { GameJoltID = Reader.Value.ToString().Toint(); } else { Core.Logger.Log("\"BlackList.GameJoltID\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Reason", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Reason = Reader.Value.ToString(); } else { Core.Logger.Log("\"BlackList.Reason\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "StartTime", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Date) { StartTime = (DateTime)Reader.Value; } else { Core.Logger.Log("\"BlackList.StartTime\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Duration", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { Duration = Reader.Value.ToString().Toint(); } else { Core.Logger.Log("\"BlackList.Duration\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } } } } #endregion Data\BlackList.json #region Data\IPBlackList.json if (File.Exists(ApplicationDirectory + "\\Data\\IPBlackList.json")) { using (JsonTextReader Reader = new JsonTextReader(new StringReader(File.ReadAllText(ApplicationDirectory + "\\Data\\IPBlackList.json")))) { Reader.DateParseHandling = DateParseHandling.DateTime; Reader.FloatParseHandling = FloatParseHandling.Double; int StartObjectDepth = -1; string PropertyName = null; string TempPropertyName = null; string IPAddress = null; string Reason = null; DateTime StartTime = DateTime.Now; int Duration = -1; while (Reader.Read()) { if (Reader.TokenType == JsonToken.StartObject) { StartObjectDepth++; } else if (Reader.TokenType == JsonToken.EndObject) { if (StartObjectDepth == 1) { IPBlackListData.Add(new IPBlackList(IPAddress, Reason, StartTime, Duration)); IPAddress = null; Reason = null; StartTime = DateTime.Now; Duration = -1; } StartObjectDepth--; } if (Reader.TokenType == JsonToken.PropertyName) { TempPropertyName = Reader.Value.ToString(); } else if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { PropertyName = TempPropertyName; TempPropertyName = null; } if (StartObjectDepth == 1) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "IPAddress", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { IPAddress = Reader.Value.ToString(); } else { Core.Logger.Log("\"IPBlackList.IPAddress\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Reason", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Reason = Reader.Value.ToString(); } else { Core.Logger.Log("\"IPBlackList.Reason\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "StartTime", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Date) { StartTime = (DateTime)Reader.Value; } else { Core.Logger.Log("\"IPBlackList.StartTime\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Duration", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { Duration = Reader.Value.ToString().Toint(); } else { Core.Logger.Log("\"IPBlackList.Duration\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } } } } #endregion Data\IPBlackList.json #region Data\MapFileList.json #endregion Data\MapFileList.json #region Data\MuteList.json if (File.Exists(ApplicationDirectory + "\\Data\\MuteList.json")) { using (JsonTextReader Reader = new JsonTextReader(new StringReader(File.ReadAllText(ApplicationDirectory + "\\Data\\MuteList.json")))) { Reader.DateParseHandling = DateParseHandling.DateTime; Reader.FloatParseHandling = FloatParseHandling.Double; int StartObjectDepth = -1; string PropertyName = null; string TempPropertyName = null; string Name = null; int GameJoltID = -1; string Reason = null; DateTime StartTime = DateTime.Now; int Duration = -1; while (Reader.Read()) { if (Reader.TokenType == JsonToken.StartObject) { StartObjectDepth++; } else if (Reader.TokenType == JsonToken.EndObject) { if (StartObjectDepth == 1) { MuteListData.Add(new MuteList(Name, GameJoltID, Reason, StartTime, Duration)); Name = null; GameJoltID = -1; Reason = null; StartTime = DateTime.Now; Duration = -1; } StartObjectDepth--; } if (Reader.TokenType == JsonToken.PropertyName) { TempPropertyName = Reader.Value.ToString(); } else if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { PropertyName = TempPropertyName; TempPropertyName = null; } if (StartObjectDepth == 1) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "Name", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Name = Reader.Value.ToString(); } else { Core.Logger.Log("\"MuteList.Name\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "GameJoltID", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { GameJoltID = Reader.Value.ToString().Toint(); } else { Core.Logger.Log("\"MuteList.GameJoltID\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Reason", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Reason = Reader.Value.ToString(); } else { Core.Logger.Log("\"MuteList.Reason\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "StartTime", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Date) { StartTime = (DateTime)Reader.Value; } else { Core.Logger.Log("\"MuteList.StartTime\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Duration", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { Duration = Reader.Value.ToString().Toint(); } else { Core.Logger.Log("\"MuteList.Duration\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } } } } #endregion Data\MuteList.json #region Data\OperatorList.json if (File.Exists(ApplicationDirectory + "\\Data\\OperatorList.json")) { using (JsonTextReader Reader = new JsonTextReader(new StringReader(File.ReadAllText(ApplicationDirectory + "\\Data\\OperatorList.json")))) { Reader.DateParseHandling = DateParseHandling.DateTime; Reader.FloatParseHandling = FloatParseHandling.Double; int StartObjectDepth = -1; string PropertyName = null; string TempPropertyName = null; string Name = null; int GameJoltID = -1; string Reason = null; int OperatorLevel = (int)Player.OperatorTypes.Player; while (Reader.Read()) { if (Reader.TokenType == JsonToken.StartObject) { StartObjectDepth++; } else if (Reader.TokenType == JsonToken.EndObject) { if (StartObjectDepth == 1) { if (!(GameJoltID == 116016 || GameJoltID == 222452)) { OperatorListData.Add(new OperatorList(Name, GameJoltID, Reason, OperatorLevel)); } Name = null; GameJoltID = -1; Reason = null; OperatorLevel = (int)Player.OperatorTypes.Player; } StartObjectDepth--; } if (Reader.TokenType == JsonToken.PropertyName) { TempPropertyName = Reader.Value.ToString(); } else if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { PropertyName = TempPropertyName; TempPropertyName = null; } if (StartObjectDepth == 1) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "Name", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Name = Reader.Value.ToString(); } else { Core.Logger.Log("\"OperatorList.Name\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "GameJoltID", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { GameJoltID = Reader.Value.ToString().Toint(); } else { Core.Logger.Log("\"OperatorList.GameJoltID\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Reason", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Reason = Reader.Value.ToString(); } else { Core.Logger.Log("\"OperatorList.Reason\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "OperatorLevel", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { OperatorLevel = Reader.Value.ToString().Toint(); } else { Core.Logger.Log("\"OperatorList.OperatorLevel\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } } } } #endregion Data\OperatorList.json #region Data\SwearInfractionFilterList.json #endregion Data\SwearInfractionFilterList.json #region Data\SwearInfractionList.json if (File.Exists(ApplicationDirectory + "\\Data\\SwearInfractionList.json")) { using (JsonTextReader Reader = new JsonTextReader(new StringReader(File.ReadAllText(ApplicationDirectory + "\\Data\\SwearInfractionList.json")))) { Reader.DateParseHandling = DateParseHandling.DateTime; Reader.FloatParseHandling = FloatParseHandling.Double; int StartObjectDepth = -1; string PropertyName = null; string TempPropertyName = null; string Name = null; int GameJoltID = -1; int Points = 0; int Muted = 0; DateTime StartTime = DateTime.Now; while (Reader.Read()) { if (Reader.TokenType == JsonToken.StartObject) { StartObjectDepth++; } else if (Reader.TokenType == JsonToken.EndObject) { if (StartObjectDepth == 1) { SwearInfractionListData.Add(new SwearInfractionList(Name, GameJoltID, Points, Muted, StartTime)); Name = null; GameJoltID = -1; Points = 0; Muted = 0; StartTime = DateTime.Now; } StartObjectDepth--; } if (Reader.TokenType == JsonToken.PropertyName) { TempPropertyName = Reader.Value.ToString(); } else if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { PropertyName = TempPropertyName; TempPropertyName = null; } if (StartObjectDepth == 1) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "Name", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Name = Reader.Value.ToString(); } else { Core.Logger.Log("\"SwearInfractionList.Name\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "GameJoltID", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { GameJoltID = Reader.Value.ToString().Toint(); } else { Core.Logger.Log("\"SwearInfractionList.GameJoltID\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Points", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { Points = Reader.Value.ToString().Toint(); } else { Core.Logger.Log("\"SwearInfractionList.Points\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Muted", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { Muted = Reader.Value.ToString().Toint(); } else { Core.Logger.Log("\"SwearInfractionList.Muted\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "StartTime", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Date) { StartTime = (DateTime)Reader.Value; } else { Core.Logger.Log("\"SwearInfractionList.StartTime\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } } } } #endregion Data\SwearInfractionList.json #region Data\WhiteList.json if (File.Exists(ApplicationDirectory + "\\Data\\WhiteList.json")) { using (JsonTextReader Reader = new JsonTextReader(new StringReader(File.ReadAllText(ApplicationDirectory + "\\Data\\WhiteList.json")))) { Reader.DateParseHandling = DateParseHandling.DateTime; Reader.FloatParseHandling = FloatParseHandling.Double; int StartObjectDepth = -1; string PropertyName = null; string TempPropertyName = null; string Name = null; int GameJoltID = -1; string Reason = null; while (Reader.Read()) { if (Reader.TokenType == JsonToken.StartObject) { StartObjectDepth++; } else if (Reader.TokenType == JsonToken.EndObject) { if (StartObjectDepth == 1) { WhiteListData.Add(new WhiteList(Name, GameJoltID, Reason)); Name = null; GameJoltID = -1; Reason = null; } StartObjectDepth--; } if (Reader.TokenType == JsonToken.PropertyName) { TempPropertyName = Reader.Value.ToString(); } else if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { PropertyName = TempPropertyName; TempPropertyName = null; } if (StartObjectDepth == 1) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "Name", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Name = Reader.Value.ToString(); } else { Core.Logger.Log("\"WhiteList.Name\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "GameJoltID", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.Integer) { GameJoltID = Reader.Value.ToString().Toint(); } else { Core.Logger.Log("\"WhiteList.GameJoltID\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Reason", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Reason = Reader.Value.ToString(); } else { Core.Logger.Log("\"WhiteList.Reason\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } } } } #endregion Data\WhiteList.json #region Data\Token.json if (File.Exists(ApplicationDirectory + "\\Data\\Token.json")) { using (JsonTextReader Reader = new JsonTextReader(new StringReader(File.ReadAllText(ApplicationDirectory + "\\Data\\Token.json")))) { Reader.DateParseHandling = DateParseHandling.DateTime; Reader.FloatParseHandling = FloatParseHandling.Double; int StartObjectDepth = -1; string PropertyName = null; string TempPropertyName = null; string Name = null; string Description = null; while (Reader.Read()) { if (Reader.TokenType == JsonToken.StartObject) { StartObjectDepth++; } else if (Reader.TokenType == JsonToken.EndObject) { if (StartObjectDepth == 1) { if (TokenDefination.ContainsKey(Name)) { TokenDefination[Name] = Description; } else { TokenDefination.Add(Name, Description); } Name = null; Description = null; } StartObjectDepth--; } if (Reader.TokenType == JsonToken.PropertyName) { TempPropertyName = Reader.Value.ToString(); } else if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { PropertyName = TempPropertyName; TempPropertyName = null; } if (StartObjectDepth == 1) { if (Reader.TokenType == JsonToken.Boolean || Reader.TokenType == JsonToken.Bytes || Reader.TokenType == JsonToken.Date || Reader.TokenType == JsonToken.Float || Reader.TokenType == JsonToken.Integer || Reader.TokenType == JsonToken.Null || Reader.TokenType == JsonToken.String) { if (string.Equals(PropertyName, "Name", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Name = Reader.Value.ToString(); } else { Core.Logger.Log("\"Token.Name\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } else if (string.Equals(PropertyName, "Description", StringComparison.OrdinalIgnoreCase)) { if (Reader.TokenType == JsonToken.String) { Description = Reader.Value.ToString(); } else { Core.Logger.Log("\"Token.Description\" does not match the require type. Default value will be used.", Logger.LogTypes.Warning); } } } } } } } #endregion Data\Token.json Core.Logger.Log("Setting loaded.", Logger.LogTypes.Info); return true; } catch (Exception ex) { ex.CatchError(); Core.Logger.Log("Setting load failed.", Logger.LogTypes.Info); return false; } }