public static void LoadClans(string directoryName) { DirectoryName = directoryName; Instance.PrintError(directoryName); try { string[] configFiles = new string[0]; try { configFiles = Interface.Oxide.DataFileSystem.GetFiles(directoryName, "*.json"); } catch (Exception ex) { if (ex.GetType().Name != "DirectoryNotFoundException") { Instance.PrintError(ex.ToString()); return; } } if (configFiles.Length < 1) { Interface.Oxide.DataFileSystem.WriteObject(DirectoryName + Path.DirectorySeparatorChar + "Template", new ClanConfiguration { DiscordRoleID = "0", ClanTag = "Template Clan Tag", ClanColor = "#0F0F0F", Members = new List <ulong>() }); Instance.PrintWarning("No Existing Clan Configurations, Saving Template"); return; } for (int i = 0; i < configFiles.Length; i++) { configFiles[i] = configFiles[i].Replace(Interface.Oxide.DataDirectory + "/", "").Replace(".json", ""); Instance.PrintError(configFiles[i]); if (configFiles[i].Contains("Template")) { continue; } Instance.PrintWarning(configFiles[i]); ClanConfiguration clanConfiguration = Interface.Oxide.DataFileSystem.ReadObject <ClanConfiguration>(configFiles[i]); try { AllClans.Add(CreateClan(clanConfiguration, configFiles[i])); } catch (Exception ex) { Instance.PrintError(ex.ToString()); } } Instance.Puts($"Loaded {AllClans.Count} Clan[s]"); } catch (Exception ex) { Instance.PrintError("FATAL ERROR WHILST LOADING CLANS" + Environment.NewLine + ex.ToString()); } }
public static Clan CreateClan(ClanConfiguration config, string fileName) { return(new Clan { fileName = fileName, discordRoleID = config.DiscordRoleID, clanTag = config.ClanTag, clanColor = config.ClanColor, Members = config.Members ?? new List <ulong>() }); }
public void Save() { if (fileName == null) { Instance.PrintError("Filename was empty for Clan: " + clanTag); return; } ClanConfiguration configuration = new ClanConfiguration { DiscordRoleID = discordRoleID, ClanTag = clanTag, ClanColor = clanColor, Members = Members }; Interface.Oxide.DataFileSystem.WriteObject(fileName, configuration); Instance.Puts($"Saved Clan Configuration: {fileName}"); }