public sealed override void Execute(ICommandSender sender, string cmdLine, string[] args) { CommandLineHelp.WithHeader(sender.CommandPrefix + Name + " " + Usage + ": " + Description); if (!HasPermission(sender)) { sender.Message("<color=red>You don't have permission</color>"); return; } var result = _commandLineParser.Parse(args); if (result.HasErrors) { SendUsage(sender); if (string.IsNullOrEmpty(result.ErrorText)) { return; } sender.Message("<b>" + result.ErrorText + "</b>"); return; } if (result.HelpCalled) { SendUsage(sender); return; } if (!OnExecute(sender, cmdLine, args, _commandLineParser.Object)) { SendUsage(sender); } }
public Task Process(ICommandSender sender, Queue <string> args) { if (args.Count > 0) { var first = args.Peek(); var command = GetCommand(first); if (command != null) { args.Dequeue(); return(command.Process(sender, args)); } } var result = _parser.ParseArguments <T>(args); return(Task.Run(() => result .WithParsed(o => Execute(sender, o)) .WithNotParsed(errs => { var helpText = HelpText.AutoBuild(result, _parser.Settings.MaximumDisplayWidth); helpText.Heading = string.Empty; helpText.Copyright = string.Empty; helpText.AddPostOptionsLines( Commands.Select(c => $"{c.Name}\t\t\t\t{c.Description}") ); Regex .Split(helpText.ToString(), "\r\n|\r|\n") .ForEach((s, i) => sender.Message(s)); } ))); }
public void Eval(ICommandSender sender, string cmd, string cmdLine) { LogUtils.Log(sender.Name + " executed command: " + cmdLine); var cmdInstance = GetCommand(cmd); if (cmdInstance == null) { sender.Message("<color=#B71C1C>Command \"" + cmd + "\" not found</color>"); return; } string[] parsedArgs = {}; if (cmdLine.Trim().Length > cmd.Length) { parsedArgs = StringUtils.ToArguments(cmdLine.Substring(cmd.Length + 1)); } if (!cmdInstance.HasPermission(sender)) { sender.Message("<color=#B71C1C>You don't have permission</color>"); return; } cmdInstance.Execute(sender, cmdLine, parsedArgs); }