From 106843fc933482ceb77606026af31f0f3d8a126d Mon Sep 17 00:00:00 2001 From: RogueException Date: Mon, 5 Oct 2015 14:42:36 -0300 Subject: [PATCH] Removed DiscordBotClient, moved to CommandsPlugin --- .../Discord.Net.Commands.csproj | 8 +++--- src/Discord.Net.Commands/CommandBuilder.cs | 10 ++++---- ...ent.Events.cs => CommandsPlugin.Events.cs} | 7 +++--- ...{DiscordBotClient.cs => CommandsPlugin.cs} | 25 +++++++++++-------- 4 files changed, 26 insertions(+), 24 deletions(-) rename src/Discord.Net.Commands/{DiscordBotClient.Events.cs => CommandsPlugin.Events.cs} (93%) rename src/Discord.Net.Commands/{DiscordBotClient.cs => CommandsPlugin.cs} (83%) diff --git a/src/Discord.Net.Commands.Net45/Discord.Net.Commands.csproj b/src/Discord.Net.Commands.Net45/Discord.Net.Commands.csproj index 50c89e287..0539914a4 100644 --- a/src/Discord.Net.Commands.Net45/Discord.Net.Commands.csproj +++ b/src/Discord.Net.Commands.Net45/Discord.Net.Commands.csproj @@ -46,11 +46,11 @@ CommandParser.cs - - DiscordBotClient.cs + + CommandsPlugin.cs - - DiscordBotClient.Events.cs + + CommandsPlugin.Events.cs diff --git a/src/Discord.Net.Commands/CommandBuilder.cs b/src/Discord.Net.Commands/CommandBuilder.cs index a13a2c850..d3af2e512 100644 --- a/src/Discord.Net.Commands/CommandBuilder.cs +++ b/src/Discord.Net.Commands/CommandBuilder.cs @@ -71,13 +71,13 @@ namespace Discord.Commands } public sealed class CommandGroupBuilder { - private readonly DiscordBotClient _client; + private readonly CommandsPlugin _plugin; private readonly string _prefix; private int _defaultMinPermissions; - internal CommandGroupBuilder(DiscordBotClient client, string prefix, int defaultMinPermissions) + internal CommandGroupBuilder(CommandsPlugin plugin, string prefix, int defaultMinPermissions) { - _client = client; + _plugin = plugin; _prefix = prefix; _defaultMinPermissions = defaultMinPermissions; } @@ -89,7 +89,7 @@ namespace Discord.Commands public CommandGroupBuilder CreateCommandGroup(string cmd, Action config = null) { - config(new CommandGroupBuilder(_client, _prefix + ' ' + cmd, _defaultMinPermissions)); + config(new CommandGroupBuilder(_plugin, _prefix + ' ' + cmd, _defaultMinPermissions)); return this; } public CommandBuilder CreateCommand() @@ -98,7 +98,7 @@ namespace Discord.Commands { var command = new Command(cmd != "" ? _prefix + ' ' + cmd : _prefix); command.MinPerms = _defaultMinPermissions; - _client._commands.Add(command); + _plugin._commands.Add(command); return new CommandBuilder(command); } } diff --git a/src/Discord.Net.Commands/DiscordBotClient.Events.cs b/src/Discord.Net.Commands/CommandsPlugin.Events.cs similarity index 93% rename from src/Discord.Net.Commands/DiscordBotClient.Events.cs rename to src/Discord.Net.Commands/CommandsPlugin.Events.cs index 93c0ea44d..0af8d2b52 100644 --- a/src/Discord.Net.Commands/DiscordBotClient.Events.cs +++ b/src/Discord.Net.Commands/CommandsPlugin.Events.cs @@ -1,7 +1,6 @@ -using Discord.Commands; -using System; +using System; -namespace Discord +namespace Discord.Commands { public class PermissionException : Exception { public PermissionException() : base("User does not have permission to run this command.") { } } public class CommandEventArgs @@ -38,7 +37,7 @@ namespace Discord Exception = ex; } } - public partial class DiscordBotClient : DiscordClient + public partial class CommandsPlugin { public event EventHandler RanCommand; private void RaiseRanCommand(CommandEventArgs args) diff --git a/src/Discord.Net.Commands/DiscordBotClient.cs b/src/Discord.Net.Commands/CommandsPlugin.cs similarity index 83% rename from src/Discord.Net.Commands/DiscordBotClient.cs rename to src/Discord.Net.Commands/CommandsPlugin.cs index 2ccd70828..a238c1645 100644 --- a/src/Discord.Net.Commands/DiscordBotClient.cs +++ b/src/Discord.Net.Commands/CommandsPlugin.cs @@ -1,13 +1,13 @@ -using Discord.Commands; -using System; +using System; using System.Collections.Generic; -namespace Discord +namespace Discord.Commands { /// A Discord.Net client with extensions for handling common bot operations like text commands. - public partial class DiscordBotClient : DiscordClient + public partial class CommandsPlugin { internal List _commands; + private Func _getPermissions; public IEnumerable Commands => _commands; @@ -16,24 +16,27 @@ namespace Discord public bool RequireCommandCharInPublic { get; set; } public bool RequireCommandCharInPrivate { get; set; } - public DiscordBotClient(DiscordClientConfig config = null, Func getPermissions = null) - : base(config) + public CommandsPlugin(Func getPermissions = null) { + _getPermissions = getPermissions; _commands = new List(); - CommandChar = '~'; - UseCommandChar = true; + CommandChar = '/'; + UseCommandChar = false; RequireCommandCharInPublic = true; RequireCommandCharInPrivate = true; + } - MessageCreated += async (s, e) => + public void Install(DiscordClient client) + { + client.MessageCreated += async (s, e) => { //If commands aren't being used, don't bother processing them if (_commands.Count == 0) return; //Ignore messages from ourselves - if (e.Message.UserId == CurrentUserId) + if (e.Message.UserId == client.CurrentUserId) return; //Check for the command character @@ -87,7 +90,7 @@ namespace Discord newArgs[j] = args[j + cmd.Parts.Length]; //Check Permissions - int permissions = getPermissions != null ? getPermissions(e.Message.User, e.Message.Channel?.Server) : 0; + int permissions = _getPermissions != null ? _getPermissions(e.Message.User, e.Message.Channel?.Server) : 0; var eventArgs = new CommandEventArgs(e.Message, cmd, msg, permissions, newArgs); if (permissions < cmd.MinPerms) {