diff options
Diffstat (limited to 'DiscordBot/Program.cs')
-rw-r--r-- | DiscordBot/Program.cs | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/DiscordBot/Program.cs b/DiscordBot/Program.cs new file mode 100644 index 0000000..60febcd --- /dev/null +++ b/DiscordBot/Program.cs @@ -0,0 +1,58 @@ +using System; +using System.IO; +using System.Linq; +using System.Net; +using System.Threading.Tasks; +using Discord; +using Discord.Commands; +using Discord.WebSocket; + +namespace DiscordBot +{ + class Program + { + public static void Main(string[] args) + => new Program().MainAsync().GetAwaiter().GetResult(); + + private DiscordSocketClient _client; + private CommandHandler cHandler; + + public async Task MainAsync() + { + _client = new DiscordSocketClient(); + + _client.Log += Log; + + + cHandler = new CommandHandler(_client, new CommandService()); + // Remember to keep token private or to read it from an + // external source! In this case, we are reading the token + // from an environment variable. If you do not know how to set-up + // environment variables, you may find more information on the + // Internet or by using other methods such as reading from + // a configuration. + await cHandler.InstallCommandsAsync(); + + try + { + await _client.LoginAsync(TokenType.Bot, + Environment.GetEnvironmentVariable("DiscordToken")); + } + catch + { + await _client.LoginAsync(TokenType.Bot, File.ReadAllText("Token")); + } + + await _client.StartAsync(); + + // Block this task until the program is closed. + await Task.Delay(-1); + } + + private Task Log(LogMessage msg) + { + Console.WriteLine(msg.ToString()); + return Task.CompletedTask; + } + } +} |