server
Clone or download
Modified Files
--- '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<NetworkInterface> e = NetworkInterface.getNetworkInterfaces();
+ while(e.hasMoreElements())
+ {
+ NetworkInterface n = e.nextElement();
+ Enumeration<InetAddress> 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<NetworkInterface> e = NetworkInterface.getNetworkInterfaces();
- while(e.hasMoreElements())
- {
- NetworkInterface n = e.nextElement();
- Enumeration<InetAddress> 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;