aboutsummaryrefslogtreecommitdiff
path: root/AleeBot/Program.cs
diff options
context:
space:
mode:
Diffstat (limited to 'AleeBot/Program.cs')
-rw-r--r--AleeBot/Program.cs132
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;
}
}
+
}