Browse Source

Added CommandMap.GetMap overloads

tags/docs-0.9
RogueException 9 years ago
parent
commit
83696c359b
1 changed files with 17 additions and 6 deletions
  1. +17
    -6
      src/Discord.Net.Commands/CommandMap.cs

+ 17
- 6
src/Discord.Net.Commands/CommandMap.cs View File

@@ -1,5 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;


namespace Discord.Commands namespace Discord.Commands
{ {
@@ -9,19 +10,29 @@ namespace Discord.Commands
private Command _command; private Command _command;
private readonly Dictionary<string, CommandMap> _subCommands; 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) public CommandMap(CommandMap parent)
{ {
_parent = parent; _parent = parent;
_subCommands = new Dictionary<string, CommandMap>(); _subCommands = new Dictionary<string, CommandMap>();
} }
public CommandMap GetMap(string text) 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() public Command GetCommand()


Loading…
Cancel
Save