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.event.Listener;
|
||||||
import dev.unlegitdqrk.unlegitlibrary.network.system.client.events.state.connect.ClientConnectedEvent;
|
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.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.Transport;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.openautonomousconnection.protocol.annotations.ProtocolInfo;
|
import org.openautonomousconnection.protocol.annotations.ProtocolInfo;
|
||||||
@@ -59,7 +60,7 @@ public final class ClientListener extends EventListener {
|
|||||||
* @param event The client disconnected event.
|
* @param event The client disconnected event.
|
||||||
*/
|
*/
|
||||||
@Listener
|
@Listener
|
||||||
public void onDisconnect(ClientDisconnectedEvent event) {
|
public void onDisconnect(ClientFullyDisconnectedEvent event) {
|
||||||
client.onDisconnect(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.ClientDisconnectedEvent;
|
||||||
import dev.unlegitdqrk.unlegitlibrary.network.system.client.events.state.disconnect.ClientFullyDisconnectedEvent;
|
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.Transport;
|
||||||
import dev.unlegitdqrk.unlegitlibrary.network.system.utils.TransportPolicy;
|
|
||||||
import dev.unlegitdqrk.unlegitlibrary.network.utils.NetworkUtils;
|
import dev.unlegitdqrk.unlegitlibrary.network.utils.NetworkUtils;
|
||||||
import dev.unlegitdqrk.unlegitlibrary.utils.DefaultMethodsOverrider;
|
import dev.unlegitdqrk.unlegitlibrary.utils.DefaultMethodsOverrider;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@@ -55,28 +54,38 @@ public abstract class ProtocolClient extends DefaultMethodsOverrider {
|
|||||||
*/
|
*/
|
||||||
private ProtocolVersion serverVersion = null;
|
private ProtocolVersion serverVersion = null;
|
||||||
|
|
||||||
@Getter
|
|
||||||
private String insHost;
|
|
||||||
|
|
||||||
@Getter
|
|
||||||
private int insPort;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initializes the ProtocolClient, setting up certificate folders and the INS client connection.
|
* Initializes the ProtocolClient, setting up certificate folders and the INS client connection.
|
||||||
*/
|
*/
|
||||||
public ProtocolClient(String insHost, int insPort) {
|
public ProtocolClient(String insHost, int insPort) {
|
||||||
// Initialize and verify certificate folders and files
|
// Initialize and verify certificate folders and files
|
||||||
folderStructure = new ClientCertificateFolderStructure();
|
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
|
* 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()).
|
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).
|
setPacketHandler(protocolBridge.getProtocolValues().packetHandler).setEventManager(protocolBridge.getProtocolValues().eventManager).
|
||||||
setRootCAFolder(folderStructure.publicCAFolder).setClientCertificatesFolder(folderStructure.publicClientFolder, folderStructure.privateClientFolder).
|
setRootCAFolder(folderStructure.publicCAFolder).setClientCertificatesFolder(folderStructure.publicClientFolder, folderStructure.privateClientFolder).
|
||||||
build();
|
build();
|
||||||
@@ -89,7 +98,7 @@ public abstract class ProtocolClient extends DefaultMethodsOverrider {
|
|||||||
* @param tcpPort TCP port
|
* @param tcpPort TCP port
|
||||||
* @param udpPort UDP 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())
|
if (!protocolBridge.isRunningAsClient())
|
||||||
throw new IllegalStateException("Not running as client");
|
throw new IllegalStateException("Not running as client");
|
||||||
|
|
||||||
@@ -97,7 +106,7 @@ public abstract class ProtocolClient extends DefaultMethodsOverrider {
|
|||||||
(clientToServer.isFullyConnected() || clientToServer.isTcpConnected() || clientToServer.isUdpConnected()))
|
(clientToServer.isFullyConnected() || clientToServer.isTcpConnected() || clientToServer.isUdpConnected()))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
createServerClient(host, tcpPort, udpPort);
|
createServerConnection(host, tcpPort, udpPort);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -116,7 +125,7 @@ public abstract class ProtocolClient extends DefaultMethodsOverrider {
|
|||||||
* @param tcpPort Server port
|
* @param tcpPort Server port
|
||||||
* @param udpPort 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()
|
clientToServer = new NetworkClient.ClientBuilder()
|
||||||
.setLogger(protocolBridge.getLogger())
|
.setLogger(protocolBridge.getLogger())
|
||||||
.setProxy(protocolBridge.getProxy())
|
.setProxy(protocolBridge.getProxy())
|
||||||
@@ -144,7 +153,6 @@ public abstract class ProtocolClient extends DefaultMethodsOverrider {
|
|||||||
throw new IllegalStateException("ProtocolBridge already attached!");
|
throw new IllegalStateException("ProtocolBridge already attached!");
|
||||||
|
|
||||||
this.protocolBridge = bridge;
|
this.protocolBridge = bridge;
|
||||||
createNetworkClient();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -231,14 +239,18 @@ public abstract class ProtocolClient extends DefaultMethodsOverrider {
|
|||||||
*
|
*
|
||||||
* @param event the ClientDisconnectedEvent triggered on INS disconnection.
|
* @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
|
// Reset server version on INS disconnect
|
||||||
if (!clientToINS.isTcpConnected()) {
|
if (!clientToINS.isFullyConnected() && clientToINS != null) {
|
||||||
insServerVersion = null;
|
insServerVersion = null;
|
||||||
|
clientToINS = null;
|
||||||
disconnectFromServer();
|
disconnectFromServer();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!clientToServer.isFullyConnected()) serverVersion = null;
|
if (!clientToServer.isFullyConnected() && clientToServer != null) {
|
||||||
|
serverVersion = null;
|
||||||
|
clientToServer = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user