Added CommandMap.GetMap overloads
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace Discord.Commands
|
||||
{
|
||||
@@ -9,19 +10,29 @@ namespace Discord.Commands
|
||||
private Command _command;
|
||||
private readonly Dictionary<string, CommandMap> _subCommands;
|
||||
|
||||
public Command Command => _command;
|
||||
public IEnumerable<Command> SubCommands => _subCommands.Select(x => x.Value.Command).Where(x => x != null);
|
||||
|
||||
public CommandMap(CommandMap parent)
|
||||
{
|
||||
_parent = parent;
|
||||
_subCommands = new Dictionary<string, CommandMap>();
|
||||
}
|
||||
|
||||
|
||||
public CommandMap GetMap(string text)
|
||||
{
|
||||
CommandMap map;
|
||||
if (_subCommands.TryGetValue(text, out map))
|
||||
return map;
|
||||
else
|
||||
return null;
|
||||
return GetMap(0, text.Split(' '));
|
||||
}
|
||||
public CommandMap GetMap(int index, string[] parts)
|
||||
{
|
||||
if (index != parts.Length)
|
||||
{
|
||||
string nextPart = parts[index];
|
||||
CommandMap nextGroup;
|
||||
if (_subCommands.TryGetValue(nextPart, out nextGroup))
|
||||
return nextGroup.GetMap(index + 1, parts);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public Command GetCommand()
|
||||
|
||||
Reference in New Issue
Block a user