Exemple #1
0
 public override void OnInvoke(CommandEvent e)
 {
     _sky = Core.Singleton.SkyX;
     base.OnInvoke(e);
 }
Exemple #2
0
 public virtual void OnInvoke(CommandEvent e)
 {
     if (e.args.Length <= 1)
         OnHelp();
     else
     {
         for (int i = 1; i < e.args.Length; )
             OnInvokeParseArg(ref e, ref i);
     }
 }
Exemple #3
0
 private string OnTabGetLastArg(ref CommandEvent e)
 {
     for (int i = e.args.Length - 1; i > 0; i--)
         if (e.args[i] == "-")
             return null;
         else if (e.args[i].Length >= 2 && e.args[i][0] == '-' && e.args[i][1] != '-')
             return e.args[i];
     return null;
 }
Exemple #4
0
 private void OnInvokeParseSubArg(ref CommandEvent e, ref int i, ref ArgEvent evt, string argName)
 {
     if (i < e.args.Length)
     {
         if (e.args[i].StartsWith("--"))
         {
             if (e.args[i].Length >= 3)
             {
                 if (_subs[argName].Contains(e.args[i]))
                 {
                     string sub = e.args[i];
                     List<string> list = new List<string>();
                     ++i;
                     while (i < e.args.Length && e.args[i][0] != '-')
                     {
                         list.Add(e.args[i]);
                         ++i;
                     }
                     evt.subArgs.Add(sub.Substring(2), list);
                 }
                 else
                 {
                     p.UnrecognisedSubArg(argName, e.args[i]);
                     ++i;
                 }
             }
             else
             {
                 p.EmptyArg(i);
                 ++i;
             }
         }
         else
         {
             p.BadSyntax(i);
             ++i;
         }
     }
 }
Exemple #5
0
 private void OnInvokeParseArg(ref CommandEvent e, ref int i)
 {
     if (i < e.args.Length)
     {
         if (e.args[i].Length >= 2 && e.args[i][0] == '-' && e.args[i][1] != '-')
         {
             string arg = e.args[i];
             if (_aliases.ContainsKey(arg))
                 arg = _aliases[arg];
             if (_main.ContainsKey(arg))
             {
                 ArgEvent evt = new ArgEvent();
                 evt.subArgs = new Dictionary<string, List<string>>();
                 evt.parameters = null;
                 evt.name = arg.Substring(1);
                 ++i;
                 if (i < e.args.Length && e.args[i][0] != '-')
                 {
                     evt.parameters = new List<string>();
                     do
                     {
                         evt.parameters.Add(e.args[i]);
                         ++i;
                     } while (i < e.args.Length && e.args[i][0] != '-');
                 }
                 while (i < e.args.Length && e.args[i].StartsWith("--"))
                     OnInvokeParseSubArg(ref e, ref i, ref evt, arg);
                 _main[arg](evt);
             }
             else
             {
                 p.UnrecognisedArg(arg, i);
                 ++i;
             }
         }
         else
         {
             p.BadSyntax(i);
             ++i;
         }
     }
 }
Exemple #6
0
 public virtual string OnTab(CommandEvent e)
 {
     string last = e.args[e.args.Length - 1];
     if (e.args.Length < 1 || last[0] != '-' || _main.Count == 0)
         return null;
     if (last == "-")
     {
         e.TabCounter %= _main.Count;
         Dictionary<string, ArgCall>.KeyCollection.Enumerator it = _main.Keys.GetEnumerator();
         for (int i = 0; i <= e.TabCounter; i++)
             it.MoveNext();
         return it.Current;
     }
     string arg = OnTabGetLastArg(ref e);
     if (arg != null)
     {
         List<string> list = new List<string>();
         if (last == arg)
         {
             foreach (KeyValuePair<string, ArgCall> pair in _main)
                 if (pair.Key.StartsWith(last))
                     list.Add(pair.Key);
         }
         else
         {
             if (_aliases.ContainsKey(arg))
                 arg = _aliases[arg];
             if (_main.ContainsKey(arg))
             {
                 foreach (string str in _subs[arg])
                     if (str.StartsWith(last))
                         list.Add(str);
             }
             else
                 return null;
         }
         if (list.Count == 0)
             return null;
         e.TabCounter %= list.Count;
         return list[e.TabCounter];
     }
     else
         return null;
     throw new NotImplementedException();
 }