Browse Source

Use aliases while removing from the CommandMap

pull/230/head
FiniteReality 8 years ago
parent
commit
94dc123e8d
1 changed files with 16 additions and 14 deletions
  1. +16
    -14
      src/Discord.Net.Commands/Map/CommandMap.cs

+ 16
- 14
src/Discord.Net.Commands/Map/CommandMap.cs View File

@@ -36,23 +36,25 @@ namespace Discord.Commands
}
public void RemoveCommand(Command command)
{
string text = command.Text;
int nextSpace = NextWhitespace(text);
string name;
foreach (string text in command.Aliases)
{
int nextSpace = NextWhitespace(text);
string name;

if (nextSpace == -1)
name = command.Text;
else
name = command.Text.Substring(0, nextSpace);
if (nextSpace == -1)
name = command.Text;
else
name = command.Text.Substring(0, nextSpace);

lock (this)
{
CommandMapNode nextNode;
if (_nodes.TryGetValue(name, out nextNode))
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);
}
}
}
}


Loading…
Cancel
Save