import net.knarcraft.serverlauncher.profile.Collection; import net.knarcraft.serverlauncher.profile.Profile; import net.knarcraft.serverlauncher.server.ServerType; import net.knarcraft.serverlauncher.userinterface.GUI; import net.knarcraft.serverlauncher.userinterface.ServerConsoles; import javax.naming.ConfigurationException; import java.awt.*; import java.io.IOException; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; //Java 8 required. /** * A software for managing Minecraft servers. * * @author Kristian Knarvik * @version 0.0.0.1 * @since 0.0.0.1 */ class Main { public static void main(String[] args) { EventQueue.invokeLater(() -> { try { setup(); new GUI(); new ServerConsoles(); Profile.addProfile("Default"); //TODO: replace with profiles loading generating a default profile if empty. ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor(); exec.scheduleAtFixedRate(() -> { for (Collection collection : GUI.getGUI().currentProfile().getCollections()) { if (collection.getServer().isEnabled() && collection.getServer().getProcess() != null) { try { String readText = collection.getServer().read(); if (!readText.equals("")) { //TODO: If the text contains joining or leaving message of player, update playerlist. collection.getServerConsole().output(readText); } } catch (IOException e) { e.printStackTrace(); } } } }, 10, 250, TimeUnit.MILLISECONDS); } catch (Exception e) { e.printStackTrace(); } }); } private static void setup() { try { ServerType.loadServerTypes(); } catch (ConfigurationException e) { e.printStackTrace(); System.exit(1); } } }