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)
{