diff --git a/pom.xml b/pom.xml
index f787edd..38d8f0d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
dev.unlegitdqrk
unlegitlibrary
- 1.7.2
+ 1.7.4
https://unlegitdqrk.dev/
Just a big library
diff --git a/src/main/java/dev/unlegitdqrk/unlegitlibrary/network/system/client/NetworkClient.java b/src/main/java/dev/unlegitdqrk/unlegitlibrary/network/system/client/NetworkClient.java
index bfc19a8..4f71ad6 100644
--- a/src/main/java/dev/unlegitdqrk/unlegitlibrary/network/system/client/NetworkClient.java
+++ b/src/main/java/dev/unlegitdqrk/unlegitlibrary/network/system/client/NetworkClient.java
@@ -269,6 +269,36 @@ public class NetworkClient {
udpPort = -1;
}
+ /**
+ * @return true if the TCP connection is established
+ */
+ public boolean isTCPConnected() {
+ return tcpSocket != null && tcpSocket.isConnected() && !tcpSocket.isClosed();
+ }
+
+ /**
+ * @return true if the UDP connection is established
+ */
+ public boolean isUDPConnected() {
+ return isUDPEnabled() && udpChannel != null && udpChannel.isConnected() && udpChannel.isOpen();
+ }
+
+ /**
+ * @return true if TCP is connected and (if enabled) UDP is connected
+ */
+ public boolean isConnected() {
+ if (!isTCPConnected()) return false;
+ if (isUDPEnabled()) return isUDPConnected();
+ return true;
+ }
+
+ /**
+ * @return true if UDP is enabled for this client
+ */
+ public boolean isUDPEnabled() {
+ return udpPort != -1;
+ }
+
/**
* Builder for {@link NetworkClient}.
diff --git a/src/main/java/dev/unlegitdqrk/unlegitlibrary/network/system/server/ConnectedClient.java b/src/main/java/dev/unlegitdqrk/unlegitlibrary/network/system/server/ConnectedClient.java
index 12943b5..7660472 100644
--- a/src/main/java/dev/unlegitdqrk/unlegitlibrary/network/system/server/ConnectedClient.java
+++ b/src/main/java/dev/unlegitdqrk/unlegitlibrary/network/system/server/ConnectedClient.java
@@ -154,6 +154,11 @@ public class ConnectedClient {
return isUDPEnabled() && isTCPConnected() && udpChannel != null && udpChannel.isOpen();
}
+ public boolean isConnected() {
+ if (!isTCPConnected()) return false;
+ return isUDPEnabled() && isUDPConnected();
+ }
+
public UUID getUniqueID() {
return uniqueID;
}
diff --git a/src/main/java/dev/unlegitdqrk/unlegitlibrary/network/system/server/NetworkServer.java b/src/main/java/dev/unlegitdqrk/unlegitlibrary/network/system/server/NetworkServer.java
index c03970e..6f87394 100644
--- a/src/main/java/dev/unlegitdqrk/unlegitlibrary/network/system/server/NetworkServer.java
+++ b/src/main/java/dev/unlegitdqrk/unlegitlibrary/network/system/server/NetworkServer.java
@@ -246,6 +246,21 @@ public class NetworkServer {
return udpPort != -1;
}
+ /**
+ * Checks if the server is currently online.
+ * If UDP is enabled, the UDP channel must be open as well.
+ *
+ * @return true if TCP is open and (if enabled) UDP is open
+ */
+ public boolean isServerOnline() {
+ boolean tcpOnline = tcpSocket != null && !tcpSocket.isClosed() && tcpSocket.isBound();
+ if (!tcpOnline) return false;
+ if (isUDPEnabled()) {
+ return udpChannel != null && udpChannel.isOpen();
+ }
+ return true;
+ }
+
/**
* @return packet handler
*/