//Terminal var post = function(input) { $("#terminal-input").before('' + input + ''); window.scrollTo(0, document.body.scrollHeight); } //command is checked on enter key press $(document).keyup(function(event) { if (event.keyCode == 13) { var command = $('input[class=terminal-input]').val(); if (command.length > 0) { post("> " + command); //TODO Do i have to switch the order of these two? Terminal.executeCommand(command); $('input[class=terminal-input]').val(""); } } }); var Terminal = { executeCommand: function(command) { var commandArray = command.split(); if (commandArray.length == 0) { return; } switch (commandArray[0]) { case "analyze": //TODO Analyze the system for ports break; case "clear": case "cls": //TODO break; case "connect": //TODO Disconnect from current server in terminal and connect to new one..maybe rename this to telnet? break; case "df": //TODO break; case "hack": //TODO Hack the current PC (usually for money) //You can't hack your home pc or servers you purchased if (Player.currentServer.purchasedByPlayer) { post("Cannot hack your own machines! You are currently connected to your home PC or one of your purchased servers"); } else { } break; case "help": //TODO break; case "hostname": //Print the hostname of current system post(Player.currentServer.hostname); break; case "ifconfig": //Print the IP address of the current system post(Player.currentServer.ip); break; case "kill": //TODO break; case "ls": //TODO break; case "netstat": case "scan": //TODO Displays available network connections using TCP case "ps": //TODO break; case "rm": //TODO break; case "run": //TODO break; case "scp": //TODO break; default: } }, runProgram: function(programName) { } };