Created the ResponderEvent

This commit is contained in:
mathias 2021-10-01 20:09:18 +02:00
parent cc2bf61b1c
commit 8fdedab492
No known key found for this signature in database
GPG Key ID: 8950DF62139C852A

View File

@ -0,0 +1,79 @@
package de.gnmyt.autoresponder.event;
import de.gnmyt.autoresponder.SimpleAutoResponder;
import de.gnmyt.autoresponder.event.api.EventData;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
public class ResponderEvent {
private static final Logger LOG = LoggerFactory.getLogger(ResponderEvent.class);
private final SimpleAutoResponder responder;
private final String appPackageName;
private final String messengerPackageName;
private final int ruleId;
/**
* Constructor of the {@link ResponderEvent}
*
* @param responder The current instance of your {@link SimpleAutoResponder}
* @param appPackageName The package name of the responder app
* @param messengerPackageName The package name of your whatsapp instance
* @param ruleId The id of the rule that has been executed
*/
public ResponderEvent(SimpleAutoResponder responder, String appPackageName, String messengerPackageName, int ruleId) {
this.responder = responder;
this.appPackageName = appPackageName;
this.messengerPackageName = messengerPackageName;
this.ruleId = ruleId;
}
/**
* Calls all registered event listeners
*/
public void call() {
ArrayList<EventData> eventList = responder.getEventManager().getEvents(this.getClass());
if (eventList == null) return;
for (EventData data : eventList) {
try {
data.method.invoke(data.object, this);
} catch (Exception e) {
LOG.error("Could not execute event: {}", e.getMessage());
}
}
}
/**
* Gets the app package name of the responder
*
* @return the app package name of the responder
*/
public String getAppPackageName() {
return appPackageName;
}
/**
* Gets the package name of your whatsapp instance
*
* @return the package name of your whatsapp instance
*/
public String getMessengerPackageName() {
return messengerPackageName;
}
/**
* Gets the id of the rule provided by the responder
*
* @return the id of the rule provided by the responder
*/
public int getRuleId() {
return ruleId;
}
}