Bug fix
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user