Beispiel #1
0
  public void refreshCommands() {
    for (Object c : new ArrayList(reader.getCompletors())) {
      reader.removeCompletor((Completor) c);
    }

    Completor[] list =
        new Completor[] {new SimpleCompletor(server.getAllCommands()), new NullCompletor()};
    reader.addCompletor(new ArgumentCompletor(list));
    sender.recalculatePermissions();
  }
Beispiel #2
0
  public ConsoleManager(GlowServer server, String mode) {
    this.server = server;

    if (mode.equalsIgnoreCase("gui")) {
      JTerminalListener listener = new JTerminalListener();

      jFrame = new JFrame("Glowstone");
      jTerminal = new JTerminal();
      jInput =
          new JTextField(80) {
            @Override
            public void setBorder(Border border) {}
          };
      jInput.paint(null);
      jInput.setFont(new Font("Monospaced", Font.PLAIN, 12));
      jInput.setBackground(Color.BLACK);
      jInput.setForeground(Color.WHITE);
      jInput.setMargin(new Insets(0, 0, 0, 0));
      jInput.addKeyListener(listener);

      JLabel caret = new JLabel("> ");
      caret.setFont(new Font("Monospaced", Font.PLAIN, 12));
      caret.setForeground(Color.WHITE);

      JPanel ipanel = new JPanel();
      ipanel.add(caret, BorderLayout.WEST);
      ipanel.add(jInput, BorderLayout.EAST);
      ipanel.setBorder(BorderFactory.createEmptyBorder());
      ipanel.setBackground(Color.BLACK);
      ipanel.setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0));
      ipanel.setSize(jTerminal.getWidth(), ipanel.getHeight());

      jFrame.getContentPane().add(jTerminal, BorderLayout.NORTH);
      jFrame.getContentPane().add(ipanel, BorderLayout.SOUTH);
      jFrame.addWindowListener(listener);
      jFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
      jFrame.setLocationRelativeTo(null);
      jFrame.pack();
      jFrame.setVisible(true);
    } else if (mode.equalsIgnoreCase("jline")) {
      jLine = true;
    }

    consoleHandler = new FancyConsoleHandler();

    String logFile = server.getLogFile();
    if (new File(logFile).getParentFile() != null) {
      new File(logFile).getParentFile().mkdirs();
    }
    fileHandler = new RotatingFileHandler(logFile);

    consoleHandler.setFormatter(new DateOutputFormatter(new SimpleDateFormat("HH:mm:ss")));
    fileHandler.setFormatter(new DateOutputFormatter(new SimpleDateFormat("yyyy/MM/dd HH:mm:ss")));

    Logger logger = Logger.getLogger("");
    for (Handler h : logger.getHandlers()) {
      logger.removeHandler(h);
    }
    logger.addHandler(consoleHandler);
    logger.addHandler(fileHandler);

    try {
      reader = new ConsoleReader();
    } catch (IOException ex) {
      server
          .getLogger()
          .log(Level.SEVERE, "Exception inintializing console reader: {0}", ex.getMessage());
      ex.printStackTrace();
    }

    Runtime.getRuntime().addShutdownHook(new ServerShutdownThread());

    System.setOut(new PrintStream(new LoggerOutputStream(Level.INFO), true));
    System.setErr(new PrintStream(new LoggerOutputStream(Level.SEVERE), true));
  }