public AutoCompleteStream String()
 {
     try
     {
         stream.NextString();
     }
     catch (ArgNotFoundException)
     {
         if (recommandNewArg)
         {
             reciver.ProvideString();
         }
         throw new SilentException();
     }
     return(this);
 }
        public OffsetCache(CommandStream s)
        {
            hasOffset = new bool[3];
            cache     = new int[3];

            for (int i = 0; i < 3; i++)
            {
                var str = s.NextString();
                if (str[0] == '~')
                {
                    hasOffset[i] = true;
                    if (str.Length != 1)
                    {
                        cache[i] = ExceptionHelper.ParseInt(str.Substring(1));
                    }
                }
                else
                {
                    cache[i] = ExceptionHelper.ParseInt(str);
                }
            }
        }