private void Deserialize(string directory) { if (!Directory.Exists(directory)) { return; } DiscordSocketClient client = _services.GetRequiredService <DiscordSocketClient>(); WerewolfManager manager = _services.GetRequiredService <WerewolfManager>(); foreach (string dir in Directory.GetDirectories(directory)) { ulong guildId = Convert.ToUInt64(Path.GetFileName(dir), 16); SocketGuild guild = client.GetGuild(guildId); JsonSerializer serializer = new JsonSerializer(); try { using (StreamReader sr = new StreamReader(Path.Combine(dir, WerewolfManager.SETTINGS_FILE))) using (JsonReader jr = new JsonTextReader(sr)) { WerewolfSettings loadedSettings = serializer.Deserialize <WerewolfSettings>(jr); loadedSettings.Restore(guild); manager.Settings.Add(guild, loadedSettings); } } catch (IOException ex) { _log.Error("Could not load Settings", ex); } } }
// Start the server, Singleton here public void Start() { // Start server var builder = new ConfigurationBuilder(); builder.SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("config.json"); Configuration = builder.Build(); // FIXME: refactor this into separate plugin system WerewolfManager wm = new WerewolfManager(); wm.Start(); DotNetWebServer ws = DotNetWebServer.GetInstance(this); ws.Start(); }