Moved ResponderContext#triggerEvent to ResponderContext#getEvent

This commit is contained in:
mathias 2021-10-03 21:30:35 +02:00
parent 0c28fe65d8
commit 818c26bd85
No known key found for this signature in database
GPG Key ID: 8950DF62139C852A

View File

@ -15,6 +15,7 @@ import de.gnmyt.autoresponder.commands.usage.UsageException;
import de.gnmyt.autoresponder.commands.usage.UsageType;
import de.gnmyt.autoresponder.entities.ChatCommand;
import de.gnmyt.autoresponder.entities.GroupCommand;
import de.gnmyt.autoresponder.event.ResponderEvent;
import de.gnmyt.autoresponder.event.chat.ChatMessageReceivedEvent;
import de.gnmyt.autoresponder.event.group.GroupMessageReceivedEvent;
import de.gnmyt.autoresponder.http.controller.HttpResponseController;
@ -71,11 +72,13 @@ public class ResponderContext extends SimpleHttpHandler {
public void run(String appPackageName, String messengerPackageName, String sender, String message, boolean isGroup,
String groupParticipant, int ruleId, HttpResponseController controller) {
ResponderEvent event = getEvent(appPackageName, messengerPackageName, sender, message, isGroup, groupParticipant, ruleId, controller);
if (message.startsWith(responder.getPrefix()))
runCommand(appPackageName, messengerPackageName, sender, message.substring(responder.getPrefix().length()), isGroup,
groupParticipant, ruleId, controller);
triggerEvent(appPackageName, messengerPackageName, sender, message, isGroup, groupParticipant, ruleId, controller);
triggerEvent(event);
if (!controller.isResponseSent()) sendNotFoundReply(isGroup ? groupParticipant : sender, message, controller);
}
@ -92,14 +95,27 @@ public class ResponderContext extends SimpleHttpHandler {
* @param ruleId The id of the rule that has been executed
* @param controller The response controller of the executed request
*/
public void triggerEvent(String appPackageName, String messengerPackageName, String sender, String message, boolean isGroup,
String groupParticipant, int ruleId, HttpResponseController controller) {
public ResponderEvent getEvent(String appPackageName, String messengerPackageName, String sender, String message, boolean isGroup,
String groupParticipant, int ruleId, HttpResponseController controller) {
ResponderEvent event;
if (isGroup) {
new GroupMessageReceivedEvent(responder, appPackageName, messengerPackageName, ruleId, controller, sender,
message, groupParticipant).call();
event = new GroupMessageReceivedEvent(responder, appPackageName, messengerPackageName, ruleId, controller, sender,
message, groupParticipant);
} else {
new ChatMessageReceivedEvent(responder, appPackageName, messengerPackageName, ruleId, controller, sender, message).call();
event = new ChatMessageReceivedEvent(responder, appPackageName, messengerPackageName, ruleId, controller, sender, message);
}
return event;
}
/**
* Triggers the provided event
*
* @param event The event you want to trigger
*/
public void triggerEvent(ResponderEvent event) {
event.call();
}
/**
@ -134,11 +150,11 @@ public class ResponderContext extends SimpleHttpHandler {
if (command instanceof ResponderGroupCommand) {
((ResponderGroupCommand) command)
.execute(new GroupCommand(controller, appPackageName, messengerPackageName, ruleId, sender, commandMessage,
.execute(new GroupCommand(controller, this, appPackageName, messengerPackageName, ruleId, sender, commandMessage,
groupParticipant), arguments);
} else if (command instanceof ResponderChatCommand) {
((ResponderChatCommand) command)
.execute(new ChatCommand(controller, appPackageName, messengerPackageName, ruleId, sender, commandMessage), arguments);
.execute(new ChatCommand(controller, this, appPackageName, messengerPackageName, ruleId, sender, commandMessage), arguments);
}
}
}