Use aliases while removing from the CommandMap

This commit is contained in:
FiniteReality
2016-08-27 19:44:53 +01:00
parent 95cf63243d
commit 94dc123e8d

View File

@@ -36,23 +36,25 @@ namespace Discord.Commands
}
public void RemoveCommand(Command command)
{
string text = command.Text;
int nextSpace = NextWhitespace(text);
string name;
if (nextSpace == -1)
name = command.Text;
else
name = command.Text.Substring(0, nextSpace);
lock (this)
foreach (string text in command.Aliases)
{
CommandMapNode nextNode;
if (_nodes.TryGetValue(name, out nextNode))
int nextSpace = NextWhitespace(text);
string name;
if (nextSpace == -1)
name = command.Text;
else
name = command.Text.Substring(0, nextSpace);
lock (this)
{
nextNode.AddCommand(nextSpace == -1 ? "" : text, nextSpace + 1, command);
if (nextNode.IsEmpty)
_nodes.TryRemove(name, out nextNode);
CommandMapNode nextNode;
if (_nodes.TryGetValue(name, out nextNode))
{
nextNode.RemoveCommand(nextSpace == -1 ? "" : text, nextSpace + 1, command);
if (nextNode.IsEmpty)
_nodes.TryRemove(name, out nextNode);
}
}
}
}