diff options
Diffstat (limited to 'AleeBot/Program.cs')
| -rw-r--r-- | AleeBot/Program.cs | 132 |
1 files changed, 38 insertions, 94 deletions
diff --git a/AleeBot/Program.cs b/AleeBot/Program.cs index 51b7251..d307c97 100644 --- a/AleeBot/Program.cs +++ b/AleeBot/Program.cs @@ -24,23 +24,25 @@ using System.Threading.Tasks; using Discord; using Discord.WebSocket; using Discord.Commands; +using System.Reflection; namespace AleeBot { - public class Program + public class Program { public static void Main(string[] args) { Console.Title = $"AleeBot {Data.Version} Console"; Console.WriteLine("Starting AleeBot.NET"); Console.WriteLine($"Version: {Data.Version}\n"); - Console.WriteLine("Machine Name: ", Environment.MachineName); - Console.WriteLine("OS Version: ", Environment.OSVersion); + Console.WriteLine("Machine Name: " + Environment.MachineName); + Console.WriteLine("OS Version: " + Environment.OSVersion); Console.WriteLine("\n"); if (File.Exists("token.txt")) { new Program().MainAsync().GetAwaiter().GetResult(); - } else + } + else { Console.WriteLine("[ERROR] token.txt isn't found."); Environment.Exit(0); @@ -49,7 +51,6 @@ namespace AleeBot private DiscordSocketClient _client; private CommandService _commands; - private IServiceProvider _services; public async Task MainAsync() { @@ -57,15 +58,13 @@ namespace AleeBot _client = new DiscordSocketClient(); _commands = new CommandService(); - #if DEBUG _client.Log += Log; - #endif await _client.LoginAsync(TokenType.Bot, File.ReadAllText("token.txt")); await _client.StartAsync(); - await _client.SetGameAsync(name:$"AleeBot {Data.Version} | {Data.prefix}help"); - - _client.MessageReceived += Message; + await _client.SetGameAsync(name: $"AleeBot {Data.Version} | {Data.prefix}help"); + + await InstallCommandsAsync(); _client.Ready += () => { @@ -77,96 +76,41 @@ namespace AleeBot await Task.Delay(-1); } - private Task Log(LogMessage msg) + public async Task InstallCommandsAsync() { - Console.WriteLine(msg.ToString()); - return Task.CompletedTask; + _client.MessageReceived += HandleCommandAsync; + + await _commands.AddModulesAsync(assembly: Assembly.GetEntryAssembly(), + services: null); } - private async Task Message(SocketMessage message) + private async Task HandleCommandAsync(SocketMessage messageParam) { + var message = messageParam as SocketUserMessage; + if (message == null) return; - if (message.Content == Data.prefix + "help") - { - var embed = new EmbedBuilder(); - embed.WithTitle($"AleeBot.NET {Data.Version} Help."); - embed.WithDescription($"Every command you input into AleeBot is `{Data.prefix}`"); - embed.WithColor(Color.Green); - embed.AddField("Information:", "help\nping\ngit\nabout\nuptime\nchangelog"); - embed.AddField("Bot Owner Only:", "poweroff\nreboot"); - embed.WithFooter("AleeCorp Copyright 2012-2019"); - embed.WithCurrentTimestamp(); - await message.Channel.SendMessageAsync(embed: embed.Build()); - } - else if (message.Content == Data.prefix + "ping") - { - await message.Channel.SendMessageAsync($"<@{message.Author.Id}>, 🏓 Pong!"); - } - else if (message.Content == Data.prefix + "poweroff") - { - if (message.Author.Id == 242775871059001344) - { - await message.Channel.SendMessageAsync("⚠ AleeBot will now exit!"); - Console.WriteLine("[INFO] AleeBot is powering off..."); - await _client.StopAsync(); - Console.WriteLine("[SUCCESS] Press any key to exit..."); - Console.ReadKey(); - Environment.Exit(0); - } - else - { - await message.Channel.SendMessageAsync($"<@{message.Author.Id}>, You don't have permissions to power me off..."); - } - } - else if (message.Content == Data.prefix + "reboot") - { - if (message.Author.Id == 242775871059001344) - { - await message.Channel.SendMessageAsync("⚠ AleeBot will now reboot!"); - await _client.StopAsync(); - Console.WriteLine("[INFO] AleeBot is restarting..."); - await MainAsync(); - } - else - { - await message.Channel.SendMessageAsync($"<@{message.Author.Id}>, You don't have permissions to reboot me..."); - } + int argPos = 0; - } - else if (message.Content == Data.prefix + "git") - { - await message.Channel.SendMessageAsync("Feel free to contribute in the AleeBot repo by following this link!\nhttps://github.com/AleeCorp/AleeBot.NET"); - } - else if (message.Content == Data.prefix + "about") - { - var embed = new EmbedBuilder(); - embed.WithTitle($"About AleeBot {Data.Version}"); - embed.WithColor(Color.Green); - embed.AddField("Server Information", $"Machine Name: {Environment.MachineName}\nOS Version: {Environment.OSVersion}\n"); - embed.AddField("Contributors", "Andrew (Alee14) - Original creator of AleeBot 1.0 and 2.0"); - embed.AddField("Built on", ".NET Core 3 Preview"); - embed.WithFooter("AleeCorp Copyright 2012-2019, Licensed with GPL-3.0"); - await message.Channel.SendMessageAsync(embed: embed.Build()); - } - else if (message.Content == Data.prefix + "uptime") - { - var embed = new EmbedBuilder(); - embed.WithTitle("AleeBot Uptime"); - embed.WithColor(Color.Green); - embed.AddField("System Uptime", "Coming Soon!"); - embed.AddField("Bot Uptime", "Coming Soon!"); - await message.Channel.SendMessageAsync(embed: embed.Build()); - } - else if (message.Content == Data.prefix + "changelog") - { - var embed = new EmbedBuilder(); - embed.WithTitle("AleeBot Changelog"); - embed.WithColor(Color.Green); - embed.WithDescription($"Changelog for AleeBot {Data.Version}"); - embed.AddField("What's new?", "- Added Uptime\n- Changed the help command\n- Added a changelog command"); - embed.WithFooter("Thanks for using AleeBot!"); - await message.Channel.SendMessageAsync(embed: embed.Build()); - } + if (!(message.HasStringPrefix(Data.prefix, ref argPos) || + message.HasMentionPrefix(_client.CurrentUser, ref argPos)) || + message.Author.IsBot) + return; + + var context = new SocketCommandContext(_client, message); + + var result = await _commands.ExecuteAsync( + context: context, + argPos: argPos, + services: null); + } + + + + private Task Log(LogMessage msg) + { + Console.WriteLine(msg.ToString()); + return Task.CompletedTask; } } + } |
