From: rnayabed Date: Tue, 23 Mar 2021 16:47:22 +0530 Subject: boka --- boka --- --- 'a/src/main/java/com/stream_pi/server/connection/MainServer.java' +++ b/src/main/java/com/stream_pi/server/connection/MainServer.java @@ -1,14 +1,16 @@ package com.stream_pi.server.connection; +import com.stream_pi.server.io.Config; import com.stream_pi.server.window.ExceptionAndAlertHandler; +import com.stream_pi.server.window.dashboard.ClientAndProfileSelectorPane; import com.stream_pi.util.exception.MinorException; import com.stream_pi.util.exception.SevereException; +import javafx.application.Platform; +import javafx.stage.Stage; import java.io.IOException; -import java.net.BindException; -import java.net.ServerSocket; -import java.net.Socket; -import java.net.SocketException; +import java.net.*; +import java.util.Enumeration; import java.util.concurrent.atomic.AtomicBoolean; import java.util.logging.Logger; @@ -20,14 +22,12 @@ public class MainServer extends Thread{ private ServerSocket serverSocket = null; //private Server server; - private AtomicBoolean stop = new AtomicBoolean(false); private ExceptionAndAlertHandler exceptionAndAlertHandler; public MainServer(ServerListener serverListener, ExceptionAndAlertHandler exceptionAndAlertHandler) { this.exceptionAndAlertHandler = exceptionAndAlertHandler; - this.port = port; this.serverListener = serverListener; } @@ -78,6 +78,8 @@ public class MainServer extends Thread{ serverSocket = new ServerSocket(port); + setupStageTitle(true); + while(!stop.get()) { Socket s = serverSocket.accept(); @@ -92,7 +94,13 @@ public class MainServer extends Thread{ if(!e.getMessage().contains("Socket closed")) { logger.info("Main Server stopped accepting calls ..."); - exceptionAndAlertHandler.handleMinorException(new MinorException("Sorry","The port "+port+" is already reserved by another process. If another Server Instance probably running, close it. If not, change the port in settings and restart Stream-Pi Server \n\nFull Message : "+e.getMessage())); + + setupStageTitle(false); + + exceptionAndAlertHandler.handleMinorException(new MinorException("Sorry!","Server could not be started at "+port+".\n" + + "This could be due to another process or another instance of Stream-Pi Server using the same port. \n\n" + + "If another Server Instance probably running, close it. If not, try changing the port in settings and restart Stream-Pi Server." + + "If the problem still persists, consider contacting us. \n\nFull Message : "+e.getMessage())); e.printStackTrace(); } } @@ -103,5 +111,45 @@ public class MainServer extends Thread{ } } + private void setupStageTitle(boolean isSuccess) + { + try + { + if(isSuccess) + { + StringBuilder ips = new StringBuilder(); + + Enumeration e = NetworkInterface.getNetworkInterfaces(); + while(e.hasMoreElements()) + { + NetworkInterface n = e.nextElement(); + Enumeration ee = n.getInetAddresses(); + while (ee.hasMoreElements()) + { + InetAddress i = ee.nextElement(); + String hostAddress = i.getHostAddress(); + if(i instanceof Inet4Address) + { + ips.append(hostAddress); + if(e.hasMoreElements()) + ips.append(" / "); + } + } + } + + Platform.runLater(()-> serverListener.getStage().setTitle("Stream-Pi Server - IP(s): "+ips.toString()+" | Port: "+ port)); + } + else + { + Platform.runLater(()-> serverListener.getStage().setTitle("Stream-Pi Server - Offline")); + } + } + catch (Exception e) + { + e.printStackTrace(); + exceptionAndAlertHandler.handleMinorException(new MinorException("Error",e.getMessage())); + } + } + } --- 'a/src/main/java/com/stream_pi/server/connection/ServerListener.java' +++ b/src/main/java/com/stream_pi/server/connection/ServerListener.java @@ -2,7 +2,10 @@ package com.stream_pi.server.connection; import com.stream_pi.action_api.externalplugin.NormalAction; import com.stream_pi.action_api.externalplugin.ToggleAction; +import com.stream_pi.server.window.dashboard.ClientAndProfileSelectorPane; +import com.stream_pi.server.window.dashboard.DashboardBase; import com.stream_pi.util.exception.SevereException; +import javafx.stage.Stage; public interface ServerListener { @@ -15,5 +18,9 @@ public interface ServerListener void othInit(); + Stage getStage(); + + DashboardBase getDashboardBase(); + void initLogger() throws SevereException; } --- 'a/src/main/java/com/stream_pi/server/controller/Controller.java' +++ b/src/main/java/com/stream_pi/server/controller/Controller.java @@ -14,6 +14,8 @@ import com.stream_pi.server.connection.M import com.stream_pi.server.io.Config; import com.stream_pi.server.info.ServerInfo; import com.stream_pi.server.window.Base; +import com.stream_pi.server.window.dashboard.ClientAndProfileSelectorPane; +import com.stream_pi.server.window.dashboard.DashboardBase; import com.stream_pi.server.window.dashboard.DonatePopupContent; import com.stream_pi.server.window.firsttimeuse.FirstTimeUse; import com.stream_pi.util.alert.StreamPiAlert; @@ -58,27 +60,6 @@ public class Controller extends Base imp { try { - StringBuilder ips = new StringBuilder(); - - Enumeration e = NetworkInterface.getNetworkInterfaces(); - while(e.hasMoreElements()) - { - NetworkInterface n = e.nextElement(); - Enumeration ee = n.getInetAddresses(); - while (ee.hasMoreElements()) - { - InetAddress i = ee.nextElement(); - String hostAddress = i.getHostAddress(); - if(i instanceof Inet4Address) - { - ips.append(hostAddress); - if(e.hasMoreElements()) - ips.append(" / "); - } - } - } - - getStage().setTitle("Stream-Pi Server - IP(s): "+ips.toString()+" | Port: "+ Config.getInstance().getPort()); //Sets title getStage().setOnCloseRequest(this::onCloseRequest); } catch (Exception e) @@ -215,6 +196,11 @@ public class Controller extends Base imp }).start(); } + @Override + public DashboardBase getDashboardBase() { + return getDashboardPane(); + } + private void setupSettingsWindowsAnimations() { Node settingsNode = getSettingsPane(); --- 'a/src/main/java/com/stream_pi/server/window/Base.java' +++ b/src/main/java/com/stream_pi/server/window/Base.java @@ -208,6 +208,7 @@ public abstract class Base extends Stack applyDefaultIconsStylesheet(); } + @Override public Stage getStage() { return stage;