public bool AddHome(IPlayer player, Home home) { var uuid = player.Uuid; var name = uuid.ToString().Replace("-", ""); var homeLoc = Globals.Files.PlayerHome(uuid); string logMessage = null; try { Globals.Logger.Log($"§7[Config]{ChatColor.Reset} Creating home named §9{name.ToLower()}{ChatColor.Reset}..."); if (!Globals.FileWriter.FileExists(homeLoc)) { logMessage = $"§7[Config]{ChatColor.Reset} Warp named {ChatColor.BrightGreen}{name.ToLower()}{ChatColor.Reset} successfully created"; #if DEBUG || SNAPSHOT logMessage += $" on location {ChatColor.BrightGreen}{homeLoc}"; #endif logMessage += "."; var homes = new HomeConfig { home }; PlayerHomes.Add(uuid, homes); Globals.FileWriter.WriteAllText(homeLoc, JsonSerializer.Serialize(PlayerHomes[uuid], Globals.JsonSerializerOptions)); Globals.Logger.Log(logMessage); } else //if (executor.HasPermission("essentials.who.knows.what.the.perm.for.it")) { logMessage = $"§7[Config]{ChatColor.Reset} Warp named {ChatColor.BrightGreen}{name.ToLower()}{ChatColor.Reset} successfully overwritten by {ChatColor.BrightGreen}{player.Username}{ChatColor.Reset}."; #if DEBUG || SNAPSHOT logMessage += $" home location: {ChatColor.BrightGreen}{homeLoc}{ChatColor.Reset}"; #endif Globals.Logger.Log(logMessage); #if DEBUG || SNAPSHOT logMessage = $"{ChatColor.BrightGreen}{player.Username}{ChatColor.Reset}'s home list previously had §b{PlayerHomes[uuid].Count}{ChatColor.Reset} home{(PlayerHomes[uuid].Count > 1 ? "s" : "")}, "; #endif PlayerHomes[uuid].Add(home); Globals.FileWriter.WriteAllText(homeLoc, JsonSerializer.Serialize(PlayerHomes[uuid], Globals.JsonSerializerOptions)); #if DEBUG || SNAPSHOT logMessage += $"now it has §e{PlayerHomes[uuid].Count}{ChatColor.Reset}."; Globals.Logger.LogDebug(logMessage); #endif } } catch (Exception ex) { logMessage = $"§7[Config]{ChatColor.Reset} Creating warp named {ChatColor.Red}{name.ToLower()}{ChatColor.Reset}"; #if DEBUG || SNAPSHOT logMessage += $", location: {ChatColor.Red}{homeLoc}{ChatColor.Reset}"; #endif logMessage += $" thrown an unexpected exception during execution. The exception is the following:\r\n{ChatColor.Red}{ex}"; Globals.Logger.LogError(logMessage); return(false); } return(true); }
public void LoadConfig() { #region Motd.txt LoadSingleConfig(EConfigs.Motd, Globals.Files.Motd, Globals.Defaults.Motd, out string motd); Motd = Globals.RenderColoredChatMessage(motd); #endregion #region Config.json /*LoadSingleConfig(EConfigs.Config, Globals.Files.Config, JsonSerializer.Serialize(Globals.Defaults.Config), out string config); * Config = JsonSerializer.Deserialize<Config>(config);*/ #endregion #region Homes var homes = Globals.FileReader.GetDirectoryFiles(Globals.Files.HomesDir).Where(x => x.EndsWith(".json") && Guid.TryParseExact(Globals.FileReader.GetFileNameWithoutExtension(x), "N", out Guid guid)).ToList(); for (int i = 0; i < homes.Count; i++) { var uuid = Guid.ParseExact(Globals.FileReader.GetFileNameWithoutExtension(homes[i]), "N"); LoadSingleConfig(EConfigs.Homes, homes[i], JsonSerializer.Serialize(Globals.Defaults.Config, Globals.JsonSerializerOptions), out string playerHomeData); PlayerHomes ??= new Dictionary <Guid, HomeConfig>(); PlayerHomes.Add(uuid, JsonSerializer.Deserialize <HomeConfig>(playerHomeData)); } #endregion #region Warps var warps = Globals.FileReader.GetDirectoryFiles(Globals.Files.WarpsDir).ToList().Where(x => x.ToLower().EndsWith(".json")).ToList(); //warps = warps.Where(x => x.ToLower().EndsWith(".json")).ToList(); for (int i = 0; i < warps.Count; i++) { var name = Globals.FileReader.GetFileNameWithoutExtension(warps[i]); LoadSingleConfig(EConfigs.Warps, warps[i], JsonSerializer.Serialize(Globals.Defaults.Config), out string warpData); Warps ??= new Dictionary <String, WarpConfig>(); Warps.Add(name, JsonSerializer.Deserialize <WarpConfig>(warpData)); } #endregion }