From: Debayan Sutradhar Date: Fri, 09 Apr 2021 00:36:43 +0530 Subject: added support for onClientDisconnected(), onActionDeleted() --- added support for onClientDisconnected(), onActionDeleted() --- --- 'a/src/main/java/com/stream_pi/server/connection/ClientConnection.java' +++ b/src/main/java/com/stream_pi/server/connection/ClientConnection.java @@ -103,10 +103,40 @@ public class ClientConnection extends Th public synchronized void exitAndRemove() { exit(); + callOnClientDisconnectOnAllActions(); removeConnection(); serverListener.clearTemp(); } + public void callOnClientDisconnectOnAllActions() + { + for(ClientProfile profile : getClient().getAllClientProfiles()) + { + for (String actionID : profile.getActionsKeySet()) + { + Action action = profile.getActionByID(actionID); + if(action instanceof ExternalPlugin) + { + try + { + ((ExternalPlugin) action).onClientDisconnected(); + } + catch (Exception e) + { + e.printStackTrace(); + + exceptionAndAlertHandler.handleMinorException( + new MinorException( + "Unable to run onClientDisconnected for "+action.getModuleName(), + "Detailed message : "+e.getMessage() + ) + ); + } + } + } + } + } + public void removeConnection() { ClientConnections.getInstance().removeConnection(this); --- 'a/src/main/java/com/stream_pi/server/window/dashboard/actiondetailpane/OnDeleteActionTask.java' +++ b/src/main/java/com/stream_pi/server/window/dashboard/actiondetailpane/OnDeleteActionTask.java @@ -3,6 +3,7 @@ package com.stream_pi.server.window.dash import java.util.logging.Logger; import com.stream_pi.action_api.action.Action; +import com.stream_pi.action_api.externalplugin.ExternalPlugin; import com.stream_pi.server.client.ClientProfile; import com.stream_pi.server.connection.ClientConnection; import com.stream_pi.server.window.ExceptionAndAlertHandler; @@ -53,6 +54,25 @@ public class OnDeleteActionTask extends { try { + if(action instanceof ExternalPlugin) + { + try + { + ((ExternalPlugin) action).onActionDeleted(); + } + catch (Exception e) + { + e.printStackTrace(); + + exceptionAndAlertHandler.handleMinorException( + new MinorException( + "Unable to run onActionDeleted for "+action.getModuleName(), + "Detailed message : "+e.getMessage() + ) + ); + } + } + connection.deleteAction(clientProfile.getID(), action.getID()); clientProfile.removeActionByID(action.getID());