public static void main(String args[]) throws IOException {
        System.out.println("  ___                                             \n" +
                " / _ \\                                            \n" +
                "/ /_\\ \\_ __   __ _ _ __ __ _ _ __ ___   __ _ _ __ \n" +
                "|  _  | '_ \\ / _` | '__/ _` | '_ ` _ \\ / _` | '__|\n" +
                "| | | | | | | (_| | | | (_| | | | | | | (_| | |   \n" +
                "\\_| |_/_| |_|\\__, |_|  \\__,_|_| |_| |_|\\__,_|_|   \n" +
                "              __/ |                               \n" +
                "             |___/                                ");
        System.out.println("MUD Server Version " + version);
        System.out.println("Starting on port " + port);
        try {
            serverSocket = new ServerSocket(port);
        } catch (IOException e) {
            System.out.println("Could not listen on port: " + port);
            System.exit(-1);
        }
        System.out.println("Now accepting connections!");
        System.out.println("Maximum connections: " + maxConnections);
        globalVars = new GlobalVars();
        mysql = new MySQL();
        new Thread(mysql).start();
        IRCBot ircbot = new IRCBot(globalVars);
        new Thread(ircbot).start();
        Runnable console = new ConsoleHandler(globalVars, ircbot);
        new Thread(console).start();
        KeepAlive kAlive = new KeepAlive(globalVars);
        new Thread(kAlive).start();
        NPC npc = new NPC(globalVars);
        new Thread(npc).start();
        Environment environment = new Environment(globalVars);
        new Thread(environment).start();
        while (!shutdownServer) {
            Socket s = serverSocket.accept();
            Runnable client = new ClientHandler(globalVars, kAlive, ircbot, environment, s);
            new Thread(client).start();
        }
        serverSocket.close();
    }