diff --git a/src/Discord.Net.Commands/CommandMap.cs b/src/Discord.Net.Commands/CommandMap.cs index 8113f6d59..6dd9d2ff1 100644 --- a/src/Discord.Net.Commands/CommandMap.cs +++ b/src/Discord.Net.Commands/CommandMap.cs @@ -114,24 +114,24 @@ namespace Discord.Commands public bool CanRun(User user, Channel channel, out string error) { + error = null; if (_commands.Count > 0) { foreach (var cmd in _commands) { - if (!cmd.CanRun(user, channel, out error)) - return false; + if (cmd.CanRun(user, channel, out error)) + return true; } } if (_items.Count > 0) { foreach (var item in _items) { - if (!item.Value.CanRun(user, channel, out error)) - return false; + if (item.Value.CanRun(user, channel, out error)) + return true; } } - error = null; - return true; + return false; } } } diff --git a/src/Discord.Net.Commands/CommandService.cs b/src/Discord.Net.Commands/CommandService.cs index aa9aec409..b39c55d47 100644 --- a/src/Discord.Net.Commands/CommandService.cs +++ b/src/Discord.Net.Commands/CommandService.cs @@ -49,7 +49,7 @@ namespace Discord.Commands .Parameter("command", ParameterType.Multiple) .Hide() .Description("Returns information about commands.") - .Do((Func)(async e => + .Do(async e => { Channel replyChannel = _config.HelpMode == HelpMode.Public ? e.Channel : await client.CreatePMChannel(e.User); if (e.Args.Length > 0) //Show command help @@ -62,7 +62,7 @@ namespace Discord.Commands } else //Show general help await ShowGeneralHelp(e.User, e.Channel, replyChannel); - })); + }); } client.MessageReceived += async (s, e) => @@ -209,7 +209,7 @@ namespace Discord.Commands IEnumerable cmds = map.Commands; bool isFirstCmd = true; string error; - if (cmds != null) + if (cmds.Any()) { foreach (var cmd in cmds) { @@ -233,7 +233,7 @@ namespace Discord.Commands } bool isFirstSubCmd = true; - foreach (var subCmd in map.SubGroups.Where(x => x.CanRun(user, channel, out error) && !x.IsVisible)) + foreach (var subCmd in map.SubGroups.Where(x => x.CanRun(user, channel, out error) && x.IsVisible)) { if (isFirstSubCmd) { @@ -289,8 +289,8 @@ namespace Discord.Commands break; } } - output.Append('`'); - output.AppendLine($": {command.Description ?? "No description set for this command."}"); + output.AppendLine("`"); + output.AppendLine($"{command.Description ?? "No description."}"); if (command.Aliases.Any()) output.AppendLine($"Aliases: `" + string.Join("`, `", command.Aliases) + '`');