This commit is contained in:
Finn
2026-01-18 22:36:53 +01:00
parent fb56d47b16
commit a345b81846
2 changed files with 32 additions and 19 deletions

View File

@@ -4,6 +4,7 @@ import dev.unlegitdqrk.unlegitlibrary.event.EventListener;
import dev.unlegitdqrk.unlegitlibrary.event.Listener;
import dev.unlegitdqrk.unlegitlibrary.network.system.client.events.state.connect.ClientConnectedEvent;
import dev.unlegitdqrk.unlegitlibrary.network.system.client.events.state.disconnect.ClientDisconnectedEvent;
import dev.unlegitdqrk.unlegitlibrary.network.system.client.events.state.disconnect.ClientFullyDisconnectedEvent;
import dev.unlegitdqrk.unlegitlibrary.network.system.utils.Transport;
import lombok.Getter;
import org.openautonomousconnection.protocol.annotations.ProtocolInfo;
@@ -59,7 +60,7 @@ public final class ClientListener extends EventListener {
* @param event The client disconnected event.
*/
@Listener
public void onDisconnect(ClientDisconnectedEvent event) {
public void onDisconnect(ClientFullyDisconnectedEvent event) {
client.onDisconnect(event);
}

View File

@@ -4,7 +4,6 @@ import dev.unlegitdqrk.unlegitlibrary.network.system.client.NetworkClient;
import dev.unlegitdqrk.unlegitlibrary.network.system.client.events.state.disconnect.ClientDisconnectedEvent;
import dev.unlegitdqrk.unlegitlibrary.network.system.client.events.state.disconnect.ClientFullyDisconnectedEvent;
import dev.unlegitdqrk.unlegitlibrary.network.system.utils.Transport;
import dev.unlegitdqrk.unlegitlibrary.network.system.utils.TransportPolicy;
import dev.unlegitdqrk.unlegitlibrary.network.utils.NetworkUtils;
import dev.unlegitdqrk.unlegitlibrary.utils.DefaultMethodsOverrider;
import lombok.Getter;
@@ -55,28 +54,38 @@ public abstract class ProtocolClient extends DefaultMethodsOverrider {
*/
private ProtocolVersion serverVersion = null;
@Getter
private String insHost;
@Getter
private int insPort;
/**
* Initializes the ProtocolClient, setting up certificate folders and the INS client connection.
*/
public ProtocolClient(String insHost, int insPort) {
// Initialize and verify certificate folders and files
folderStructure = new ClientCertificateFolderStructure();
this.insHost = insHost;
this.insPort = insPort;
}
/**
* Connects to a INS Server.
*
* @param host Server host
* @param tcpPort TCP port
* @param udpPort UDP port
*/
public final void buildINSConnection(String host, int tcpPort, int udpPort) {
if (!protocolBridge.isRunningAsClient())
throw new IllegalStateException("Not running as client");
if (clientToINS != null &&
(clientToINS.isFullyConnected() || clientToINS.isTcpConnected() || clientToINS.isUdpConnected()))
return;
createINSConnection(host, tcpPort, udpPort);
}
/**
* Initialize connection to INS server
*/
private void createNetworkClient() {
private void createINSConnection(String host, int tcpPort, int udpPort) {
clientToINS = new NetworkClient.ClientBuilder().setLogger(protocolBridge.getLogger()).setProxy(protocolBridge.getProxy()).
setHost(insHost).setTcpPort(insPort).setUdpPort(0).
setHost(host).setTcpPort(tcpPort).setUdpPort(udpPort).
setPacketHandler(protocolBridge.getProtocolValues().packetHandler).setEventManager(protocolBridge.getProtocolValues().eventManager).
setRootCAFolder(folderStructure.publicCAFolder).setClientCertificatesFolder(folderStructure.publicClientFolder, folderStructure.privateClientFolder).
build();
@@ -89,7 +98,7 @@ public abstract class ProtocolClient extends DefaultMethodsOverrider {
* @param tcpPort TCP port
* @param udpPort UDP port
*/
public final void connectToServer(String host, int tcpPort, int udpPort) {
public final void buildServerConnection(String host, int tcpPort, int udpPort) {
if (!protocolBridge.isRunningAsClient())
throw new IllegalStateException("Not running as client");
@@ -97,7 +106,7 @@ public abstract class ProtocolClient extends DefaultMethodsOverrider {
(clientToServer.isFullyConnected() || clientToServer.isTcpConnected() || clientToServer.isUdpConnected()))
return;
createServerClient(host, tcpPort, udpPort);
createServerConnection(host, tcpPort, udpPort);
}
/**
@@ -116,7 +125,7 @@ public abstract class ProtocolClient extends DefaultMethodsOverrider {
* @param tcpPort Server port
* @param udpPort Server port
*/
private final void createServerClient(String host, int tcpPort, int udpPort) {
private final void createServerConnection(String host, int tcpPort, int udpPort) {
clientToServer = new NetworkClient.ClientBuilder()
.setLogger(protocolBridge.getLogger())
.setProxy(protocolBridge.getProxy())
@@ -144,7 +153,6 @@ public abstract class ProtocolClient extends DefaultMethodsOverrider {
throw new IllegalStateException("ProtocolBridge already attached!");
this.protocolBridge = bridge;
createNetworkClient();
}
/**
@@ -231,14 +239,18 @@ public abstract class ProtocolClient extends DefaultMethodsOverrider {
*
* @param event the ClientDisconnectedEvent triggered on INS disconnection.
*/
public final void onDisconnect(ClientDisconnectedEvent event) {
public final void onDisconnect(ClientFullyDisconnectedEvent event) {
// Reset server version on INS disconnect
if (!clientToINS.isTcpConnected()) {
if (!clientToINS.isFullyConnected() && clientToINS != null) {
insServerVersion = null;
clientToINS = null;
disconnectFromServer();
}
if (!clientToServer.isFullyConnected()) serverVersion = null;
if (!clientToServer.isFullyConnected() && clientToServer != null) {
serverVersion = null;
clientToServer = null;
}
}
/**