diff --git a/pom.xml b/pom.xml
index 27b396f..6277cee 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
org.openautonomousconnection
Protocol
- 1.0.0-BETA.7.0
+ 1.0.0-BETA.7.1
Open Autonomous Connection
https://open-autonomous-connection.org/
diff --git a/src/main/java/org/openautonomousconnection/protocol/listeners/CustomServerListener.java b/src/main/java/org/openautonomousconnection/protocol/listeners/CustomServerListener.java
index 0b3bff8..72d736d 100644
--- a/src/main/java/org/openautonomousconnection/protocol/listeners/CustomServerListener.java
+++ b/src/main/java/org/openautonomousconnection/protocol/listeners/CustomServerListener.java
@@ -50,7 +50,7 @@ public final class CustomServerListener extends EventListener {
@Listener
public void onConnect(S_ClientConnectedEvent event) {
try {
- server.getClients().add(new CustomConnectedClient(event.getClient(), (ProtocolCustomServer) server));
+ server.getClients().add(new CustomConnectedClient(event.getClient(), server));
} catch (Exception e) {
server.getProtocolBridge().getLogger().exception("Failed to add client to server", e);
event.getClient().disconnect();
diff --git a/src/main/java/org/openautonomousconnection/protocol/packets/v1_0_0/beta/AuthPacket.java b/src/main/java/org/openautonomousconnection/protocol/packets/v1_0_0/beta/AuthPacket.java
index 49f165d..c64dd7f 100644
--- a/src/main/java/org/openautonomousconnection/protocol/packets/v1_0_0/beta/AuthPacket.java
+++ b/src/main/java/org/openautonomousconnection/protocol/packets/v1_0_0/beta/AuthPacket.java
@@ -3,6 +3,7 @@ package org.openautonomousconnection.protocol.packets.v1_0_0.beta;
import dev.unlegitdqrk.unlegitlibrary.file.FileUtils;
import dev.unlegitdqrk.unlegitlibrary.network.system.server.ConnectedClient;
import dev.unlegitdqrk.unlegitlibrary.network.system.server.NetworkServer;
+import dev.unlegitdqrk.unlegitlibrary.network.system.utils.TransportProtocol;
import dev.unlegitdqrk.unlegitlibrary.network.utils.NetworkUtils;
import org.openautonomousconnection.protocol.ProtocolBridge;
import org.openautonomousconnection.protocol.packets.OACPacket;
@@ -97,8 +98,7 @@ public final class AuthPacket extends OACPacket {
UUID clientConnectionId = null;
if (protocolBridge.getProtocolClient() != null) {
- if (protocolBridge.getProtocolClient().getClientINSConnection() != null
- && (protocolBridge.getProtocolClient().getClientServerConnection() == null)) {
+ if (protocolBridge.getProtocolClient().getClientINSConnection() != null && (protocolBridge.getProtocolClient().getClientServerConnection() == null)) {
clientConnectionId = protocolBridge.getProtocolClient().getClientINSConnection().getUniqueID();
} else if (protocolBridge.getProtocolClient().getClientServerConnection() != null) {
clientConnectionId = protocolBridge.getProtocolClient().getClientServerConnection().getUniqueID();
@@ -139,6 +139,7 @@ public final class AuthPacket extends OACPacket {
if (client != null) {
client.setClientVersion(clientVersion);
protocolBridge.getProtocolValues().eventManager.executeEvent(new S_CustomClientConnectedEvent(client));
+ client.getConnection().sendPacket(new AuthPacket(protocolBridge), TransportProtocol.TCP);
}
return;
diff --git a/src/main/java/org/openautonomousconnection/protocol/side/client/ProtocolClient.java b/src/main/java/org/openautonomousconnection/protocol/side/client/ProtocolClient.java
index 83a2101..521ef10 100644
--- a/src/main/java/org/openautonomousconnection/protocol/side/client/ProtocolClient.java
+++ b/src/main/java/org/openautonomousconnection/protocol/side/client/ProtocolClient.java
@@ -55,7 +55,7 @@ public abstract class ProtocolClient extends EventListener {
folderStructure = new ClientCertificateFolderStructure();
}
- public final void buildINSConnection(String host, int tcpPort, int udpPort) throws NoSuchAlgorithmException, KeyManagementException {
+ public final void buildINSConnection() {
if (!protocolBridge.isRunningAsClient())
throw new IllegalStateException("Not running as client");
@@ -142,7 +142,7 @@ public abstract class ProtocolClient extends EventListener {
if (this.protocolBridge != null)
throw new IllegalStateException("ProtocolBridge already attached!");
this.protocolBridge = bridge;
- protocolBridge.getProtocolValues().eventManager.registerListener(this.getClass());
+ protocolBridge.getProtocolValues().eventManager.registerListener(this);
}
public final NetworkClient getClientINSConnection() {
@@ -186,7 +186,7 @@ public abstract class ProtocolClient extends EventListener {
@Listener
public final void onDisconnect(ClientDisconnectedEvent event) {
- if (clientToINS != null && !clientToINS.isConnected()) {
+ if (clientToINS == null || !clientToINS.isConnected()) {
insVersion = null;
clientToINS = null;
disconnectFromServer();
@@ -322,7 +322,7 @@ public abstract class ProtocolClient extends EventListener {
public final void disconnectFromServer() {
if (clientToServer != null) {
- protocolBridge.getProtocolValues().eventManager.unregisterListener(this.getClass());
+ protocolBridge.getProtocolValues().eventManager.unregisterListener(this);
clientToServer.disconnect();
clientToServer = null;
}
@@ -371,3 +371,4 @@ public abstract class ProtocolClient extends EventListener {
}
}
}
+
diff --git a/src/main/java/org/openautonomousconnection/protocol/side/server/CustomConnectedClient.java b/src/main/java/org/openautonomousconnection/protocol/side/server/CustomConnectedClient.java
index 6017358..a9a9a53 100644
--- a/src/main/java/org/openautonomousconnection/protocol/side/server/CustomConnectedClient.java
+++ b/src/main/java/org/openautonomousconnection/protocol/side/server/CustomConnectedClient.java
@@ -26,11 +26,10 @@ public class CustomConnectedClient extends EventListener {
public CustomConnectedClient(ConnectedClient connection, ProtocolCustomServer protocolServer) throws Exception {
this.connection = connection;
this.server = protocolServer;
- server.getProtocolBridge().getProtocolValues().eventManager.registerListener(this.getClass());
+ protocolServer.getProtocolBridge().getProtocolValues().eventManager.registerListener(this);
}
public synchronized void disconnect() {
- server.getProtocolBridge().getProtocolValues().eventManager.unregisterListener(this.getClass());
try {
connection.disconnect();
@@ -43,6 +42,7 @@ public class CustomConnectedClient extends EventListener {
@Listener(priority = EventPriority.HIGH)
public void onDisconnect(S_ClientDisconnectedEvent event) {
if (event.getClient().getUniqueID().equals(this.connection.getUniqueID())) {
+ server.getProtocolBridge().getProtocolValues().eventManager.unregisterListener(this);
clientVersion = null;
}
}
@@ -189,3 +189,4 @@ public class CustomConnectedClient extends EventListener {
return getClientVersion().getSupportedProtocols().contains(protocol) || yes;
}
}
+
diff --git a/src/main/java/org/openautonomousconnection/protocol/side/server/ProtocolCustomServer.java b/src/main/java/org/openautonomousconnection/protocol/side/server/ProtocolCustomServer.java
index d4dc218..3bbb750 100644
--- a/src/main/java/org/openautonomousconnection/protocol/side/server/ProtocolCustomServer.java
+++ b/src/main/java/org/openautonomousconnection/protocol/side/server/ProtocolCustomServer.java
@@ -6,6 +6,7 @@ import dev.unlegitdqrk.unlegitlibrary.event.Listener;
import dev.unlegitdqrk.unlegitlibrary.file.FileUtils;
import dev.unlegitdqrk.unlegitlibrary.network.system.client.events.state.ClientDisconnectedEvent;
import dev.unlegitdqrk.unlegitlibrary.network.system.server.NetworkServer;
+import dev.unlegitdqrk.unlegitlibrary.network.system.server.events.client.S_ClientDisconnectedEvent;
import dev.unlegitdqrk.unlegitlibrary.network.system.server.events.state.ServerStoppedEvent;
import dev.unlegitdqrk.unlegitlibrary.network.system.utils.ClientAuthMode;
import dev.unlegitdqrk.unlegitlibrary.network.utils.NetworkUtils;
@@ -108,6 +109,9 @@ public abstract class ProtocolCustomServer extends EventListener {
if (this.protocolBridge != null)
throw new IllegalStateException("ProtocolBridge already attached!");
+ this.protocolBridge = bridge;
+ bridge.getProtocolValues().eventManager.registerListener(this);
+
if (ssl) {
char[] keyPass = new char[0];
if (keyPassword != null) keyPass = keyPassword.toCharArray();
@@ -156,8 +160,6 @@ public abstract class ProtocolCustomServer extends EventListener {
keyStore.setKeyEntry(alias, key, keyPass, new X509Certificate[]{cert});
}
- bridge.getProtocolValues().eventManager.registerListener(this.getClass());
-
network = new NetworkServer.Builder()
.packetHandler(bridge.getProtocolValues().packetHandler)
.eventManager(bridge.getProtocolValues().eventManager)
@@ -179,7 +181,7 @@ public abstract class ProtocolCustomServer extends EventListener {
@Listener
public void onStop(ServerStoppedEvent event) {
if (event.getServer() == network) {
- protocolBridge.getProtocolValues().eventManager.unregisterListener(this.getClass());
+ protocolBridge.getProtocolValues().eventManager.unregisterListener(this);
}
}
@@ -190,9 +192,9 @@ public abstract class ProtocolCustomServer extends EventListener {
* @param clientID The client ID to search for.
* @return The connected web client with the specified ID, or null if not found.
*/
- public final T getClientByID(UUID clientID) {
+ public final CustomConnectedClient getClientByID(UUID clientID) {
for (CustomConnectedClient client : clients)
- if (client.getConnection().getUniqueID().equals(clientID)) return (T) client;
+ if (client.getConnection().getUniqueID().equals(clientID)) return client;
return null;
}
@@ -229,8 +231,8 @@ public abstract class ProtocolCustomServer extends EventListener {
if (!found) throw new CertificateException("Missing " + prefix + NetworkUtils.getPublicIPAddress() + extension);
}
- @Listener(priority = EventPriority.NORMAL)
- public final void clientDisconnected(ClientDisconnectedEvent event) {
+ @Listener(priority = EventPriority.LOW)
+ public final void clientDisconnected(S_ClientDisconnectedEvent event) {
for (CustomConnectedClient client : new ArrayList<>(clients)) {
if (client.getConnection().getUniqueID().equals(event.getClient().getUniqueID())) {
protocolBridge.getProtocolValues().eventManager.executeEvent(new S_CustomClientDisconnectedEvent(client));
@@ -288,3 +290,4 @@ public abstract class ProtocolCustomServer extends EventListener {
}
}
+