private void ExampleCommandEventHandler(CommandDispatcher.CommandEventArgs e)
 {
     //Handle commands
     if (e.CommandName == "ping" && e.ArgIndex == 0) {
         _developerConsole.PrintLine("pong!");
     }
 }
 private void DefaultCommandEventHandler(CommandDispatcher.CommandEventArgs e)
 {
     switch (e.CommandName) {
         case "help":
             HelpCommand();
             break;
         case "clear":
             _developerConsole.ClearLines();
             break;
         case "man":
             _developerConsole.PrintCommandInfo(e.Tokens[0].String);
             break;
         case "cs":
             _developerConsole.PrintLine(e.Tokens[0].Eval.ToString());
             break;
         case "god":
             GodCommand((bool) e.Tokens[0].Eval);
             break;
         case "noclip":
             NoclipCommand((bool) e.Tokens[0].Eval);
             break;
         case "tp":
             switch (e.ArgIndex) {
                 case 0:
                     TpCommand();
                     break;
                 case 1:
                     TpCommand(e.Tokens[0].String);
                     break;
                 case 2:
                     TpCommand(new Vector3((float) ((double) e.Tokens[0].Eval),
                         (float) ((double) e.Tokens[1].Eval), (float) ((double) e.Tokens[2].Eval)));
                     break;
                 case 3:
                     TpCommand(Convert.ToInt32(e.Tokens[0].Eval));
                     break;
             }
             break;
         case "players":
             PlayersCommand();
             break;
         case "drop":
             DropCommand((string) e.Tokens[0].Eval, Convert.ToInt32(e.Tokens[1].Eval));
             break;
         case "vehicle":
             VehicleCommand((string) e.Tokens[0].Eval);
             break;
         case "dump":
             DumpCommand(e.Tokens[0].Eval);
             break;
         case "money":
             MoneyCommand();
             break;
         case "weapons":
             WeaponsCommand();
             break;
         case "gtfo":
             GtfoCommand();
             break;
     }
 }
        private void OnConsoleAttached(DeveloperConsole dc)
        {
            Tick += OnTick;

            _player = Game.Player;

            _developerConsole = dc;
            _commandDispatcher = dc.CommandDispatcher;

            RegisterDefaultCommands();

            dc.PrintDebug("DefaultCommands loaded successfully.");
        }
 private void DefaultCommandEventHandler(CommandDispatcher.CommandEventArgs e)
 {
     switch (e.CommandName) {
         case "help":
             HelpCommand();
             break;
         case "clear":
             _developerConsole.ClearLines();
             break;
         case "man":
             _developerConsole.PrintCommandInfo(e.Tokens[0].String);
             break;
         case "cs":
             _developerConsole.PrintLine(e.Tokens[0].Eval.ToString());
             break;
         case "god":
             GodCommand((bool) e.Tokens[0].Eval);
             break;
         case "forcefield":
             ForceFieldCommand((bool)e.Tokens[0].Eval);
             break;
         case "noclip":
             NoclipCommand((bool) e.Tokens[0].Eval);
             break;
         case "tp":
             switch (e.ArgIndex) {
                 case 0:
                     TpCommand();
                     break;
                 case 1:
                     TpCommand(e.Tokens[0].String);
                     break;
                 case 2:
                 case 3:
                     TpCommand(new Vector3((float) (Convert.ToDouble(e.Tokens[0].Eval)),
                         (float) (Convert.ToDouble(e.Tokens[1].Eval)), (float) (Convert.ToDouble(e.Tokens[2].Eval))));
                     break;
                 case 4:
                     TpCommand(Convert.ToInt32(e.Tokens[0].Eval));
                     break;
             }
             break;
         case "players":
             PlayersCommand();
             break;
         case "drop":
             DropCommand((string) e.Tokens[0].Eval, Convert.ToInt32(e.Tokens[1].Eval));
             break;
         case "vehicle":
             VehicleCommand((string) e.Tokens[0].Eval);
             break;
         case "dump":
             DumpCommand(e.Tokens[0].Eval);
             break;
         case "money":
             MoneyCommand();
             break;
         case "weapons":
             WeaponsCommand();
             break;
         case "gtfo":
             GtfoCommand();
             break;
         case "up":
             switch (e.ArgIndex) {
                 case 0:
                     UpCommand((int) e.Tokens[0].Eval);
                     break;
                 case 1:
                     UpCommand((Entity) e.Tokens[0].Eval, (int) e.Tokens[1].Eval);
                     break;
                 case 2:
                     UpCommand((Player) e.Tokens[0].Eval, (int) e.Tokens[1].Eval);
                     break;
             }
             break;
         case "launch":
             switch (e.ArgIndex) {
                 case 0:
                     LaunchCommand((int)e.Tokens[0].Eval);
                     break;
                 case 1:
                     LaunchCommand((Entity)e.Tokens[0].Eval, (int)e.Tokens[1].Eval);
                     break;
                 case 2:
                     LaunchCommand((Player)e.Tokens[0].Eval, (int)e.Tokens[1].Eval);
                     break;
             }
             break;
         case "upright":
             switch (e.ArgIndex) {
                 case 0:
                     UprightCommand();
                     break;
                 case 1:
                     UprightCommand((Entity)e.Tokens[0].Eval);
                     break;
                 case 2:
                     UprightCommand((Player)e.Tokens[0].Eval);
                     break;
             }
             break;
         case "heal":
             switch (e.ArgIndex) {
                 case 0:
                     HealCommand();
                     break;
                 case 1:
                     HealCommand((Entity)e.Tokens[0].Eval);
                     break;
                 case 2:
                     HealCommand((Player)e.Tokens[0].Eval);
                     break;
             }
             break;
         case "devshirt":
             DevShirtCommand(e.Tokens[0].String.ToLower());
             break;
         case "spectator":
             switch (e.ArgIndex) {
                 case 0:
                     SpectatorCommand((bool) e.Tokens[0].Eval);
                     break;
                 case 1:
                     SpectatorCommand((Player) e.Tokens[0].Eval, (bool) e.Tokens[0].Eval);
                     break;
             }
             break;
     }
 }
        /// <summary>
        ///     Creates the console
        /// </summary>
        public DeveloperConsole()
        {
            InjectToGAC();

            Instance = this;

            Tick += OnTick;
            KeyDown += OnKeyDown;
            KeyUp += OnKeyUp;

            CommandDispatcher = new CommandDispatcher();
            ObjectSelector = new ObjectSelector();

            ShowConsole(false);

            PrintLine(
                "This is the developer console. To close, press the ' or F4 key on your keyboard. Run 'help' for a list of commands.");

            foreach (var s in RegisteredScripts) s.Value(this);
        }
 /// <summary>
 ///     Prints the man page for a specified command to the console
 /// </summary>
 /// <param name="cmd">The command to print info for</param>
 public void PrintCommandInfo(CommandDispatcher.Command cmd)
 {
     PrintLine("Command: " + cmd.Name);
     PrintLine("Description: " + cmd.Description);
     foreach (var x in cmd.ExpectedArgs) {
         var s = cmd.Name + " ";
         foreach (var ca in x) {
             s += "<" + ca.Type + " " + ca.Name + "> ";
         }
         PrintLine(s);
     }
 }