server
Clone or download
Modified Files
--- '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);
M
src/main/java/com/stream_pi/server/window/dashboard/actiondetailpane/OnDeleteActionTask.java
+20
−0
--- '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());