internal static async Task <Result> GetFiles(BotSettings bSettings, DBSettings dbSettings) { using (var dbClient = new DropboxClient(Constants._DBTOKEN_)) { if (File.Exists(Constants._WORKDIR_ + $"{Constants.slashType}Data{Constants.slashType}BotSettings.json")) { bSettings = new BotSettings(Constants._WORKDIR_ + $"{Constants.slashType}Data{Constants.slashType}BotSettings.json"); } else { if (!Directory.Exists(Constants._WORKDIR_ + $"{Constants.slashType}Data")) { Directory.CreateDirectory(Constants._WORKDIR_ + $"{Constants.slashType}Data"); } using (var response = await dbClient.Files.DownloadAsync("/Data/BotSettings.json")) { var f = File.Create(Constants._WORKDIR_ + $"{Constants.slashType}Data{Constants.slashType}BotSettings.json"); using (var rw = new StreamWriter(f)) { Console.WriteLine($"Creating file {Constants._WORKDIR_ + $"{Constants.slashType}Data{Constants.slashType}BotSettings.json"}"); rw.Write(await response.GetContentAsStringAsync()); } } bSettings = new BotSettings(Constants._WORKDIR_ + $"{Constants.slashType}Data{Constants.slashType}BotSettings.json"); } if (File.Exists(Constants._WORKDIR_ + $"{Constants.slashType}Data{Constants.slashType}DBSettings.json")) { dbSettings = new DBSettings(Constants._WORKDIR_ + $"{Constants.slashType}Data{Constants.slashType}DBSettings.json"); } else { if (!Directory.Exists(Constants._WORKDIR_ + $"{Constants.slashType}Data")) { Directory.CreateDirectory(Constants._WORKDIR_ + $"{Constants.slashType}Data"); } using (var response = await dbClient.Files.DownloadAsync("/Data/DBSettings.json")) { var f = File.Create(Constants._WORKDIR_ + $"{Constants.slashType}Data{Constants.slashType}DBSettings.json"); using (var rw = new StreamWriter(f)) { Console.WriteLine($"Creating file {Constants._WORKDIR_ + $"{Constants.slashType}Data{Constants.slashType}DBSettings.json"}"); rw.Write(await response.GetContentAsStringAsync()); } } dbSettings = new DBSettings(Constants._WORKDIR_ + $"{Constants.slashType}Data{Constants.slashType}DBSettings.json"); } } var r = new Result(); r.botSettings = bSettings; r.dbSettings = dbSettings; return(r); }
public DBSettings(string jsonFileLoc) { using (StreamReader r = new StreamReader(jsonFileLoc)) { string json = r.ReadToEnd(); DBSettings d = JsonConvert.DeserializeObject <DBSettings>(json); this.password = d.password; this.port = d.port; this.host = d.host; this.db = d.db; this.username = d.username; this.instance = d.instance; } }
private async Task MainAsync() { var res = Setup.GetFiles(bSettings, dbSettings); res.Wait(); bSettings = res.Result.botSettings; dbSettings = res.Result.dbSettings; Client = new DiscordSocketClient(new DiscordSocketConfig { LogLevel = LogSeverity.Debug }); Commands = new CommandService(new CommandServiceConfig { CaseSensitiveCommands = false, DefaultRunMode = RunMode.Async, LogLevel = LogSeverity.Debug }); Provider = new ServiceCollection() .AddSingleton(Client) .AddSingleton(Commands) .BuildServiceProvider(); Client.MessageReceived += Client_MessageReceived; await Commands.AddModulesAsync(Assembly.GetEntryAssembly(), null); Client.Ready += Client_Ready; Client.Log += Client_Log; Client.JoinedGuild += Client_JoinedGuild; Client.LeftGuild += Client_LeftGuild; Client.ReactionAdded += Client_ReactionAdded; Client.ReactionRemoved += Client_ReactionRemoved; if (!Directory.Exists(LogWriter.LogFileLoc.Replace($"Logs{Constants.slashType}Log", $"Logs{Constants.slashType}"))) { Directory.CreateDirectory(LogWriter.LogFileLoc.Replace($"Logs{Constants.slashType}Log", $"Logs{Constants.slashType}")); } DBControl.dbSettings = dbSettings; await Client.LoginAsync(TokenType.Bot, bSettings.token); await Client.StartAsync(); Timer t = new Timer(); t.AutoReset = true; async void handler(object sender, ElapsedEventArgs e) { List <Poll> tempList = GlobalVars.Polls; foreach (Poll p in tempList) { await GlobalVars.Polls.Single(i => i == p).Update(); } } t.StartTimer(handler, 5000); GlobalVars.CurrencyList = await Setup.GetCurrencies(Constants._CURRENCYLAYER_); GlobalVars.CurrencyLastUpdated = DateTime.Now; Timer CurT = new Timer(); CurT.AutoReset = true; async void CurHandler(object sender, ElapsedEventArgs e) { GlobalVars.CurrencyList = await Setup.GetCurrencies(Constants._CURRENCYLAYER_); GlobalVars.CurrencyLastUpdated = DateTime.Now; } CurT.StartTimer(CurHandler, 86400000); GlobalVars.GameObj = new MortyGame(dbSettings); GlobalVars.Client = Client; await Task.Delay(-1); }