public static void shipInput(String input) throws Exception {
        if (input == null || input.length() == 0) {
            return;
        }
        if (input.charAt(0) == '/') {
            if (startsWith(input, "/TARGET")) {
                target = input.substring(8);
                return;
            } else if (startsWith(input, "/JOIN")) {
                target = input.substring(6);
            } else if (startsWith(input, "/MSG") || startsWith(input, "/PRIVMSG")) {

                // Very, very bad method of splitting nick from parameters
                String test = input.substring(1);
                IRCParser p = new IRCParser(test, false);
                String middle = p.getMiddle(); // nick + first parameter
                String trailing = p.getTrailing();  // second + ... parameter
                String splitter[] = middle.split(" ", 2);
                String nick = splitter[0];
                String fPar = splitter[1];
                conn.doPrivmsg(nick, fPar + " " + trailing);

                return;
            }
            input = input.substring(1);
            print("Exec: " + input);
            conn.send(input);
        } else {
            if (input.equals("getTimeout")) {
                print(Integer.toString(conn.getTimeout()));
            }
            conn.doPrivmsg(target, input);
            // conn.send(input);
            print(conn.getNick() + "> " + input);
        }
    }