public override void OnInvoke(CommandEvent e) { _sky = Core.Singleton.SkyX; base.OnInvoke(e); }
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); } }
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; }
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; } } }
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; } } }
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(); }