public void AddAdditionalCommand(IManagerCommand command) { if (_commands.Any(_command => _command.Name == command.Name || _command.Alias == command.Alias)) { throw new InvalidOperationException($"Duplicate command name or alias ({command.Name}, {command.Alias})"); } _commands.Add(command); }
/// <summary> /// determines the command configuration name for given manager command /// </summary> /// <param name="command">command to determine config name for</param> /// <returns></returns> public static string CommandConfigNameForType(this IManagerCommand command) { return(command.GetType() == typeof(ScriptCommand) ? $"{char.ToUpper(command.Name[0])}{command.Name.Substring(1)}Command" : command.GetType().Name); }