public async void loadJSON() { var json = ""; using (var fs = File.OpenRead("config.json")) using (var sr = new StreamReader(fs, new UTF8Encoding(false))) json = await sr.ReadToEndAsync(); // next, let's load the values from that file to our client's configuration cfgjson = JsonConvert.DeserializeObject <ConfigJson>(json); }
public async Task RunBotAsync() { ServicePointManager.ServerCertificateValidationCallback = (s, cert, chain, ssl) => true; // first, let's load our configuration file var json = ""; using (var fs = File.OpenRead("config.json")) using (var sr = new StreamReader(fs, new UTF8Encoding(false))) json = await sr.ReadToEndAsync(); // next, let's load the values from that file to our client's configuration cfgjson = JsonConvert.DeserializeObject <ConfigJson>(json); var cfg = new DiscordConfiguration { Token = cfgjson.Token, TokenType = TokenType.Bot, AutoReconnect = true, LogLevel = LogLevel.Info, UseInternalLogHandler = true }; // then we want to instantiate our client this.Client = new DiscordClient(cfg); // next, let's hook some events, so we know what's going on this.Client.Ready += this.Client_Ready; this.Client.GuildAvailable += this.Client_GuildAvailable; this.Client.ClientErrored += this.Client_ClientError; // let's enable interactivity, and set default options this.Client.UseInteractivity(new InteractivityConfiguration { // default pagination behaviour to just ignore the reactions PaginationBehaviour = TimeoutBehaviour.Ignore, // default pagination timeout to 5 minutes PaginationTimeout = TimeSpan.FromMinutes(5), // default timeout for other actions to 2 minutes Timeout = TimeSpan.FromMinutes(2) }); // up next, let's set up our commands var ccfg = new CommandsNextConfiguration { // let's use the string prefix defined in config.json StringPrefix = cfgjson.CommandPrefix, // enable responding in direct messages EnableDms = true, // enable mentioning the bot as a command prefix EnableMentionPrefix = true, EnableDefaultHelp = false }; // and hook them up this.Commands = this.Client.UseCommandsNext(ccfg); // let's hook some command events, so we know what's going on this.Commands.CommandExecuted += this.Commands_CommandExecuted; this.Commands.CommandErrored += this.Commands_CommandErrored; // up next, let's register our commands this.Commands.RegisterCommands <Commands>(); this.Commands.RegisterCommands <TestCommands>(); //await this.Client.UpdateStatusAsync(dg); // finally, let's connect and log in await this.Client.ConnectAsync(); //test(); while (true) { checkForReminders(); //Check every minute for assigned tasks Thread.Sleep(60000); } // when the bot is running, try doing <prefix>help to see the list of registered commands, and <prefix>help <command> to see help about specific command. // and this is to prevent premature quitting await Task.Delay(-1); }